@maptrip/map-tiles 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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=tomtom${z}&project=${project}&projection=wgs84";
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=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: null
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 = 18;
1131
+ const MAX_ZOOM = 21;
1130
1132
  const ATTRIBUTION = '&#169;&nbsp;<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
- points2,
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: 19,
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
- trafficFlowFast: "trafficFlowFast",
2077
- trafficFlowMedium: "trafficFlowMedium",
2078
- trafficFlowSlow: "trafficFlowSlow",
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: "#daecbf"
2310
+ color: "#cddfb4"
2283
2311
  }
2284
- },
2312
+ }
2313
+ ],
2314
+ natural_park: [
2285
2315
  {
2286
2316
  from: 15,
2287
- to: 19,
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: 19,
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: 19,
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
- trafficFlowFast: [
2373
+ trafficFlowFastHighway: [
2337
2374
  {
2338
2375
  from: 1,
2339
- to: 8,
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: 9,
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: 2
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: 3
2406
+ width: 9,
2407
+ delta: 2
2359
2408
  }
2360
2409
  },
2361
2410
  {
2362
2411
  from: 16,
2363
- to: 19,
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: 4
2491
+ width: 9,
2492
+ delta: 2
2367
2493
  }
2368
2494
  }
2369
2495
  ],
2370
- trafficFlowMedium: [
2496
+ trafficFlowMediumHighway: [
2371
2497
  {
2372
2498
  from: 1,
2373
- to: 8,
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: 9,
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: 2
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: 3
2529
+ width: 9,
2530
+ delta: 2
2393
2531
  }
2394
2532
  },
2395
2533
  {
2396
2534
  from: 16,
2397
- to: 19,
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: 4
2614
+ width: 9,
2615
+ delta: 2
2401
2616
  }
2402
2617
  }
2403
2618
  ],
2404
- trafficFlowSlow: [
2619
+ trafficFlowSlowHighway: [
2405
2620
  {
2406
2621
  from: 1,
2407
- to: 8,
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: 9,
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: 2
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: 3
2652
+ width: 9,
2653
+ delta: 2
2427
2654
  }
2428
2655
  },
2429
2656
  {
2430
2657
  from: 16,
2431
- to: 19,
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: 4
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 16,
3071
- to: 19,
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: 19,
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: 19,
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: 19,
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": 19,
3493
+ "to": 21,
3174
3494
  "color": "rgba(0, 0, 0, 0)"
3175
3495
  }
3176
3496
  ],
3177
3497
  "layers": {
3178
- "trafficFlowFast": "trafficFlowFast",
3179
- "trafficFlowMedium": "trafficFlowMedium",
3180
- "trafficFlowSlow": "trafficFlowSlow"
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
- "trafficFlowFast": [
3509
+ trafficFlowFastHighway: [
3510
+ {
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
3526
+ }
3527
+ },
3528
+ {
3529
+ from: 10,
3530
+ to: 12,
3531
+ line: {
3532
+ color: "#6EDB9C",
3533
+ width: 2,
3534
+ outlineColor: "#4B9869",
3535
+ outlineWidth: 1
3536
+ }
3537
+ },
3538
+ {
3539
+ from: 13,
3540
+ to: 15,
3541
+ line: {
3542
+ color: "#6EDB9C",
3543
+ width: 3,
3544
+ outlineColor: "#4B9869",
3545
+ outlineWidth: 1
3546
+ }
3547
+ },
3548
+ {
3549
+ from: 16,
3550
+ to: 21,
3551
+ line: {
3552
+ color: "#6EDB9C",
3553
+ width: 4,
3554
+ outlineColor: "#4B9869",
3555
+ outlineWidth: 1
3556
+ }
3557
+ }
3558
+ ],
3559
+ trafficFlowFastInterstate: [
3560
+ {
3561
+ from: 9,
3562
+ to: 12,
3563
+ line: {
3564
+ color: "#6EDB9C",
3565
+ width: 1,
3566
+ delta: 1
3567
+ }
3568
+ },
3569
+ {
3570
+ from: 13,
3571
+ to: 14,
3572
+ line: {
3573
+ color: "#6EDB9C",
3574
+ width: 2,
3575
+ delta: 2
3576
+ }
3577
+ },
3578
+ {
3579
+ from: 15,
3580
+ to: 16,
3581
+ line: {
3582
+ color: "#6EDB9C",
3583
+ width: 2,
3584
+ delta: 2,
3585
+ outlineColor: "#4B9869",
3586
+ outlineWidth: 1
3587
+ }
3588
+ },
3589
+ {
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
3609
+ }
3610
+ },
3611
+ {
3612
+ from: 17,
3613
+ to: 21,
3614
+ line: {
3615
+ color: "#6EDB9C",
3616
+ width: 2,
3617
+ delta: 2
3618
+ }
3619
+ }
3620
+ ],
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
+ },
3184
3640
  {
3185
- "from": 1,
3186
- "to": 8,
3187
- "line": {
3188
- "color": "rgba(80, 220, 50, 0.5)",
3189
- "width": 1
3641
+ from: 10,
3642
+ to: 12,
3643
+ line: {
3644
+ color: "#ffce42",
3645
+ width: 2,
3646
+ outlineColor: "#f4bf22",
3647
+ outlineWidth: 1
3190
3648
  }
3191
3649
  },
3192
3650
  {
3193
- "from": 9,
3194
- "to": 12,
3195
- "line": {
3196
- "color": "rgba(80, 220, 50, 0.5)",
3197
- "width": 2
3651
+ from: 13,
3652
+ to: 15,
3653
+ line: {
3654
+ color: "#ffce42",
3655
+ width: 3,
3656
+ outlineColor: "#f4bf22",
3657
+ outlineWidth: 1
3198
3658
  }
3199
3659
  },
3200
3660
  {
3201
- "from": 13,
3202
- "to": 15,
3203
- "line": {
3204
- "color": "rgba(80, 220, 50, 0.5)",
3205
- "width": 4
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
3206
3679
  }
3207
3680
  },
3208
3681
  {
3209
- "from": 16,
3210
- "to": 19,
3211
- "line": {
3212
- "color": "rgba(80, 220, 50, 0.5)",
3213
- "width": 6
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
3214
3710
  }
3215
3711
  }
3216
3712
  ],
3217
- "trafficFlowMedium": [
3713
+ trafficFlowMediumMinor: [
3218
3714
  {
3219
- "from": 1,
3220
- "to": 8,
3221
- "line": {
3222
- "color": "rgba(255, 165, 0, 0.5)",
3223
- "width": 1
3715
+ from: 15,
3716
+ to: 16,
3717
+ line: {
3718
+ color: "#ffce42",
3719
+ width: 1,
3720
+ delta: 1
3224
3721
  }
3225
3722
  },
3226
3723
  {
3227
- "from": 9,
3228
- "to": 12,
3229
- "line": {
3230
- "color": "rgba(255, 165, 0, 0.5)",
3231
- "width": 2
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
3232
3741
  }
3233
3742
  },
3234
3743
  {
3235
- "from": 13,
3236
- "to": 15,
3237
- "line": {
3238
- "color": "rgba(255, 165, 0, 0.5)",
3239
- "width": 4
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
3240
3770
  }
3241
3771
  },
3242
3772
  {
3243
- "from": 16,
3244
- "to": 19,
3245
- "line": {
3246
- "color": "rgba(255, 165, 0, 0.5)",
3247
- "width": 6
3773
+ from: 16,
3774
+ to: 21,
3775
+ line: {
3776
+ color: "#f14d40",
3777
+ width: 4,
3778
+ outlineColor: "#96403a",
3779
+ outlineWidth: 1
3248
3780
  }
3249
3781
  }
3250
3782
  ],
3251
- "trafficFlowSlow": [
3783
+ trafficFlowSlowInterstate: [
3784
+ {
3785
+ from: 9,
3786
+ to: 12,
3787
+ line: {
3788
+ color: "#f14d40",
3789
+ width: 1,
3790
+ delta: 1
3791
+ }
3792
+ },
3252
3793
  {
3253
- "from": 1,
3254
- "to": 8,
3255
- "line": {
3256
- "color": "rgba(200, 0, 0, 0.5)",
3257
- "width": 1
3794
+ from: 13,
3795
+ to: 14,
3796
+ line: {
3797
+ color: "#f14d40",
3798
+ width: 2,
3799
+ delta: 2
3258
3800
  }
3259
3801
  },
3260
3802
  {
3261
- "from": 9,
3262
- "to": 12,
3263
- "line": {
3264
- "color": "rgba(200, 0, 0, 0.5)",
3265
- "width": 2
3803
+ from: 15,
3804
+ to: 16,
3805
+ line: {
3806
+ color: "#f14d40",
3807
+ width: 2,
3808
+ delta: 2,
3809
+ outlineColor: "#96403a",
3810
+ outlineWidth: 1
3266
3811
  }
3267
3812
  },
3268
3813
  {
3269
- "from": 13,
3270
- "to": 15,
3271
- "line": {
3272
- "color": "rgba(200, 0, 0, 0.5)",
3273
- "width": 4
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
3274
3833
  }
3275
3834
  },
3276
3835
  {
3277
- "from": 16,
3278
- "to": 19,
3279
- "line": {
3280
- "color": "rgba(200, 0, 0, 0.5)",
3281
- "width": 6
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: "OpenStreetmap",
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: 19,
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
- trafficFlowFast: "trafficFlowFast",
3586
- trafficFlowMedium: "trafficFlowMedium",
3587
- trafficFlowSlow: "trafficFlowSlow",
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: 19,
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: 19,
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: 19,
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: 19,
4277
+ to: 21,
3712
4278
  text: {
3713
4279
  size: 18,
3714
4280
  color: "#606060",
@@ -3719,228 +4285,495 @@ const RENDERING_CONFIG_GRAYSCALE = {
3719
4285
  }
3720
4286
  },
3721
4287
  {
3722
- from: 15,
3723
- to: 16,
3724
- text: {
3725
- size: 14,
3726
- color: "#606060",
3727
- font: "Open Sans",
3728
- fontWeight: "bold",
3729
- outlineColor: "white",
3730
- outlineWidth: 2
4288
+ from: 15,
4289
+ to: 16,
4290
+ text: {
4291
+ size: 14,
4292
+ color: "#606060",
4293
+ font: "Open Sans",
4294
+ fontWeight: "bold",
4295
+ outlineColor: "white",
4296
+ outlineWidth: 2
4297
+ }
4298
+ },
4299
+ {
4300
+ from: 10,
4301
+ to: 14,
4302
+ text: {
4303
+ size: 10,
4304
+ color: "#606060",
4305
+ font: "Open Sans",
4306
+ fontWeight: "bold",
4307
+ outlineColor: "white",
4308
+ outlineWidth: 2
4309
+ }
4310
+ }
4311
+ ],
4312
+ earth: [
4313
+ {
4314
+ from: 1,
4315
+ to: 21,
4316
+ polygon: {
4317
+ color: "#f2f2f2"
4318
+ }
4319
+ }
4320
+ ],
4321
+ urban_area: [
4322
+ {
4323
+ from: 1,
4324
+ to: 21,
4325
+ polygon: {
4326
+ color: "rgba(0, 0, 0, 0.05)"
4327
+ }
4328
+ }
4329
+ ],
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
+ },
4344
+ {
4345
+ from: 1,
4346
+ to: 14,
4347
+ polygon: {
4348
+ color: "#d4d4d4"
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
3731
4560
  }
3732
4561
  },
3733
4562
  {
3734
- from: 10,
3735
- to: 14,
3736
- text: {
3737
- size: 10,
3738
- color: "#606060",
3739
- font: "Open Sans",
3740
- fontWeight: "bold",
3741
- outlineColor: "white",
3742
- outlineWidth: 2
4563
+ from: 13,
4564
+ to: 15,
4565
+ line: {
4566
+ color: "#ffa500",
4567
+ width: 9,
4568
+ delta: 2
3743
4569
  }
3744
- }
3745
- ],
3746
- earth: [
4570
+ },
3747
4571
  {
3748
- from: 1,
3749
- to: 19,
3750
- polygon: {
3751
- color: "#f2f2f2"
4572
+ from: 16,
4573
+ to: 21,
4574
+ line: {
4575
+ color: "#ffa500",
4576
+ width: 13,
4577
+ delta: 2
3752
4578
  }
3753
4579
  }
3754
4580
  ],
3755
- urban_area: [
4581
+ trafficFlowMediumInterstate: [
3756
4582
  {
3757
- from: 1,
3758
- to: 19,
3759
- polygon: {
3760
- color: "rgba(0, 0, 0, 0.05)"
4583
+ from: 9,
4584
+ to: 9,
4585
+ line: {
4586
+ color: "#ffa500",
4587
+ width: 2,
4588
+ delta: 1
3761
4589
  }
3762
- }
3763
- ],
3764
- forest: [
4590
+ },
3765
4591
  {
3766
- from: 1,
4592
+ from: 10,
4593
+ to: 12,
4594
+ line: {
4595
+ color: "#ffa500",
4596
+ width: 2,
4597
+ delta: 1
4598
+ }
4599
+ },
4600
+ {
4601
+ from: 13,
3767
4602
  to: 14,
3768
- polygon: {
3769
- color: "#d4d4d4"
4603
+ line: {
4604
+ color: "#ffa500",
4605
+ width: 6,
4606
+ delta: 2
3770
4607
  }
3771
4608
  },
3772
4609
  {
3773
4610
  from: 15,
3774
- to: 19,
3775
- polygon: {
3776
- color: "#d4d4d4"
3777
- },
3778
- text: {
3779
- size: 12,
3780
- color: "#a0a0a0",
3781
- font: "Open Sans",
3782
- fontStyle: "italic"
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
- natural_park: [
4628
+ trafficFlowMediumMinor: [
3787
4629
  {
3788
- from: 1,
4630
+ from: 13,
3789
4631
  to: 14,
3790
- polygon: {
3791
- color: "#e1e1e1"
4632
+ line: {
4633
+ color: "#ffa500",
4634
+ width: 1,
4635
+ delta: 1
3792
4636
  }
3793
4637
  },
3794
4638
  {
3795
4639
  from: 15,
3796
- to: 19,
3797
- polygon: {
3798
- color: "#e1e1e1"
3799
- },
3800
- text: {
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: 1,
3811
- to: 19,
4648
+ from: 17,
4649
+ to: 21,
3812
4650
  line: {
3813
- color: "#c6c6c6",
3814
- width: 1
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
- country: [
4657
+ trafficFlowSlowHighway: [
3829
4658
  {
3830
4659
  from: 1,
3831
- to: 19,
4660
+ to: 5,
3832
4661
  line: {
3833
- color: "#acacac"
3834
- },
3835
- text: {
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: 1,
3848
- to: 8,
4668
+ from: 6,
4669
+ to: 9,
3849
4670
  line: {
3850
- color: "#50dc32",
3851
- width: 1
4671
+ color: "#c80000",
4672
+ width: 2,
4673
+ delta: 1
3852
4674
  }
3853
4675
  },
3854
4676
  {
3855
- from: 9,
4677
+ from: 10,
3856
4678
  to: 12,
3857
4679
  line: {
3858
- color: "#50dc32",
3859
- width: 2
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: "#50dc32",
3867
- width: 3
4689
+ color: "#c80000",
4690
+ width: 9,
4691
+ delta: 2
3868
4692
  }
3869
4693
  },
3870
4694
  {
3871
4695
  from: 16,
3872
- to: 19,
4696
+ to: 21,
3873
4697
  line: {
3874
- color: "#50dc32",
3875
- width: 4
4698
+ color: "#c80000",
4699
+ width: 13,
4700
+ delta: 2
3876
4701
  }
3877
4702
  }
3878
4703
  ],
3879
- trafficFlowMedium: [
4704
+ trafficFlowSlowInterstate: [
3880
4705
  {
3881
- from: 1,
3882
- to: 8,
4706
+ from: 9,
4707
+ to: 9,
3883
4708
  line: {
3884
- color: "#ffa500",
3885
- width: 1
4709
+ color: "#c80000",
4710
+ width: 2,
4711
+ delta: 1
3886
4712
  }
3887
4713
  },
3888
4714
  {
3889
- from: 9,
4715
+ from: 10,
3890
4716
  to: 12,
3891
4717
  line: {
3892
- color: "#ffa500",
3893
- width: 2
4718
+ color: "#c80000",
4719
+ width: 2,
4720
+ delta: 1
3894
4721
  }
3895
4722
  },
3896
4723
  {
3897
4724
  from: 13,
3898
- to: 15,
4725
+ to: 14,
3899
4726
  line: {
3900
- color: "#ffa500",
3901
- width: 3
4727
+ color: "#c80000",
4728
+ width: 6,
4729
+ delta: 2
3902
4730
  }
3903
4731
  },
3904
4732
  {
3905
- from: 16,
3906
- to: 19,
4733
+ from: 15,
4734
+ to: 16,
3907
4735
  line: {
3908
- color: "#ffa500",
3909
- width: 4
4736
+ color: "#c80000",
4737
+ width: 9,
4738
+ delta: 2
3910
4739
  }
3911
- }
3912
- ],
3913
- trafficFlowSlow: [
4740
+ },
3914
4741
  {
3915
- from: 1,
3916
- to: 8,
4742
+ from: 17,
4743
+ to: 21,
3917
4744
  line: {
3918
4745
  color: "#c80000",
3919
- width: 1
4746
+ width: 12,
4747
+ delta: 2
3920
4748
  }
3921
- },
4749
+ }
4750
+ ],
4751
+ trafficFlowSlowMinor: [
3922
4752
  {
3923
- from: 9,
3924
- to: 12,
4753
+ from: 13,
4754
+ to: 14,
3925
4755
  line: {
3926
4756
  color: "#c80000",
3927
- width: 2
4757
+ width: 1,
4758
+ delta: 1
3928
4759
  }
3929
4760
  },
3930
4761
  {
3931
- from: 13,
3932
- to: 15,
4762
+ from: 15,
4763
+ to: 16,
3933
4764
  line: {
3934
4765
  color: "#c80000",
3935
- width: 3
4766
+ width: 5,
4767
+ delta: 2
3936
4768
  }
3937
4769
  },
3938
4770
  {
3939
- from: 16,
3940
- to: 19,
4771
+ from: 17,
4772
+ to: 21,
3941
4773
  line: {
3942
4774
  color: "#c80000",
3943
- width: 4
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: 19,
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: 19,
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: 19,
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: 19,
4933
+ to: 21,
4101
4934
  line: {
4102
- color: "#d0d0d0",
4935
+ color: "#c0c0c0",
4103
4936
  width: 11,
4104
- outlineColor: "#b2b2b2",
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: "#d0d0d0",
4957
+ color: "#c0c0c0",
4125
4958
  width: 7,
4126
- outlineColor: "#b2b2b2",
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: "#d0d0d0",
4979
+ color: "#c0c0c0",
4147
4980
  width: 4,
4148
- outlineColor: "#b2b2b2",
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: "#d0d0d0",
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: 19,
5009
+ to: 21,
4177
5010
  line: {
4178
5011
  width: 10,
4179
- color: "#e4e4e4",
4180
- outlineColor: "#d0d0d0",
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: "#e4e4e4",
4197
- outlineColor: "#d0d0d0",
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: "#e4e4e4",
4214
- outlineColor: "#d0d0d0",
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: "#e4e4e4",
4231
- outlineColor: "#dadada",
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: "#e4e4e4"
5073
+ color: "#d4d4d4"
4241
5074
  }
4242
5075
  }
4243
5076
  ],
4244
5077
  interstate_minor: [
4245
5078
  {
4246
5079
  from: 17,
4247
- to: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 19,
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: 16,
4578
- to: 19,
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: 19,
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: 19,
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: 19,
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
- const url = "https://v1.maptrip.de/?CMD=GETFILE&PROJECT=TomTom_latest&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true";
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
- const url = "https://v1.maptrip.de/?CMD=GETFILE&PROJECT=Orbis_latest&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true";
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
- const url = "https://v1.maptrip.de/?CMD=GETFILE&PROJECT=HERE_latest&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true";
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
- const url = "https://v1.maptrip.de/?CMD=GETFILE&PROJECT=OSM_latest&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true";
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, url) {
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
- if (xhr.status === 200) {
4719
- const text = new TextDecoder("latin1").decode(xhr.response);
4720
- const textString = this.extractTargetString(text);
4721
- const formattedString = textString.split("Q").join(" Q");
4722
- const release = ` ${PROVIDER_NAMES[provider]} ${formattedString}`;
4723
- resolve(release);
4724
- } else {
4725
- reject(`Error fetching: ${xhr.status}`);
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);
@@ -19286,93 +20144,79 @@ function requireLeafletSrc () {
19286
20144
  var leafletSrcExports = requireLeafletSrc();
19287
20145
  const L$1 = /*@__PURE__*/getDefaultExportFromCjs(leafletSrcExports);
19288
20146
 
20147
+ class VectorTileUtils {
20148
+ static async getAttribution(token, provider, attribution, releaseDate) {
20149
+ let result = [ATTRIBUTION];
20150
+ if (releaseDate ? releaseDate : false) {
20151
+ const releaseFetcher = new MapReleaseFetcher(token);
20152
+ const release = await releaseFetcher.getRelease(provider).catch((error) => {
20153
+ console.error("Failed to fetch release:", error);
20154
+ return void 0;
20155
+ });
20156
+ if (release) {
20157
+ result.push(release);
20158
+ }
20159
+ }
20160
+ if (attribution) {
20161
+ result.push(attribution);
20162
+ }
20163
+ return result.join(", ");
20164
+ }
20165
+ }
20166
+
19289
20167
  class MapTripLeafletGridLayer extends L$1.GridLayer {
19290
- MIN_ZOOM = MIN_ZOOM;
19291
- MAX_ZOOM = MAX_ZOOM;
20168
+ static attributions = [];
19292
20169
  token;
19293
20170
  factory;
19294
- releaseFetcher;
19295
20171
  provider;
19296
- attribution;
19297
- release;
19298
20172
  releaseDate;
20173
+ currentAttribution;
20174
+ attachedMap;
20175
+ customAttribution;
19299
20176
  constructor(options) {
19300
- super(options);
20177
+ super({
20178
+ ...options,
20179
+ attribution: "",
20180
+ minZoom: Math.max(options.minZoom ? options.minZoom : MIN_ZOOM, MIN_ZOOM),
20181
+ maxZoom: Math.min(options.maxZoom ? options.maxZoom : MAX_ZOOM, MAX_ZOOM)
20182
+ });
19301
20183
  this.token = options.token;
19302
- this.provider = options.provider ? options.provider?.toLowerCase() : "openstreetmap";
19303
- this.options.attribution = options.attribution ? options.attribution : ATTRIBUTION;
19304
- this.releaseFetcher = new MapReleaseFetcher(this.token);
19305
- this.release = "";
19306
- this.attribution = "";
19307
- this.releaseDate = options.releaseDate ? options.releaseDate : false;
19308
- if (this.releaseDate) {
19309
- this.initializeAttribution();
19310
- this.on("add", () => {
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;
20184
+ this.provider = options.provider;
20185
+ this.customAttribution = options.attribution;
20186
+ this.releaseDate = options.releaseDate;
20187
+ this.currentAttribution = void 0;
20188
+ void VectorTileUtils.getAttribution(this.token, this.provider, this.customAttribution, this.releaseDate).then((attribution) => {
20189
+ this.updateAttribution(attribution);
20190
+ }).catch((error) => {
20191
+ console.error("Unable to add MapTrip attribution", error);
20192
+ });
19321
20193
  this.factory = VectorTileFactory.createFactory(options);
19322
20194
  }
19323
- createTile(coords) {
19324
- return this.factory.getJsonTile(coords.z, coords.x, coords.y, this.token);
19325
- }
19326
- async initializeAttribution() {
19327
- await this.setRelease();
19328
- await this.setAttribution();
20195
+ onAdd(map) {
20196
+ this.attachedMap = map;
20197
+ return super.onAdd(map);
19329
20198
  }
19330
- // Set an original release
19331
- async setRelease() {
19332
- const release = await this.releaseFetcher.getRelease(this.provider);
19333
- if (release) {
19334
- this.release = release;
19335
- }
20199
+ onRemove(map) {
20200
+ const result = super.onRemove(map);
20201
+ this.attachedMap = void 0;
20202
+ return result;
19336
20203
  }
19337
- async setAttribution() {
19338
- if (!this._map) return;
19339
- try {
19340
- const newRelease = await this.releaseFetcher.getRelease(this.provider);
19341
- if (newRelease && newRelease !== this.release) {
19342
- this.release = newRelease;
19343
- }
19344
- this._map.attributionControl.removeAttribution(this.options.attribution);
19345
- this.attribution = `${this.options.attribution} ${this.release}`;
19346
- this._map.attributionControl.addAttribution(this.attribution);
19347
- const map = this._map;
19348
- this._map.addEventListener("baselayerchange", () => {
19349
- map.attributionControl.removeAttribution(this.attribution);
19350
- });
19351
- } catch (error) {
19352
- console.error("Error fetching release version: ", error);
19353
- }
20204
+ createTile(coords) {
20205
+ return this.factory.getJsonTile(coords.z, coords.x, coords.y, this.token);
19354
20206
  }
19355
- async onBaseLayerChange(event) {
19356
- if (!this._map) {
20207
+ updateAttribution(attribution) {
20208
+ const previous = this.options.attribution ?? "";
20209
+ if (previous === attribution) {
19357
20210
  return;
19358
20211
  }
19359
- this._map.attributionControl.removeAttribution(this.attribution);
19360
- const eventProvider = event.layer.options.provider;
19361
- let newProvider;
19362
- if (eventProvider) {
19363
- if (eventProvider.toLowerCase() === "openstreetmap") {
19364
- newProvider = "openstreetmap";
19365
- } else if (eventProvider.toLowerCase() === "tomtom") {
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";
19373
- }
19374
- this.provider = newProvider;
19375
- await this.setAttribution();
20212
+ const map = this.attachedMap;
20213
+ const control = map?.attributionControl;
20214
+ if (control && map.hasLayer(this)) {
20215
+ control.removeAttribution(previous);
20216
+ }
20217
+ this.options.attribution = attribution;
20218
+ if (control && map.hasLayer(this)) {
20219
+ control.addAttribution(attribution);
19376
20220
  }
19377
20221
  }
19378
20222
  }