wp-gpx-maps/assets/dist/WP-GPX-Maps.es.js.map

1 line
5.1 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"WP-GPX-Maps.es.js","sources":["../../node_modules/@kurkle/color/dist/color.esm.js","../../node_modules/chart.js/dist/chunks/helpers.segment.js","../../node_modules/chart.js/dist/chart.js","../src/Utils/Utils.ts","../../node_modules/leaflet/dist/leaflet-src.js","../../node_modules/leaflet.fullscreen/Control.FullScreen.js","../../node_modules/leaflet.markercluster/dist/leaflet.markercluster-src.js","../src/maps-engines/LeafletMapEngine.ts","../../node_modules/mapbox-gl-style-switcher/dist/index.js","../../node_modules/mapbox-gl/dist/mapbox-gl.js","../../node_modules/@turf/helpers/dist/es/index.js","../../node_modules/@turf/meta/dist/es/index.js","../../node_modules/@turf/invariant/dist/es/index.js","../../node_modules/@turf/distance/dist/es/index.js","../../node_modules/@turf/destination/dist/es/index.js","../../node_modules/@turf/bearing/dist/es/index.js","../../node_modules/@turf/along/dist/es/index.js","../../node_modules/@turf/length/dist/es/index.js","../src/maps-engines/MapBoxMapEngine.ts","../src/WP-GPX-Maps.ts"],"sourcesContent":["/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/*!\n * Chart.js v4.4.7\n * https://www.chartjs.org\n * (c) 2024 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , _parsed } = meta;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo), 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1), start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * Note: typedefs are auto-exported, so use a made-up `dom` namespace where\n * necessary to avoid duplicates with `export * from './helpers`; see\n * https://github.com/microsoft/TypeScript/issues/46011\n * @typedef { import('../core/core.controller.js').default } dom.Chart\n * @typedef { import('../../types').ChartEvent } ChartEvent\n */ /**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = Math.floor(chart.height);\n chart.width = Math.floor(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, fontString as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, overrideTextDirection as aA, _textX as aB, restoreTextDirection as aC, drawPointLegend as aD, distanceBetweenPoints as aE, noop as aF, _setMinAndMaxByKey as aG, niceNum as aH, almostWhole as aI, almostEquals as aJ, _decimalPlaces as aK, Ticks as aL, log10 as aM, _longestText as aN, _filterBetween as aO, _lookup as aP, isPatternOrGradient as aQ, getHoverColor as aR, clone as aS, _merger as aT, _mergerIf as aU, _deprecated as aV, _splitKey as aW, toFontString as aX, splineCurve as aY, splineCurveMonotone as aZ, getStyle as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, _elementsEqual as ah, _isClickEvent as ai, _isBetween as aj, _readValueToProps as ak, _updateBezierControlPoints as al, _computeSegments as am, _boundSegments as an, _steppedInterpolation as ao, _bezierInterpolation as ap, _pointInLine as aq, _steppedLineTo as ar, _bezierCurveTo as as, drawPoint as at, addRoundedRectPath as au, toTRBL as av, toTRBLCorners as aw, _boundSegment as ax, _normalizeAngle as ay, getRtlAdapter as az, isArray as b, toLineHeight as b0, PITAU as b1, INFINITY as b2, RAD_PER_DEG as b3, QUARTER_PI as b4, TWO_THIRDS_PI as b5, _angleDiff as b6, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.segment.js.map\n","/*!\n * Chart.js v4.4.7\n * https://www.chartjs.org\n * (c) 2024 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as _elementsEqual, ai as _isClickEvent, aj as _isBetween, ak as _readValueToProps, al as _updateBezierControlPoints, am as _computeSegments, an as _boundSegments, ao as _steppedInterpolation, ap as _bezierInterpolation, aq as _pointInLine, ar as _steppedLineTo, as as _bezierCurveTo, at as drawPoint, au as addRoundedRectPath, av as toTRBL, aw as toTRBLCorners, ax as _boundSegment, ay as _normalizeAngle, az as getRtlAdapter, aA as overrideTextDirection, aB as _textX, aC as restoreTextDirection, aD as drawPointLegend, aE as distanceBetweenPoints, aF as noop, aG as _setMinAndMaxByKey, aH as niceNum, aI as almostWhole, aJ as almostEquals, aK as _decimalPlaces, aL as Ticks, aM as log10, aN as _longestText, aO as _filterBetween, aP as _lookup } from './chunks/helpers.segment.js';\nimport '@kurkle/color';\n\nclass Animator {\n constructor(){\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach((fn)=>fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, ()=>{\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart)=>{\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for(; i >= 0; --i){\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for(; i >= 0; --i){\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean (from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color (from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number (from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to){\n const currentValue = target[prop];\n to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n const from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n this._from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej)=>{\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for(let i = 0; i < promises.length; i++){\n promises[i][method]();\n }\n }\n}\n\nclass Animations {\n constructor(chart, config){\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach((key)=>{\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions){\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [\n key\n ]).forEach((prop)=>{\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(()=>{\n target.options = newOptions;\n }, ()=>{\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for(i = props.length - 1; i >= 0; --i){\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for(let i = 0; i < keys.length; i++){\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n let found = false;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n if (!found && !options.all) {\n return 0;\n }\n return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n const { iScale , vScale } = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const { min , max , minDefined , maxDefined } = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const { chart , _cachedMeta: meta } = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const { iScale , vScale , index: datasetIndex } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for(let i = 0; i < ilen; ++i){\n const item = parsed[i];\n const { [iAxis]: index , [vAxis]: value } = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items){\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const { _cachedMeta: meta , _data: data } = this;\n const { iScale , _stacked } = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for(i = 0; i < count; ++i){\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const { min: otherMin , max: otherMax } = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for(i = 0; i < ilen; ++i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for(i = ilen - 1; i >= 0; --i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for(i = 0, ilen = parsed.length; i < ilen; ++i){\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for(i = start; i < start + count; ++i){\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for(i = 0; i < active.length; ++i){\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [\n `${elementType}Hover`,\n 'hover',\n elementType,\n ''\n ] : [\n elementType,\n ''\n ];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = ()=>this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList){\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr)=>{\n arr.length += count;\n for(i = arr.length - 1; i >= end; i--){\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for(i = start; i < end; ++i){\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([\n this.index,\n ...args\n ]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync([\n '_insertElements',\n this.getDataset().data.length - count,\n count\n ]);\n }\n _onDataPop() {\n this._sync([\n '_removeElements',\n this._cachedMeta.data.length - 1,\n 1\n ]);\n }\n _onDataShift() {\n this._sync([\n '_removeElements',\n 0,\n 1\n ]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync([\n '_removeElements',\n start,\n count\n ]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync([\n '_insertElements',\n start,\n newCount\n ]);\n }\n }\n _onDataUnshift() {\n this._sync([\n '_insertElements',\n 0,\n arguments.length\n ]);\n }\n}\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b)=>a - b));\n }\n return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = ()=>{\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for(i = 0, ilen = values.length; i < ilen; ++i){\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for(i = start, ilen = start + count; i < ilen; ++i){\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const { start , end , reverse , top , bottom } = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount }, ratio) {\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n static id = 'bar';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n };\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for(i = start, ilen = start + count; i < ilen; ++i){\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const { iScale , vScale } = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const { index , _cachedMeta: { vScale } } = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n for(let i = start; i < start + count; i++){\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const { iScale } = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n const skipNull = (meta)=>{\n const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets){\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const { _cachedMeta: { vScale , _stacked , index: datasetIndex } , options: { base: baseValue , minBarLength } } = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount) : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for(; i < ilen; ++i){\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\n\nclass BubbleController extends DatasetController {\n static id = 'bubble';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'borderWidth',\n 'radius'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n static id = 'doughnut';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'circumference',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'x',\n 'y',\n 'offset',\n 'borderWidth',\n 'spacing'\n ]\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n };\n static descriptors = {\n _scriptable: (name)=>name !== 'spacing',\n _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i)=>+data[i];\n if (isObject(data[start])) {\n const { key ='value' } = this._parsing;\n getter = (i)=>+resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for(i = start, ilen = start + count; i < ilen; ++i){\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for(let i = 0; i < this.chart.data.datasets.length; ++i){\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const { chartArea } = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const { circumference , rotation } = this._getRotationExtents();\n const { ratioX , ratioY , offsetX , offsetY } = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for(i = 0; i < start; ++i){\n startAngle += this._circumference(i, reset);\n }\n for(i = start; i < start + count; ++i){\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for(i = 0; i < metaData.length; i++){\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for(i = 0, ilen = arcs.length; i < ilen; ++i){\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for(let i = 0; i < datasetIndex; ++i){\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n\nclass LineController extends DatasetController {\n static id = 'line';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { dataset: line , data: points = [] , _dataset } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = 0; i < pointsCount; ++i){\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n\nclass PolarAreaController extends DatasetController {\n static id = 'polarArea';\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ]\n }\n },\n indexAxis: 'r',\n startAngle: 0\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index)=>{\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for(i = 0; i < start; ++i){\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for(i = start; i < start + count; i++){\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index)=>{\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\n\nclass PieController extends DoughnutController {\n static id = 'pie';\n static defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n };\n}\n\nclass RadarController extends DatasetController {\n static id = 'radar';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n };\n static overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n };\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n\nclass ScatterController extends DatasetController {\n static id = 'scatter';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n static overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { data: points = [] } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n if (!this.datasetElementType) {\n this.addElements();\n }\n const { dataset: line , _dataset } = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n delete meta.dataset;\n this.datasetElementType = false;\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const { showLine } = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = start; i < start + count; ++i){\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */ static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n options;\n constructor(options){\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const { controller , data , _sorted } = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n const { index , data } = metasets[i];\n const { lo , hi } = binarySearch(metasets[i], axis, value, intersect);\n for(let j = lo; j <= hi; ++j){\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n function getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const { startAngle , endAngle } = element.getProps([\n 'startAngle',\n 'endAngle'\n ], useFinalPosition);\n const { angle } = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n });\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [\n {\n element,\n datasetIndex,\n index\n }\n ];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n var Interaction = {\n evaluateInteractionItems,\n modes: {\n index (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for(let i = 0; i < data.length; ++i){\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = [\n 'left',\n 'top',\n 'right',\n 'bottom'\n];\nfunction filterByPosition(array, position) {\n return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b)=>{\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n box = boxes[i];\n ({ position: pos , options: { stack , stackWeight =1 } } = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts){\n const { stack , pos , stackWeight } = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n function setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const { vBoxMaxWidth , hBoxMaxHeight } = params;\n let i, ilen, layout;\n for(i = 0, ilen = layouts.length; i < ilen; ++i){\n layout = layouts[i];\n const { fullSize } = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const { pos , box } = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach((pos)=>{\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions([\n 'left',\n 'right'\n ]) : marginForPositions([\n 'top',\n 'bottom'\n ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const { same , other } = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let { x , y } = chartArea;\n for (const layout of boxes){\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [\n {\n z: 0,\n draw (chartArea) {\n item.draw(chartArea);\n }\n }\n ];\n };\n chart.boxes.push(item);\n },\n removeBox (chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure (chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update (chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, (box)=>{\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, (layout)=>{\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const { x , y } = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList){\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart)=>{\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height)=>{\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver((entries)=>{\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event)=>{\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n [\n 'height',\n 'width'\n ].forEach((prop)=>{\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key)=>{\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n static defaults = {};\n static defaultRoutes = undefined;\n x;\n y;\n active = false;\n options;\n $animations;\n tooltipPosition(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach((prop)=>{\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for(i = 0; i < ticks.length; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while(next < 0){\n count++;\n next = Math.round(start + count * spacing);\n }\n for(i = Math.max(start, 0); i < end; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n function getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for(diff = arr[0], i = 1; i < len; ++i){\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for(; i < len; i += increment){\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n function garbageCollect(caches, length) {\n each(caches, (cache)=>{\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for(i = 0; i < gcLen; ++i){\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n function getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const { top , left , bottom , right , chart } = scale;\n const { chartArea , scales } = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg){\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let { _userMin , _userMax , _suggestedMin , _suggestedMax } = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for(let i = 0, ilen = metas.length; i < ilen; ++i){\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [\n this\n ]);\n }\n update(maxWidth, maxHeight, margins) {\n const { beginAtZero , grace , ticks: tickOpts } = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [\n this\n ]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [\n this\n ]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [\n this\n ]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [\n this\n ]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [\n this\n ]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [\n tick.value,\n i,\n ticks\n ], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [\n this\n ]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [\n this\n ]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [\n this\n ]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [\n this\n ]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts } } = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const { first , last , widest , highest } = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const { ticks: { align , padding } , position } = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [\n this\n ]);\n }\n isHorizontal() {\n const { axis , position } = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const { ctx , _longestTextCache: caches } = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for(i = 0; i < length; i += increment){\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for(j = 0, jlen = label.length; j < jlen; ++j){\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx)=>({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min , max } = this;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const { grid , position , border } = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for(i = 0; i < ticksLength; i += step){\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const { position , ticks: optionTicks } = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const { align , crossAlign , padding , mirror } = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch(textBaseline){\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch(textAlign){\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [\n x,\n y\n ],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const { position , ticks } = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const { position , ticks: { crossAlign , mirror , padding } } = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const { ctx , options: { backgroundColor } , left , top , width , height } = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex((t)=>t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style)=>{\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for(i = 0, ilen = items.length; i < ilen; ++i){\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const { chart , ctx , options: { border , grid } } = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items){\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const { ctx , options: { position , title , reverse } } = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const { titleX , titleY , maxWidth , rotation } = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [\n {\n z: tz,\n draw: (chartArea)=>{\n this.draw(chartArea);\n }\n }\n ];\n }\n return [\n {\n z: gz,\n draw: (chartArea)=>{\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n },\n {\n z: bz,\n draw: ()=>{\n this.drawBorder();\n }\n },\n {\n z: tz,\n draw: (chartArea)=>{\n this.drawLabels(chartArea);\n }\n }\n ];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override){\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach((property)=>{\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [\n scope\n ].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor(){\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [\n this.controllers,\n this.scales,\n this.elements\n ];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [\n ...args\n ].forEach((arg)=>{\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n each(arg, (item)=>{\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for(let i = 0; i < this._typedRegistries.length; i++){\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n constructor(){\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors){\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [\n chart,\n args,\n descriptor.options\n ];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n function allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for(let i = 0; i < keys.length; i++){\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for(let i = 0; i < local.length; i++){\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, { plugins , localIds }, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins){\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, { plugin , local }, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [\n ''\n ], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions){\n const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {\n axis\n };\n }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach((id)=>{\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [\n {\n axis\n },\n scaleConf,\n defaultScaleOptions[axis],\n defaultScaleOptions[defaultId]\n ]);\n });\n config.data.datasets.forEach((dataset)=>{\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [\n {\n axis\n },\n configScales[id],\n defaultScaleOptions[defaultID]\n ]);\n });\n });\n Object.keys(scales).forEach((key)=>{\n const scale = scales[key];\n mergeIf(scale, [\n defaults.scales[scale.type],\n defaults.scale\n ]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config){\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, ()=>[\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n [\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]\n ]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, ()=>[\n [\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || []\n ]\n ]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const { options , type } = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach((keys)=>{\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n }\n keys.forEach((key)=>addIfFound(scopes, options, key));\n keys.forEach((key)=>addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach((key)=>addIfFound(scopes, defaults, key));\n keys.forEach((key)=>addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const { options , type } = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {\n type\n },\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = [\n ''\n ]) {\n const result = {\n $shared: true\n };\n const { resolver , subPrefixes } = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names){\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [\n ''\n ], descriptorDefaults) {\n const { resolver } = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = (value)=>isObject(value) && Object.getOwnPropertyNames(value).some((key)=>isFunction(value[key]));\nfunction needContext(proxy, names) {\n const { isScriptable , isIndexable } = _descriptors(proxy);\n for (const prop of names){\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"4.4.7\";\n\nconst KNOWN_POSITIONS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [\n context\n ], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [\n context\n ], chart);\n}\n function getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys){\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n const { xScale , yScale } = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\nclass Chart {\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n constructor(item, userConfig){\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const { options: { aspectRatio , maintainAspectRatio } , width , height , _aspectRatio } = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [\n this,\n newSize\n ], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID)=>{\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id)=>{\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map((id)=>{\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n each(items, (item)=>{\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id)=>{\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale)=>{\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b)=>a.index - b.index);\n if (numMeta > numData) {\n for(let i = numData; i < numMeta; ++i){\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: metasets , data: { datasets } } = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index)=>{\n if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for(i = 0, ilen = datasets.length; i < ilen; i++){\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const { datasetElementType , dataElementType } = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex)=>{\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n const { controller } = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller)=>{\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const { _active , _lastEvent } = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale)=>{\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const { _hiddenIndices } = this;\n const changes = this._getUniformDataChanges() || [];\n for (const { method , start , count } of changes){\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for(let i = 1; i < datasetCount; i++){\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box)=>{\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index)=>{\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this.getDatasetMeta(i).controller.configure();\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const { width , height } = this._resizeBeforeDraw;\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for(; i < layers.length; ++i){\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = getDatasetArea(meta, this.chartArea);\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const { canvas , ctx } = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y)=>{\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type)=>_add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener)=>{\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height)=>{\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = ()=>{\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = ()=>{\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const { _active: lastActive = [] , options } = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [\n e,\n active,\n this\n ], this);\n if (isClick) {\n callback(options.onClick, [\n e,\n active,\n this\n ], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipArc(ctx, element, endAngle) {\n const { startAngle , pixelMargin , x , y , outerRadius , innerRadius } = element;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, [\n 'outerStart',\n 'outerEnd',\n 'innerStart',\n 'innerEnd'\n ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val)=>{\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, 𝜃) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n const { x , y , startAngle: start , pixelMargin , innerRadius: innerR } = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const { outerStart , outerEnd , innerStart , innerEnd } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference } = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference , options } = element;\n const { borderWidth , borderJoinStyle , borderDash , borderDashOffset } = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n static id = 'arc';\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash'\n };\n circumference;\n endAngle;\n fullCircles;\n innerRadius;\n outerRadius;\n pixelMargin;\n startAngle;\n constructor(cfg){\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n const { angle , distance } = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n });\n const { startAngle , endAngle , innerRadius , outerRadius , circumference } = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= TAU || nonZeroBetween;\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , startAngle , endAngle , innerRadius , outerRadius } = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const { offset , spacing } = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const { options , circumference } = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const { start: paramsStart = 0 , end: paramsEnd = count - 1 } = params;\n const { start: segmentStart , end: segmentEnd } = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n function pathSegment(ctx, line, segment, params) {\n const { points , options } = line;\n const { count , start , loop , ilen } = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let { move =true , reverse } = params || {};\n let i, point, prev;\n for(i = 0; i <= ilen; ++i){\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const { count , start , ilen } = pathVars(points, segment, params);\n const { move =true , reverse } = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n const drawX = ()=>{\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for(i = 0; i <= ilen; ++i){\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\n function _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const { segments , options } = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments){\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n static id = 'line';\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n };\n constructor(cfg){\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for(i = 0, ilen = segments.length; i < ilen; ++i){\n const { start , end } = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments){\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const { [axis]: value } = el.getProps([\n axis\n ], useFinalPosition);\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n static id = 'point';\n parsed;\n skip;\n stop;\n /**\n * @type {any}\n */ static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n /**\n * @type {any}\n */ static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n const { x , y , base , width , height } = bar.getProps([\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const { enableBorderRadius } = bar.getProps([\n 'enableBorderRadius'\n ]);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n static id = 'bar';\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const { inflateAmount , options: { borderColor , backgroundColor } } = this;\n const { inner , outer } = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , base , horizontal } = this.getProps([\n 'x',\n 'y',\n 'base',\n 'horizontal'\n ], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)',\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex)=>{\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for(k in descriptors){\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nfunction containsColorsDefinition(descriptor) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout (chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const { data: { datasets } , options: chartOptions } = chart.config;\n const { elements } = chartOptions;\n const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n if (!options.forceOverride && containsColorDefenition) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for(i = 0; i < samples - 2; i++){\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for(j = avgRangeStart; j < avgRangeEnd; j++){\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const { x: pointAx , y: pointAy } = data[a];\n maxArea = area = -1;\n for(j = rangeOffs; j < rangeTo; j++){\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for(i = start; i < start + count; ++i){\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset)=>{\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const { iScale } = meta;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options)=>{\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex)=>{\n const { _data , indexAxis } = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([\n indexAxis,\n chart.options.indexAxis\n ]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let { start , count } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch(options.algorithm){\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy (chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments){\n let { start , end } = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments){\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources){\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const { x =null , y =null } = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({ start , end })=>{\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for(; end > start; end--){\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [\n index\n ];\n let target;\n if (!propagate) {\n return fill;\n }\n while(fill !== false && visited.indexOf(fill) === -1){\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\n function _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return [\n 'origin',\n 'start',\n 'end',\n 'stack',\n 'shape'\n ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\n function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n function parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const { scale , index , line } = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n for(let j = segment.start; j <= segment.end; j++){\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\n function getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for(let i = 0; i < metas.length; i++){\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for(let j = 0; j < linesBelow.length; j++){\n const line = linesBelow[j];\n const { first , last , point } = findPoint(line, sourcePoint, 'x');\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\n\nclass simpleArc {\n constructor(opts){\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const { x , y , radius } = this;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const { x , y , radius } = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const { chart , fill , line } = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const { scale ={} , fill } = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const { scale , fill } = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for(let i = 0; i < length; ++i){\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const { line , scale , axis } = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const { above =color , below =color } = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis\n });\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const { line , target , above , below , area , scale } = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const { line , target , property , color , scale } = cfg;\n const segments = _segments(line, target, property);\n for (const { source: src , target: tgt , start , end } of segments){\n const { style: { backgroundColor =color } = {} } = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const { top , bottom } = scale.chart.chartArea;\n const { property , start , end } = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate (chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for(i = 0; i < count; ++i){\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for(i = 0; i < count; ++i){\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw (chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw (chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw (chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n let { boxHeight =fontSize , boxWidth =fontSize } = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [\n this.chart\n ], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const { options , ctx } = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const { boxWidth , itemHeight } = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const { ctx , maxWidth , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [\n 0\n ];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i)=>{\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const { ctx , maxHeight , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i)=>{\n const { itemWidth , itemHeight } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const { legendHitBoxes: hitboxes , options: { align , labels: { padding } , rtl } } = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes){\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes){\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const { options: opts , columnSizes , lineWidths , ctx } = this;\n const { align , labels: labelOpts } = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const { padding } = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const { boxWidth , boxHeight , itemHeight } = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i)=>{\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for(i = 0; i < lh.length; ++i){\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [\n e,\n previous,\n this\n ], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [\n e,\n hoveredItem,\n this\n ], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [\n e,\n hoveredItem,\n this\n ], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start (chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop (chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate (chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate (chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent (chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick (e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx)=>ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels (chart) {\n const datasets = chart.data.datasets;\n const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta)=>{\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx)=>ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: (name)=>!name.startsWith('on'),\n labels: {\n _scriptable: (name)=>![\n 'generateLabels',\n 'filter',\n 'sort'\n ].includes(name)\n }\n }\n};\n\nclass Title extends Element {\n constructor(config){\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const { top , left , bottom , right , options } = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const { titleX , titleY , maxWidth , rotation } = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start (chart, _args, options) {\n createTitle(chart, options);\n },\n stop (chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate (chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start (chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop (chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate (chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst positioners = {\n average (items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n const xAverage = [\n ...xSet\n ].reduce((a, b)=>a + b) / xSet.size;\n return {\n x: xAverage,\n y: y / count\n };\n },\n nearest (items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\n function splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n function createTooltipItem(chart, item) {\n const { element , datasetIndex , index } = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const { label , value } = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n function getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const { body , footer , title } = tooltip;\n const { boxWidth , boxHeight } = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, (bodyItem)=>{\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const { y , height } = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const { x , width } = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const { x , width } = size;\n const { width: chartWidth , chartArea: { left , right } } = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\n function determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let { x , width } = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let { y , height } = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n const { caretSize , caretPadding , cornerRadius } = options;\n const { xAlign , yAlign } = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: noop,\n title (tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label (tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor () {\n return this.options.bodyColor;\n },\n labelPointStyle (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n constructor(config){\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const { callbacks } = options;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const { callbacks } = options;\n const bodyItems = [];\n each(tooltipItems, (context)=>{\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const { callbacks } = options;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for(i = 0, len = active.length; i < len; ++i){\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n }\n each(tooltipItems, (context)=>{\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const { xAlign , yAlign } = this;\n const { caretSize , cornerRadius } = options;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n const { x: ptX , y: ptY } = tooltipPoint;\n const { width , height } = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const { boxHeight , boxWidth } = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const { body } = this;\n const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding } = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for(i = 0, ilen = body.length; i < ilen; ++i){\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for(j = 0, jlen = lines.length; j < jlen; ++j){\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const { xAlign , yAlign } = this;\n const { x , y } = pt;\n const { width , height } = tooltipSize;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const { caretX , caretY , options } = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit (chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw (chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', {\n ...args,\n cancelable: true\n }) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent (chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts)=>opts.bodyFont.size,\n boxWidth: (ctx, opts)=>opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'width',\n 'height',\n 'caretX',\n 'caretY'\n ]\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: [\n 'interaction'\n ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n static id = 'category';\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n constructor(cfg){\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const { index , label } of added){\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for(let value = min; value <= max; value++){\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds } = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const { min: rmin , max: rmax } = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [\n {\n value: rmin\n },\n {\n value: rmax\n }\n ];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for(; j < numSpaces; ++j){\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({\n value: tickValue\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation }) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const { beginAtZero } = this.options;\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let { maxTicksLimit , stepSize } = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n static id = 'linear';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n\nconst log10Floor = (v)=>Math.floor(log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while(steps(min, max, rangeExp) > 10){\n rangeExp++;\n }\n while(steps(min, max, rangeExp) < 10){\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max }) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while(value < max){\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n static id = 'logarithmic';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [\n raw,\n index\n ]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [\n label\n ];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\n function fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for(let i = 0; i < valueCount; i++){\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const { extra , additionalAngle , padding , size } = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n visible: true,\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const { left , top , right , bottom } = item;\n const apexesInArea = _isPointInArea({\n x: left,\n y: top\n }, area) || _isPointInArea({\n x: left,\n y: bottom\n }, area) || _isPointInArea({\n x: right,\n y: top\n }, area) || _isPointInArea({\n x: right,\n y: bottom\n }, area);\n return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const { centerPointLabels , display } = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n for(let i = 0; i < valueCount; i++){\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n const { left , top , right , bottom } = item;\n const { backdropColor } = opts;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\nfunction drawPointLabels(scale, labelCount) {\n const { ctx , options: { pointLabels } } = scale;\n for(let i = labelCount - 1; i >= 0; i--){\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const { x , y , textAlign } = item;\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const { ctx } = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for(let i = 1; i < labelCount; i++){\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const { color , lineWidth } = gridLineOpts;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n static id = 'radialLinear';\n static defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback (label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n };\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n constructor(cfg){\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index)=>{\n const label = callback(this.options.pointLabels.callback, [\n value,\n index\n ], this);\n return label || label === 0 ? label : '';\n }).filter((v, i)=>this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const { left , top , right , bottom } = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const { backgroundColor , grid: { circular } } = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const { angleLines , grid , border } = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index)=>{\n if (index !== 0 || index === 0 && this.min < 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for(i = labelCount - 1; i >= 0; i--){\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const { color , lineWidth } = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index)=>{\n if (index === 0 && this.min >= 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\n const UNITS = /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n return a - b;\n}\n function parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const { parser , round , isoWeekday } = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n function addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const { lo , hi } = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for(i = 0; i < ilen; ++i){\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n static id = 'time';\n static defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n };\n constructor(props){\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map((tick)=>+tick.value));\n }\n }\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort(sorter).map((x)=>+x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return callback(formatter, [\n time,\n index,\n ticks\n ], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n exampleTime\n ], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for(i = 0, ilen = labels.length; i < ilen; ++i){\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({ lo , hi } = _lookupByKey(table, 'pos', val));\n }\n ({ pos: prevSource , time: prevTarget } = table[lo]);\n ({ pos: nextSource , time: nextTarget } = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({ lo , hi } = _lookupByKey(table, 'time', val));\n }\n ({ time: prevSource , pos: prevTarget } = table[lo]);\n ({ time: nextSource , pos: nextTarget } = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const { min , max } = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {\n time: min,\n pos: 0\n },\n {\n time: max,\n pos: 1\n }\n ];\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b)=>a - b);\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, defaults, elements, layouts, plugins, registerables, registry, scales };\n//# sourceMappingURL=chart.js.map\n","\r\nexport const WPGPXMAPS = {\r\n Utils: {\r\n DividePolylinesPoints(mapData: any[]): any[] {\r\n let lastCut = 0;\r\n const result: any[] = [];\r\n const _len = mapData.length;\r\n\r\n for (let i = 0; i < _len; i++) {\r\n if (mapData[i] === null) {\r\n result.push(mapData.slice(lastCut === 0 ? 0 : lastCut + 1, i));\r\n lastCut = i;\r\n }\r\n }\r\n if ((_len - 1) !== lastCut) {\r\n result.push(mapData.slice(lastCut));\r\n }\r\n return result;\r\n },\r\n\r\n GetItemFromArray(arr: Array<[number,number]|null>, index: number): [number,number] | null {\r\n try {\r\n return arr[index];\r\n } catch (e) {\r\n return [0, 0];\r\n }\r\n }\r\n },\r\n\r\n};","/* @preserve\n * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com\n * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.leaflet = {}));\n})(this, (function (exports) { 'use strict';\n\n var version = \"1.9.4\";\n\n /*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n // @function extend(dest: Object, src?: Object): Object\r\n // Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\n function extend(dest) {\r\n \tvar i, j, len, src;\r\n\r\n \tfor (j = 1, len = arguments.length; j < len; j++) {\r\n \t\tsrc = arguments[j];\r\n \t\tfor (i in src) {\r\n \t\t\tdest[i] = src[i];\r\n \t\t}\r\n \t}\r\n \treturn dest;\r\n }\r\n\r\n // @function create(proto: Object, properties?: Object): Object\r\n // Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\n var create$2 = Object.create || (function () {\r\n \tfunction F() {}\r\n \treturn function (proto) {\r\n \t\tF.prototype = proto;\r\n \t\treturn new F();\r\n \t};\r\n })();\r\n\r\n // @function bind(fn: Function, …): Function\r\n // Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n // Has a `L.bind()` shortcut.\r\n function bind(fn, obj) {\r\n \tvar slice = Array.prototype.slice;\r\n\r\n \tif (fn.bind) {\r\n \t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n \t}\r\n\r\n \tvar args = slice.call(arguments, 2);\r\n\r\n \treturn function () {\r\n \t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n \t};\r\n }\r\n\r\n // @property lastId: Number\r\n // Last unique ID used by [`stamp()`](#util-stamp)\r\n var lastId = 0;\r\n\r\n // @function stamp(obj: Object): Number\r\n // Returns the unique ID of an object, assigning it one if it doesn't have it.\r\n function stamp(obj) {\r\n \tif (!('_leaflet_id' in obj)) {\r\n \t\tobj['_leaflet_id'] = ++lastId;\r\n \t}\r\n \treturn obj._leaflet_id;\r\n }\r\n\r\n // @function throttle(fn: Function, time: Number, context: Object): Function\r\n // Returns a function which executes function `fn` with the given scope `context`\r\n // (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n // `fn` will be called no more than one time per given amount of `time`. The arguments\r\n // received by the bound function will be any arguments passed when binding the\r\n // function, followed by any arguments passed when invoking the bound function.\r\n // Has an `L.throttle` shortcut.\r\n function throttle(fn, time, context) {\r\n \tvar lock, args, wrapperFn, later;\r\n\r\n \tlater = function () {\r\n \t\t// reset lock and call if queued\r\n \t\tlock = false;\r\n \t\tif (args) {\r\n \t\t\twrapperFn.apply(context, args);\r\n \t\t\targs = false;\r\n \t\t}\r\n \t};\r\n\r\n \twrapperFn = function () {\r\n \t\tif (lock) {\r\n \t\t\t// called too soon, queue to call later\r\n \t\t\targs = arguments;\r\n\r\n \t\t} else {\r\n \t\t\t// call and lock until later\r\n \t\t\tfn.apply(context, arguments);\r\n \t\t\tsetTimeout(later, time);\r\n \t\t\tlock = true;\r\n \t\t}\r\n \t};\r\n\r\n \treturn wrapperFn;\r\n }\r\n\r\n // @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n // Returns the number `num` modulo `range` in such a way so it lies within\r\n // `range[0]` and `range[1]`. The returned value will be always smaller than\r\n // `range[1]` unless `includeMax` is set to `true`.\r\n function wrapNum(x, range, includeMax) {\r\n \tvar max = range[1],\r\n \t min = range[0],\r\n \t d = max - min;\r\n \treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n }\r\n\r\n // @function falseFn(): Function\r\n // Returns a function which always returns `false`.\r\n function falseFn() { return false; }\r\n\r\n // @function formatNum(num: Number, precision?: Number|false): Number\r\n // Returns the number `num` rounded with specified `precision`.\r\n // The default `precision` value is 6 decimal places.\r\n // `false` can be passed to skip any processing (can be useful to avoid round-off errors).\r\n function formatNum(num, precision) {\r\n \tif (precision === false) { return num; }\r\n \tvar pow = Math.pow(10, precision === undefined ? 6 : precision);\r\n \treturn Math.round(num * pow) / pow;\r\n }\r\n\r\n // @function trim(str: String): String\r\n // Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\n function trim(str) {\r\n \treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n\r\n // @function splitWords(str: String): String[]\r\n // Trims and splits the string on whitespace and returns the array of parts.\r\n function splitWords(str) {\r\n \treturn trim(str).split(/\\s+/);\r\n }\r\n\r\n // @function setOptions(obj: Object, options: Object): Object\r\n // Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\n function setOptions(obj, options) {\r\n \tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n \t\tobj.options = obj.options ? create$2(obj.options) : {};\r\n \t}\r\n \tfor (var i in options) {\r\n \t\tobj.options[i] = options[i];\r\n \t}\r\n \treturn obj.options;\r\n }\r\n\r\n // @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n // Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n // translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n // be appended at the end. If `uppercase` is `true`, the parameter names will\r\n // be uppercased (e.g. `'?A=foo&B=bar'`)\r\n function getParamString(obj, existingUrl, uppercase) {\r\n \tvar params = [];\r\n \tfor (var i in obj) {\r\n \t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n \t}\r\n \treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n }\r\n\r\n var templateRe = /\\{ *([\\w_ -]+) *\\}/g;\r\n\r\n // @function template(str: String, data: Object): String\r\n // Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n // and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n // `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n // data values — they will be evaluated passing `data` as an argument.\r\n function template(str, data) {\r\n \treturn str.replace(templateRe, function (str, key) {\r\n \t\tvar value = data[key];\r\n\r\n \t\tif (value === undefined) {\r\n \t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n \t\t} else if (typeof value === 'function') {\r\n \t\t\tvalue = value(data);\r\n \t\t}\r\n \t\treturn value;\r\n \t});\r\n }\r\n\r\n // @function isArray(obj): Boolean\r\n // Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\n var isArray = Array.isArray || function (obj) {\r\n \treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n };\r\n\r\n // @function indexOf(array: Array, el: Object): Number\r\n // Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\n function indexOf(array, el) {\r\n \tfor (var i = 0; i < array.length; i++) {\r\n \t\tif (array[i] === el) { return i; }\r\n \t}\r\n \treturn -1;\r\n }\r\n\r\n // @property emptyImageUrl: String\r\n // Data URI string containing a base64-encoded empty GIF image.\r\n // Used as a hack to free memory from unused images on WebKit-powered\r\n // mobile devices (by setting image `src` to this string).\r\n var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n // inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\n function getPrefixed(name) {\r\n \treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n }\r\n\r\n var lastTime = 0;\r\n\r\n // fallback for IE 7-8\r\n function timeoutDefer(fn) {\r\n \tvar time = +new Date(),\r\n \t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n \tlastTime = time + timeToCall;\r\n \treturn window.setTimeout(fn, timeToCall);\r\n }\r\n\r\n var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\n var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n \t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n // @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n // Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n // `context` if given. When `immediate` is set, `fn` is called immediately if\r\n // the browser doesn't have native support for\r\n // [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n // otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\n function requestAnimFrame(fn, context, immediate) {\r\n \tif (immediate && requestFn === timeoutDefer) {\r\n \t\tfn.call(context);\r\n \t} else {\r\n \t\treturn requestFn.call(window, bind(fn, context));\r\n \t}\r\n }\r\n\r\n // @function cancelAnimFrame(id: Number): undefined\r\n // Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\n function cancelAnimFrame(id) {\r\n \tif (id) {\r\n \t\tcancelFn.call(window, id);\r\n \t}\r\n }\n\n var Util = {\n __proto__: null,\n extend: extend,\n create: create$2,\n bind: bind,\n get lastId () { return lastId; },\n stamp: stamp,\n throttle: throttle,\n wrapNum: wrapNum,\n falseFn: falseFn,\n formatNum: formatNum,\n trim: trim,\n splitWords: splitWords,\n setOptions: setOptions,\n getParamString: getParamString,\n template: template,\n isArray: isArray,\n indexOf: indexOf,\n emptyImageUrl: emptyImageUrl,\n requestFn: requestFn,\n cancelFn: cancelFn,\n requestAnimFrame: requestAnimFrame,\n cancelAnimFrame: cancelAnimFrame\n };\n\n // @class Class\r\n // @aka L.Class\r\n\r\n // @section\r\n // @uninheritable\r\n\r\n // Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\n function Class() {}\r\n\r\n Class.extend = function (props) {\r\n\r\n \t// @function extend(props: Object): Function\r\n \t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n \t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n \tvar NewClass = function () {\r\n\r\n \t\tsetOptions(this);\r\n\r\n \t\t// call the constructor\r\n \t\tif (this.initialize) {\r\n \t\t\tthis.initialize.apply(this, arguments);\r\n \t\t}\r\n\r\n \t\t// call all constructor hooks\r\n \t\tthis.callInitHooks();\r\n \t};\r\n\r\n \tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n \tvar proto = create$2(parentProto);\r\n \tproto.constructor = NewClass;\r\n\r\n \tNewClass.prototype = proto;\r\n\r\n \t// inherit parent's statics\r\n \tfor (var i in this) {\r\n \t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n \t\t\tNewClass[i] = this[i];\r\n \t\t}\r\n \t}\r\n\r\n \t// mix static properties into the class\r\n \tif (props.statics) {\r\n \t\textend(NewClass, props.statics);\r\n \t}\r\n\r\n \t// mix includes into the prototype\r\n \tif (props.includes) {\r\n \t\tcheckDeprecatedMixinEvents(props.includes);\r\n \t\textend.apply(null, [proto].concat(props.includes));\r\n \t}\r\n\r\n \t// mix given properties into the prototype\r\n \textend(proto, props);\r\n \tdelete proto.statics;\r\n \tdelete proto.includes;\r\n\r\n \t// merge options\r\n \tif (proto.options) {\r\n \t\tproto.options = parentProto.options ? create$2(parentProto.options) : {};\r\n \t\textend(proto.options, props.options);\r\n \t}\r\n\r\n \tproto._initHooks = [];\r\n\r\n \t// add method for calling all hooks\r\n \tproto.callInitHooks = function () {\r\n\r\n \t\tif (this._initHooksCalled) { return; }\r\n\r\n \t\tif (parentProto.callInitHooks) {\r\n \t\t\tparentProto.callInitHooks.call(this);\r\n \t\t}\r\n\r\n \t\tthis._initHooksCalled = true;\r\n\r\n \t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n \t\t\tproto._initHooks[i].call(this);\r\n \t\t}\r\n \t};\r\n\r\n \treturn NewClass;\r\n };\r\n\r\n\r\n // @function include(properties: Object): this\r\n // [Includes a mixin](#class-includes) into the current class.\r\n Class.include = function (props) {\r\n \tvar parentOptions = this.prototype.options;\r\n \textend(this.prototype, props);\r\n \tif (props.options) {\r\n \t\tthis.prototype.options = parentOptions;\r\n \t\tthis.mergeOptions(props.options);\r\n \t}\r\n \treturn this;\r\n };\r\n\r\n // @function mergeOptions(options: Object): this\r\n // [Merges `options`](#class-options) into the defaults of the class.\r\n Class.mergeOptions = function (options) {\r\n \textend(this.prototype.options, options);\r\n \treturn this;\r\n };\r\n\r\n // @function addInitHook(fn: Function): this\r\n // Adds a [constructor hook](#class-constructor-hooks) to the class.\r\n Class.addInitHook = function (fn) { // (Function) || (String, args...)\r\n \tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n \tvar init = typeof fn === 'function' ? fn : function () {\r\n \t\tthis[fn].apply(this, args);\r\n \t};\r\n\r\n \tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n \tthis.prototype._initHooks.push(init);\r\n \treturn this;\r\n };\r\n\r\n function checkDeprecatedMixinEvents(includes) {\r\n \t/* global L: true */\r\n \tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n \tincludes = isArray(includes) ? includes : [includes];\r\n\r\n \tfor (var i = 0; i < includes.length; i++) {\r\n \t\tif (includes[i] === L.Mixin.Events) {\r\n \t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n \t\t\t\t'this property will be removed in future releases, ' +\r\n \t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n \t\t}\r\n \t}\r\n }\n\n /*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\n var Events = {\r\n \t/* @method on(type: String, fn: Function, context?: Object): this\r\n \t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n \t *\r\n \t * @alternative\r\n \t * @method on(eventMap: Object): this\r\n \t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n \t */\r\n \ton: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t/* @method off(type: String, fn?: Function, context?: Object): this\r\n \t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n \t *\r\n \t * @alternative\r\n \t * @method off(eventMap: Object): this\r\n \t * Removes a set of type/listener pairs.\r\n \t *\r\n \t * @alternative\r\n \t * @method off: this\r\n \t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n \t */\r\n \toff: function (types, fn, context) {\r\n\r\n \t\tif (!arguments.length) {\r\n \t\t\t// clear all listeners if called without arguments\r\n \t\t\tdelete this._events;\r\n\r\n \t\t} else if (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\tthis._off(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tvar removeAll = arguments.length === 1;\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tif (removeAll) {\r\n \t\t\t\t\tthis._off(types[i]);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tthis._off(types[i], fn, context);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// attach listener (without syntactic sugar now)\r\n \t_on: function (type, fn, context, _once) {\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// check if fn already there\r\n \t\tif (this._listens(type, fn, context) !== false) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar newListener = {fn: fn, ctx: context};\r\n \t\tif (_once) {\r\n \t\t\tnewListener.once = true;\r\n \t\t}\r\n\r\n \t\tthis._events = this._events || {};\r\n \t\tthis._events[type] = this._events[type] || [];\r\n \t\tthis._events[type].push(newListener);\r\n \t},\r\n\r\n \t_off: function (type, fn, context) {\r\n \t\tvar listeners,\r\n \t\t i,\r\n \t\t len;\r\n\r\n \t\tif (!this._events) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tlisteners = this._events[type];\r\n \t\tif (!listeners) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (arguments.length === 1) { // remove all\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// Set all removed listeners to noop\r\n \t\t\t\t// so they are not called if remove happens in fire\r\n \t\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tlisteners[i].fn = falseFn;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\t// clear all listeners for a type if function isn't specified\r\n \t\t\tdelete this._events[type];\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// find fn and remove it\r\n \t\tvar index = this._listens(type, fn, context);\r\n \t\tif (index !== false) {\r\n \t\t\tvar listener = listeners[index];\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n \t\t\t\tlistener.fn = falseFn;\r\n\r\n \t\t\t\t/* copy array in case events are being fired */\r\n \t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n \t\t\t}\r\n \t\t\tlisteners.splice(index, 1);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n \t// Fires an event of the specified type. You can optionally provide a data\r\n \t// object — the first argument of the listener function will contain its\r\n \t// properties. The event can optionally be propagated to event parents.\r\n \tfire: function (type, data, propagate) {\r\n \t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n \t\tvar event = extend({}, data, {\r\n \t\t\ttype: type,\r\n \t\t\ttarget: this,\r\n \t\t\tsourceTarget: data && data.sourceTarget || this\r\n \t\t});\r\n\r\n \t\tif (this._events) {\r\n \t\t\tvar listeners = this._events[type];\r\n \t\t\tif (listeners) {\r\n \t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n \t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tvar l = listeners[i];\r\n \t\t\t\t\t// off overwrites l.fn, so we need to copy fn to a var\r\n \t\t\t\t\tvar fn = l.fn;\r\n \t\t\t\t\tif (l.once) {\r\n \t\t\t\t\t\tthis.off(type, fn, l.ctx);\r\n \t\t\t\t\t}\r\n \t\t\t\t\tfn.call(l.ctx || this, event);\r\n \t\t\t\t}\r\n\r\n \t\t\t\tthis._firingCount--;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// propagate the event to parents (set with addEventParent)\r\n \t\t\tthis._propagateEvent(event);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method listens(type: String, propagate?: Boolean): Boolean\r\n \t// @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean\r\n \t// Returns `true` if a particular event type has any listeners attached to it.\r\n \t// The verification can optionally be propagated, it will return `true` if parents have the listener attached to it.\r\n \tlistens: function (type, fn, context, propagate) {\r\n \t\tif (typeof type !== 'string') {\r\n \t\t\tconsole.warn('\"string\" type argument expected');\r\n \t\t}\r\n\r\n \t\t// we don't overwrite the input `fn` value, because we need to use it for propagation\r\n \t\tvar _fn = fn;\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tpropagate = !!fn;\r\n \t\t\t_fn = undefined;\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events && this._events[type];\r\n \t\tif (listeners && listeners.length) {\r\n \t\t\tif (this._listens(type, _fn, context) !== false) {\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// also check parents for listeners if event propagates\r\n \t\t\tfor (var id in this._eventParents) {\r\n \t\t\t\tif (this._eventParents[id].listens(type, fn, context, propagate)) { return true; }\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n \t},\r\n\r\n \t// returns the index (number) or false\r\n \t_listens: function (type, fn, context) {\r\n \t\tif (!this._events) {\r\n \t\t\treturn false;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events[type] || [];\r\n \t\tif (!fn) {\r\n \t\t\treturn !!listeners.length;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n \t\t\t\treturn i;\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n\r\n \t},\r\n\r\n \t// @method once(…): this\r\n \t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n \tonce: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn, true);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context, true);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method addEventParent(obj: Evented): this\r\n \t// Adds an event parent - an `Evented` that will receive propagated events\r\n \taddEventParent: function (obj) {\r\n \t\tthis._eventParents = this._eventParents || {};\r\n \t\tthis._eventParents[stamp(obj)] = obj;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeEventParent(obj: Evented): this\r\n \t// Removes an event parent, so it will stop receiving propagated events\r\n \tremoveEventParent: function (obj) {\r\n \t\tif (this._eventParents) {\r\n \t\t\tdelete this._eventParents[stamp(obj)];\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_propagateEvent: function (e) {\r\n \t\tfor (var id in this._eventParents) {\r\n \t\t\tthis._eventParents[id].fire(e.type, extend({\r\n \t\t\t\tlayer: e.target,\r\n \t\t\t\tpropagatedFrom: e.target\r\n \t\t\t}, e), true);\r\n \t\t}\r\n \t}\r\n };\r\n\r\n // aliases; we should ditch those eventually\r\n\r\n // @method addEventListener(…): this\r\n // Alias to [`on(…)`](#evented-on)\r\n Events.addEventListener = Events.on;\r\n\r\n // @method removeEventListener(…): this\r\n // Alias to [`off(…)`](#evented-off)\r\n\r\n // @method clearAllEventListeners(…): this\r\n // Alias to [`off()`](#evented-off)\r\n Events.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n // @method addOneTimeEventListener(…): this\r\n // Alias to [`once(…)`](#evented-once)\r\n Events.addOneTimeEventListener = Events.once;\r\n\r\n // @method fireEvent(…): this\r\n // Alias to [`fire(…)`](#evented-fire)\r\n Events.fireEvent = Events.fire;\r\n\r\n // @method hasEventListeners(…): Boolean\r\n // Alias to [`listens(…)`](#evented-listens)\r\n Events.hasEventListeners = Events.listens;\r\n\r\n var Evented = Class.extend(Events);\n\n /*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Point(x, y, round) {\r\n \t// @property x: Number; The `x` coordinate of the point\r\n \tthis.x = (round ? Math.round(x) : x);\r\n \t// @property y: Number; The `y` coordinate of the point\r\n \tthis.y = (round ? Math.round(y) : y);\r\n }\r\n\r\n var trunc = Math.trunc || function (v) {\r\n \treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n };\r\n\r\n Point.prototype = {\r\n\r\n \t// @method clone(): Point\r\n \t// Returns a copy of the current point.\r\n \tclone: function () {\r\n \t\treturn new Point(this.x, this.y);\r\n \t},\r\n\r\n \t// @method add(otherPoint: Point): Point\r\n \t// Returns the result of addition of the current and the given points.\r\n \tadd: function (point) {\r\n \t\t// non-destructive, returns a new point\r\n \t\treturn this.clone()._add(toPoint(point));\r\n \t},\r\n\r\n \t_add: function (point) {\r\n \t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n \t\tthis.x += point.x;\r\n \t\tthis.y += point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method subtract(otherPoint: Point): Point\r\n \t// Returns the result of subtraction of the given point from the current.\r\n \tsubtract: function (point) {\r\n \t\treturn this.clone()._subtract(toPoint(point));\r\n \t},\r\n\r\n \t_subtract: function (point) {\r\n \t\tthis.x -= point.x;\r\n \t\tthis.y -= point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method divideBy(num: Number): Point\r\n \t// Returns the result of division of the current point by the given number.\r\n \tdivideBy: function (num) {\r\n \t\treturn this.clone()._divideBy(num);\r\n \t},\r\n\r\n \t_divideBy: function (num) {\r\n \t\tthis.x /= num;\r\n \t\tthis.y /= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method multiplyBy(num: Number): Point\r\n \t// Returns the result of multiplication of the current point by the given number.\r\n \tmultiplyBy: function (num) {\r\n \t\treturn this.clone()._multiplyBy(num);\r\n \t},\r\n\r\n \t_multiplyBy: function (num) {\r\n \t\tthis.x *= num;\r\n \t\tthis.y *= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method scaleBy(scale: Point): Point\r\n \t// Multiply each coordinate of the current point by each coordinate of\r\n \t// `scale`. In linear algebra terms, multiply the point by the\r\n \t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n \t// defined by `scale`.\r\n \tscaleBy: function (point) {\r\n \t\treturn new Point(this.x * point.x, this.y * point.y);\r\n \t},\r\n\r\n \t// @method unscaleBy(scale: Point): Point\r\n \t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n \t// each coordinate of `scale`.\r\n \tunscaleBy: function (point) {\r\n \t\treturn new Point(this.x / point.x, this.y / point.y);\r\n \t},\r\n\r\n \t// @method round(): Point\r\n \t// Returns a copy of the current point with rounded coordinates.\r\n \tround: function () {\r\n \t\treturn this.clone()._round();\r\n \t},\r\n\r\n \t_round: function () {\r\n \t\tthis.x = Math.round(this.x);\r\n \t\tthis.y = Math.round(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method floor(): Point\r\n \t// Returns a copy of the current point with floored coordinates (rounded down).\r\n \tfloor: function () {\r\n \t\treturn this.clone()._floor();\r\n \t},\r\n\r\n \t_floor: function () {\r\n \t\tthis.x = Math.floor(this.x);\r\n \t\tthis.y = Math.floor(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method ceil(): Point\r\n \t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n \tceil: function () {\r\n \t\treturn this.clone()._ceil();\r\n \t},\r\n\r\n \t_ceil: function () {\r\n \t\tthis.x = Math.ceil(this.x);\r\n \t\tthis.y = Math.ceil(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method trunc(): Point\r\n \t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n \ttrunc: function () {\r\n \t\treturn this.clone()._trunc();\r\n \t},\r\n\r\n \t_trunc: function () {\r\n \t\tthis.x = trunc(this.x);\r\n \t\tthis.y = trunc(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method distanceTo(otherPoint: Point): Number\r\n \t// Returns the cartesian distance between the current and the given points.\r\n \tdistanceTo: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\tvar x = point.x - this.x,\r\n \t\t y = point.y - this.y;\r\n\r\n \t\treturn Math.sqrt(x * x + y * y);\r\n \t},\r\n\r\n \t// @method equals(otherPoint: Point): Boolean\r\n \t// Returns `true` if the given point has the same coordinates.\r\n \tequals: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn point.x === this.x &&\r\n \t\t point.y === this.y;\r\n \t},\r\n\r\n \t// @method contains(otherPoint: Point): Boolean\r\n \t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n \tcontains: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n \t\t Math.abs(point.y) <= Math.abs(this.y);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point for debugging purposes.\r\n \ttoString: function () {\r\n \t\treturn 'Point(' +\r\n \t\t formatNum(this.x) + ', ' +\r\n \t\t formatNum(this.y) + ')';\r\n \t}\r\n };\r\n\r\n // @factory L.point(x: Number, y: Number, round?: Boolean)\r\n // Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Number[])\r\n // Expects an array of the form `[x, y]` instead.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Object)\r\n // Expects a plain object of the form `{x: Number, y: Number}` instead.\r\n function toPoint(x, y, round) {\r\n \tif (x instanceof Point) {\r\n \t\treturn x;\r\n \t}\r\n \tif (isArray(x)) {\r\n \t\treturn new Point(x[0], x[1]);\r\n \t}\r\n \tif (x === undefined || x === null) {\r\n \t\treturn x;\r\n \t}\r\n \tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n \t\treturn new Point(x.x, x.y);\r\n \t}\r\n \treturn new Point(x, y, round);\r\n }\n\n /*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Bounds(a, b) {\r\n \tif (!a) { return; }\r\n\r\n \tvar points = b ? [a, b] : a;\r\n\r\n \tfor (var i = 0, len = points.length; i < len; i++) {\r\n \t\tthis.extend(points[i]);\r\n \t}\r\n }\r\n\r\n Bounds.prototype = {\r\n \t// @method extend(point: Point): this\r\n \t// Extends the bounds to contain the given point.\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: Bounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar min2, max2;\r\n \t\tif (!obj) { return this; }\r\n\r\n \t\tif (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) {\r\n \t\t\tmin2 = max2 = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t\tmin2 = obj.min;\r\n \t\t\tmax2 = obj.max;\r\n\r\n \t\t\tif (!min2 || !max2) { return this; }\r\n \t\t}\r\n\r\n \t\t// @property min: Point\r\n \t\t// The top left corner of the rectangle.\r\n \t\t// @property max: Point\r\n \t\t// The bottom right corner of the rectangle.\r\n \t\tif (!this.min && !this.max) {\r\n \t\t\tthis.min = min2.clone();\r\n \t\t\tthis.max = max2.clone();\r\n \t\t} else {\r\n \t\t\tthis.min.x = Math.min(min2.x, this.min.x);\r\n \t\t\tthis.max.x = Math.max(max2.x, this.max.x);\r\n \t\t\tthis.min.y = Math.min(min2.y, this.min.y);\r\n \t\t\tthis.max.y = Math.max(max2.y, this.max.y);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getCenter(round?: Boolean): Point\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function (round) {\r\n \t\treturn toPoint(\r\n \t\t (this.min.x + this.max.x) / 2,\r\n \t\t (this.min.y + this.max.y) / 2, round);\r\n \t},\r\n\r\n \t// @method getBottomLeft(): Point\r\n \t// Returns the bottom-left point of the bounds.\r\n \tgetBottomLeft: function () {\r\n \t\treturn toPoint(this.min.x, this.max.y);\r\n \t},\r\n\r\n \t// @method getTopRight(): Point\r\n \t// Returns the top-right point of the bounds.\r\n \tgetTopRight: function () { // -> Point\r\n \t\treturn toPoint(this.max.x, this.min.y);\r\n \t},\r\n\r\n \t// @method getTopLeft(): Point\r\n \t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n \tgetTopLeft: function () {\r\n \t\treturn this.min; // left, top\r\n \t},\r\n\r\n \t// @method getBottomRight(): Point\r\n \t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n \tgetBottomRight: function () {\r\n \t\treturn this.max; // right, bottom\r\n \t},\r\n\r\n \t// @method getSize(): Point\r\n \t// Returns the size of the given bounds\r\n \tgetSize: function () {\r\n \t\treturn this.max.subtract(this.min);\r\n \t},\r\n\r\n \t// @method contains(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n \t// @alternative\r\n \t// @method contains(point: Point): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) {\r\n \t\tvar min, max;\r\n\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n \t\t\tobj = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t}\r\n\r\n \t\tif (obj instanceof Bounds) {\r\n \t\t\tmin = obj.min;\r\n \t\t\tmax = obj.max;\r\n \t\t} else {\r\n \t\t\tmin = max = obj;\r\n \t\t}\r\n\r\n \t\treturn (min.x >= this.min.x) &&\r\n \t\t (max.x <= this.max.x) &&\r\n \t\t (min.y >= this.min.y) &&\r\n \t\t (max.y <= this.max.y);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n \t// intersect if they have at least one point in common.\r\n \tintersects: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n \t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n \t\treturn xIntersects && yIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n \t// overlap if their intersection is an area.\r\n \toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n \t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n \t\treturn xOverlaps && yOverlaps;\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this.min && this.max);\r\n \t},\r\n\r\n\r\n \t// @method pad(bufferRatio: Number): Bounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar min = this.min,\r\n \t\tmax = this.max,\r\n \t\theightBuffer = Math.abs(min.x - max.x) * bufferRatio,\r\n \t\twidthBuffer = Math.abs(min.y - max.y) * bufferRatio;\r\n\r\n\r\n \t\treturn toBounds(\r\n \t\t\ttoPoint(min.x - heightBuffer, min.y - widthBuffer),\r\n \t\t\ttoPoint(max.x + heightBuffer, max.y + widthBuffer));\r\n \t},\r\n\r\n\r\n \t// @method equals(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle is equivalent to the given bounds.\r\n \tequals: function (bounds) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\treturn this.min.equals(bounds.getTopLeft()) &&\r\n \t\t\tthis.max.equals(bounds.getBottomRight());\r\n \t},\r\n };\r\n\r\n\r\n // @factory L.bounds(corner1: Point, corner2: Point)\r\n // Creates a Bounds object from two corners coordinate pairs.\r\n // @alternative\r\n // @factory L.bounds(points: Point[])\r\n // Creates a Bounds object from the given array of points.\r\n function toBounds(a, b) {\r\n \tif (!a || a instanceof Bounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new Bounds(a, b);\r\n }\n\n /*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n \tif (!corner1) { return; }\r\n\r\n \tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n \tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n \t\tthis.extend(latlngs[i]);\r\n \t}\r\n }\r\n\r\n LatLngBounds.prototype = {\r\n\r\n \t// @method extend(latlng: LatLng): this\r\n \t// Extend the bounds to contain the given point\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: LatLngBounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLng) {\r\n \t\t\tsw2 = obj;\r\n \t\t\tne2 = obj;\r\n\r\n \t\t} else if (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj._southWest;\r\n \t\t\tne2 = obj._northEast;\r\n\r\n \t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n \t\t} else {\r\n \t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n \t\t}\r\n\r\n \t\tif (!sw && !ne) {\r\n \t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n \t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n \t\t} else {\r\n \t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n \t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n \t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n \t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method pad(bufferRatio: Number): LatLngBounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n \t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n \t\treturn new LatLngBounds(\r\n \t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n \t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n \t},\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function () {\r\n \t\treturn new LatLng(\r\n \t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n \t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n \t},\r\n\r\n \t// @method getSouthWest(): LatLng\r\n \t// Returns the south-west point of the bounds.\r\n \tgetSouthWest: function () {\r\n \t\treturn this._southWest;\r\n \t},\r\n\r\n \t// @method getNorthEast(): LatLng\r\n \t// Returns the north-east point of the bounds.\r\n \tgetNorthEast: function () {\r\n \t\treturn this._northEast;\r\n \t},\r\n\r\n \t// @method getNorthWest(): LatLng\r\n \t// Returns the north-west point of the bounds.\r\n \tgetNorthWest: function () {\r\n \t\treturn new LatLng(this.getNorth(), this.getWest());\r\n \t},\r\n\r\n \t// @method getSouthEast(): LatLng\r\n \t// Returns the south-east point of the bounds.\r\n \tgetSouthEast: function () {\r\n \t\treturn new LatLng(this.getSouth(), this.getEast());\r\n \t},\r\n\r\n \t// @method getWest(): Number\r\n \t// Returns the west longitude of the bounds\r\n \tgetWest: function () {\r\n \t\treturn this._southWest.lng;\r\n \t},\r\n\r\n \t// @method getSouth(): Number\r\n \t// Returns the south latitude of the bounds\r\n \tgetSouth: function () {\r\n \t\treturn this._southWest.lat;\r\n \t},\r\n\r\n \t// @method getEast(): Number\r\n \t// Returns the east longitude of the bounds\r\n \tgetEast: function () {\r\n \t\treturn this._northEast.lng;\r\n \t},\r\n\r\n \t// @method getNorth(): Number\r\n \t// Returns the north latitude of the bounds\r\n \tgetNorth: function () {\r\n \t\treturn this._northEast.lat;\r\n \t},\r\n\r\n \t// @method contains(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n\r\n \t// @alternative\r\n \t// @method contains (latlng: LatLng): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n \t\t\tobj = toLatLng(obj);\r\n \t\t} else {\r\n \t\t\tobj = toLatLngBounds(obj);\r\n \t\t}\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj.getSouthWest();\r\n \t\t\tne2 = obj.getNorthEast();\r\n \t\t} else {\r\n \t\t\tsw2 = ne2 = obj;\r\n \t\t}\r\n\r\n \t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n \t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n \tintersects: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n \t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n \t\treturn latIntersects && lngIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n \toverlaps: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n \t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n \t\treturn latOverlaps && lngOverlaps;\r\n \t},\r\n\r\n \t// @method toBBoxString(): String\r\n \t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n \ttoBBoxString: function () {\r\n \t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n \t},\r\n\r\n \t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (bounds, maxMargin) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n \t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this._southWest && this._northEast);\r\n \t}\r\n };\r\n\r\n // TODO International date line?\r\n\r\n // @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n // Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n // @alternative\r\n // @factory L.latLngBounds(latlngs: LatLng[])\r\n // Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\n function toLatLngBounds(a, b) {\r\n \tif (a instanceof LatLngBounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new LatLngBounds(a, b);\r\n }\n\n /* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLng(lat, lng, alt) {\r\n \tif (isNaN(lat) || isNaN(lng)) {\r\n \t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n \t}\r\n\r\n \t// @property lat: Number\r\n \t// Latitude in degrees\r\n \tthis.lat = +lat;\r\n\r\n \t// @property lng: Number\r\n \t// Longitude in degrees\r\n \tthis.lng = +lng;\r\n\r\n \t// @property alt: Number\r\n \t// Altitude in meters (optional)\r\n \tif (alt !== undefined) {\r\n \t\tthis.alt = +alt;\r\n \t}\r\n }\r\n\r\n LatLng.prototype = {\r\n \t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (obj, maxMargin) {\r\n \t\tif (!obj) { return false; }\r\n\r\n \t\tobj = toLatLng(obj);\r\n\r\n \t\tvar margin = Math.max(\r\n \t\t Math.abs(this.lat - obj.lat),\r\n \t\t Math.abs(this.lng - obj.lng));\r\n\r\n \t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point (for debugging purposes).\r\n \ttoString: function (precision) {\r\n \t\treturn 'LatLng(' +\r\n \t\t formatNum(this.lat, precision) + ', ' +\r\n \t\t formatNum(this.lng, precision) + ')';\r\n \t},\r\n\r\n \t// @method distanceTo(otherLatLng: LatLng): Number\r\n \t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n \tdistanceTo: function (other) {\r\n \t\treturn Earth.distance(this, toLatLng(other));\r\n \t},\r\n\r\n \t// @method wrap(): LatLng\r\n \t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n \twrap: function () {\r\n \t\treturn Earth.wrapLatLng(this);\r\n \t},\r\n\r\n \t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n \t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n \ttoBounds: function (sizeInMeters) {\r\n \t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n \t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n \t\treturn toLatLngBounds(\r\n \t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n \t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n \t},\r\n\r\n \tclone: function () {\r\n \t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n \t}\r\n };\r\n\r\n\r\n\r\n // @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n // Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Array): LatLng\r\n // Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Object): LatLng\r\n // Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\n function toLatLng(a, b, c) {\r\n \tif (a instanceof LatLng) {\r\n \t\treturn a;\r\n \t}\r\n \tif (isArray(a) && typeof a[0] !== 'object') {\r\n \t\tif (a.length === 3) {\r\n \t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n \t\t}\r\n \t\tif (a.length === 2) {\r\n \t\t\treturn new LatLng(a[0], a[1]);\r\n \t\t}\r\n \t\treturn null;\r\n \t}\r\n \tif (a === undefined || a === null) {\r\n \t\treturn a;\r\n \t}\r\n \tif (typeof a === 'object' && 'lat' in a) {\r\n \t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n \t}\r\n \tif (b === undefined) {\r\n \t\treturn null;\r\n \t}\r\n \treturn new LatLng(a, b, c);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\n var CRS = {\r\n \t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n \t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n \tlatLngToPoint: function (latlng, zoom) {\r\n \t\tvar projectedPoint = this.projection.project(latlng),\r\n \t\t scale = this.scale(zoom);\r\n\r\n \t\treturn this.transformation._transform(projectedPoint, scale);\r\n \t},\r\n\r\n \t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n \t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n \t// zoom into geographical coordinates.\r\n \tpointToLatLng: function (point, zoom) {\r\n \t\tvar scale = this.scale(zoom),\r\n \t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n \t\treturn this.projection.unproject(untransformedPoint);\r\n \t},\r\n\r\n \t// @method project(latlng: LatLng): Point\r\n \t// Projects geographical coordinates into coordinates in units accepted for\r\n \t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n \tproject: function (latlng) {\r\n \t\treturn this.projection.project(latlng);\r\n \t},\r\n\r\n \t// @method unproject(point: Point): LatLng\r\n \t// Given a projected coordinate returns the corresponding LatLng.\r\n \t// The inverse of `project`.\r\n \tunproject: function (point) {\r\n \t\treturn this.projection.unproject(point);\r\n \t},\r\n\r\n \t// @method scale(zoom: Number): Number\r\n \t// Returns the scale used when transforming projected coordinates into\r\n \t// pixel coordinates for a particular zoom. For example, it returns\r\n \t// `256 * 2^zoom` for Mercator-based CRS.\r\n \tscale: function (zoom) {\r\n \t\treturn 256 * Math.pow(2, zoom);\r\n \t},\r\n\r\n \t// @method zoom(scale: Number): Number\r\n \t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n \t// factor of `scale`.\r\n \tzoom: function (scale) {\r\n \t\treturn Math.log(scale / 256) / Math.LN2;\r\n \t},\r\n\r\n \t// @method getProjectedBounds(zoom: Number): Bounds\r\n \t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n \tgetProjectedBounds: function (zoom) {\r\n \t\tif (this.infinite) { return null; }\r\n\r\n \t\tvar b = this.projection.bounds,\r\n \t\t s = this.scale(zoom),\r\n \t\t min = this.transformation.transform(b.min, s),\r\n \t\t max = this.transformation.transform(b.max, s);\r\n\r\n \t\treturn new Bounds(min, max);\r\n \t},\r\n\r\n \t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n \t// Returns the distance between two geographical coordinates.\r\n\r\n \t// @property code: String\r\n \t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n \t//\r\n \t// @property wrapLng: Number[]\r\n \t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n \t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n \t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n \t//\r\n \t// @property wrapLat: Number[]\r\n \t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n \t// wrapLng: [min, max],\r\n \t// wrapLat: [min, max],\r\n\r\n \t// @property infinite: Boolean\r\n \t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n \tinfinite: false,\r\n\r\n \t// @method wrapLatLng(latlng: LatLng): LatLng\r\n \t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n \t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n \twrapLatLng: function (latlng) {\r\n \t\tvar lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n \t\t lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n \t\t alt = latlng.alt;\r\n\r\n \t\treturn new LatLng(lat, lng, alt);\r\n \t},\r\n\r\n \t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n \t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n \t// that its center is within the CRS's bounds.\r\n \t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n \twrapLatLngBounds: function (bounds) {\r\n \t\tvar center = bounds.getCenter(),\r\n \t\t newCenter = this.wrapLatLng(center),\r\n \t\t latShift = center.lat - newCenter.lat,\r\n \t\t lngShift = center.lng - newCenter.lng;\r\n\r\n \t\tif (latShift === 0 && lngShift === 0) {\r\n \t\t\treturn bounds;\r\n \t\t}\r\n\r\n \t\tvar sw = bounds.getSouthWest(),\r\n \t\t ne = bounds.getNorthEast(),\r\n \t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n \t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n \t\treturn new LatLngBounds(newSw, newNe);\r\n \t}\r\n };\n\n /*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\n var Earth = extend({}, CRS, {\n \twrapLng: [-180, 180],\n\n \t// Mean Earth Radius, as recommended for use by\n \t// the International Union of Geodesy and Geophysics,\n \t// see https://rosettacode.org/wiki/Haversine_formula\n \tR: 6371000,\n\n \t// distance between two geographical points using spherical law of cosines approximation\n \tdistance: function (latlng1, latlng2) {\n \t\tvar rad = Math.PI / 180,\n \t\t lat1 = latlng1.lat * rad,\n \t\t lat2 = latlng2.lat * rad,\n \t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n \t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n \t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n \t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n \t\treturn this.R * c;\n \t}\n });\n\n /*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\n var earthRadius = 6378137;\r\n\r\n var SphericalMercator = {\r\n\r\n \tR: earthRadius,\r\n \tMAX_LATITUDE: 85.0511287798,\r\n\r\n \tproject: function (latlng) {\r\n \t\tvar d = Math.PI / 180,\r\n \t\t max = this.MAX_LATITUDE,\r\n \t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n \t\t sin = Math.sin(lat * d);\r\n\r\n \t\treturn new Point(\r\n \t\t\tthis.R * latlng.lng * d,\r\n \t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\tvar d = 180 / Math.PI;\r\n\r\n \t\treturn new LatLng(\r\n \t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n \t\t\tpoint.x * d / this.R);\r\n \t},\r\n\r\n \tbounds: (function () {\r\n \t\tvar d = earthRadius * Math.PI;\r\n \t\treturn new Bounds([-d, -d], [d, d]);\r\n \t})()\r\n };\n\n /*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n // factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Creates a `Transformation` object with the given coefficients.\r\n function Transformation(a, b, c, d) {\r\n \tif (isArray(a)) {\r\n \t\t// use array properties\r\n \t\tthis._a = a[0];\r\n \t\tthis._b = a[1];\r\n \t\tthis._c = a[2];\r\n \t\tthis._d = a[3];\r\n \t\treturn;\r\n \t}\r\n \tthis._a = a;\r\n \tthis._b = b;\r\n \tthis._c = c;\r\n \tthis._d = d;\r\n }\r\n\r\n Transformation.prototype = {\r\n \t// @method transform(point: Point, scale?: Number): Point\r\n \t// Returns a transformed point, optionally multiplied by the given scale.\r\n \t// Only accepts actual `L.Point` instances, not arrays.\r\n \ttransform: function (point, scale) { // (Point, Number) -> Point\r\n \t\treturn this._transform(point.clone(), scale);\r\n \t},\r\n\r\n \t// destructive transform (faster)\r\n \t_transform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\tpoint.x = scale * (this._a * point.x + this._b);\r\n \t\tpoint.y = scale * (this._c * point.y + this._d);\r\n \t\treturn point;\r\n \t},\r\n\r\n \t// @method untransform(point: Point, scale?: Number): Point\r\n \t// Returns the reverse transformation of the given point, optionally divided\r\n \t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n \tuntransform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\treturn new Point(\r\n \t\t (point.x / scale - this._b) / this._a,\r\n \t\t (point.y / scale - this._d) / this._c);\r\n \t}\r\n };\r\n\r\n // factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n // @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Instantiates a Transformation object with the given coefficients.\r\n\r\n // @alternative\r\n // @factory L.transformation(coefficients: Array): Transformation\r\n // Expects an coefficients array of the form\r\n // `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\n function toTransformation(a, b, c, d) {\r\n \treturn new Transformation(a, b, c, d);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\n var EPSG3857 = extend({}, Earth, {\r\n \tcode: 'EPSG:3857',\r\n \tprojection: SphericalMercator,\r\n\r\n \ttransformation: (function () {\r\n \t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n \t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n \t}())\r\n });\r\n\r\n var EPSG900913 = extend({}, EPSG3857, {\r\n \tcode: 'EPSG:900913'\r\n });\n\n // @namespace SVG; @section\n // There are several static functions which can be called without instantiating L.SVG:\n\n // @function create(name: String): SVGElement\n // Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n // corresponding to the class name passed. For example, using 'line' will return\n // an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\n function svgCreate(name) {\n \treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n }\n\n // @function pointsToPath(rings: Point[], closed: Boolean): String\n // Generates a SVG path string for multiple rings, with each ring turning\n // into \"M..L..L..\" instructions\n function pointsToPath(rings, closed) {\n \tvar str = '',\n \ti, j, len, len2, points, p;\n\n \tfor (i = 0, len = rings.length; i < len; i++) {\n \t\tpoints = rings[i];\n\n \t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n \t\t\tp = points[j];\n \t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n \t\t}\n\n \t\t// closes the ring for polygons; \"x\" is VML syntax\n \t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n \t}\n\n \t// SVG complains about empty path strings\n \treturn str || 'M0 0';\n }\n\n /*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\n var style = document.documentElement.style;\r\n\r\n // @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\n var ie = 'ActiveXObject' in window;\r\n\r\n // @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\n var ielt9 = ie && !document.addEventListener;\r\n\r\n // @property edge: Boolean; `true` for the Edge web browser.\r\n var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n // @property webkit: Boolean;\r\n // `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\n var webkit = userAgentContains('webkit');\r\n\r\n // @property android: Boolean\r\n // **Deprecated.** `true` for any browser running on an Android platform.\r\n var android = userAgentContains('android');\r\n\r\n // @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3.\r\n var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n /* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\n var webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n // @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome)\r\n var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n // @property opera: Boolean; `true` for the Opera browser\r\n var opera = !!window.opera;\r\n\r\n // @property chrome: Boolean; `true` for the Chrome browser.\r\n var chrome = !edge && userAgentContains('chrome');\r\n\r\n // @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\n var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n // @property safari: Boolean; `true` for the Safari browser.\r\n var safari = !chrome && userAgentContains('safari');\r\n\r\n var phantom = userAgentContains('phantom');\r\n\r\n // @property opera12: Boolean\r\n // `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\n var opera12 = 'OTransition' in style;\r\n\r\n // @property win: Boolean; `true` when the browser is running in a Windows platform\r\n var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n // @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\n var ie3d = ie && ('transition' in style);\r\n\r\n // @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\n var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n // @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\n var gecko3d = 'MozPerspective' in style;\r\n\r\n // @property any3d: Boolean\r\n // `true` for all browsers supporting CSS transforms.\r\n var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n // @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\n var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n // @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\n var mobileWebkit = mobile && webkit;\r\n\r\n // @property mobileWebkit3d: Boolean\r\n // `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\n var mobileWebkit3d = mobile && webkit3d;\r\n\r\n // @property msPointer: Boolean\r\n // `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\n var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n // @property pointer: Boolean\r\n // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\n var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n // @property touchNative: Boolean\r\n // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n // **This does not necessarily mean** that the browser is running in a computer with\r\n // a touchscreen, it only means that the browser is capable of understanding\r\n // touch events.\r\n var touchNative = 'ontouchstart' in window || !!window.TouchEvent;\r\n\r\n // @property touch: Boolean\r\n // `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events.\r\n // Note: pointer events will be preferred (if available), and processed for all `touch*` listeners.\r\n var touch = !window.L_NO_TOUCH && (touchNative || pointer);\r\n\r\n // @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\n var mobileOpera = mobile && opera;\r\n\r\n // @property mobileGecko: Boolean\r\n // `true` for gecko-based browsers running in a mobile device.\r\n var mobileGecko = mobile && gecko;\r\n\r\n // @property retina: Boolean\r\n // `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\n var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n // @property passiveEvents: Boolean\r\n // `true` for browsers that support passive events.\r\n var passiveEvents = (function () {\r\n \tvar supportsPassiveOption = false;\r\n \ttry {\r\n \t\tvar opts = Object.defineProperty({}, 'passive', {\r\n \t\t\tget: function () { // eslint-disable-line getter-return\r\n \t\t\t\tsupportsPassiveOption = true;\r\n \t\t\t}\r\n \t\t});\r\n \t\twindow.addEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t\twindow.removeEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t} catch (e) {\r\n \t\t// Errors can safely be ignored since this is only a browser support test.\r\n \t}\r\n \treturn supportsPassiveOption;\r\n }());\r\n\r\n // @property canvas: Boolean\r\n // `true` when the browser supports [`<canvas>`](https://developer.mozilla.org/docs/Web/API/Canvas_API).\r\n var canvas$1 = (function () {\r\n \treturn !!document.createElement('canvas').getContext;\r\n }());\r\n\r\n // @property svg: Boolean\r\n // `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).\r\n var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect);\r\n\r\n var inlineSvg = !!svg$1 && (function () {\r\n \tvar div = document.createElement('div');\r\n \tdiv.innerHTML = '<svg/>';\r\n \treturn (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg';\r\n })();\r\n\r\n // @property vml: Boolean\r\n // `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).\r\n var vml = !svg$1 && (function () {\r\n \ttry {\r\n \t\tvar div = document.createElement('div');\r\n \t\tdiv.innerHTML = '<v:shape adj=\"1\"/>';\r\n\r\n \t\tvar shape = div.firstChild;\r\n \t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n \t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n \t} catch (e) {\r\n \t\treturn false;\r\n \t}\r\n }());\r\n\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Mac platform\r\n var mac = navigator.platform.indexOf('Mac') === 0;\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Linux platform\r\n var linux = navigator.platform.indexOf('Linux') === 0;\r\n\r\n function userAgentContains(str) {\r\n \treturn navigator.userAgent.toLowerCase().indexOf(str) >= 0;\r\n }\r\n\r\n\r\n var Browser = {\r\n \tie: ie,\r\n \tielt9: ielt9,\r\n \tedge: edge,\r\n \twebkit: webkit,\r\n \tandroid: android,\r\n \tandroid23: android23,\r\n \tandroidStock: androidStock,\r\n \topera: opera,\r\n \tchrome: chrome,\r\n \tgecko: gecko,\r\n \tsafari: safari,\r\n \tphantom: phantom,\r\n \topera12: opera12,\r\n \twin: win,\r\n \tie3d: ie3d,\r\n \twebkit3d: webkit3d,\r\n \tgecko3d: gecko3d,\r\n \tany3d: any3d,\r\n \tmobile: mobile,\r\n \tmobileWebkit: mobileWebkit,\r\n \tmobileWebkit3d: mobileWebkit3d,\r\n \tmsPointer: msPointer,\r\n \tpointer: pointer,\r\n \ttouch: touch,\r\n \ttouchNative: touchNative,\r\n \tmobileOpera: mobileOpera,\r\n \tmobileGecko: mobileGecko,\r\n \tretina: retina,\r\n \tpassiveEvents: passiveEvents,\r\n \tcanvas: canvas$1,\r\n \tsvg: svg$1,\r\n \tvml: vml,\r\n \tinlineSvg: inlineSvg,\r\n \tmac: mac,\r\n \tlinux: linux\r\n };\n\n /*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\n var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown';\n var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove';\n var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup';\n var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel';\n var pEvent = {\n \ttouchstart : POINTER_DOWN,\n \ttouchmove : POINTER_MOVE,\n \ttouchend : POINTER_UP,\n \ttouchcancel : POINTER_CANCEL\n };\n var handle = {\n \ttouchstart : _onPointerStart,\n \ttouchmove : _handlePointer,\n \ttouchend : _handlePointer,\n \ttouchcancel : _handlePointer\n };\n var _pointers = {};\n var _pointerDocListener = false;\n\n // Provides a touch events wrapper for (ms)pointer events.\n // ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\n function addPointerListener(obj, type, handler) {\n \tif (type === 'touchstart') {\n \t\t_addPointerDocListener();\n \t}\n \tif (!handle[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn falseFn;\n \t}\n \thandler = handle[type].bind(this, handler);\n \tobj.addEventListener(pEvent[type], handler, false);\n \treturn handler;\n }\n\n function removePointerListener(obj, type, handler) {\n \tif (!pEvent[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn;\n \t}\n \tobj.removeEventListener(pEvent[type], handler, false);\n }\n\n function _globalPointerDown(e) {\n \t_pointers[e.pointerId] = e;\n }\n\n function _globalPointerMove(e) {\n \tif (_pointers[e.pointerId]) {\n \t\t_pointers[e.pointerId] = e;\n \t}\n }\n\n function _globalPointerUp(e) {\n \tdelete _pointers[e.pointerId];\n }\n\n function _addPointerDocListener() {\n \t// need to keep track of what pointers and how many are active to provide e.touches emulation\n \tif (!_pointerDocListener) {\n \t\t// we listen document as any drags that end by moving the touch off the screen get fired there\n \t\tdocument.addEventListener(POINTER_DOWN, _globalPointerDown, true);\n \t\tdocument.addEventListener(POINTER_MOVE, _globalPointerMove, true);\n \t\tdocument.addEventListener(POINTER_UP, _globalPointerUp, true);\n \t\tdocument.addEventListener(POINTER_CANCEL, _globalPointerUp, true);\n\n \t\t_pointerDocListener = true;\n \t}\n }\n\n function _handlePointer(handler, e) {\n \tif (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; }\n\n \te.touches = [];\n \tfor (var i in _pointers) {\n \t\te.touches.push(_pointers[i]);\n \t}\n \te.changedTouches = [e];\n\n \thandler(e);\n }\n\n function _onPointerStart(handler, e) {\n \t// IE10 specific: MsTouch needs preventDefault. See #2000\n \tif (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {\n \t\tpreventDefault(e);\n \t}\n \t_handlePointer(handler, e);\n }\n\n /*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n *\r\n * Note: currently most browsers fire native dblclick, with only a few exceptions\r\n * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386)\r\n */\r\n\r\n function makeDblclick(event) {\r\n \t// in modern browsers `type` cannot be just overridden:\r\n \t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only\r\n \tvar newEvent = {},\r\n \t prop, i;\r\n \tfor (i in event) {\r\n \t\tprop = event[i];\r\n \t\tnewEvent[i] = prop && prop.bind ? prop.bind(event) : prop;\r\n \t}\r\n \tevent = newEvent;\r\n \tnewEvent.type = 'dblclick';\r\n \tnewEvent.detail = 2;\r\n \tnewEvent.isTrusted = false;\r\n \tnewEvent._simulated = true; // for debug purposes\r\n \treturn newEvent;\r\n }\r\n\r\n var delay = 200;\r\n function addDoubleTapListener(obj, handler) {\r\n \t// Most browsers handle double tap natively\r\n \tobj.addEventListener('dblclick', handler);\r\n\r\n \t// On some platforms the browser doesn't fire native dblclicks for touch events.\r\n \t// It seems that in all such cases `detail` property of `click` event is always `1`.\r\n \t// So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed.\r\n \tvar last = 0,\r\n \t detail;\r\n \tfunction simDblclick(e) {\r\n \t\tif (e.detail !== 1) {\r\n \t\t\tdetail = e.detail; // keep in sync to avoid false dblclick in some cases\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (e.pointerType === 'mouse' ||\r\n \t\t\t(e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) {\r\n\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// When clicking on an <input>, the browser generates a click on its\r\n \t\t// <label> (and vice versa) triggering two clicks in quick succession.\r\n \t\t// This ignores clicks on elements which are a label with a 'for'\r\n \t\t// attribute (or children of such a label), but not children of\r\n \t\t// a <input>.\r\n \t\tvar path = getPropagationPath(e);\r\n \t\tif (path.some(function (el) {\r\n \t\t\treturn el instanceof HTMLLabelElement && el.attributes.for;\r\n \t\t}) &&\r\n \t\t\t!path.some(function (el) {\r\n \t\t\t\treturn (\r\n \t\t\t\t\tel instanceof HTMLInputElement ||\r\n \t\t\t\t\tel instanceof HTMLSelectElement\r\n \t\t\t\t);\r\n \t\t\t})\r\n \t\t) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tvar now = Date.now();\r\n \t\tif (now - last <= delay) {\r\n \t\t\tdetail++;\r\n \t\t\tif (detail === 2) {\r\n \t\t\t\thandler(makeDblclick(e));\r\n \t\t\t}\r\n \t\t} else {\r\n \t\t\tdetail = 1;\r\n \t\t}\r\n \t\tlast = now;\r\n \t}\r\n\r\n \tobj.addEventListener('click', simDblclick);\r\n\r\n \treturn {\r\n \t\tdblclick: handler,\r\n \t\tsimDblclick: simDblclick\r\n \t};\r\n }\r\n\r\n function removeDoubleTapListener(obj, handlers) {\r\n \tobj.removeEventListener('dblclick', handlers.dblclick);\r\n \tobj.removeEventListener('click', handlers.simDblclick);\r\n }\n\n /*\r\n * @namespace DomUtil\r\n *\r\n * Utility functions to work with the [DOM](https://developer.mozilla.org/docs/Web/API/Document_Object_Model)\r\n * tree, used by Leaflet internally.\r\n *\r\n * Most functions expecting or returning a `HTMLElement` also work for\r\n * SVG elements. The only difference is that classes refer to CSS classes\r\n * in HTML and SVG classes in SVG.\r\n */\r\n\r\n\r\n // @property TRANSFORM: String\r\n // Vendor-prefixed transform style name (e.g. `'webkitTransform'` for WebKit).\r\n var TRANSFORM = testProp(\r\n \t['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);\r\n\r\n // webkitTransition comes first because some browser versions that drop vendor prefix don't do\r\n // the same for the transitionend event, in particular the Android 4.1 stock browser\r\n\r\n // @property TRANSITION: String\r\n // Vendor-prefixed transition style name.\r\n var TRANSITION = testProp(\r\n \t['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);\r\n\r\n // @property TRANSITION_END: String\r\n // Vendor-prefixed transitionend event name.\r\n var TRANSITION_END =\r\n \tTRANSITION === 'webkitTransition' || TRANSITION === 'OTransition' ? TRANSITION + 'End' : 'transitionend';\r\n\r\n\r\n // @function get(id: String|HTMLElement): HTMLElement\r\n // Returns an element given its DOM id, or returns the element itself\r\n // if it was passed directly.\r\n function get(id) {\r\n \treturn typeof id === 'string' ? document.getElementById(id) : id;\r\n }\r\n\r\n // @function getStyle(el: HTMLElement, styleAttrib: String): String\r\n // Returns the value for a certain style attribute on an element,\r\n // including computed values or values set through CSS.\r\n function getStyle(el, style) {\r\n \tvar value = el.style[style] || (el.currentStyle && el.currentStyle[style]);\r\n\r\n \tif ((!value || value === 'auto') && document.defaultView) {\r\n \t\tvar css = document.defaultView.getComputedStyle(el, null);\r\n \t\tvalue = css ? css[style] : null;\r\n \t}\r\n \treturn value === 'auto' ? null : value;\r\n }\r\n\r\n // @function create(tagName: String, className?: String, container?: HTMLElement): HTMLElement\r\n // Creates an HTML element with `tagName`, sets its class to `className`, and optionally appends it to `container` element.\r\n function create$1(tagName, className, container) {\r\n \tvar el = document.createElement(tagName);\r\n \tel.className = className || '';\r\n\r\n \tif (container) {\r\n \t\tcontainer.appendChild(el);\r\n \t}\r\n \treturn el;\r\n }\r\n\r\n // @function remove(el: HTMLElement)\r\n // Removes `el` from its parent element\r\n function remove(el) {\r\n \tvar parent = el.parentNode;\r\n \tif (parent) {\r\n \t\tparent.removeChild(el);\r\n \t}\r\n }\r\n\r\n // @function empty(el: HTMLElement)\r\n // Removes all of `el`'s children elements from `el`\r\n function empty(el) {\r\n \twhile (el.firstChild) {\r\n \t\tel.removeChild(el.firstChild);\r\n \t}\r\n }\r\n\r\n // @function toFront(el: HTMLElement)\r\n // Makes `el` the last child of its parent, so it renders in front of the other children.\r\n function toFront(el) {\r\n \tvar parent = el.parentNode;\r\n \tif (parent && parent.lastChild !== el) {\r\n \t\tparent.appendChild(el);\r\n \t}\r\n }\r\n\r\n // @function toBack(el: HTMLElement)\r\n // Makes `el` the first child of its parent, so it renders behind the other children.\r\n function toBack(el) {\r\n \tvar parent = el.parentNode;\r\n \tif (parent && parent.firstChild !== el) {\r\n \t\tparent.insertBefore(el, parent.firstChild);\r\n \t}\r\n }\r\n\r\n // @function hasClass(el: HTMLElement, name: String): Boolean\r\n // Returns `true` if the element's class attribute contains `name`.\r\n function hasClass(el, name) {\r\n \tif (el.classList !== undefined) {\r\n \t\treturn el.classList.contains(name);\r\n \t}\r\n \tvar className = getClass(el);\r\n \treturn className.length > 0 && new RegExp('(^|\\\\s)' + name + '(\\\\s|$)').test(className);\r\n }\r\n\r\n // @function addClass(el: HTMLElement, name: String)\r\n // Adds `name` to the element's class attribute.\r\n function addClass(el, name) {\r\n \tif (el.classList !== undefined) {\r\n \t\tvar classes = splitWords(name);\r\n \t\tfor (var i = 0, len = classes.length; i < len; i++) {\r\n \t\t\tel.classList.add(classes[i]);\r\n \t\t}\r\n \t} else if (!hasClass(el, name)) {\r\n \t\tvar className = getClass(el);\r\n \t\tsetClass(el, (className ? className + ' ' : '') + name);\r\n \t}\r\n }\r\n\r\n // @function removeClass(el: HTMLElement, name: String)\r\n // Removes `name` from the element's class attribute.\r\n function removeClass(el, name) {\r\n \tif (el.classList !== undefined) {\r\n \t\tel.classList.remove(name);\r\n \t} else {\r\n \t\tsetClass(el, trim((' ' + getClass(el) + ' ').replace(' ' + name + ' ', ' ')));\r\n \t}\r\n }\r\n\r\n // @function setClass(el: HTMLElement, name: String)\r\n // Sets the element's class.\r\n function setClass(el, name) {\r\n \tif (el.className.baseVal === undefined) {\r\n \t\tel.className = name;\r\n \t} else {\r\n \t\t// in case of SVG element\r\n \t\tel.className.baseVal = name;\r\n \t}\r\n }\r\n\r\n // @function getClass(el: HTMLElement): String\r\n // Returns the element's class.\r\n function getClass(el) {\r\n \t// Check if the element is an SVGElementInstance and use the correspondingElement instead\r\n \t// (Required for linked SVG elements in IE11.)\r\n \tif (el.correspondingElement) {\r\n \t\tel = el.correspondingElement;\r\n \t}\r\n \treturn el.className.baseVal === undefined ? el.className : el.className.baseVal;\r\n }\r\n\r\n // @function setOpacity(el: HTMLElement, opacity: Number)\r\n // Set the opacity of an element (including old IE support).\r\n // `opacity` must be a number from `0` to `1`.\r\n function setOpacity(el, value) {\r\n \tif ('opacity' in el.style) {\r\n \t\tel.style.opacity = value;\r\n \t} else if ('filter' in el.style) {\r\n \t\t_setOpacityIE(el, value);\r\n \t}\r\n }\r\n\r\n function _setOpacityIE(el, value) {\r\n \tvar filter = false,\r\n \t filterName = 'DXImageTransform.Microsoft.Alpha';\r\n\r\n \t// filters collection throws an error if we try to retrieve a filter that doesn't exist\r\n \ttry {\r\n \t\tfilter = el.filters.item(filterName);\r\n \t} catch (e) {\r\n \t\t// don't set opacity to 1 if we haven't already set an opacity,\r\n \t\t// it isn't needed and breaks transparent pngs.\r\n \t\tif (value === 1) { return; }\r\n \t}\r\n\r\n \tvalue = Math.round(value * 100);\r\n\r\n \tif (filter) {\r\n \t\tfilter.Enabled = (value !== 100);\r\n \t\tfilter.Opacity = value;\r\n \t} else {\r\n \t\tel.style.filter += ' progid:' + filterName + '(opacity=' + value + ')';\r\n \t}\r\n }\r\n\r\n // @function testProp(props: String[]): String|false\r\n // Goes through the array of style names and returns the first name\r\n // that is a valid style name for an element. If no such name is found,\r\n // it returns false. Useful for vendor-prefixed styles like `transform`.\r\n function testProp(props) {\r\n \tvar style = document.documentElement.style;\r\n\r\n \tfor (var i = 0; i < props.length; i++) {\r\n \t\tif (props[i] in style) {\r\n \t\t\treturn props[i];\r\n \t\t}\r\n \t}\r\n \treturn false;\r\n }\r\n\r\n // @function setTransform(el: HTMLElement, offset: Point, scale?: Number)\r\n // Resets the 3D CSS transform of `el` so it is translated by `offset` pixels\r\n // and optionally scaled by `scale`. Does not have an effect if the\r\n // browser doesn't support 3D CSS transforms.\r\n function setTransform(el, offset, scale) {\r\n \tvar pos = offset || new Point(0, 0);\r\n\r\n \tel.style[TRANSFORM] =\r\n \t\t(Browser.ie3d ?\r\n \t\t\t'translate(' + pos.x + 'px,' + pos.y + 'px)' :\r\n \t\t\t'translate3d(' + pos.x + 'px,' + pos.y + 'px,0)') +\r\n \t\t(scale ? ' scale(' + scale + ')' : '');\r\n }\r\n\r\n // @function setPosition(el: HTMLElement, position: Point)\r\n // Sets the position of `el` to coordinates specified by `position`,\r\n // using CSS translate or top/left positioning depending on the browser\r\n // (used by Leaflet internally to position its layers).\r\n function setPosition(el, point) {\r\n\r\n \t/*eslint-disable */\r\n \tel._leaflet_pos = point;\r\n \t/* eslint-enable */\r\n\r\n \tif (Browser.any3d) {\r\n \t\tsetTransform(el, point);\r\n \t} else {\r\n \t\tel.style.left = point.x + 'px';\r\n \t\tel.style.top = point.y + 'px';\r\n \t}\r\n }\r\n\r\n // @function getPosition(el: HTMLElement): Point\r\n // Returns the coordinates of an element previously positioned with setPosition.\r\n function getPosition(el) {\r\n \t// this method is only used for elements previously positioned using setPosition,\r\n \t// so it's safe to cache the position for performance\r\n\r\n \treturn el._leaflet_pos || new Point(0, 0);\r\n }\r\n\r\n // @function disableTextSelection()\r\n // Prevents the user from generating `selectstart` DOM events, usually generated\r\n // when the user drags the mouse through a page with text. Used internally\r\n // by Leaflet to override the behaviour of any click-and-drag interaction on\r\n // the map. Affects drag interactions on the whole document.\r\n\r\n // @function enableTextSelection()\r\n // Cancels the effects of a previous [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection).\r\n var disableTextSelection;\r\n var enableTextSelection;\r\n var _userSelect;\r\n if ('onselectstart' in document) {\r\n \tdisableTextSelection = function () {\r\n \t\ton(window, 'selectstart', preventDefault);\r\n \t};\r\n \tenableTextSelection = function () {\r\n \t\toff(window, 'selectstart', preventDefault);\r\n \t};\r\n } else {\r\n \tvar userSelectProperty = testProp(\r\n \t\t['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect']);\r\n\r\n \tdisableTextSelection = function () {\r\n \t\tif (userSelectProperty) {\r\n \t\t\tvar style = document.documentElement.style;\r\n \t\t\t_userSelect = style[userSelectProperty];\r\n \t\t\tstyle[userSelectProperty] = 'none';\r\n \t\t}\r\n \t};\r\n \tenableTextSelection = function () {\r\n \t\tif (userSelectProperty) {\r\n \t\t\tdocument.documentElement.style[userSelectProperty] = _userSelect;\r\n \t\t\t_userSelect = undefined;\r\n \t\t}\r\n \t};\r\n }\r\n\r\n // @function disableImageDrag()\r\n // As [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection), but\r\n // for `dragstart` DOM events, usually generated when the user drags an image.\r\n function disableImageDrag() {\r\n \ton(window, 'dragstart', preventDefault);\r\n }\r\n\r\n // @function enableImageDrag()\r\n // Cancels the effects of a previous [`L.DomUtil.disableImageDrag`](#domutil-disabletextselection).\r\n function enableImageDrag() {\r\n \toff(window, 'dragstart', preventDefault);\r\n }\r\n\r\n var _outlineElement, _outlineStyle;\r\n // @function preventOutline(el: HTMLElement)\r\n // Makes the [outline](https://developer.mozilla.org/docs/Web/CSS/outline)\r\n // of the element `el` invisible. Used internally by Leaflet to prevent\r\n // focusable elements from displaying an outline when the user performs a\r\n // drag interaction on them.\r\n function preventOutline(element) {\r\n \twhile (element.tabIndex === -1) {\r\n \t\telement = element.parentNode;\r\n \t}\r\n \tif (!element.style) { return; }\r\n \trestoreOutline();\r\n \t_outlineElement = element;\r\n \t_outlineStyle = element.style.outlineStyle;\r\n \telement.style.outlineStyle = 'none';\r\n \ton(window, 'keydown', restoreOutline);\r\n }\r\n\r\n // @function restoreOutline()\r\n // Cancels the effects of a previous [`L.DomUtil.preventOutline`]().\r\n function restoreOutline() {\r\n \tif (!_outlineElement) { return; }\r\n \t_outlineElement.style.outlineStyle = _outlineStyle;\r\n \t_outlineElement = undefined;\r\n \t_outlineStyle = undefined;\r\n \toff(window, 'keydown', restoreOutline);\r\n }\r\n\r\n // @function getSizedParentNode(el: HTMLElement): HTMLElement\r\n // Finds the closest parent node which size (width and height) is not null.\r\n function getSizedParentNode(element) {\r\n \tdo {\r\n \t\telement = element.parentNode;\r\n \t} while ((!element.offsetWidth || !element.offsetHeight) && element !== document.body);\r\n \treturn element;\r\n }\r\n\r\n // @function getScale(el: HTMLElement): Object\r\n // Computes the CSS scale currently applied on the element.\r\n // Returns an object with `x` and `y` members as horizontal and vertical scales respectively,\r\n // and `boundingClientRect` as the result of [`getBoundingClientRect()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect).\r\n function getScale(element) {\r\n \tvar rect = element.getBoundingClientRect(); // Read-only in old browsers.\r\n\r\n \treturn {\r\n \t\tx: rect.width / element.offsetWidth || 1,\r\n \t\ty: rect.height / element.offsetHeight || 1,\r\n \t\tboundingClientRect: rect\r\n \t};\r\n }\n\n var DomUtil = {\n __proto__: null,\n TRANSFORM: TRANSFORM,\n TRANSITION: TRANSITION,\n TRANSITION_END: TRANSITION_END,\n get: get,\n getStyle: getStyle,\n create: create$1,\n remove: remove,\n empty: empty,\n toFront: toFront,\n toBack: toBack,\n hasClass: hasClass,\n addClass: addClass,\n removeClass: removeClass,\n setClass: setClass,\n getClass: getClass,\n setOpacity: setOpacity,\n testProp: testProp,\n setTransform: setTransform,\n setPosition: setPosition,\n getPosition: getPosition,\n get disableTextSelection () { return disableTextSelection; },\n get enableTextSelection () { return enableTextSelection; },\n disableImageDrag: disableImageDrag,\n enableImageDrag: enableImageDrag,\n preventOutline: preventOutline,\n restoreOutline: restoreOutline,\n getSizedParentNode: getSizedParentNode,\n getScale: getScale\n };\n\n /*\r\n * @namespace DomEvent\r\n * Utility functions to work with the [DOM events](https://developer.mozilla.org/docs/Web/API/Event), used by Leaflet internally.\r\n */\r\n\r\n // Inspired by John Resig, Dean Edwards and YUI addEvent implementations.\r\n\r\n // @function on(el: HTMLElement, types: String, fn: Function, context?: Object): this\r\n // Adds a listener function (`fn`) to a particular DOM event type of the\r\n // element `el`. You can optionally specify the context of the listener\r\n // (object the `this` keyword will point to). You can also pass several\r\n // space-separated types (e.g. `'click dblclick'`).\r\n\r\n // @alternative\r\n // @function on(el: HTMLElement, eventMap: Object, context?: Object): this\r\n // Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n function on(obj, types, fn, context) {\r\n\r\n \tif (types && typeof types === 'object') {\r\n \t\tfor (var type in types) {\r\n \t\t\taddOne(obj, type, types[type], fn);\r\n \t\t}\r\n \t} else {\r\n \t\ttypes = splitWords(types);\r\n\r\n \t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\taddOne(obj, types[i], fn, context);\r\n \t\t}\r\n \t}\r\n\r\n \treturn this;\r\n }\r\n\r\n var eventsKey = '_leaflet_events';\r\n\r\n // @function off(el: HTMLElement, types: String, fn: Function, context?: Object): this\r\n // Removes a previously added listener function.\r\n // Note that if you passed a custom context to on, you must pass the same\r\n // context to `off` in order to remove the listener.\r\n\r\n // @alternative\r\n // @function off(el: HTMLElement, eventMap: Object, context?: Object): this\r\n // Removes a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n\r\n // @alternative\r\n // @function off(el: HTMLElement, types: String): this\r\n // Removes all previously added listeners of given types.\r\n\r\n // @alternative\r\n // @function off(el: HTMLElement): this\r\n // Removes all previously added listeners from given HTMLElement\r\n function off(obj, types, fn, context) {\r\n\r\n \tif (arguments.length === 1) {\r\n \t\tbatchRemove(obj);\r\n \t\tdelete obj[eventsKey];\r\n\r\n \t} else if (types && typeof types === 'object') {\r\n \t\tfor (var type in types) {\r\n \t\t\tremoveOne(obj, type, types[type], fn);\r\n \t\t}\r\n\r\n \t} else {\r\n \t\ttypes = splitWords(types);\r\n\r\n \t\tif (arguments.length === 2) {\r\n \t\t\tbatchRemove(obj, function (type) {\r\n \t\t\t\treturn indexOf(types, type) !== -1;\r\n \t\t\t});\r\n \t\t} else {\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tremoveOne(obj, types[i], fn, context);\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n\r\n \treturn this;\r\n }\r\n\r\n function batchRemove(obj, filterFn) {\r\n \tfor (var id in obj[eventsKey]) {\r\n \t\tvar type = id.split(/\\d/)[0];\r\n \t\tif (!filterFn || filterFn(type)) {\r\n \t\t\tremoveOne(obj, type, null, null, id);\r\n \t\t}\r\n \t}\r\n }\r\n\r\n var mouseSubst = {\r\n \tmouseenter: 'mouseover',\r\n \tmouseleave: 'mouseout',\r\n \twheel: !('onwheel' in window) && 'mousewheel'\r\n };\r\n\r\n function addOne(obj, type, fn, context) {\r\n \tvar id = type + stamp(fn) + (context ? '_' + stamp(context) : '');\r\n\r\n \tif (obj[eventsKey] && obj[eventsKey][id]) { return this; }\r\n\r\n \tvar handler = function (e) {\r\n \t\treturn fn.call(context || obj, e || window.event);\r\n \t};\r\n\r\n \tvar originalHandler = handler;\r\n\r\n \tif (!Browser.touchNative && Browser.pointer && type.indexOf('touch') === 0) {\r\n \t\t// Needs DomEvent.Pointer.js\r\n \t\thandler = addPointerListener(obj, type, handler);\r\n\r\n \t} else if (Browser.touch && (type === 'dblclick')) {\r\n \t\thandler = addDoubleTapListener(obj, handler);\r\n\r\n \t} else if ('addEventListener' in obj) {\r\n\r\n \t\tif (type === 'touchstart' || type === 'touchmove' || type === 'wheel' || type === 'mousewheel') {\r\n \t\t\tobj.addEventListener(mouseSubst[type] || type, handler, Browser.passiveEvents ? {passive: false} : false);\r\n\r\n \t\t} else if (type === 'mouseenter' || type === 'mouseleave') {\r\n \t\t\thandler = function (e) {\r\n \t\t\t\te = e || window.event;\r\n \t\t\t\tif (isExternalTarget(obj, e)) {\r\n \t\t\t\t\toriginalHandler(e);\r\n \t\t\t\t}\r\n \t\t\t};\r\n \t\t\tobj.addEventListener(mouseSubst[type], handler, false);\r\n\r\n \t\t} else {\r\n \t\t\tobj.addEventListener(type, originalHandler, false);\r\n \t\t}\r\n\r\n \t} else {\r\n \t\tobj.attachEvent('on' + type, handler);\r\n \t}\r\n\r\n \tobj[eventsKey] = obj[eventsKey] || {};\r\n \tobj[eventsKey][id] = handler;\r\n }\r\n\r\n function removeOne(obj, type, fn, context, id) {\r\n \tid = id || type + stamp(fn) + (context ? '_' + stamp(context) : '');\r\n \tvar handler = obj[eventsKey] && obj[eventsKey][id];\r\n\r\n \tif (!handler) { return this; }\r\n\r\n \tif (!Browser.touchNative && Browser.pointer && type.indexOf('touch') === 0) {\r\n \t\tremovePointerListener(obj, type, handler);\r\n\r\n \t} else if (Browser.touch && (type === 'dblclick')) {\r\n \t\tremoveDoubleTapListener(obj, handler);\r\n\r\n \t} else if ('removeEventListener' in obj) {\r\n\r\n \t\tobj.removeEventListener(mouseSubst[type] || type, handler, false);\r\n\r\n \t} else {\r\n \t\tobj.detachEvent('on' + type, handler);\r\n \t}\r\n\r\n \tobj[eventsKey][id] = null;\r\n }\r\n\r\n // @function stopPropagation(ev: DOMEvent): this\r\n // Stop the given event from propagation to parent elements. Used inside the listener functions:\r\n // ```js\r\n // L.DomEvent.on(div, 'click', function (ev) {\r\n // \tL.DomEvent.stopPropagation(ev);\r\n // });\r\n // ```\r\n function stopPropagation(e) {\r\n\r\n \tif (e.stopPropagation) {\r\n \t\te.stopPropagation();\r\n \t} else if (e.originalEvent) { // In case of Leaflet event.\r\n \t\te.originalEvent._stopped = true;\r\n \t} else {\r\n \t\te.cancelBubble = true;\r\n \t}\r\n\r\n \treturn this;\r\n }\r\n\r\n // @function disableScrollPropagation(el: HTMLElement): this\r\n // Adds `stopPropagation` to the element's `'wheel'` events (plus browser variants).\r\n function disableScrollPropagation(el) {\r\n \taddOne(el, 'wheel', stopPropagation);\r\n \treturn this;\r\n }\r\n\r\n // @function disableClickPropagation(el: HTMLElement): this\r\n // Adds `stopPropagation` to the element's `'click'`, `'dblclick'`, `'contextmenu'`,\r\n // `'mousedown'` and `'touchstart'` events (plus browser variants).\r\n function disableClickPropagation(el) {\r\n \ton(el, 'mousedown touchstart dblclick contextmenu', stopPropagation);\r\n \tel['_leaflet_disable_click'] = true;\r\n \treturn this;\r\n }\r\n\r\n // @function preventDefault(ev: DOMEvent): this\r\n // Prevents the default action of the DOM Event `ev` from happening (such as\r\n // following a link in the href of the a element, or doing a POST request\r\n // with page reload when a `<form>` is submitted).\r\n // Use it inside listener functions.\r\n function preventDefault(e) {\r\n \tif (e.preventDefault) {\r\n \t\te.preventDefault();\r\n \t} else {\r\n \t\te.returnValue = false;\r\n \t}\r\n \treturn this;\r\n }\r\n\r\n // @function stop(ev: DOMEvent): this\r\n // Does `stopPropagation` and `preventDefault` at the same time.\r\n function stop(e) {\r\n \tpreventDefault(e);\r\n \tstopPropagation(e);\r\n \treturn this;\r\n }\r\n\r\n // @function getPropagationPath(ev: DOMEvent): Array\r\n // Compatibility polyfill for [`Event.composedPath()`](https://developer.mozilla.org/en-US/docs/Web/API/Event/composedPath).\r\n // Returns an array containing the `HTMLElement`s that the given DOM event\r\n // should propagate to (if not stopped).\r\n function getPropagationPath(ev) {\r\n \tif (ev.composedPath) {\r\n \t\treturn ev.composedPath();\r\n \t}\r\n\r\n \tvar path = [];\r\n \tvar el = ev.target;\r\n\r\n \twhile (el) {\r\n \t\tpath.push(el);\r\n \t\tel = el.parentNode;\r\n \t}\r\n \treturn path;\r\n }\r\n\r\n\r\n // @function getMousePosition(ev: DOMEvent, container?: HTMLElement): Point\r\n // Gets normalized mouse position from a DOM event relative to the\r\n // `container` (border excluded) or to the whole page if not specified.\r\n function getMousePosition(e, container) {\r\n \tif (!container) {\r\n \t\treturn new Point(e.clientX, e.clientY);\r\n \t}\r\n\r\n \tvar scale = getScale(container),\r\n \t offset = scale.boundingClientRect; // left and top values are in page scale (like the event clientX/Y)\r\n\r\n \treturn new Point(\r\n \t\t// offset.left/top values are in page scale (like clientX/Y),\r\n \t\t// whereas clientLeft/Top (border width) values are the original values (before CSS scale applies).\r\n \t\t(e.clientX - offset.left) / scale.x - container.clientLeft,\r\n \t\t(e.clientY - offset.top) / scale.y - container.clientTop\r\n \t);\r\n }\r\n\r\n\r\n // except , Safari and\r\n // We need double the scroll pixels (see #7403 and #4538) for all Browsers\r\n // except OSX (Mac) -> 3x, Chrome running on Linux 1x\r\n\r\n var wheelPxFactor =\r\n \t(Browser.linux && Browser.chrome) ? window.devicePixelRatio :\r\n \tBrowser.mac ? window.devicePixelRatio * 3 :\r\n \twindow.devicePixelRatio > 0 ? 2 * window.devicePixelRatio : 1;\r\n // @function getWheelDelta(ev: DOMEvent): Number\r\n // Gets normalized wheel delta from a wheel DOM event, in vertical\r\n // pixels scrolled (negative if scrolling down).\r\n // Events from pointing devices without precise scrolling are mapped to\r\n // a best guess of 60 pixels.\r\n function getWheelDelta(e) {\r\n \treturn (Browser.edge) ? e.wheelDeltaY / 2 : // Don't trust window-geometry-based delta\r\n \t (e.deltaY && e.deltaMode === 0) ? -e.deltaY / wheelPxFactor : // Pixels\r\n \t (e.deltaY && e.deltaMode === 1) ? -e.deltaY * 20 : // Lines\r\n \t (e.deltaY && e.deltaMode === 2) ? -e.deltaY * 60 : // Pages\r\n \t (e.deltaX || e.deltaZ) ? 0 :\t// Skip horizontal/depth wheel events\r\n \t e.wheelDelta ? (e.wheelDeltaY || e.wheelDelta) / 2 : // Legacy IE pixels\r\n \t (e.detail && Math.abs(e.detail) < 32765) ? -e.detail * 20 : // Legacy Moz lines\r\n \t e.detail ? e.detail / -32765 * 60 : // Legacy Moz pages\r\n \t 0;\r\n }\r\n\r\n // check if element really left/entered the event target (for mouseenter/mouseleave)\r\n function isExternalTarget(el, e) {\r\n\r\n \tvar related = e.relatedTarget;\r\n\r\n \tif (!related) { return true; }\r\n\r\n \ttry {\r\n \t\twhile (related && (related !== el)) {\r\n \t\t\trelated = related.parentNode;\r\n \t\t}\r\n \t} catch (err) {\r\n \t\treturn false;\r\n \t}\r\n \treturn (related !== el);\r\n }\n\n var DomEvent = {\n __proto__: null,\n on: on,\n off: off,\n stopPropagation: stopPropagation,\n disableScrollPropagation: disableScrollPropagation,\n disableClickPropagation: disableClickPropagation,\n preventDefault: preventDefault,\n stop: stop,\n getPropagationPath: getPropagationPath,\n getMousePosition: getMousePosition,\n getWheelDelta: getWheelDelta,\n isExternalTarget: isExternalTarget,\n addListener: on,\n removeListener: off\n };\n\n /*\n * @class PosAnimation\n * @aka L.PosAnimation\n * @inherits Evented\n * Used internally for panning animations, utilizing CSS3 Transitions for modern browsers and a timer fallback for IE6-9.\n *\n * @example\n * ```js\n * var myPositionMarker = L.marker([48.864716, 2.294694]).addTo(map);\n *\n * myPositionMarker.on(\"click\", function() {\n * \tvar pos = map.latLngToLayerPoint(myPositionMarker.getLatLng());\n * \tpos.y -= 25;\n * \tvar fx = new L.PosAnimation();\n *\n * \tfx.once('end',function() {\n * \t\tpos.y += 25;\n * \t\tfx.run(myPositionMarker._icon, pos, 0.8);\n * \t});\n *\n * \tfx.run(myPositionMarker._icon, pos, 0.3);\n * });\n *\n * ```\n *\n * @constructor L.PosAnimation()\n * Creates a `PosAnimation` object.\n *\n */\n\n var PosAnimation = Evented.extend({\n\n \t// @method run(el: HTMLElement, newPos: Point, duration?: Number, easeLinearity?: Number)\n \t// Run an animation of a given element to a new position, optionally setting\n \t// duration in seconds (`0.25` by default) and easing linearity factor (3rd\n \t// argument of the [cubic bezier curve](https://cubic-bezier.com/#0,0,.5,1),\n \t// `0.5` by default).\n \trun: function (el, newPos, duration, easeLinearity) {\n \t\tthis.stop();\n\n \t\tthis._el = el;\n \t\tthis._inProgress = true;\n \t\tthis._duration = duration || 0.25;\n \t\tthis._easeOutPower = 1 / Math.max(easeLinearity || 0.5, 0.2);\n\n \t\tthis._startPos = getPosition(el);\n \t\tthis._offset = newPos.subtract(this._startPos);\n \t\tthis._startTime = +new Date();\n\n \t\t// @event start: Event\n \t\t// Fired when the animation starts\n \t\tthis.fire('start');\n\n \t\tthis._animate();\n \t},\n\n \t// @method stop()\n \t// Stops the animation (if currently running).\n \tstop: function () {\n \t\tif (!this._inProgress) { return; }\n\n \t\tthis._step(true);\n \t\tthis._complete();\n \t},\n\n \t_animate: function () {\n \t\t// animation loop\n \t\tthis._animId = requestAnimFrame(this._animate, this);\n \t\tthis._step();\n \t},\n\n \t_step: function (round) {\n \t\tvar elapsed = (+new Date()) - this._startTime,\n \t\t duration = this._duration * 1000;\n\n \t\tif (elapsed < duration) {\n \t\t\tthis._runFrame(this._easeOut(elapsed / duration), round);\n \t\t} else {\n \t\t\tthis._runFrame(1);\n \t\t\tthis._complete();\n \t\t}\n \t},\n\n \t_runFrame: function (progress, round) {\n \t\tvar pos = this._startPos.add(this._offset.multiplyBy(progress));\n \t\tif (round) {\n \t\t\tpos._round();\n \t\t}\n \t\tsetPosition(this._el, pos);\n\n \t\t// @event step: Event\n \t\t// Fired continuously during the animation.\n \t\tthis.fire('step');\n \t},\n\n \t_complete: function () {\n \t\tcancelAnimFrame(this._animId);\n\n \t\tthis._inProgress = false;\n \t\t// @event end: Event\n \t\t// Fired when the animation ends.\n \t\tthis.fire('end');\n \t},\n\n \t_easeOut: function (t) {\n \t\treturn 1 - Math.pow(1 - t, this._easeOutPower);\n \t}\n });\n\n /*\r\n * @class Map\r\n * @aka L.Map\r\n * @inherits Evented\r\n *\r\n * The central class of the API — it is used to create a map on a page and manipulate it.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * // initialize the map on the \"map\" div with a given center and zoom\r\n * var map = L.map('map', {\r\n * \tcenter: [51.505, -0.09],\r\n * \tzoom: 13\r\n * });\r\n * ```\r\n *\r\n */\r\n\r\n var Map = Evented.extend({\r\n\r\n \toptions: {\r\n \t\t// @section Map State Options\r\n \t\t// @option crs: CRS = L.CRS.EPSG3857\r\n \t\t// The [Coordinate Reference System](#crs) to use. Don't change this if you're not\r\n \t\t// sure what it means.\r\n \t\tcrs: EPSG3857,\r\n\r\n \t\t// @option center: LatLng = undefined\r\n \t\t// Initial geographic center of the map\r\n \t\tcenter: undefined,\r\n\r\n \t\t// @option zoom: Number = undefined\r\n \t\t// Initial map zoom level\r\n \t\tzoom: undefined,\r\n\r\n \t\t// @option minZoom: Number = *\r\n \t\t// Minimum zoom level of the map.\r\n \t\t// If not specified and at least one `GridLayer` or `TileLayer` is in the map,\r\n \t\t// the lowest of their `minZoom` options will be used instead.\r\n \t\tminZoom: undefined,\r\n\r\n \t\t// @option maxZoom: Number = *\r\n \t\t// Maximum zoom level of the map.\r\n \t\t// If not specified and at least one `GridLayer` or `TileLayer` is in the map,\r\n \t\t// the highest of their `maxZoom` options will be used instead.\r\n \t\tmaxZoom: undefined,\r\n\r\n \t\t// @option layers: Layer[] = []\r\n \t\t// Array of layers that will be added to the map initially\r\n \t\tlayers: [],\r\n\r\n \t\t// @option maxBounds: LatLngBounds = null\r\n \t\t// When this option is set, the map restricts the view to the given\r\n \t\t// geographical bounds, bouncing the user back if the user tries to pan\r\n \t\t// outside the view. To set the restriction dynamically, use\r\n \t\t// [`setMaxBounds`](#map-setmaxbounds) method.\r\n \t\tmaxBounds: undefined,\r\n\r\n \t\t// @option renderer: Renderer = *\r\n \t\t// The default method for drawing vector layers on the map. `L.SVG`\r\n \t\t// or `L.Canvas` by default depending on browser support.\r\n \t\trenderer: undefined,\r\n\r\n\r\n \t\t// @section Animation Options\r\n \t\t// @option zoomAnimation: Boolean = true\r\n \t\t// Whether the map zoom animation is enabled. By default it's enabled\r\n \t\t// in all browsers that support CSS3 Transitions except Android.\r\n \t\tzoomAnimation: true,\r\n\r\n \t\t// @option zoomAnimationThreshold: Number = 4\r\n \t\t// Won't animate zoom if the zoom difference exceeds this value.\r\n \t\tzoomAnimationThreshold: 4,\r\n\r\n \t\t// @option fadeAnimation: Boolean = true\r\n \t\t// Whether the tile fade animation is enabled. By default it's enabled\r\n \t\t// in all browsers that support CSS3 Transitions except Android.\r\n \t\tfadeAnimation: true,\r\n\r\n \t\t// @option markerZoomAnimation: Boolean = true\r\n \t\t// Whether markers animate their zoom with the zoom animation, if disabled\r\n \t\t// they will disappear for the length of the animation. By default it's\r\n \t\t// enabled in all browsers that support CSS3 Transitions except Android.\r\n \t\tmarkerZoomAnimation: true,\r\n\r\n \t\t// @option transform3DLimit: Number = 2^23\r\n \t\t// Defines the maximum size of a CSS translation transform. The default\r\n \t\t// value should not be changed unless a web browser positions layers in\r\n \t\t// the wrong place after doing a large `panBy`.\r\n \t\ttransform3DLimit: 8388608, // Precision limit of a 32-bit float\r\n\r\n \t\t// @section Interaction Options\r\n \t\t// @option zoomSnap: Number = 1\r\n \t\t// Forces the map's zoom level to always be a multiple of this, particularly\r\n \t\t// right after a [`fitBounds()`](#map-fitbounds) or a pinch-zoom.\r\n \t\t// By default, the zoom level snaps to the nearest integer; lower values\r\n \t\t// (e.g. `0.5` or `0.1`) allow for greater granularity. A value of `0`\r\n \t\t// means the zoom level will not be snapped after `fitBounds` or a pinch-zoom.\r\n \t\tzoomSnap: 1,\r\n\r\n \t\t// @option zoomDelta: Number = 1\r\n \t\t// Controls how much the map's zoom level will change after a\r\n \t\t// [`zoomIn()`](#map-zoomin), [`zoomOut()`](#map-zoomout), pressing `+`\r\n \t\t// or `-` on the keyboard, or using the [zoom controls](#control-zoom).\r\n \t\t// Values smaller than `1` (e.g. `0.5`) allow for greater granularity.\r\n \t\tzoomDelta: 1,\r\n\r\n \t\t// @option trackResize: Boolean = true\r\n \t\t// Whether the map automatically handles browser window resize to update itself.\r\n \t\ttrackResize: true\r\n \t},\r\n\r\n \tinitialize: function (id, options) { // (HTMLElement or String, Object)\r\n \t\toptions = setOptions(this, options);\r\n\r\n \t\t// Make sure to assign internal flags at the beginning,\r\n \t\t// to avoid inconsistent state in some edge cases.\r\n \t\tthis._handlers = [];\r\n \t\tthis._layers = {};\r\n \t\tthis._zoomBoundLayers = {};\r\n \t\tthis._sizeChanged = true;\r\n\r\n \t\tthis._initContainer(id);\r\n \t\tthis._initLayout();\r\n\r\n \t\t// hack for https://github.com/Leaflet/Leaflet/issues/1980\r\n \t\tthis._onResize = bind(this._onResize, this);\r\n\r\n \t\tthis._initEvents();\r\n\r\n \t\tif (options.maxBounds) {\r\n \t\t\tthis.setMaxBounds(options.maxBounds);\r\n \t\t}\r\n\r\n \t\tif (options.zoom !== undefined) {\r\n \t\t\tthis._zoom = this._limitZoom(options.zoom);\r\n \t\t}\r\n\r\n \t\tif (options.center && options.zoom !== undefined) {\r\n \t\t\tthis.setView(toLatLng(options.center), options.zoom, {reset: true});\r\n \t\t}\r\n\r\n \t\tthis.callInitHooks();\r\n\r\n \t\t// don't animate on browsers without hardware-accelerated transitions or old Android/Opera\r\n \t\tthis._zoomAnimated = TRANSITION && Browser.any3d && !Browser.mobileOpera &&\r\n \t\t\t\tthis.options.zoomAnimation;\r\n\r\n \t\t// zoom transitions run with the same duration for all layers, so if one of transitionend events\r\n \t\t// happens after starting zoom animation (propagating to the map pane), we know that it ended globally\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tthis._createAnimProxy();\r\n \t\t\ton(this._proxy, TRANSITION_END, this._catchTransitionEnd, this);\r\n \t\t}\r\n\r\n \t\tthis._addLayers(this.options.layers);\r\n \t},\r\n\r\n\r\n \t// @section Methods for modifying map state\r\n\r\n \t// @method setView(center: LatLng, zoom: Number, options?: Zoom/pan options): this\r\n \t// Sets the view of the map (geographical center and zoom) with the given\r\n \t// animation options.\r\n \tsetView: function (center, zoom, options) {\r\n\r\n \t\tzoom = zoom === undefined ? this._zoom : this._limitZoom(zoom);\r\n \t\tcenter = this._limitCenter(toLatLng(center), zoom, this.options.maxBounds);\r\n \t\toptions = options || {};\r\n\r\n \t\tthis._stop();\r\n\r\n \t\tif (this._loaded && !options.reset && options !== true) {\r\n\r\n \t\t\tif (options.animate !== undefined) {\r\n \t\t\t\toptions.zoom = extend({animate: options.animate}, options.zoom);\r\n \t\t\t\toptions.pan = extend({animate: options.animate, duration: options.duration}, options.pan);\r\n \t\t\t}\r\n\r\n \t\t\t// try animating pan or zoom\r\n \t\t\tvar moved = (this._zoom !== zoom) ?\r\n \t\t\t\tthis._tryAnimatedZoom && this._tryAnimatedZoom(center, zoom, options.zoom) :\r\n \t\t\t\tthis._tryAnimatedPan(center, options.pan);\r\n\r\n \t\t\tif (moved) {\r\n \t\t\t\t// prevent resize handler call, the view will refresh after animation anyway\r\n \t\t\t\tclearTimeout(this._sizeTimer);\r\n \t\t\t\treturn this;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// animation didn't start, just reset the map view\r\n \t\tthis._resetView(center, zoom, options.pan && options.pan.noMoveStart);\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setZoom(zoom: Number, options?: Zoom/pan options): this\r\n \t// Sets the zoom of the map.\r\n \tsetZoom: function (zoom, options) {\r\n \t\tif (!this._loaded) {\r\n \t\t\tthis._zoom = zoom;\r\n \t\t\treturn this;\r\n \t\t}\r\n \t\treturn this.setView(this.getCenter(), zoom, {zoom: options});\r\n \t},\r\n\r\n \t// @method zoomIn(delta?: Number, options?: Zoom options): this\r\n \t// Increases the zoom of the map by `delta` ([`zoomDelta`](#map-zoomdelta) by default).\r\n \tzoomIn: function (delta, options) {\r\n \t\tdelta = delta || (Browser.any3d ? this.options.zoomDelta : 1);\r\n \t\treturn this.setZoom(this._zoom + delta, options);\r\n \t},\r\n\r\n \t// @method zoomOut(delta?: Number, options?: Zoom options): this\r\n \t// Decreases the zoom of the map by `delta` ([`zoomDelta`](#map-zoomdelta) by default).\r\n \tzoomOut: function (delta, options) {\r\n \t\tdelta = delta || (Browser.any3d ? this.options.zoomDelta : 1);\r\n \t\treturn this.setZoom(this._zoom - delta, options);\r\n \t},\r\n\r\n \t// @method setZoomAround(latlng: LatLng, zoom: Number, options: Zoom options): this\r\n \t// Zooms the map while keeping a specified geographical point on the map\r\n \t// stationary (e.g. used internally for scroll zoom and double-click zoom).\r\n \t// @alternative\r\n \t// @method setZoomAround(offset: Point, zoom: Number, options: Zoom options): this\r\n \t// Zooms the map while keeping a specified pixel on the map (relative to the top-left corner) stationary.\r\n \tsetZoomAround: function (latlng, zoom, options) {\r\n \t\tvar scale = this.getZoomScale(zoom),\r\n \t\t viewHalf = this.getSize().divideBy(2),\r\n \t\t containerPoint = latlng instanceof Point ? latlng : this.latLngToContainerPoint(latlng),\r\n\r\n \t\t centerOffset = containerPoint.subtract(viewHalf).multiplyBy(1 - 1 / scale),\r\n \t\t newCenter = this.containerPointToLatLng(viewHalf.add(centerOffset));\r\n\r\n \t\treturn this.setView(newCenter, zoom, {zoom: options});\r\n \t},\r\n\r\n \t_getBoundsCenterZoom: function (bounds, options) {\r\n\r\n \t\toptions = options || {};\r\n \t\tbounds = bounds.getBounds ? bounds.getBounds() : toLatLngBounds(bounds);\r\n\r\n \t\tvar paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),\r\n \t\t paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),\r\n\r\n \t\t zoom = this.getBoundsZoom(bounds, false, paddingTL.add(paddingBR));\r\n\r\n \t\tzoom = (typeof options.maxZoom === 'number') ? Math.min(options.maxZoom, zoom) : zoom;\r\n\r\n \t\tif (zoom === Infinity) {\r\n \t\t\treturn {\r\n \t\t\t\tcenter: bounds.getCenter(),\r\n \t\t\t\tzoom: zoom\r\n \t\t\t};\r\n \t\t}\r\n\r\n \t\tvar paddingOffset = paddingBR.subtract(paddingTL).divideBy(2),\r\n\r\n \t\t swPoint = this.project(bounds.getSouthWest(), zoom),\r\n \t\t nePoint = this.project(bounds.getNorthEast(), zoom),\r\n \t\t center = this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset), zoom);\r\n\r\n \t\treturn {\r\n \t\t\tcenter: center,\r\n \t\t\tzoom: zoom\r\n \t\t};\r\n \t},\r\n\r\n \t// @method fitBounds(bounds: LatLngBounds, options?: fitBounds options): this\r\n \t// Sets a map view that contains the given geographical bounds with the\r\n \t// maximum zoom level possible.\r\n \tfitBounds: function (bounds, options) {\r\n\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tif (!bounds.isValid()) {\r\n \t\t\tthrow new Error('Bounds are not valid.');\r\n \t\t}\r\n\r\n \t\tvar target = this._getBoundsCenterZoom(bounds, options);\r\n \t\treturn this.setView(target.center, target.zoom, options);\r\n \t},\r\n\r\n \t// @method fitWorld(options?: fitBounds options): this\r\n \t// Sets a map view that mostly contains the whole world with the maximum\r\n \t// zoom level possible.\r\n \tfitWorld: function (options) {\r\n \t\treturn this.fitBounds([[-90, -180], [90, 180]], options);\r\n \t},\r\n\r\n \t// @method panTo(latlng: LatLng, options?: Pan options): this\r\n \t// Pans the map to a given center.\r\n \tpanTo: function (center, options) { // (LatLng)\r\n \t\treturn this.setView(center, this._zoom, {pan: options});\r\n \t},\r\n\r\n \t// @method panBy(offset: Point, options?: Pan options): this\r\n \t// Pans the map by a given number of pixels (animated).\r\n \tpanBy: function (offset, options) {\r\n \t\toffset = toPoint(offset).round();\r\n \t\toptions = options || {};\r\n\r\n \t\tif (!offset.x && !offset.y) {\r\n \t\t\treturn this.fire('moveend');\r\n \t\t}\r\n \t\t// If we pan too far, Chrome gets issues with tiles\r\n \t\t// and makes them disappear or appear in the wrong place (slightly offset) #2602\r\n \t\tif (options.animate !== true && !this.getSize().contains(offset)) {\r\n \t\t\tthis._resetView(this.unproject(this.project(this.getCenter()).add(offset)), this.getZoom());\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tif (!this._panAnim) {\r\n \t\t\tthis._panAnim = new PosAnimation();\r\n\r\n \t\t\tthis._panAnim.on({\r\n \t\t\t\t'step': this._onPanTransitionStep,\r\n \t\t\t\t'end': this._onPanTransitionEnd\r\n \t\t\t}, this);\r\n \t\t}\r\n\r\n \t\t// don't fire movestart if animating inertia\r\n \t\tif (!options.noMoveStart) {\r\n \t\t\tthis.fire('movestart');\r\n \t\t}\r\n\r\n \t\t// animate pan unless animate: false specified\r\n \t\tif (options.animate !== false) {\r\n \t\t\taddClass(this._mapPane, 'leaflet-pan-anim');\r\n\r\n \t\t\tvar newPos = this._getMapPanePos().subtract(offset).round();\r\n \t\t\tthis._panAnim.run(this._mapPane, newPos, options.duration || 0.25, options.easeLinearity);\r\n \t\t} else {\r\n \t\t\tthis._rawPanBy(offset);\r\n \t\t\tthis.fire('move').fire('moveend');\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method flyTo(latlng: LatLng, zoom?: Number, options?: Zoom/pan options): this\r\n \t// Sets the view of the map (geographical center and zoom) performing a smooth\r\n \t// pan-zoom animation.\r\n \tflyTo: function (targetCenter, targetZoom, options) {\r\n\r\n \t\toptions = options || {};\r\n \t\tif (options.animate === false || !Browser.any3d) {\r\n \t\t\treturn this.setView(targetCenter, targetZoom, options);\r\n \t\t}\r\n\r\n \t\tthis._stop();\r\n\r\n \t\tvar from = this.project(this.getCenter()),\r\n \t\t to = this.project(targetCenter),\r\n \t\t size = this.getSize(),\r\n \t\t startZoom = this._zoom;\r\n\r\n \t\ttargetCenter = toLatLng(targetCenter);\r\n \t\ttargetZoom = targetZoom === undefined ? startZoom : targetZoom;\r\n\r\n \t\tvar w0 = Math.max(size.x, size.y),\r\n \t\t w1 = w0 * this.getZoomScale(startZoom, targetZoom),\r\n \t\t u1 = (to.distanceTo(from)) || 1,\r\n \t\t rho = 1.42,\r\n \t\t rho2 = rho * rho;\r\n\r\n \t\tfunction r(i) {\r\n \t\t\tvar s1 = i ? -1 : 1,\r\n \t\t\t s2 = i ? w1 : w0,\r\n \t\t\t t1 = w1 * w1 - w0 * w0 + s1 * rho2 * rho2 * u1 * u1,\r\n \t\t\t b1 = 2 * s2 * rho2 * u1,\r\n \t\t\t b = t1 / b1,\r\n \t\t\t sq = Math.sqrt(b * b + 1) - b;\r\n\r\n \t\t\t // workaround for floating point precision bug when sq = 0, log = -Infinite,\r\n \t\t\t // thus triggering an infinite loop in flyTo\r\n \t\t\t var log = sq < 0.000000001 ? -18 : Math.log(sq);\r\n\r\n \t\t\treturn log;\r\n \t\t}\r\n\r\n \t\tfunction sinh(n) { return (Math.exp(n) - Math.exp(-n)) / 2; }\r\n \t\tfunction cosh(n) { return (Math.exp(n) + Math.exp(-n)) / 2; }\r\n \t\tfunction tanh(n) { return sinh(n) / cosh(n); }\r\n\r\n \t\tvar r0 = r(0);\r\n\r\n \t\tfunction w(s) { return w0 * (cosh(r0) / cosh(r0 + rho * s)); }\r\n \t\tfunction u(s) { return w0 * (cosh(r0) * tanh(r0 + rho * s) - sinh(r0)) / rho2; }\r\n\r\n \t\tfunction easeOut(t) { return 1 - Math.pow(1 - t, 1.5); }\r\n\r\n \t\tvar start = Date.now(),\r\n \t\t S = (r(1) - r0) / rho,\r\n \t\t duration = options.duration ? 1000 * options.duration : 1000 * S * 0.8;\r\n\r\n \t\tfunction frame() {\r\n \t\t\tvar t = (Date.now() - start) / duration,\r\n \t\t\t s = easeOut(t) * S;\r\n\r\n \t\t\tif (t <= 1) {\r\n \t\t\t\tthis._flyToFrame = requestAnimFrame(frame, this);\r\n\r\n \t\t\t\tthis._move(\r\n \t\t\t\t\tthis.unproject(from.add(to.subtract(from).multiplyBy(u(s) / u1)), startZoom),\r\n \t\t\t\t\tthis.getScaleZoom(w0 / w(s), startZoom),\r\n \t\t\t\t\t{flyTo: true});\r\n\r\n \t\t\t} else {\r\n \t\t\t\tthis\r\n \t\t\t\t\t._move(targetCenter, targetZoom)\r\n \t\t\t\t\t._moveEnd(true);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tthis._moveStart(true, options.noMoveStart);\r\n\r\n \t\tframe.call(this);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method flyToBounds(bounds: LatLngBounds, options?: fitBounds options): this\r\n \t// Sets the view of the map with a smooth animation like [`flyTo`](#map-flyto),\r\n \t// but takes a bounds parameter like [`fitBounds`](#map-fitbounds).\r\n \tflyToBounds: function (bounds, options) {\r\n \t\tvar target = this._getBoundsCenterZoom(bounds, options);\r\n \t\treturn this.flyTo(target.center, target.zoom, options);\r\n \t},\r\n\r\n \t// @method setMaxBounds(bounds: LatLngBounds): this\r\n \t// Restricts the map view to the given bounds (see the [maxBounds](#map-maxbounds) option).\r\n \tsetMaxBounds: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tif (this.listens('moveend', this._panInsideMaxBounds)) {\r\n \t\t\tthis.off('moveend', this._panInsideMaxBounds);\r\n \t\t}\r\n\r\n \t\tif (!bounds.isValid()) {\r\n \t\t\tthis.options.maxBounds = null;\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tthis.options.maxBounds = bounds;\r\n\r\n \t\tif (this._loaded) {\r\n \t\t\tthis._panInsideMaxBounds();\r\n \t\t}\r\n\r\n \t\treturn this.on('moveend', this._panInsideMaxBounds);\r\n \t},\r\n\r\n \t// @method setMinZoom(zoom: Number): this\r\n \t// Sets the lower limit for the available zoom levels (see the [minZoom](#map-minzoom) option).\r\n \tsetMinZoom: function (zoom) {\r\n \t\tvar oldZoom = this.options.minZoom;\r\n \t\tthis.options.minZoom = zoom;\r\n\r\n \t\tif (this._loaded && oldZoom !== zoom) {\r\n \t\t\tthis.fire('zoomlevelschange');\r\n\r\n \t\t\tif (this.getZoom() < this.options.minZoom) {\r\n \t\t\t\treturn this.setZoom(zoom);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setMaxZoom(zoom: Number): this\r\n \t// Sets the upper limit for the available zoom levels (see the [maxZoom](#map-maxzoom) option).\r\n \tsetMaxZoom: function (zoom) {\r\n \t\tvar oldZoom = this.options.maxZoom;\r\n \t\tthis.options.maxZoom = zoom;\r\n\r\n \t\tif (this._loaded && oldZoom !== zoom) {\r\n \t\t\tthis.fire('zoomlevelschange');\r\n\r\n \t\t\tif (this.getZoom() > this.options.maxZoom) {\r\n \t\t\t\treturn this.setZoom(zoom);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method panInsideBounds(bounds: LatLngBounds, options?: Pan options): this\r\n \t// Pans the map to the closest view that would lie inside the given bounds (if it's not already), controlling the animation using the options specific, if any.\r\n \tpanInsideBounds: function (bounds, options) {\r\n \t\tthis._enforcingBounds = true;\r\n \t\tvar center = this.getCenter(),\r\n \t\t newCenter = this._limitCenter(center, this._zoom, toLatLngBounds(bounds));\r\n\r\n \t\tif (!center.equals(newCenter)) {\r\n \t\t\tthis.panTo(newCenter, options);\r\n \t\t}\r\n\r\n \t\tthis._enforcingBounds = false;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method panInside(latlng: LatLng, options?: padding options): this\r\n \t// Pans the map the minimum amount to make the `latlng` visible. Use\r\n \t// padding options to fit the display to more restricted bounds.\r\n \t// If `latlng` is already within the (optionally padded) display bounds,\r\n \t// the map will not be panned.\r\n \tpanInside: function (latlng, options) {\r\n \t\toptions = options || {};\r\n\r\n \t\tvar paddingTL = toPoint(options.paddingTopLeft || options.padding || [0, 0]),\r\n \t\t paddingBR = toPoint(options.paddingBottomRight || options.padding || [0, 0]),\r\n \t\t pixelCenter = this.project(this.getCenter()),\r\n \t\t pixelPoint = this.project(latlng),\r\n \t\t pixelBounds = this.getPixelBounds(),\r\n \t\t paddedBounds = toBounds([pixelBounds.min.add(paddingTL), pixelBounds.max.subtract(paddingBR)]),\r\n \t\t paddedSize = paddedBounds.getSize();\r\n\r\n \t\tif (!paddedBounds.contains(pixelPoint)) {\r\n \t\t\tthis._enforcingBounds = true;\r\n \t\t\tvar centerOffset = pixelPoint.subtract(paddedBounds.getCenter());\r\n \t\t\tvar offset = paddedBounds.extend(pixelPoint).getSize().subtract(paddedSize);\r\n \t\t\tpixelCenter.x += centerOffset.x < 0 ? -offset.x : offset.x;\r\n \t\t\tpixelCenter.y += centerOffset.y < 0 ? -offset.y : offset.y;\r\n \t\t\tthis.panTo(this.unproject(pixelCenter), options);\r\n \t\t\tthis._enforcingBounds = false;\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method invalidateSize(options: Zoom/pan options): this\r\n \t// Checks if the map container size changed and updates the map if so —\r\n \t// call it after you've changed the map size dynamically, also animating\r\n \t// pan by default. If `options.pan` is `false`, panning will not occur.\r\n \t// If `options.debounceMoveend` is `true`, it will delay `moveend` event so\r\n \t// that it doesn't happen often even if the method is called many\r\n \t// times in a row.\r\n\r\n \t// @alternative\r\n \t// @method invalidateSize(animate: Boolean): this\r\n \t// Checks if the map container size changed and updates the map if so —\r\n \t// call it after you've changed the map size dynamically, also animating\r\n \t// pan by default.\r\n \tinvalidateSize: function (options) {\r\n \t\tif (!this._loaded) { return this; }\r\n\r\n \t\toptions = extend({\r\n \t\t\tanimate: false,\r\n \t\t\tpan: true\r\n \t\t}, options === true ? {animate: true} : options);\r\n\r\n \t\tvar oldSize = this.getSize();\r\n \t\tthis._sizeChanged = true;\r\n \t\tthis._lastCenter = null;\r\n\r\n \t\tvar newSize = this.getSize(),\r\n \t\t oldCenter = oldSize.divideBy(2).round(),\r\n \t\t newCenter = newSize.divideBy(2).round(),\r\n \t\t offset = oldCenter.subtract(newCenter);\r\n\r\n \t\tif (!offset.x && !offset.y) { return this; }\r\n\r\n \t\tif (options.animate && options.pan) {\r\n \t\t\tthis.panBy(offset);\r\n\r\n \t\t} else {\r\n \t\t\tif (options.pan) {\r\n \t\t\t\tthis._rawPanBy(offset);\r\n \t\t\t}\r\n\r\n \t\t\tthis.fire('move');\r\n\r\n \t\t\tif (options.debounceMoveend) {\r\n \t\t\t\tclearTimeout(this._sizeTimer);\r\n \t\t\t\tthis._sizeTimer = setTimeout(bind(this.fire, this, 'moveend'), 200);\r\n \t\t\t} else {\r\n \t\t\t\tthis.fire('moveend');\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// @section Map state change events\r\n \t\t// @event resize: ResizeEvent\r\n \t\t// Fired when the map is resized.\r\n \t\treturn this.fire('resize', {\r\n \t\t\toldSize: oldSize,\r\n \t\t\tnewSize: newSize\r\n \t\t});\r\n \t},\r\n\r\n \t// @section Methods for modifying map state\r\n \t// @method stop(): this\r\n \t// Stops the currently running `panTo` or `flyTo` animation, if any.\r\n \tstop: function () {\r\n \t\tthis.setZoom(this._limitZoom(this._zoom));\r\n \t\tif (!this.options.zoomSnap) {\r\n \t\t\tthis.fire('viewreset');\r\n \t\t}\r\n \t\treturn this._stop();\r\n \t},\r\n\r\n \t// @section Geolocation methods\r\n \t// @method locate(options?: Locate options): this\r\n \t// Tries to locate the user using the Geolocation API, firing a [`locationfound`](#map-locationfound)\r\n \t// event with location data on success or a [`locationerror`](#map-locationerror) event on failure,\r\n \t// and optionally sets the map view to the user's location with respect to\r\n \t// detection accuracy (or to the world view if geolocation failed).\r\n \t// Note that, if your page doesn't use HTTPS, this method will fail in\r\n \t// modern browsers ([Chrome 50 and newer](https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins))\r\n \t// See `Locate options` for more details.\r\n \tlocate: function (options) {\r\n\r\n \t\toptions = this._locateOptions = extend({\r\n \t\t\ttimeout: 10000,\r\n \t\t\twatch: false\r\n \t\t\t// setView: false\r\n \t\t\t// maxZoom: <Number>\r\n \t\t\t// maximumAge: 0\r\n \t\t\t// enableHighAccuracy: false\r\n \t\t}, options);\r\n\r\n \t\tif (!('geolocation' in navigator)) {\r\n \t\t\tthis._handleGeolocationError({\r\n \t\t\t\tcode: 0,\r\n \t\t\t\tmessage: 'Geolocation not supported.'\r\n \t\t\t});\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tvar onResponse = bind(this._handleGeolocationResponse, this),\r\n \t\t onError = bind(this._handleGeolocationError, this);\r\n\r\n \t\tif (options.watch) {\r\n \t\t\tthis._locationWatchId =\r\n \t\t\t navigator.geolocation.watchPosition(onResponse, onError, options);\r\n \t\t} else {\r\n \t\t\tnavigator.geolocation.getCurrentPosition(onResponse, onError, options);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method stopLocate(): this\r\n \t// Stops watching location previously initiated by `map.locate({watch: true})`\r\n \t// and aborts resetting the map view if map.locate was called with\r\n \t// `{setView: true}`.\r\n \tstopLocate: function () {\r\n \t\tif (navigator.geolocation && navigator.geolocation.clearWatch) {\r\n \t\t\tnavigator.geolocation.clearWatch(this._locationWatchId);\r\n \t\t}\r\n \t\tif (this._locateOptions) {\r\n \t\t\tthis._locateOptions.setView = false;\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_handleGeolocationError: function (error) {\r\n \t\tif (!this._container._leaflet_id) { return; }\r\n\r\n \t\tvar c = error.code,\r\n \t\t message = error.message ||\r\n \t\t (c === 1 ? 'permission denied' :\r\n \t\t (c === 2 ? 'position unavailable' : 'timeout'));\r\n\r\n \t\tif (this._locateOptions.setView && !this._loaded) {\r\n \t\t\tthis.fitWorld();\r\n \t\t}\r\n\r\n \t\t// @section Location events\r\n \t\t// @event locationerror: ErrorEvent\r\n \t\t// Fired when geolocation (using the [`locate`](#map-locate) method) failed.\r\n \t\tthis.fire('locationerror', {\r\n \t\t\tcode: c,\r\n \t\t\tmessage: 'Geolocation error: ' + message + '.'\r\n \t\t});\r\n \t},\r\n\r\n \t_handleGeolocationResponse: function (pos) {\r\n \t\tif (!this._container._leaflet_id) { return; }\r\n\r\n \t\tvar lat = pos.coords.latitude,\r\n \t\t lng = pos.coords.longitude,\r\n \t\t latlng = new LatLng(lat, lng),\r\n \t\t bounds = latlng.toBounds(pos.coords.accuracy * 2),\r\n \t\t options = this._locateOptions;\r\n\r\n \t\tif (options.setView) {\r\n \t\t\tvar zoom = this.getBoundsZoom(bounds);\r\n \t\t\tthis.setView(latlng, options.maxZoom ? Math.min(zoom, options.maxZoom) : zoom);\r\n \t\t}\r\n\r\n \t\tvar data = {\r\n \t\t\tlatlng: latlng,\r\n \t\t\tbounds: bounds,\r\n \t\t\ttimestamp: pos.timestamp\r\n \t\t};\r\n\r\n \t\tfor (var i in pos.coords) {\r\n \t\t\tif (typeof pos.coords[i] === 'number') {\r\n \t\t\t\tdata[i] = pos.coords[i];\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// @event locationfound: LocationEvent\r\n \t\t// Fired when geolocation (using the [`locate`](#map-locate) method)\r\n \t\t// went successfully.\r\n \t\tthis.fire('locationfound', data);\r\n \t},\r\n\r\n \t// TODO Appropriate docs section?\r\n \t// @section Other Methods\r\n \t// @method addHandler(name: String, HandlerClass: Function): this\r\n \t// Adds a new `Handler` to the map, given its name and constructor function.\r\n \taddHandler: function (name, HandlerClass) {\r\n \t\tif (!HandlerClass) { return this; }\r\n\r\n \t\tvar handler = this[name] = new HandlerClass(this);\r\n\r\n \t\tthis._handlers.push(handler);\r\n\r\n \t\tif (this.options[name]) {\r\n \t\t\thandler.enable();\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method remove(): this\r\n \t// Destroys the map and clears all related event listeners.\r\n \tremove: function () {\r\n\r\n \t\tthis._initEvents(true);\r\n \t\tif (this.options.maxBounds) { this.off('moveend', this._panInsideMaxBounds); }\r\n\r\n \t\tif (this._containerId !== this._container._leaflet_id) {\r\n \t\t\tthrow new Error('Map container is being reused by another instance');\r\n \t\t}\r\n\r\n \t\ttry {\r\n \t\t\t// throws error in IE6-8\r\n \t\t\tdelete this._container._leaflet_id;\r\n \t\t\tdelete this._containerId;\r\n \t\t} catch (e) {\r\n \t\t\t/*eslint-disable */\r\n \t\t\tthis._container._leaflet_id = undefined;\r\n \t\t\t/* eslint-enable */\r\n \t\t\tthis._containerId = undefined;\r\n \t\t}\r\n\r\n \t\tif (this._locationWatchId !== undefined) {\r\n \t\t\tthis.stopLocate();\r\n \t\t}\r\n\r\n \t\tthis._stop();\r\n\r\n \t\tremove(this._mapPane);\r\n\r\n \t\tif (this._clearControlPos) {\r\n \t\t\tthis._clearControlPos();\r\n \t\t}\r\n \t\tif (this._resizeRequest) {\r\n \t\t\tcancelAnimFrame(this._resizeRequest);\r\n \t\t\tthis._resizeRequest = null;\r\n \t\t}\r\n\r\n \t\tthis._clearHandlers();\r\n\r\n \t\tif (this._loaded) {\r\n \t\t\t// @section Map state change events\r\n \t\t\t// @event unload: Event\r\n \t\t\t// Fired when the map is destroyed with [remove](#map-remove) method.\r\n \t\t\tthis.fire('unload');\r\n \t\t}\r\n\r\n \t\tvar i;\r\n \t\tfor (i in this._layers) {\r\n \t\t\tthis._layers[i].remove();\r\n \t\t}\r\n \t\tfor (i in this._panes) {\r\n \t\t\tremove(this._panes[i]);\r\n \t\t}\r\n\r\n \t\tthis._layers = [];\r\n \t\tthis._panes = [];\r\n \t\tdelete this._mapPane;\r\n \t\tdelete this._renderer;\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @section Other Methods\r\n \t// @method createPane(name: String, container?: HTMLElement): HTMLElement\r\n \t// Creates a new [map pane](#map-pane) with the given name if it doesn't exist already,\r\n \t// then returns it. The pane is created as a child of `container`, or\r\n \t// as a child of the main map pane if not set.\r\n \tcreatePane: function (name, container) {\r\n \t\tvar className = 'leaflet-pane' + (name ? ' leaflet-' + name.replace('Pane', '') + '-pane' : ''),\r\n \t\t pane = create$1('div', className, container || this._mapPane);\r\n\r\n \t\tif (name) {\r\n \t\t\tthis._panes[name] = pane;\r\n \t\t}\r\n \t\treturn pane;\r\n \t},\r\n\r\n \t// @section Methods for Getting Map State\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the geographical center of the map view\r\n \tgetCenter: function () {\r\n \t\tthis._checkIfLoaded();\r\n\r\n \t\tif (this._lastCenter && !this._moved()) {\r\n \t\t\treturn this._lastCenter.clone();\r\n \t\t}\r\n \t\treturn this.layerPointToLatLng(this._getCenterLayerPoint());\r\n \t},\r\n\r\n \t// @method getZoom(): Number\r\n \t// Returns the current zoom level of the map view\r\n \tgetZoom: function () {\r\n \t\treturn this._zoom;\r\n \t},\r\n\r\n \t// @method getBounds(): LatLngBounds\r\n \t// Returns the geographical bounds visible in the current map view\r\n \tgetBounds: function () {\r\n \t\tvar bounds = this.getPixelBounds(),\r\n \t\t sw = this.unproject(bounds.getBottomLeft()),\r\n \t\t ne = this.unproject(bounds.getTopRight());\r\n\r\n \t\treturn new LatLngBounds(sw, ne);\r\n \t},\r\n\r\n \t// @method getMinZoom(): Number\r\n \t// Returns the minimum zoom level of the map (if set in the `minZoom` option of the map or of any layers), or `0` by default.\r\n \tgetMinZoom: function () {\r\n \t\treturn this.options.minZoom === undefined ? this._layersMinZoom || 0 : this.options.minZoom;\r\n \t},\r\n\r\n \t// @method getMaxZoom(): Number\r\n \t// Returns the maximum zoom level of the map (if set in the `maxZoom` option of the map or of any layers).\r\n \tgetMaxZoom: function () {\r\n \t\treturn this.options.maxZoom === undefined ?\r\n \t\t\t(this._layersMaxZoom === undefined ? Infinity : this._layersMaxZoom) :\r\n \t\t\tthis.options.maxZoom;\r\n \t},\r\n\r\n \t// @method getBoundsZoom(bounds: LatLngBounds, inside?: Boolean, padding?: Point): Number\r\n \t// Returns the maximum zoom level on which the given bounds fit to the map\r\n \t// view in its entirety. If `inside` (optional) is set to `true`, the method\r\n \t// instead returns the minimum zoom level on which the map view fits into\r\n \t// the given bounds in its entirety.\r\n \tgetBoundsZoom: function (bounds, inside, padding) { // (LatLngBounds[, Boolean, Point]) -> Number\r\n \t\tbounds = toLatLngBounds(bounds);\r\n \t\tpadding = toPoint(padding || [0, 0]);\r\n\r\n \t\tvar zoom = this.getZoom() || 0,\r\n \t\t min = this.getMinZoom(),\r\n \t\t max = this.getMaxZoom(),\r\n \t\t nw = bounds.getNorthWest(),\r\n \t\t se = bounds.getSouthEast(),\r\n \t\t size = this.getSize().subtract(padding),\r\n \t\t boundsSize = toBounds(this.project(se, zoom), this.project(nw, zoom)).getSize(),\r\n \t\t snap = Browser.any3d ? this.options.zoomSnap : 1,\r\n \t\t scalex = size.x / boundsSize.x,\r\n \t\t scaley = size.y / boundsSize.y,\r\n \t\t scale = inside ? Math.max(scalex, scaley) : Math.min(scalex, scaley);\r\n\r\n \t\tzoom = this.getScaleZoom(scale, zoom);\r\n\r\n \t\tif (snap) {\r\n \t\t\tzoom = Math.round(zoom / (snap / 100)) * (snap / 100); // don't jump if within 1% of a snap level\r\n \t\t\tzoom = inside ? Math.ceil(zoom / snap) * snap : Math.floor(zoom / snap) * snap;\r\n \t\t}\r\n\r\n \t\treturn Math.max(min, Math.min(max, zoom));\r\n \t},\r\n\r\n \t// @method getSize(): Point\r\n \t// Returns the current size of the map container (in pixels).\r\n \tgetSize: function () {\r\n \t\tif (!this._size || this._sizeChanged) {\r\n \t\t\tthis._size = new Point(\r\n \t\t\t\tthis._container.clientWidth || 0,\r\n \t\t\t\tthis._container.clientHeight || 0);\r\n\r\n \t\t\tthis._sizeChanged = false;\r\n \t\t}\r\n \t\treturn this._size.clone();\r\n \t},\r\n\r\n \t// @method getPixelBounds(): Bounds\r\n \t// Returns the bounds of the current map view in projected pixel\r\n \t// coordinates (sometimes useful in layer and overlay implementations).\r\n \tgetPixelBounds: function (center, zoom) {\r\n \t\tvar topLeftPoint = this._getTopLeftPoint(center, zoom);\r\n \t\treturn new Bounds(topLeftPoint, topLeftPoint.add(this.getSize()));\r\n \t},\r\n\r\n \t// TODO: Check semantics - isn't the pixel origin the 0,0 coord relative to\r\n \t// the map pane? \"left point of the map layer\" can be confusing, specially\r\n \t// since there can be negative offsets.\r\n \t// @method getPixelOrigin(): Point\r\n \t// Returns the projected pixel coordinates of the top left point of\r\n \t// the map layer (useful in custom layer and overlay implementations).\r\n \tgetPixelOrigin: function () {\r\n \t\tthis._checkIfLoaded();\r\n \t\treturn this._pixelOrigin;\r\n \t},\r\n\r\n \t// @method getPixelWorldBounds(zoom?: Number): Bounds\r\n \t// Returns the world's bounds in pixel coordinates for zoom level `zoom`.\r\n \t// If `zoom` is omitted, the map's current zoom level is used.\r\n \tgetPixelWorldBounds: function (zoom) {\r\n \t\treturn this.options.crs.getProjectedBounds(zoom === undefined ? this.getZoom() : zoom);\r\n \t},\r\n\r\n \t// @section Other Methods\r\n\r\n \t// @method getPane(pane: String|HTMLElement): HTMLElement\r\n \t// Returns a [map pane](#map-pane), given its name or its HTML element (its identity).\r\n \tgetPane: function (pane) {\r\n \t\treturn typeof pane === 'string' ? this._panes[pane] : pane;\r\n \t},\r\n\r\n \t// @method getPanes(): Object\r\n \t// Returns a plain object containing the names of all [panes](#map-pane) as keys and\r\n \t// the panes as values.\r\n \tgetPanes: function () {\r\n \t\treturn this._panes;\r\n \t},\r\n\r\n \t// @method getContainer: HTMLElement\r\n \t// Returns the HTML element that contains the map.\r\n \tgetContainer: function () {\r\n \t\treturn this._container;\r\n \t},\r\n\r\n\r\n \t// @section Conversion Methods\r\n\r\n \t// @method getZoomScale(toZoom: Number, fromZoom: Number): Number\r\n \t// Returns the scale factor to be applied to a map transition from zoom level\r\n \t// `fromZoom` to `toZoom`. Used internally to help with zoom animations.\r\n \tgetZoomScale: function (toZoom, fromZoom) {\r\n \t\t// TODO replace with universal implementation after refactoring projections\r\n \t\tvar crs = this.options.crs;\r\n \t\tfromZoom = fromZoom === undefined ? this._zoom : fromZoom;\r\n \t\treturn crs.scale(toZoom) / crs.scale(fromZoom);\r\n \t},\r\n\r\n \t// @method getScaleZoom(scale: Number, fromZoom: Number): Number\r\n \t// Returns the zoom level that the map would end up at, if it is at `fromZoom`\r\n \t// level and everything is scaled by a factor of `scale`. Inverse of\r\n \t// [`getZoomScale`](#map-getZoomScale).\r\n \tgetScaleZoom: function (scale, fromZoom) {\r\n \t\tvar crs = this.options.crs;\r\n \t\tfromZoom = fromZoom === undefined ? this._zoom : fromZoom;\r\n \t\tvar zoom = crs.zoom(scale * crs.scale(fromZoom));\r\n \t\treturn isNaN(zoom) ? Infinity : zoom;\r\n \t},\r\n\r\n \t// @method project(latlng: LatLng, zoom: Number): Point\r\n \t// Projects a geographical coordinate `LatLng` according to the projection\r\n \t// of the map's CRS, then scales it according to `zoom` and the CRS's\r\n \t// `Transformation`. The result is pixel coordinate relative to\r\n \t// the CRS origin.\r\n \tproject: function (latlng, zoom) {\r\n \t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n \t\treturn this.options.crs.latLngToPoint(toLatLng(latlng), zoom);\r\n \t},\r\n\r\n \t// @method unproject(point: Point, zoom: Number): LatLng\r\n \t// Inverse of [`project`](#map-project).\r\n \tunproject: function (point, zoom) {\r\n \t\tzoom = zoom === undefined ? this._zoom : zoom;\r\n \t\treturn this.options.crs.pointToLatLng(toPoint(point), zoom);\r\n \t},\r\n\r\n \t// @method layerPointToLatLng(point: Point): LatLng\r\n \t// Given a pixel coordinate relative to the [origin pixel](#map-getpixelorigin),\r\n \t// returns the corresponding geographical coordinate (for the current zoom level).\r\n \tlayerPointToLatLng: function (point) {\r\n \t\tvar projectedPoint = toPoint(point).add(this.getPixelOrigin());\r\n \t\treturn this.unproject(projectedPoint);\r\n \t},\r\n\r\n \t// @method latLngToLayerPoint(latlng: LatLng): Point\r\n \t// Given a geographical coordinate, returns the corresponding pixel coordinate\r\n \t// relative to the [origin pixel](#map-getpixelorigin).\r\n \tlatLngToLayerPoint: function (latlng) {\r\n \t\tvar projectedPoint = this.project(toLatLng(latlng))._round();\r\n \t\treturn projectedPoint._subtract(this.getPixelOrigin());\r\n \t},\r\n\r\n \t// @method wrapLatLng(latlng: LatLng): LatLng\r\n \t// Returns a `LatLng` where `lat` and `lng` has been wrapped according to the\r\n \t// map's CRS's `wrapLat` and `wrapLng` properties, if they are outside the\r\n \t// CRS's bounds.\r\n \t// By default this means longitude is wrapped around the dateline so its\r\n \t// value is between -180 and +180 degrees.\r\n \twrapLatLng: function (latlng) {\r\n \t\treturn this.options.crs.wrapLatLng(toLatLng(latlng));\r\n \t},\r\n\r\n \t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n \t// Returns a `LatLngBounds` with the same size as the given one, ensuring that\r\n \t// its center is within the CRS's bounds.\r\n \t// By default this means the center longitude is wrapped around the dateline so its\r\n \t// value is between -180 and +180 degrees, and the majority of the bounds\r\n \t// overlaps the CRS's bounds.\r\n \twrapLatLngBounds: function (latlng) {\r\n \t\treturn this.options.crs.wrapLatLngBounds(toLatLngBounds(latlng));\r\n \t},\r\n\r\n \t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n \t// Returns the distance between two geographical coordinates according to\r\n \t// the map's CRS. By default this measures distance in meters.\r\n \tdistance: function (latlng1, latlng2) {\r\n \t\treturn this.options.crs.distance(toLatLng(latlng1), toLatLng(latlng2));\r\n \t},\r\n\r\n \t// @method containerPointToLayerPoint(point: Point): Point\r\n \t// Given a pixel coordinate relative to the map container, returns the corresponding\r\n \t// pixel coordinate relative to the [origin pixel](#map-getpixelorigin).\r\n \tcontainerPointToLayerPoint: function (point) { // (Point)\r\n \t\treturn toPoint(point).subtract(this._getMapPanePos());\r\n \t},\r\n\r\n \t// @method layerPointToContainerPoint(point: Point): Point\r\n \t// Given a pixel coordinate relative to the [origin pixel](#map-getpixelorigin),\r\n \t// returns the corresponding pixel coordinate relative to the map container.\r\n \tlayerPointToContainerPoint: function (point) { // (Point)\r\n \t\treturn toPoint(point).add(this._getMapPanePos());\r\n \t},\r\n\r\n \t// @method containerPointToLatLng(point: Point): LatLng\r\n \t// Given a pixel coordinate relative to the map container, returns\r\n \t// the corresponding geographical coordinate (for the current zoom level).\r\n \tcontainerPointToLatLng: function (point) {\r\n \t\tvar layerPoint = this.containerPointToLayerPoint(toPoint(point));\r\n \t\treturn this.layerPointToLatLng(layerPoint);\r\n \t},\r\n\r\n \t// @method latLngToContainerPoint(latlng: LatLng): Point\r\n \t// Given a geographical coordinate, returns the corresponding pixel coordinate\r\n \t// relative to the map container.\r\n \tlatLngToContainerPoint: function (latlng) {\r\n \t\treturn this.layerPointToContainerPoint(this.latLngToLayerPoint(toLatLng(latlng)));\r\n \t},\r\n\r\n \t// @method mouseEventToContainerPoint(ev: MouseEvent): Point\r\n \t// Given a MouseEvent object, returns the pixel coordinate relative to the\r\n \t// map container where the event took place.\r\n \tmouseEventToContainerPoint: function (e) {\r\n \t\treturn getMousePosition(e, this._container);\r\n \t},\r\n\r\n \t// @method mouseEventToLayerPoint(ev: MouseEvent): Point\r\n \t// Given a MouseEvent object, returns the pixel coordinate relative to\r\n \t// the [origin pixel](#map-getpixelorigin) where the event took place.\r\n \tmouseEventToLayerPoint: function (e) {\r\n \t\treturn this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e));\r\n \t},\r\n\r\n \t// @method mouseEventToLatLng(ev: MouseEvent): LatLng\r\n \t// Given a MouseEvent object, returns geographical coordinate where the\r\n \t// event took place.\r\n \tmouseEventToLatLng: function (e) { // (MouseEvent)\r\n \t\treturn this.layerPointToLatLng(this.mouseEventToLayerPoint(e));\r\n \t},\r\n\r\n\r\n \t// map initialization methods\r\n\r\n \t_initContainer: function (id) {\r\n \t\tvar container = this._container = get(id);\r\n\r\n \t\tif (!container) {\r\n \t\t\tthrow new Error('Map container not found.');\r\n \t\t} else if (container._leaflet_id) {\r\n \t\t\tthrow new Error('Map container is already initialized.');\r\n \t\t}\r\n\r\n \t\ton(container, 'scroll', this._onScroll, this);\r\n \t\tthis._containerId = stamp(container);\r\n \t},\r\n\r\n \t_initLayout: function () {\r\n \t\tvar container = this._container;\r\n\r\n \t\tthis._fadeAnimated = this.options.fadeAnimation && Browser.any3d;\r\n\r\n \t\taddClass(container, 'leaflet-container' +\r\n \t\t\t(Browser.touch ? ' leaflet-touch' : '') +\r\n \t\t\t(Browser.retina ? ' leaflet-retina' : '') +\r\n \t\t\t(Browser.ielt9 ? ' leaflet-oldie' : '') +\r\n \t\t\t(Browser.safari ? ' leaflet-safari' : '') +\r\n \t\t\t(this._fadeAnimated ? ' leaflet-fade-anim' : ''));\r\n\r\n \t\tvar position = getStyle(container, 'position');\r\n\r\n \t\tif (position !== 'absolute' && position !== 'relative' && position !== 'fixed' && position !== 'sticky') {\r\n \t\t\tcontainer.style.position = 'relative';\r\n \t\t}\r\n\r\n \t\tthis._initPanes();\r\n\r\n \t\tif (this._initControlPos) {\r\n \t\t\tthis._initControlPos();\r\n \t\t}\r\n \t},\r\n\r\n \t_initPanes: function () {\r\n \t\tvar panes = this._panes = {};\r\n \t\tthis._paneRenderers = {};\r\n\r\n \t\t// @section\r\n \t\t//\r\n \t\t// Panes are DOM elements used to control the ordering of layers on the map. You\r\n \t\t// can access panes with [`map.getPane`](#map-getpane) or\r\n \t\t// [`map.getPanes`](#map-getpanes) methods. New panes can be created with the\r\n \t\t// [`map.createPane`](#map-createpane) method.\r\n \t\t//\r\n \t\t// Every map has the following default panes that differ only in zIndex.\r\n \t\t//\r\n \t\t// @pane mapPane: HTMLElement = 'auto'\r\n \t\t// Pane that contains all other map panes\r\n\r\n \t\tthis._mapPane = this.createPane('mapPane', this._container);\r\n \t\tsetPosition(this._mapPane, new Point(0, 0));\r\n\r\n \t\t// @pane tilePane: HTMLElement = 200\r\n \t\t// Pane for `GridLayer`s and `TileLayer`s\r\n \t\tthis.createPane('tilePane');\r\n \t\t// @pane overlayPane: HTMLElement = 400\r\n \t\t// Pane for vectors (`Path`s, like `Polyline`s and `Polygon`s), `ImageOverlay`s and `VideoOverlay`s\r\n \t\tthis.createPane('overlayPane');\r\n \t\t// @pane shadowPane: HTMLElement = 500\r\n \t\t// Pane for overlay shadows (e.g. `Marker` shadows)\r\n \t\tthis.createPane('shadowPane');\r\n \t\t// @pane markerPane: HTMLElement = 600\r\n \t\t// Pane for `Icon`s of `Marker`s\r\n \t\tthis.createPane('markerPane');\r\n \t\t// @pane tooltipPane: HTMLElement = 650\r\n \t\t// Pane for `Tooltip`s.\r\n \t\tthis.createPane('tooltipPane');\r\n \t\t// @pane popupPane: HTMLElement = 700\r\n \t\t// Pane for `Popup`s.\r\n \t\tthis.createPane('popupPane');\r\n\r\n \t\tif (!this.options.markerZoomAnimation) {\r\n \t\t\taddClass(panes.markerPane, 'leaflet-zoom-hide');\r\n \t\t\taddClass(panes.shadowPane, 'leaflet-zoom-hide');\r\n \t\t}\r\n \t},\r\n\r\n\r\n \t// private methods that modify map state\r\n\r\n \t// @section Map state change events\r\n \t_resetView: function (center, zoom, noMoveStart) {\r\n \t\tsetPosition(this._mapPane, new Point(0, 0));\r\n\r\n \t\tvar loading = !this._loaded;\r\n \t\tthis._loaded = true;\r\n \t\tzoom = this._limitZoom(zoom);\r\n\r\n \t\tthis.fire('viewprereset');\r\n\r\n \t\tvar zoomChanged = this._zoom !== zoom;\r\n \t\tthis\r\n \t\t\t._moveStart(zoomChanged, noMoveStart)\r\n \t\t\t._move(center, zoom)\r\n \t\t\t._moveEnd(zoomChanged);\r\n\r\n \t\t// @event viewreset: Event\r\n \t\t// Fired when the map needs to redraw its content (this usually happens\r\n \t\t// on map zoom or load). Very useful for creating custom overlays.\r\n \t\tthis.fire('viewreset');\r\n\r\n \t\t// @event load: Event\r\n \t\t// Fired when the map is initialized (when its center and zoom are set\r\n \t\t// for the first time).\r\n \t\tif (loading) {\r\n \t\t\tthis.fire('load');\r\n \t\t}\r\n \t},\r\n\r\n \t_moveStart: function (zoomChanged, noMoveStart) {\r\n \t\t// @event zoomstart: Event\r\n \t\t// Fired when the map zoom is about to change (e.g. before zoom animation).\r\n \t\t// @event movestart: Event\r\n \t\t// Fired when the view of the map starts changing (e.g. user starts dragging the map).\r\n \t\tif (zoomChanged) {\r\n \t\t\tthis.fire('zoomstart');\r\n \t\t}\r\n \t\tif (!noMoveStart) {\r\n \t\t\tthis.fire('movestart');\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_move: function (center, zoom, data, supressEvent) {\r\n \t\tif (zoom === undefined) {\r\n \t\t\tzoom = this._zoom;\r\n \t\t}\r\n \t\tvar zoomChanged = this._zoom !== zoom;\r\n\r\n \t\tthis._zoom = zoom;\r\n \t\tthis._lastCenter = center;\r\n \t\tthis._pixelOrigin = this._getNewPixelOrigin(center);\r\n\r\n \t\tif (!supressEvent) {\r\n \t\t\t// @event zoom: Event\r\n \t\t\t// Fired repeatedly during any change in zoom level,\r\n \t\t\t// including zoom and fly animations.\r\n \t\t\tif (zoomChanged || (data && data.pinch)) {\t// Always fire 'zoom' if pinching because #3530\r\n \t\t\t\tthis.fire('zoom', data);\r\n \t\t\t}\r\n\r\n \t\t\t// @event move: Event\r\n \t\t\t// Fired repeatedly during any movement of the map,\r\n \t\t\t// including pan and fly animations.\r\n \t\t\tthis.fire('move', data);\r\n \t\t} else if (data && data.pinch) {\t// Always fire 'zoom' if pinching because #3530\r\n \t\t\tthis.fire('zoom', data);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_moveEnd: function (zoomChanged) {\r\n \t\t// @event zoomend: Event\r\n \t\t// Fired when the map zoom changed, after any animations.\r\n \t\tif (zoomChanged) {\r\n \t\t\tthis.fire('zoomend');\r\n \t\t}\r\n\r\n \t\t// @event moveend: Event\r\n \t\t// Fired when the center of the map stops changing\r\n \t\t// (e.g. user stopped dragging the map or after non-centered zoom).\r\n \t\treturn this.fire('moveend');\r\n \t},\r\n\r\n \t_stop: function () {\r\n \t\tcancelAnimFrame(this._flyToFrame);\r\n \t\tif (this._panAnim) {\r\n \t\t\tthis._panAnim.stop();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_rawPanBy: function (offset) {\r\n \t\tsetPosition(this._mapPane, this._getMapPanePos().subtract(offset));\r\n \t},\r\n\r\n \t_getZoomSpan: function () {\r\n \t\treturn this.getMaxZoom() - this.getMinZoom();\r\n \t},\r\n\r\n \t_panInsideMaxBounds: function () {\r\n \t\tif (!this._enforcingBounds) {\r\n \t\t\tthis.panInsideBounds(this.options.maxBounds);\r\n \t\t}\r\n \t},\r\n\r\n \t_checkIfLoaded: function () {\r\n \t\tif (!this._loaded) {\r\n \t\t\tthrow new Error('Set map center and zoom first.');\r\n \t\t}\r\n \t},\r\n\r\n \t// DOM event handling\r\n\r\n \t// @section Interaction events\r\n \t_initEvents: function (remove) {\r\n \t\tthis._targets = {};\r\n \t\tthis._targets[stamp(this._container)] = this;\r\n\r\n \t\tvar onOff = remove ? off : on;\r\n\r\n \t\t// @event click: MouseEvent\r\n \t\t// Fired when the user clicks (or taps) the map.\r\n \t\t// @event dblclick: MouseEvent\r\n \t\t// Fired when the user double-clicks (or double-taps) the map.\r\n \t\t// @event mousedown: MouseEvent\r\n \t\t// Fired when the user pushes the mouse button on the map.\r\n \t\t// @event mouseup: MouseEvent\r\n \t\t// Fired when the user releases the mouse button on the map.\r\n \t\t// @event mouseover: MouseEvent\r\n \t\t// Fired when the mouse enters the map.\r\n \t\t// @event mouseout: MouseEvent\r\n \t\t// Fired when the mouse leaves the map.\r\n \t\t// @event mousemove: MouseEvent\r\n \t\t// Fired while the mouse moves over the map.\r\n \t\t// @event contextmenu: MouseEvent\r\n \t\t// Fired when the user pushes the right mouse button on the map, prevents\r\n \t\t// default browser context menu from showing if there are listeners on\r\n \t\t// this event. Also fired on mobile when the user holds a single touch\r\n \t\t// for a second (also called long press).\r\n \t\t// @event keypress: KeyboardEvent\r\n \t\t// Fired when the user presses a key from the keyboard that produces a character value while the map is focused.\r\n \t\t// @event keydown: KeyboardEvent\r\n \t\t// Fired when the user presses a key from the keyboard while the map is focused. Unlike the `keypress` event,\r\n \t\t// the `keydown` event is fired for keys that produce a character value and for keys\r\n \t\t// that do not produce a character value.\r\n \t\t// @event keyup: KeyboardEvent\r\n \t\t// Fired when the user releases a key from the keyboard while the map is focused.\r\n \t\tonOff(this._container, 'click dblclick mousedown mouseup ' +\r\n \t\t\t'mouseover mouseout mousemove contextmenu keypress keydown keyup', this._handleDOMEvent, this);\r\n\r\n \t\tif (this.options.trackResize) {\r\n \t\t\tonOff(window, 'resize', this._onResize, this);\r\n \t\t}\r\n\r\n \t\tif (Browser.any3d && this.options.transform3DLimit) {\r\n \t\t\t(remove ? this.off : this.on).call(this, 'moveend', this._onMoveEnd);\r\n \t\t}\r\n \t},\r\n\r\n \t_onResize: function () {\r\n \t\tcancelAnimFrame(this._resizeRequest);\r\n \t\tthis._resizeRequest = requestAnimFrame(\r\n \t\t function () { this.invalidateSize({debounceMoveend: true}); }, this);\r\n \t},\r\n\r\n \t_onScroll: function () {\r\n \t\tthis._container.scrollTop = 0;\r\n \t\tthis._container.scrollLeft = 0;\r\n \t},\r\n\r\n \t_onMoveEnd: function () {\r\n \t\tvar pos = this._getMapPanePos();\r\n \t\tif (Math.max(Math.abs(pos.x), Math.abs(pos.y)) >= this.options.transform3DLimit) {\r\n \t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=1203873 but Webkit also have\r\n \t\t\t// a pixel offset on very high values, see: https://jsfiddle.net/dg6r5hhb/\r\n \t\t\tthis._resetView(this.getCenter(), this.getZoom());\r\n \t\t}\r\n \t},\r\n\r\n \t_findEventTargets: function (e, type) {\r\n \t\tvar targets = [],\r\n \t\t target,\r\n \t\t isHover = type === 'mouseout' || type === 'mouseover',\r\n \t\t src = e.target || e.srcElement,\r\n \t\t dragging = false;\r\n\r\n \t\twhile (src) {\r\n \t\t\ttarget = this._targets[stamp(src)];\r\n \t\t\tif (target && (type === 'click' || type === 'preclick') && this._draggableMoved(target)) {\r\n \t\t\t\t// Prevent firing click after you just dragged an object.\r\n \t\t\t\tdragging = true;\r\n \t\t\t\tbreak;\r\n \t\t\t}\r\n \t\t\tif (target && target.listens(type, true)) {\r\n \t\t\t\tif (isHover && !isExternalTarget(src, e)) { break; }\r\n \t\t\t\ttargets.push(target);\r\n \t\t\t\tif (isHover) { break; }\r\n \t\t\t}\r\n \t\t\tif (src === this._container) { break; }\r\n \t\t\tsrc = src.parentNode;\r\n \t\t}\r\n \t\tif (!targets.length && !dragging && !isHover && this.listens(type, true)) {\r\n \t\t\ttargets = [this];\r\n \t\t}\r\n \t\treturn targets;\r\n \t},\r\n\r\n \t_isClickDisabled: function (el) {\r\n \t\twhile (el && el !== this._container) {\r\n \t\t\tif (el['_leaflet_disable_click']) { return true; }\r\n \t\t\tel = el.parentNode;\r\n \t\t}\r\n \t},\r\n\r\n \t_handleDOMEvent: function (e) {\r\n \t\tvar el = (e.target || e.srcElement);\r\n \t\tif (!this._loaded || el['_leaflet_disable_events'] || e.type === 'click' && this._isClickDisabled(el)) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tvar type = e.type;\r\n\r\n \t\tif (type === 'mousedown') {\r\n \t\t\t// prevents outline when clicking on keyboard-focusable element\r\n \t\t\tpreventOutline(el);\r\n \t\t}\r\n\r\n \t\tthis._fireDOMEvent(e, type);\r\n \t},\r\n\r\n \t_mouseEvents: ['click', 'dblclick', 'mouseover', 'mouseout', 'contextmenu'],\r\n\r\n \t_fireDOMEvent: function (e, type, canvasTargets) {\r\n\r\n \t\tif (e.type === 'click') {\r\n \t\t\t// Fire a synthetic 'preclick' event which propagates up (mainly for closing popups).\r\n \t\t\t// @event preclick: MouseEvent\r\n \t\t\t// Fired before mouse click on the map (sometimes useful when you\r\n \t\t\t// want something to happen on click before any existing click\r\n \t\t\t// handlers start running).\r\n \t\t\tvar synth = extend({}, e);\r\n \t\t\tsynth.type = 'preclick';\r\n \t\t\tthis._fireDOMEvent(synth, synth.type, canvasTargets);\r\n \t\t}\r\n\r\n \t\t// Find the layer the event is propagating from and its parents.\r\n \t\tvar targets = this._findEventTargets(e, type);\r\n\r\n \t\tif (canvasTargets) {\r\n \t\t\tvar filtered = []; // pick only targets with listeners\r\n \t\t\tfor (var i = 0; i < canvasTargets.length; i++) {\r\n \t\t\t\tif (canvasTargets[i].listens(type, true)) {\r\n \t\t\t\t\tfiltered.push(canvasTargets[i]);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\ttargets = filtered.concat(targets);\r\n \t\t}\r\n\r\n \t\tif (!targets.length) { return; }\r\n\r\n \t\tif (type === 'contextmenu') {\r\n \t\t\tpreventDefault(e);\r\n \t\t}\r\n\r\n \t\tvar target = targets[0];\r\n \t\tvar data = {\r\n \t\t\toriginalEvent: e\r\n \t\t};\r\n\r\n \t\tif (e.type !== 'keypress' && e.type !== 'keydown' && e.type !== 'keyup') {\r\n \t\t\tvar isMarker = target.getLatLng && (!target._radius || target._radius <= 10);\r\n \t\t\tdata.containerPoint = isMarker ?\r\n \t\t\t\tthis.latLngToContainerPoint(target.getLatLng()) : this.mouseEventToContainerPoint(e);\r\n \t\t\tdata.layerPoint = this.containerPointToLayerPoint(data.containerPoint);\r\n \t\t\tdata.latlng = isMarker ? target.getLatLng() : this.layerPointToLatLng(data.layerPoint);\r\n \t\t}\r\n\r\n \t\tfor (i = 0; i < targets.length; i++) {\r\n \t\t\ttargets[i].fire(type, data, true);\r\n \t\t\tif (data.originalEvent._stopped ||\r\n \t\t\t\t(targets[i].options.bubblingMouseEvents === false && indexOf(this._mouseEvents, type) !== -1)) { return; }\r\n \t\t}\r\n \t},\r\n\r\n \t_draggableMoved: function (obj) {\r\n \t\tobj = obj.dragging && obj.dragging.enabled() ? obj : this;\r\n \t\treturn (obj.dragging && obj.dragging.moved()) || (this.boxZoom && this.boxZoom.moved());\r\n \t},\r\n\r\n \t_clearHandlers: function () {\r\n \t\tfor (var i = 0, len = this._handlers.length; i < len; i++) {\r\n \t\t\tthis._handlers[i].disable();\r\n \t\t}\r\n \t},\r\n\r\n \t// @section Other Methods\r\n\r\n \t// @method whenReady(fn: Function, context?: Object): this\r\n \t// Runs the given function `fn` when the map gets initialized with\r\n \t// a view (center and zoom) and at least one layer, or immediately\r\n \t// if it's already initialized, optionally passing a function context.\r\n \twhenReady: function (callback, context) {\r\n \t\tif (this._loaded) {\r\n \t\t\tcallback.call(context || this, {target: this});\r\n \t\t} else {\r\n \t\t\tthis.on('load', callback, context);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n\r\n \t// private methods for getting map state\r\n\r\n \t_getMapPanePos: function () {\r\n \t\treturn getPosition(this._mapPane) || new Point(0, 0);\r\n \t},\r\n\r\n \t_moved: function () {\r\n \t\tvar pos = this._getMapPanePos();\r\n \t\treturn pos && !pos.equals([0, 0]);\r\n \t},\r\n\r\n \t_getTopLeftPoint: function (center, zoom) {\r\n \t\tvar pixelOrigin = center && zoom !== undefined ?\r\n \t\t\tthis._getNewPixelOrigin(center, zoom) :\r\n \t\t\tthis.getPixelOrigin();\r\n \t\treturn pixelOrigin.subtract(this._getMapPanePos());\r\n \t},\r\n\r\n \t_getNewPixelOrigin: function (center, zoom) {\r\n \t\tvar viewHalf = this.getSize()._divideBy(2);\r\n \t\treturn this.project(center, zoom)._subtract(viewHalf)._add(this._getMapPanePos())._round();\r\n \t},\r\n\r\n \t_latLngToNewLayerPoint: function (latlng, zoom, center) {\r\n \t\tvar topLeft = this._getNewPixelOrigin(center, zoom);\r\n \t\treturn this.project(latlng, zoom)._subtract(topLeft);\r\n \t},\r\n\r\n \t_latLngBoundsToNewLayerBounds: function (latLngBounds, zoom, center) {\r\n \t\tvar topLeft = this._getNewPixelOrigin(center, zoom);\r\n \t\treturn toBounds([\r\n \t\t\tthis.project(latLngBounds.getSouthWest(), zoom)._subtract(topLeft),\r\n \t\t\tthis.project(latLngBounds.getNorthWest(), zoom)._subtract(topLeft),\r\n \t\t\tthis.project(latLngBounds.getSouthEast(), zoom)._subtract(topLeft),\r\n \t\t\tthis.project(latLngBounds.getNorthEast(), zoom)._subtract(topLeft)\r\n \t\t]);\r\n \t},\r\n\r\n \t// layer point of the current center\r\n \t_getCenterLayerPoint: function () {\r\n \t\treturn this.containerPointToLayerPoint(this.getSize()._divideBy(2));\r\n \t},\r\n\r\n \t// offset of the specified place to the current center in pixels\r\n \t_getCenterOffset: function (latlng) {\r\n \t\treturn this.latLngToLayerPoint(latlng).subtract(this._getCenterLayerPoint());\r\n \t},\r\n\r\n \t// adjust center for view to get inside bounds\r\n \t_limitCenter: function (center, zoom, bounds) {\r\n\r\n \t\tif (!bounds) { return center; }\r\n\r\n \t\tvar centerPoint = this.project(center, zoom),\r\n \t\t viewHalf = this.getSize().divideBy(2),\r\n \t\t viewBounds = new Bounds(centerPoint.subtract(viewHalf), centerPoint.add(viewHalf)),\r\n \t\t offset = this._getBoundsOffset(viewBounds, bounds, zoom);\r\n\r\n \t\t// If offset is less than a pixel, ignore.\r\n \t\t// This prevents unstable projections from getting into\r\n \t\t// an infinite loop of tiny offsets.\r\n \t\tif (Math.abs(offset.x) <= 1 && Math.abs(offset.y) <= 1) {\r\n \t\t\treturn center;\r\n \t\t}\r\n\r\n \t\treturn this.unproject(centerPoint.add(offset), zoom);\r\n \t},\r\n\r\n \t// adjust offset for view to get inside bounds\r\n \t_limitOffset: function (offset, bounds) {\r\n \t\tif (!bounds) { return offset; }\r\n\r\n \t\tvar viewBounds = this.getPixelBounds(),\r\n \t\t newBounds = new Bounds(viewBounds.min.add(offset), viewBounds.max.add(offset));\r\n\r\n \t\treturn offset.add(this._getBoundsOffset(newBounds, bounds));\r\n \t},\r\n\r\n \t// returns offset needed for pxBounds to get inside maxBounds at a specified zoom\r\n \t_getBoundsOffset: function (pxBounds, maxBounds, zoom) {\r\n \t\tvar projectedMaxBounds = toBounds(\r\n \t\t this.project(maxBounds.getNorthEast(), zoom),\r\n \t\t this.project(maxBounds.getSouthWest(), zoom)\r\n \t\t ),\r\n \t\t minOffset = projectedMaxBounds.min.subtract(pxBounds.min),\r\n \t\t maxOffset = projectedMaxBounds.max.subtract(pxBounds.max),\r\n\r\n \t\t dx = this._rebound(minOffset.x, -maxOffset.x),\r\n \t\t dy = this._rebound(minOffset.y, -maxOffset.y);\r\n\r\n \t\treturn new Point(dx, dy);\r\n \t},\r\n\r\n \t_rebound: function (left, right) {\r\n \t\treturn left + right > 0 ?\r\n \t\t\tMath.round(left - right) / 2 :\r\n \t\t\tMath.max(0, Math.ceil(left)) - Math.max(0, Math.floor(right));\r\n \t},\r\n\r\n \t_limitZoom: function (zoom) {\r\n \t\tvar min = this.getMinZoom(),\r\n \t\t max = this.getMaxZoom(),\r\n \t\t snap = Browser.any3d ? this.options.zoomSnap : 1;\r\n \t\tif (snap) {\r\n \t\t\tzoom = Math.round(zoom / snap) * snap;\r\n \t\t}\r\n \t\treturn Math.max(min, Math.min(max, zoom));\r\n \t},\r\n\r\n \t_onPanTransitionStep: function () {\r\n \t\tthis.fire('move');\r\n \t},\r\n\r\n \t_onPanTransitionEnd: function () {\r\n \t\tremoveClass(this._mapPane, 'leaflet-pan-anim');\r\n \t\tthis.fire('moveend');\r\n \t},\r\n\r\n \t_tryAnimatedPan: function (center, options) {\r\n \t\t// difference between the new and current centers in pixels\r\n \t\tvar offset = this._getCenterOffset(center)._trunc();\r\n\r\n \t\t// don't animate too far unless animate: true specified in options\r\n \t\tif ((options && options.animate) !== true && !this.getSize().contains(offset)) { return false; }\r\n\r\n \t\tthis.panBy(offset, options);\r\n\r\n \t\treturn true;\r\n \t},\r\n\r\n \t_createAnimProxy: function () {\r\n\r\n \t\tvar proxy = this._proxy = create$1('div', 'leaflet-proxy leaflet-zoom-animated');\r\n \t\tthis._panes.mapPane.appendChild(proxy);\r\n\r\n \t\tthis.on('zoomanim', function (e) {\r\n \t\t\tvar prop = TRANSFORM,\r\n \t\t\t transform = this._proxy.style[prop];\r\n\r\n \t\t\tsetTransform(this._proxy, this.project(e.center, e.zoom), this.getZoomScale(e.zoom, 1));\r\n\r\n \t\t\t// workaround for case when transform is the same and so transitionend event is not fired\r\n \t\t\tif (transform === this._proxy.style[prop] && this._animatingZoom) {\r\n \t\t\t\tthis._onZoomTransitionEnd();\r\n \t\t\t}\r\n \t\t}, this);\r\n\r\n \t\tthis.on('load moveend', this._animMoveEnd, this);\r\n\r\n \t\tthis._on('unload', this._destroyAnimProxy, this);\r\n \t},\r\n\r\n \t_destroyAnimProxy: function () {\r\n \t\tremove(this._proxy);\r\n \t\tthis.off('load moveend', this._animMoveEnd, this);\r\n \t\tdelete this._proxy;\r\n \t},\r\n\r\n \t_animMoveEnd: function () {\r\n \t\tvar c = this.getCenter(),\r\n \t\t z = this.getZoom();\r\n \t\tsetTransform(this._proxy, this.project(c, z), this.getZoomScale(z, 1));\r\n \t},\r\n\r\n \t_catchTransitionEnd: function (e) {\r\n \t\tif (this._animatingZoom && e.propertyName.indexOf('transform') >= 0) {\r\n \t\t\tthis._onZoomTransitionEnd();\r\n \t\t}\r\n \t},\r\n\r\n \t_nothingToAnimate: function () {\r\n \t\treturn !this._container.getElementsByClassName('leaflet-zoom-animated').length;\r\n \t},\r\n\r\n \t_tryAnimatedZoom: function (center, zoom, options) {\r\n\r\n \t\tif (this._animatingZoom) { return true; }\r\n\r\n \t\toptions = options || {};\r\n\r\n \t\t// don't animate if disabled, not supported or zoom difference is too large\r\n \t\tif (!this._zoomAnimated || options.animate === false || this._nothingToAnimate() ||\r\n \t\t Math.abs(zoom - this._zoom) > this.options.zoomAnimationThreshold) { return false; }\r\n\r\n \t\t// offset is the pixel coords of the zoom origin relative to the current center\r\n \t\tvar scale = this.getZoomScale(zoom),\r\n \t\t offset = this._getCenterOffset(center)._divideBy(1 - 1 / scale);\r\n\r\n \t\t// don't animate if the zoom origin isn't within one screen from the current center, unless forced\r\n \t\tif (options.animate !== true && !this.getSize().contains(offset)) { return false; }\r\n\r\n \t\trequestAnimFrame(function () {\r\n \t\t\tthis\r\n \t\t\t ._moveStart(true, options.noMoveStart || false)\r\n \t\t\t ._animateZoom(center, zoom, true);\r\n \t\t}, this);\r\n\r\n \t\treturn true;\r\n \t},\r\n\r\n \t_animateZoom: function (center, zoom, startAnim, noUpdate) {\r\n \t\tif (!this._mapPane) { return; }\r\n\r\n \t\tif (startAnim) {\r\n \t\t\tthis._animatingZoom = true;\r\n\r\n \t\t\t// remember what center/zoom to set after animation\r\n \t\t\tthis._animateToCenter = center;\r\n \t\t\tthis._animateToZoom = zoom;\r\n\r\n \t\t\taddClass(this._mapPane, 'leaflet-zoom-anim');\r\n \t\t}\r\n\r\n \t\t// @section Other Events\r\n \t\t// @event zoomanim: ZoomAnimEvent\r\n \t\t// Fired at least once per zoom animation. For continuous zoom, like pinch zooming, fired once per frame during zoom.\r\n \t\tthis.fire('zoomanim', {\r\n \t\t\tcenter: center,\r\n \t\t\tzoom: zoom,\r\n \t\t\tnoUpdate: noUpdate\r\n \t\t});\r\n\r\n \t\tif (!this._tempFireZoomEvent) {\r\n \t\t\tthis._tempFireZoomEvent = this._zoom !== this._animateToZoom;\r\n \t\t}\r\n\r\n \t\tthis._move(this._animateToCenter, this._animateToZoom, undefined, true);\r\n\r\n \t\t// Work around webkit not firing 'transitionend', see https://github.com/Leaflet/Leaflet/issues/3689, 2693\r\n \t\tsetTimeout(bind(this._onZoomTransitionEnd, this), 250);\r\n \t},\r\n\r\n \t_onZoomTransitionEnd: function () {\r\n \t\tif (!this._animatingZoom) { return; }\r\n\r\n \t\tif (this._mapPane) {\r\n \t\t\tremoveClass(this._mapPane, 'leaflet-zoom-anim');\r\n \t\t}\r\n\r\n \t\tthis._animatingZoom = false;\r\n\r\n \t\tthis._move(this._animateToCenter, this._animateToZoom, undefined, true);\r\n\r\n \t\tif (this._tempFireZoomEvent) {\r\n \t\t\tthis.fire('zoom');\r\n \t\t}\r\n \t\tdelete this._tempFireZoomEvent;\r\n\r\n \t\tthis.fire('move');\r\n\r\n \t\tthis._moveEnd(true);\r\n \t}\r\n });\r\n\r\n // @section\r\n\r\n // @factory L.map(id: String, options?: Map options)\r\n // Instantiates a map object given the DOM ID of a `<div>` element\r\n // and optionally an object literal with `Map options`.\r\n //\r\n // @alternative\r\n // @factory L.map(el: HTMLElement, options?: Map options)\r\n // Instantiates a map object given an instance of a `<div>` HTML element\r\n // and optionally an object literal with `Map options`.\r\n function createMap(id, options) {\r\n \treturn new Map(id, options);\r\n }\n\n /*\r\n * @class Control\r\n * @aka L.Control\r\n * @inherits Class\r\n *\r\n * L.Control is a base class for implementing map controls. Handles positioning.\r\n * All other controls extend from this class.\r\n */\r\n\r\n var Control = Class.extend({\r\n \t// @section\r\n \t// @aka Control Options\r\n \toptions: {\r\n \t\t// @option position: String = 'topright'\r\n \t\t// The position of the control (one of the map corners). Possible values are `'topleft'`,\r\n \t\t// `'topright'`, `'bottomleft'` or `'bottomright'`\r\n \t\tposition: 'topright'\r\n \t},\r\n\r\n \tinitialize: function (options) {\r\n \t\tsetOptions(this, options);\r\n \t},\r\n\r\n \t/* @section\r\n \t * Classes extending L.Control will inherit the following methods:\r\n \t *\r\n \t * @method getPosition: string\r\n \t * Returns the position of the control.\r\n \t */\r\n \tgetPosition: function () {\r\n \t\treturn this.options.position;\r\n \t},\r\n\r\n \t// @method setPosition(position: string): this\r\n \t// Sets the position of the control.\r\n \tsetPosition: function (position) {\r\n \t\tvar map = this._map;\r\n\r\n \t\tif (map) {\r\n \t\t\tmap.removeControl(this);\r\n \t\t}\r\n\r\n \t\tthis.options.position = position;\r\n\r\n \t\tif (map) {\r\n \t\t\tmap.addControl(this);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getContainer: HTMLElement\r\n \t// Returns the HTMLElement that contains the control.\r\n \tgetContainer: function () {\r\n \t\treturn this._container;\r\n \t},\r\n\r\n \t// @method addTo(map: Map): this\r\n \t// Adds the control to the given map.\r\n \taddTo: function (map) {\r\n \t\tthis.remove();\r\n \t\tthis._map = map;\r\n\r\n \t\tvar container = this._container = this.onAdd(map),\r\n \t\t pos = this.getPosition(),\r\n \t\t corner = map._controlCorners[pos];\r\n\r\n \t\taddClass(container, 'leaflet-control');\r\n\r\n \t\tif (pos.indexOf('bottom') !== -1) {\r\n \t\t\tcorner.insertBefore(container, corner.firstChild);\r\n \t\t} else {\r\n \t\t\tcorner.appendChild(container);\r\n \t\t}\r\n\r\n \t\tthis._map.on('unload', this.remove, this);\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method remove: this\r\n \t// Removes the control from the map it is currently active on.\r\n \tremove: function () {\r\n \t\tif (!this._map) {\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tremove(this._container);\r\n\r\n \t\tif (this.onRemove) {\r\n \t\t\tthis.onRemove(this._map);\r\n \t\t}\r\n\r\n \t\tthis._map.off('unload', this.remove, this);\r\n \t\tthis._map = null;\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_refocusOnMap: function (e) {\r\n \t\t// if map exists and event is not a keyboard event\r\n \t\tif (this._map && e && e.screenX > 0 && e.screenY > 0) {\r\n \t\t\tthis._map.getContainer().focus();\r\n \t\t}\r\n \t}\r\n });\r\n\r\n var control = function (options) {\r\n \treturn new Control(options);\r\n };\r\n\r\n /* @section Extension methods\r\n * @uninheritable\r\n *\r\n * Every control should extend from `L.Control` and (re-)implement the following methods.\r\n *\r\n * @method onAdd(map: Map): HTMLElement\r\n * Should return the container DOM element for the control and add listeners on relevant map events. Called on [`control.addTo(map)`](#control-addTo).\r\n *\r\n * @method onRemove(map: Map)\r\n * Optional method. Should contain all clean up code that removes the listeners previously added in [`onAdd`](#control-onadd). Called on [`control.remove()`](#control-remove).\r\n */\r\n\r\n /* @namespace Map\r\n * @section Methods for Layers and Controls\r\n */\r\n Map.include({\r\n \t// @method addControl(control: Control): this\r\n \t// Adds the given control to the map\r\n \taddControl: function (control) {\r\n \t\tcontrol.addTo(this);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeControl(control: Control): this\r\n \t// Removes the given control from the map\r\n \tremoveControl: function (control) {\r\n \t\tcontrol.remove();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_initControlPos: function () {\r\n \t\tvar corners = this._controlCorners = {},\r\n \t\t l = 'leaflet-',\r\n \t\t container = this._controlContainer =\r\n \t\t create$1('div', l + 'control-container', this._container);\r\n\r\n \t\tfunction createCorner(vSide, hSide) {\r\n \t\t\tvar className = l + vSide + ' ' + l + hSide;\r\n\r\n \t\t\tcorners[vSide + hSide] = create$1('div', className, container);\r\n \t\t}\r\n\r\n \t\tcreateCorner('top', 'left');\r\n \t\tcreateCorner('top', 'right');\r\n \t\tcreateCorner('bottom', 'left');\r\n \t\tcreateCorner('bottom', 'right');\r\n \t},\r\n\r\n \t_clearControlPos: function () {\r\n \t\tfor (var i in this._controlCorners) {\r\n \t\t\tremove(this._controlCorners[i]);\r\n \t\t}\r\n \t\tremove(this._controlContainer);\r\n \t\tdelete this._controlCorners;\r\n \t\tdelete this._controlContainer;\r\n \t}\r\n });\n\n /*\r\n * @class Control.Layers\r\n * @aka L.Control.Layers\r\n * @inherits Control\r\n *\r\n * The layers control gives users the ability to switch between different base layers and switch overlays on/off (check out the [detailed example](https://leafletjs.com/examples/layers-control/)). Extends `Control`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var baseLayers = {\r\n * \t\"Mapbox\": mapbox,\r\n * \t\"OpenStreetMap\": osm\r\n * };\r\n *\r\n * var overlays = {\r\n * \t\"Marker\": marker,\r\n * \t\"Roads\": roadsLayer\r\n * };\r\n *\r\n * L.control.layers(baseLayers, overlays).addTo(map);\r\n * ```\r\n *\r\n * The `baseLayers` and `overlays` parameters are object literals with layer names as keys and `Layer` objects as values:\r\n *\r\n * ```js\r\n * {\r\n * \"<someName1>\": layer1,\r\n * \"<someName2>\": layer2\r\n * }\r\n * ```\r\n *\r\n * The layer names can contain HTML, which allows you to add additional styling to the items:\r\n *\r\n * ```js\r\n * {\"<img src='my-layer-icon' /> <span class='my-layer-item'>My Layer</span>\": myLayer}\r\n * ```\r\n */\r\n\r\n var Layers = Control.extend({\r\n \t// @section\r\n \t// @aka Control.Layers options\r\n \toptions: {\r\n \t\t// @option collapsed: Boolean = true\r\n \t\t// If `true`, the control will be collapsed into an icon and expanded on mouse hover, touch, or keyboard activation.\r\n \t\tcollapsed: true,\r\n \t\tposition: 'topright',\r\n\r\n \t\t// @option autoZIndex: Boolean = true\r\n \t\t// If `true`, the control will assign zIndexes in increasing order to all of its layers so that the order is preserved when switching them on/off.\r\n \t\tautoZIndex: true,\r\n\r\n \t\t// @option hideSingleBase: Boolean = false\r\n \t\t// If `true`, the base layers in the control will be hidden when there is only one.\r\n \t\thideSingleBase: false,\r\n\r\n \t\t// @option sortLayers: Boolean = false\r\n \t\t// Whether to sort the layers. When `false`, layers will keep the order\r\n \t\t// in which they were added to the control.\r\n \t\tsortLayers: false,\r\n\r\n \t\t// @option sortFunction: Function = *\r\n \t\t// A [compare function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)\r\n \t\t// that will be used for sorting the layers, when `sortLayers` is `true`.\r\n \t\t// The function receives both the `L.Layer` instances and their names, as in\r\n \t\t// `sortFunction(layerA, layerB, nameA, nameB)`.\r\n \t\t// By default, it sorts layers alphabetically by their name.\r\n \t\tsortFunction: function (layerA, layerB, nameA, nameB) {\r\n \t\t\treturn nameA < nameB ? -1 : (nameB < nameA ? 1 : 0);\r\n \t\t}\r\n \t},\r\n\r\n \tinitialize: function (baseLayers, overlays, options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._layerControlInputs = [];\r\n \t\tthis._layers = [];\r\n \t\tthis._lastZIndex = 0;\r\n \t\tthis._handlingClick = false;\r\n \t\tthis._preventClick = false;\r\n\r\n \t\tfor (var i in baseLayers) {\r\n \t\t\tthis._addLayer(baseLayers[i], i);\r\n \t\t}\r\n\r\n \t\tfor (i in overlays) {\r\n \t\t\tthis._addLayer(overlays[i], i, true);\r\n \t\t}\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tthis._initLayout();\r\n \t\tthis._update();\r\n\r\n \t\tthis._map = map;\r\n \t\tmap.on('zoomend', this._checkDisabledLayers, this);\r\n\r\n \t\tfor (var i = 0; i < this._layers.length; i++) {\r\n \t\t\tthis._layers[i].layer.on('add remove', this._onLayerChange, this);\r\n \t\t}\r\n\r\n \t\treturn this._container;\r\n \t},\r\n\r\n \taddTo: function (map) {\r\n \t\tControl.prototype.addTo.call(this, map);\r\n \t\t// Trigger expand after Layers Control has been inserted into DOM so that is now has an actual height.\r\n \t\treturn this._expandIfNotCollapsed();\r\n \t},\r\n\r\n \tonRemove: function () {\r\n \t\tthis._map.off('zoomend', this._checkDisabledLayers, this);\r\n\r\n \t\tfor (var i = 0; i < this._layers.length; i++) {\r\n \t\t\tthis._layers[i].layer.off('add remove', this._onLayerChange, this);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method addBaseLayer(layer: Layer, name: String): this\r\n \t// Adds a base layer (radio button entry) with the given name to the control.\r\n \taddBaseLayer: function (layer, name) {\r\n \t\tthis._addLayer(layer, name);\r\n \t\treturn (this._map) ? this._update() : this;\r\n \t},\r\n\r\n \t// @method addOverlay(layer: Layer, name: String): this\r\n \t// Adds an overlay (checkbox entry) with the given name to the control.\r\n \taddOverlay: function (layer, name) {\r\n \t\tthis._addLayer(layer, name, true);\r\n \t\treturn (this._map) ? this._update() : this;\r\n \t},\r\n\r\n \t// @method removeLayer(layer: Layer): this\r\n \t// Remove the given layer from the control.\r\n \tremoveLayer: function (layer) {\r\n \t\tlayer.off('add remove', this._onLayerChange, this);\r\n\r\n \t\tvar obj = this._getLayer(stamp(layer));\r\n \t\tif (obj) {\r\n \t\t\tthis._layers.splice(this._layers.indexOf(obj), 1);\r\n \t\t}\r\n \t\treturn (this._map) ? this._update() : this;\r\n \t},\r\n\r\n \t// @method expand(): this\r\n \t// Expand the control container if collapsed.\r\n \texpand: function () {\r\n \t\taddClass(this._container, 'leaflet-control-layers-expanded');\r\n \t\tthis._section.style.height = null;\r\n \t\tvar acceptableHeight = this._map.getSize().y - (this._container.offsetTop + 50);\r\n \t\tif (acceptableHeight < this._section.clientHeight) {\r\n \t\t\taddClass(this._section, 'leaflet-control-layers-scrollbar');\r\n \t\t\tthis._section.style.height = acceptableHeight + 'px';\r\n \t\t} else {\r\n \t\t\tremoveClass(this._section, 'leaflet-control-layers-scrollbar');\r\n \t\t}\r\n \t\tthis._checkDisabledLayers();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method collapse(): this\r\n \t// Collapse the control container if expanded.\r\n \tcollapse: function () {\r\n \t\tremoveClass(this._container, 'leaflet-control-layers-expanded');\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_initLayout: function () {\r\n \t\tvar className = 'leaflet-control-layers',\r\n \t\t container = this._container = create$1('div', className),\r\n \t\t collapsed = this.options.collapsed;\r\n\r\n \t\t// makes this work on IE touch devices by stopping it from firing a mouseout event when the touch is released\r\n \t\tcontainer.setAttribute('aria-haspopup', true);\r\n\r\n \t\tdisableClickPropagation(container);\r\n \t\tdisableScrollPropagation(container);\r\n\r\n \t\tvar section = this._section = create$1('section', className + '-list');\r\n\r\n \t\tif (collapsed) {\r\n \t\t\tthis._map.on('click', this.collapse, this);\r\n\r\n \t\t\ton(container, {\r\n \t\t\t\tmouseenter: this._expandSafely,\r\n \t\t\t\tmouseleave: this.collapse\r\n \t\t\t}, this);\r\n \t\t}\r\n\r\n \t\tvar link = this._layersLink = create$1('a', className + '-toggle', container);\r\n \t\tlink.href = '#';\r\n \t\tlink.title = 'Layers';\r\n \t\tlink.setAttribute('role', 'button');\r\n\r\n \t\ton(link, {\r\n \t\t\tkeydown: function (e) {\r\n \t\t\t\tif (e.keyCode === 13) {\r\n \t\t\t\t\tthis._expandSafely();\r\n \t\t\t\t}\r\n \t\t\t},\r\n \t\t\t// Certain screen readers intercept the key event and instead send a click event\r\n \t\t\tclick: function (e) {\r\n \t\t\t\tpreventDefault(e);\r\n \t\t\t\tthis._expandSafely();\r\n \t\t\t}\r\n \t\t}, this);\r\n\r\n \t\tif (!collapsed) {\r\n \t\t\tthis.expand();\r\n \t\t}\r\n\r\n \t\tthis._baseLayersList = create$1('div', className + '-base', section);\r\n \t\tthis._separator = create$1('div', className + '-separator', section);\r\n \t\tthis._overlaysList = create$1('div', className + '-overlays', section);\r\n\r\n \t\tcontainer.appendChild(section);\r\n \t},\r\n\r\n \t_getLayer: function (id) {\r\n \t\tfor (var i = 0; i < this._layers.length; i++) {\r\n\r\n \t\t\tif (this._layers[i] && stamp(this._layers[i].layer) === id) {\r\n \t\t\t\treturn this._layers[i];\r\n \t\t\t}\r\n \t\t}\r\n \t},\r\n\r\n \t_addLayer: function (layer, name, overlay) {\r\n \t\tif (this._map) {\r\n \t\t\tlayer.on('add remove', this._onLayerChange, this);\r\n \t\t}\r\n\r\n \t\tthis._layers.push({\r\n \t\t\tlayer: layer,\r\n \t\t\tname: name,\r\n \t\t\toverlay: overlay\r\n \t\t});\r\n\r\n \t\tif (this.options.sortLayers) {\r\n \t\t\tthis._layers.sort(bind(function (a, b) {\r\n \t\t\t\treturn this.options.sortFunction(a.layer, b.layer, a.name, b.name);\r\n \t\t\t}, this));\r\n \t\t}\r\n\r\n \t\tif (this.options.autoZIndex && layer.setZIndex) {\r\n \t\t\tthis._lastZIndex++;\r\n \t\t\tlayer.setZIndex(this._lastZIndex);\r\n \t\t}\r\n\r\n \t\tthis._expandIfNotCollapsed();\r\n \t},\r\n\r\n \t_update: function () {\r\n \t\tif (!this._container) { return this; }\r\n\r\n \t\tempty(this._baseLayersList);\r\n \t\tempty(this._overlaysList);\r\n\r\n \t\tthis._layerControlInputs = [];\r\n \t\tvar baseLayersPresent, overlaysPresent, i, obj, baseLayersCount = 0;\r\n\r\n \t\tfor (i = 0; i < this._layers.length; i++) {\r\n \t\t\tobj = this._layers[i];\r\n \t\t\tthis._addItem(obj);\r\n \t\t\toverlaysPresent = overlaysPresent || obj.overlay;\r\n \t\t\tbaseLayersPresent = baseLayersPresent || !obj.overlay;\r\n \t\t\tbaseLayersCount += !obj.overlay ? 1 : 0;\r\n \t\t}\r\n\r\n \t\t// Hide base layers section if there's only one layer.\r\n \t\tif (this.options.hideSingleBase) {\r\n \t\t\tbaseLayersPresent = baseLayersPresent && baseLayersCount > 1;\r\n \t\t\tthis._baseLayersList.style.display = baseLayersPresent ? '' : 'none';\r\n \t\t}\r\n\r\n \t\tthis._separator.style.display = overlaysPresent && baseLayersPresent ? '' : 'none';\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_onLayerChange: function (e) {\r\n \t\tif (!this._handlingClick) {\r\n \t\t\tthis._update();\r\n \t\t}\r\n\r\n \t\tvar obj = this._getLayer(stamp(e.target));\r\n\r\n \t\t// @namespace Map\r\n \t\t// @section Layer events\r\n \t\t// @event baselayerchange: LayersControlEvent\r\n \t\t// Fired when the base layer is changed through the [layers control](#control-layers).\r\n \t\t// @event overlayadd: LayersControlEvent\r\n \t\t// Fired when an overlay is selected through the [layers control](#control-layers).\r\n \t\t// @event overlayremove: LayersControlEvent\r\n \t\t// Fired when an overlay is deselected through the [layers control](#control-layers).\r\n \t\t// @namespace Control.Layers\r\n \t\tvar type = obj.overlay ?\r\n \t\t\t(e.type === 'add' ? 'overlayadd' : 'overlayremove') :\r\n \t\t\t(e.type === 'add' ? 'baselayerchange' : null);\r\n\r\n \t\tif (type) {\r\n \t\t\tthis._map.fire(type, obj);\r\n \t\t}\r\n \t},\r\n\r\n \t// IE7 bugs out if you create a radio dynamically, so you have to do it this hacky way (see https://stackoverflow.com/a/119079)\r\n \t_createRadioElement: function (name, checked) {\r\n\r\n \t\tvar radioHtml = '<input type=\"radio\" class=\"leaflet-control-layers-selector\" name=\"' +\r\n \t\t\t\tname + '\"' + (checked ? ' checked=\"checked\"' : '') + '/>';\r\n\r\n \t\tvar radioFragment = document.createElement('div');\r\n \t\tradioFragment.innerHTML = radioHtml;\r\n\r\n \t\treturn radioFragment.firstChild;\r\n \t},\r\n\r\n \t_addItem: function (obj) {\r\n \t\tvar label = document.createElement('label'),\r\n \t\t checked = this._map.hasLayer(obj.layer),\r\n \t\t input;\r\n\r\n \t\tif (obj.overlay) {\r\n \t\t\tinput = document.createElement('input');\r\n \t\t\tinput.type = 'checkbox';\r\n \t\t\tinput.className = 'leaflet-control-layers-selector';\r\n \t\t\tinput.defaultChecked = checked;\r\n \t\t} else {\r\n \t\t\tinput = this._createRadioElement('leaflet-base-layers_' + stamp(this), checked);\r\n \t\t}\r\n\r\n \t\tthis._layerControlInputs.push(input);\r\n \t\tinput.layerId = stamp(obj.layer);\r\n\r\n \t\ton(input, 'click', this._onInputClick, this);\r\n\r\n \t\tvar name = document.createElement('span');\r\n \t\tname.innerHTML = ' ' + obj.name;\r\n\r\n \t\t// Helps from preventing layer control flicker when checkboxes are disabled\r\n \t\t// https://github.com/Leaflet/Leaflet/issues/2771\r\n \t\tvar holder = document.createElement('span');\r\n\r\n \t\tlabel.appendChild(holder);\r\n \t\tholder.appendChild(input);\r\n \t\tholder.appendChild(name);\r\n\r\n \t\tvar container = obj.overlay ? this._overlaysList : this._baseLayersList;\r\n \t\tcontainer.appendChild(label);\r\n\r\n \t\tthis._checkDisabledLayers();\r\n \t\treturn label;\r\n \t},\r\n\r\n \t_onInputClick: function () {\r\n \t\t// expanding the control on mobile with a click can cause adding a layer - we don't want this\r\n \t\tif (this._preventClick) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tvar inputs = this._layerControlInputs,\r\n \t\t input, layer;\r\n \t\tvar addedLayers = [],\r\n \t\t removedLayers = [];\r\n\r\n \t\tthis._handlingClick = true;\r\n\r\n \t\tfor (var i = inputs.length - 1; i >= 0; i--) {\r\n \t\t\tinput = inputs[i];\r\n \t\t\tlayer = this._getLayer(input.layerId).layer;\r\n\r\n \t\t\tif (input.checked) {\r\n \t\t\t\taddedLayers.push(layer);\r\n \t\t\t} else if (!input.checked) {\r\n \t\t\t\tremovedLayers.push(layer);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\t// Bugfix issue 2318: Should remove all old layers before readding new ones\r\n \t\tfor (i = 0; i < removedLayers.length; i++) {\r\n \t\t\tif (this._map.hasLayer(removedLayers[i])) {\r\n \t\t\t\tthis._map.removeLayer(removedLayers[i]);\r\n \t\t\t}\r\n \t\t}\r\n \t\tfor (i = 0; i < addedLayers.length; i++) {\r\n \t\t\tif (!this._map.hasLayer(addedLayers[i])) {\r\n \t\t\t\tthis._map.addLayer(addedLayers[i]);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tthis._handlingClick = false;\r\n\r\n \t\tthis._refocusOnMap();\r\n \t},\r\n\r\n \t_checkDisabledLayers: function () {\r\n \t\tvar inputs = this._layerControlInputs,\r\n \t\t input,\r\n \t\t layer,\r\n \t\t zoom = this._map.getZoom();\r\n\r\n \t\tfor (var i = inputs.length - 1; i >= 0; i--) {\r\n \t\t\tinput = inputs[i];\r\n \t\t\tlayer = this._getLayer(input.layerId).layer;\r\n \t\t\tinput.disabled = (layer.options.minZoom !== undefined && zoom < layer.options.minZoom) ||\r\n \t\t\t (layer.options.maxZoom !== undefined && zoom > layer.options.maxZoom);\r\n\r\n \t\t}\r\n \t},\r\n\r\n \t_expandIfNotCollapsed: function () {\r\n \t\tif (this._map && !this.options.collapsed) {\r\n \t\t\tthis.expand();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_expandSafely: function () {\r\n \t\tvar section = this._section;\r\n \t\tthis._preventClick = true;\r\n \t\ton(section, 'click', preventDefault);\r\n \t\tthis.expand();\r\n \t\tvar that = this;\r\n \t\tsetTimeout(function () {\r\n \t\t\toff(section, 'click', preventDefault);\r\n \t\t\tthat._preventClick = false;\r\n \t\t});\r\n \t}\r\n\r\n });\r\n\r\n\r\n // @factory L.control.layers(baselayers?: Object, overlays?: Object, options?: Control.Layers options)\r\n // Creates a layers control with the given layers. Base layers will be switched with radio buttons, while overlays will be switched with checkboxes. Note that all base layers should be passed in the base layers object, but only one should be added to the map during map instantiation.\r\n var layers = function (baseLayers, overlays, options) {\r\n \treturn new Layers(baseLayers, overlays, options);\r\n };\n\n /*\r\n * @class Control.Zoom\r\n * @aka L.Control.Zoom\r\n * @inherits Control\r\n *\r\n * A basic zoom control with two buttons (zoom in and zoom out). It is put on the map by default unless you set its [`zoomControl` option](#map-zoomcontrol) to `false`. Extends `Control`.\r\n */\r\n\r\n var Zoom = Control.extend({\r\n \t// @section\r\n \t// @aka Control.Zoom options\r\n \toptions: {\r\n \t\tposition: 'topleft',\r\n\r\n \t\t// @option zoomInText: String = '<span aria-hidden=\"true\">+</span>'\r\n \t\t// The text set on the 'zoom in' button.\r\n \t\tzoomInText: '<span aria-hidden=\"true\">+</span>',\r\n\r\n \t\t// @option zoomInTitle: String = 'Zoom in'\r\n \t\t// The title set on the 'zoom in' button.\r\n \t\tzoomInTitle: 'Zoom in',\r\n\r\n \t\t// @option zoomOutText: String = '<span aria-hidden=\"true\">&#x2212;</span>'\r\n \t\t// The text set on the 'zoom out' button.\r\n \t\tzoomOutText: '<span aria-hidden=\"true\">&#x2212;</span>',\r\n\r\n \t\t// @option zoomOutTitle: String = 'Zoom out'\r\n \t\t// The title set on the 'zoom out' button.\r\n \t\tzoomOutTitle: 'Zoom out'\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tvar zoomName = 'leaflet-control-zoom',\r\n \t\t container = create$1('div', zoomName + ' leaflet-bar'),\r\n \t\t options = this.options;\r\n\r\n \t\tthis._zoomInButton = this._createButton(options.zoomInText, options.zoomInTitle,\r\n \t\t zoomName + '-in', container, this._zoomIn);\r\n \t\tthis._zoomOutButton = this._createButton(options.zoomOutText, options.zoomOutTitle,\r\n \t\t zoomName + '-out', container, this._zoomOut);\r\n\r\n \t\tthis._updateDisabled();\r\n \t\tmap.on('zoomend zoomlevelschange', this._updateDisabled, this);\r\n\r\n \t\treturn container;\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tmap.off('zoomend zoomlevelschange', this._updateDisabled, this);\r\n \t},\r\n\r\n \tdisable: function () {\r\n \t\tthis._disabled = true;\r\n \t\tthis._updateDisabled();\r\n \t\treturn this;\r\n \t},\r\n\r\n \tenable: function () {\r\n \t\tthis._disabled = false;\r\n \t\tthis._updateDisabled();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_zoomIn: function (e) {\r\n \t\tif (!this._disabled && this._map._zoom < this._map.getMaxZoom()) {\r\n \t\t\tthis._map.zoomIn(this._map.options.zoomDelta * (e.shiftKey ? 3 : 1));\r\n \t\t}\r\n \t},\r\n\r\n \t_zoomOut: function (e) {\r\n \t\tif (!this._disabled && this._map._zoom > this._map.getMinZoom()) {\r\n \t\t\tthis._map.zoomOut(this._map.options.zoomDelta * (e.shiftKey ? 3 : 1));\r\n \t\t}\r\n \t},\r\n\r\n \t_createButton: function (html, title, className, container, fn) {\r\n \t\tvar link = create$1('a', className, container);\r\n \t\tlink.innerHTML = html;\r\n \t\tlink.href = '#';\r\n \t\tlink.title = title;\r\n\r\n \t\t/*\r\n \t\t * Will force screen readers like VoiceOver to read this as \"Zoom in - button\"\r\n \t\t */\r\n \t\tlink.setAttribute('role', 'button');\r\n \t\tlink.setAttribute('aria-label', title);\r\n\r\n \t\tdisableClickPropagation(link);\r\n \t\ton(link, 'click', stop);\r\n \t\ton(link, 'click', fn, this);\r\n \t\ton(link, 'click', this._refocusOnMap, this);\r\n\r\n \t\treturn link;\r\n \t},\r\n\r\n \t_updateDisabled: function () {\r\n \t\tvar map = this._map,\r\n \t\t className = 'leaflet-disabled';\r\n\r\n \t\tremoveClass(this._zoomInButton, className);\r\n \t\tremoveClass(this._zoomOutButton, className);\r\n \t\tthis._zoomInButton.setAttribute('aria-disabled', 'false');\r\n \t\tthis._zoomOutButton.setAttribute('aria-disabled', 'false');\r\n\r\n \t\tif (this._disabled || map._zoom === map.getMinZoom()) {\r\n \t\t\taddClass(this._zoomOutButton, className);\r\n \t\t\tthis._zoomOutButton.setAttribute('aria-disabled', 'true');\r\n \t\t}\r\n \t\tif (this._disabled || map._zoom === map.getMaxZoom()) {\r\n \t\t\taddClass(this._zoomInButton, className);\r\n \t\t\tthis._zoomInButton.setAttribute('aria-disabled', 'true');\r\n \t\t}\r\n \t}\r\n });\r\n\r\n // @namespace Map\r\n // @section Control options\r\n // @option zoomControl: Boolean = true\r\n // Whether a [zoom control](#control-zoom) is added to the map by default.\r\n Map.mergeOptions({\r\n \tzoomControl: true\r\n });\r\n\r\n Map.addInitHook(function () {\r\n \tif (this.options.zoomControl) {\r\n \t\t// @section Controls\r\n \t\t// @property zoomControl: Control.Zoom\r\n \t\t// The default zoom control (only available if the\r\n \t\t// [`zoomControl` option](#map-zoomcontrol) was `true` when creating the map).\r\n \t\tthis.zoomControl = new Zoom();\r\n \t\tthis.addControl(this.zoomControl);\r\n \t}\r\n });\r\n\r\n // @namespace Control.Zoom\r\n // @factory L.control.zoom(options: Control.Zoom options)\r\n // Creates a zoom control\r\n var zoom = function (options) {\r\n \treturn new Zoom(options);\r\n };\n\n /*\n * @class Control.Scale\n * @aka L.Control.Scale\n * @inherits Control\n *\n * A simple scale control that shows the scale of the current center of screen in metric (m/km) and imperial (mi/ft) systems. Extends `Control`.\n *\n * @example\n *\n * ```js\n * L.control.scale().addTo(map);\n * ```\n */\n\n var Scale = Control.extend({\n \t// @section\n \t// @aka Control.Scale options\n \toptions: {\n \t\tposition: 'bottomleft',\n\n \t\t// @option maxWidth: Number = 100\n \t\t// Maximum width of the control in pixels. The width is set dynamically to show round values (e.g. 100, 200, 500).\n \t\tmaxWidth: 100,\n\n \t\t// @option metric: Boolean = True\n \t\t// Whether to show the metric scale line (m/km).\n \t\tmetric: true,\n\n \t\t// @option imperial: Boolean = True\n \t\t// Whether to show the imperial scale line (mi/ft).\n \t\timperial: true\n\n \t\t// @option updateWhenIdle: Boolean = false\n \t\t// If `true`, the control is updated on [`moveend`](#map-moveend), otherwise it's always up-to-date (updated on [`move`](#map-move)).\n \t},\n\n \tonAdd: function (map) {\n \t\tvar className = 'leaflet-control-scale',\n \t\t container = create$1('div', className),\n \t\t options = this.options;\n\n \t\tthis._addScales(options, className + '-line', container);\n\n \t\tmap.on(options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n \t\tmap.whenReady(this._update, this);\n\n \t\treturn container;\n \t},\n\n \tonRemove: function (map) {\n \t\tmap.off(this.options.updateWhenIdle ? 'moveend' : 'move', this._update, this);\n \t},\n\n \t_addScales: function (options, className, container) {\n \t\tif (options.metric) {\n \t\t\tthis._mScale = create$1('div', className, container);\n \t\t}\n \t\tif (options.imperial) {\n \t\t\tthis._iScale = create$1('div', className, container);\n \t\t}\n \t},\n\n \t_update: function () {\n \t\tvar map = this._map,\n \t\t y = map.getSize().y / 2;\n\n \t\tvar maxMeters = map.distance(\n \t\t\tmap.containerPointToLatLng([0, y]),\n \t\t\tmap.containerPointToLatLng([this.options.maxWidth, y]));\n\n \t\tthis._updateScales(maxMeters);\n \t},\n\n \t_updateScales: function (maxMeters) {\n \t\tif (this.options.metric && maxMeters) {\n \t\t\tthis._updateMetric(maxMeters);\n \t\t}\n \t\tif (this.options.imperial && maxMeters) {\n \t\t\tthis._updateImperial(maxMeters);\n \t\t}\n \t},\n\n \t_updateMetric: function (maxMeters) {\n \t\tvar meters = this._getRoundNum(maxMeters),\n \t\t label = meters < 1000 ? meters + ' m' : (meters / 1000) + ' km';\n\n \t\tthis._updateScale(this._mScale, label, meters / maxMeters);\n \t},\n\n \t_updateImperial: function (maxMeters) {\n \t\tvar maxFeet = maxMeters * 3.2808399,\n \t\t maxMiles, miles, feet;\n\n \t\tif (maxFeet > 5280) {\n \t\t\tmaxMiles = maxFeet / 5280;\n \t\t\tmiles = this._getRoundNum(maxMiles);\n \t\t\tthis._updateScale(this._iScale, miles + ' mi', miles / maxMiles);\n\n \t\t} else {\n \t\t\tfeet = this._getRoundNum(maxFeet);\n \t\t\tthis._updateScale(this._iScale, feet + ' ft', feet / maxFeet);\n \t\t}\n \t},\n\n \t_updateScale: function (scale, text, ratio) {\n \t\tscale.style.width = Math.round(this.options.maxWidth * ratio) + 'px';\n \t\tscale.innerHTML = text;\n \t},\n\n \t_getRoundNum: function (num) {\n \t\tvar pow10 = Math.pow(10, (Math.floor(num) + '').length - 1),\n \t\t d = num / pow10;\n\n \t\td = d >= 10 ? 10 :\n \t\t d >= 5 ? 5 :\n \t\t d >= 3 ? 3 :\n \t\t d >= 2 ? 2 : 1;\n\n \t\treturn pow10 * d;\n \t}\n });\n\n\n // @factory L.control.scale(options?: Control.Scale options)\n // Creates an scale control with the given options.\n var scale = function (options) {\n \treturn new Scale(options);\n };\n\n var ukrainianFlag = '<svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" class=\"leaflet-attribution-flag\"><path fill=\"#4C7BE1\" d=\"M0 0h12v4H0z\"/><path fill=\"#FFD500\" d=\"M0 4h12v3H0z\"/><path fill=\"#E0BC00\" d=\"M0 7h12v1H0z\"/></svg>';\r\n\r\n\r\n /*\r\n * @class Control.Attribution\r\n * @aka L.Control.Attribution\r\n * @inherits Control\r\n *\r\n * The attribution control allows you to display attribution data in a small text box on a map. It is put on the map by default unless you set its [`attributionControl` option](#map-attributioncontrol) to `false`, and it fetches attribution texts from layers with the [`getAttribution` method](#layer-getattribution) automatically. Extends Control.\r\n */\r\n\r\n var Attribution = Control.extend({\r\n \t// @section\r\n \t// @aka Control.Attribution options\r\n \toptions: {\r\n \t\tposition: 'bottomright',\r\n\r\n \t\t// @option prefix: String|false = 'Leaflet'\r\n \t\t// The HTML text shown before the attributions. Pass `false` to disable.\r\n \t\tprefix: '<a href=\"https://leafletjs.com\" title=\"A JavaScript library for interactive maps\">' + (Browser.inlineSvg ? ukrainianFlag + ' ' : '') + 'Leaflet</a>'\r\n \t},\r\n\r\n \tinitialize: function (options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._attributions = {};\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tmap.attributionControl = this;\r\n \t\tthis._container = create$1('div', 'leaflet-control-attribution');\r\n \t\tdisableClickPropagation(this._container);\r\n\r\n \t\t// TODO ugly, refactor\r\n \t\tfor (var i in map._layers) {\r\n \t\t\tif (map._layers[i].getAttribution) {\r\n \t\t\t\tthis.addAttribution(map._layers[i].getAttribution());\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tthis._update();\r\n\r\n \t\tmap.on('layeradd', this._addAttribution, this);\r\n\r\n \t\treturn this._container;\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tmap.off('layeradd', this._addAttribution, this);\r\n \t},\r\n\r\n \t_addAttribution: function (ev) {\r\n \t\tif (ev.layer.getAttribution) {\r\n \t\t\tthis.addAttribution(ev.layer.getAttribution());\r\n \t\t\tev.layer.once('remove', function () {\r\n \t\t\t\tthis.removeAttribution(ev.layer.getAttribution());\r\n \t\t\t}, this);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method setPrefix(prefix: String|false): this\r\n \t// The HTML text shown before the attributions. Pass `false` to disable.\r\n \tsetPrefix: function (prefix) {\r\n \t\tthis.options.prefix = prefix;\r\n \t\tthis._update();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method addAttribution(text: String): this\r\n \t// Adds an attribution text (e.g. `'&copy; OpenStreetMap contributors'`).\r\n \taddAttribution: function (text) {\r\n \t\tif (!text) { return this; }\r\n\r\n \t\tif (!this._attributions[text]) {\r\n \t\t\tthis._attributions[text] = 0;\r\n \t\t}\r\n \t\tthis._attributions[text]++;\r\n\r\n \t\tthis._update();\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeAttribution(text: String): this\r\n \t// Removes an attribution text.\r\n \tremoveAttribution: function (text) {\r\n \t\tif (!text) { return this; }\r\n\r\n \t\tif (this._attributions[text]) {\r\n \t\t\tthis._attributions[text]--;\r\n \t\t\tthis._update();\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_update: function () {\r\n \t\tif (!this._map) { return; }\r\n\r\n \t\tvar attribs = [];\r\n\r\n \t\tfor (var i in this._attributions) {\r\n \t\t\tif (this._attributions[i]) {\r\n \t\t\t\tattribs.push(i);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tvar prefixAndAttribs = [];\r\n\r\n \t\tif (this.options.prefix) {\r\n \t\t\tprefixAndAttribs.push(this.options.prefix);\r\n \t\t}\r\n \t\tif (attribs.length) {\r\n \t\t\tprefixAndAttribs.push(attribs.join(', '));\r\n \t\t}\r\n\r\n \t\tthis._container.innerHTML = prefixAndAttribs.join(' <span aria-hidden=\"true\">|</span> ');\r\n \t}\r\n });\r\n\r\n // @namespace Map\r\n // @section Control options\r\n // @option attributionControl: Boolean = true\r\n // Whether a [attribution control](#control-attribution) is added to the map by default.\r\n Map.mergeOptions({\r\n \tattributionControl: true\r\n });\r\n\r\n Map.addInitHook(function () {\r\n \tif (this.options.attributionControl) {\r\n \t\tnew Attribution().addTo(this);\r\n \t}\r\n });\r\n\r\n // @namespace Control.Attribution\r\n // @factory L.control.attribution(options: Control.Attribution options)\r\n // Creates an attribution control.\r\n var attribution = function (options) {\r\n \treturn new Attribution(options);\r\n };\n\n Control.Layers = Layers;\n Control.Zoom = Zoom;\n Control.Scale = Scale;\n Control.Attribution = Attribution;\n\n control.layers = layers;\n control.zoom = zoom;\n control.scale = scale;\n control.attribution = attribution;\n\n /*\n \tL.Handler is a base class for handler classes that are used internally to inject\n \tinteraction features like dragging to classes like Map and Marker.\n */\n\n // @class Handler\n // @aka L.Handler\n // Abstract class for map interaction handlers\n\n var Handler = Class.extend({\n \tinitialize: function (map) {\n \t\tthis._map = map;\n \t},\n\n \t// @method enable(): this\n \t// Enables the handler\n \tenable: function () {\n \t\tif (this._enabled) { return this; }\n\n \t\tthis._enabled = true;\n \t\tthis.addHooks();\n \t\treturn this;\n \t},\n\n \t// @method disable(): this\n \t// Disables the handler\n \tdisable: function () {\n \t\tif (!this._enabled) { return this; }\n\n \t\tthis._enabled = false;\n \t\tthis.removeHooks();\n \t\treturn this;\n \t},\n\n \t// @method enabled(): Boolean\n \t// Returns `true` if the handler is enabled\n \tenabled: function () {\n \t\treturn !!this._enabled;\n \t}\n\n \t// @section Extension methods\n \t// Classes inheriting from `Handler` must implement the two following methods:\n \t// @method addHooks()\n \t// Called when the handler is enabled, should add event hooks.\n \t// @method removeHooks()\n \t// Called when the handler is disabled, should remove the event hooks added previously.\n });\n\n // @section There is static function which can be called without instantiating L.Handler:\n // @function addTo(map: Map, name: String): this\n // Adds a new Handler to the given map with the given name.\n Handler.addTo = function (map, name) {\n \tmap.addHandler(name, this);\n \treturn this;\n };\n\n var Mixin = {Events: Events};\n\n /*\r\n * @class Draggable\r\n * @aka L.Draggable\r\n * @inherits Evented\r\n *\r\n * A class for making DOM elements draggable (including touch support).\r\n * Used internally for map and marker dragging. Only works for elements\r\n * that were positioned with [`L.DomUtil.setPosition`](#domutil-setposition).\r\n *\r\n * @example\r\n * ```js\r\n * var draggable = new L.Draggable(elementToDrag);\r\n * draggable.enable();\r\n * ```\r\n */\r\n\r\n var START = Browser.touch ? 'touchstart mousedown' : 'mousedown';\r\n\r\n var Draggable = Evented.extend({\r\n\r\n \toptions: {\r\n \t\t// @section\r\n \t\t// @aka Draggable options\r\n \t\t// @option clickTolerance: Number = 3\r\n \t\t// The max number of pixels a user can shift the mouse pointer during a click\r\n \t\t// for it to be considered a valid click (as opposed to a mouse drag).\r\n \t\tclickTolerance: 3\r\n \t},\r\n\r\n \t// @constructor L.Draggable(el: HTMLElement, dragHandle?: HTMLElement, preventOutline?: Boolean, options?: Draggable options)\r\n \t// Creates a `Draggable` object for moving `el` when you start dragging the `dragHandle` element (equals `el` itself by default).\r\n \tinitialize: function (element, dragStartTarget, preventOutline, options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._element = element;\r\n \t\tthis._dragStartTarget = dragStartTarget || element;\r\n \t\tthis._preventOutline = preventOutline;\r\n \t},\r\n\r\n \t// @method enable()\r\n \t// Enables the dragging ability\r\n \tenable: function () {\r\n \t\tif (this._enabled) { return; }\r\n\r\n \t\ton(this._dragStartTarget, START, this._onDown, this);\r\n\r\n \t\tthis._enabled = true;\r\n \t},\r\n\r\n \t// @method disable()\r\n \t// Disables the dragging ability\r\n \tdisable: function () {\r\n \t\tif (!this._enabled) { return; }\r\n\r\n \t\t// If we're currently dragging this draggable,\r\n \t\t// disabling it counts as first ending the drag.\r\n \t\tif (Draggable._dragging === this) {\r\n \t\t\tthis.finishDrag(true);\r\n \t\t}\r\n\r\n \t\toff(this._dragStartTarget, START, this._onDown, this);\r\n\r\n \t\tthis._enabled = false;\r\n \t\tthis._moved = false;\r\n \t},\r\n\r\n \t_onDown: function (e) {\r\n \t\t// Ignore the event if disabled; this happens in IE11\r\n \t\t// under some circumstances, see #3666.\r\n \t\tif (!this._enabled) { return; }\r\n\r\n \t\tthis._moved = false;\r\n\r\n \t\tif (hasClass(this._element, 'leaflet-zoom-anim')) { return; }\r\n\r\n \t\tif (e.touches && e.touches.length !== 1) {\r\n \t\t\t// Finish dragging to avoid conflict with touchZoom\r\n \t\t\tif (Draggable._dragging === this) {\r\n \t\t\t\tthis.finishDrag();\r\n \t\t\t}\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (Draggable._dragging || e.shiftKey || ((e.which !== 1) && (e.button !== 1) && !e.touches)) { return; }\r\n \t\tDraggable._dragging = this; // Prevent dragging multiple objects at once.\r\n\r\n \t\tif (this._preventOutline) {\r\n \t\t\tpreventOutline(this._element);\r\n \t\t}\r\n\r\n \t\tdisableImageDrag();\r\n \t\tdisableTextSelection();\r\n\r\n \t\tif (this._moving) { return; }\r\n\r\n \t\t// @event down: Event\r\n \t\t// Fired when a drag is about to start.\r\n \t\tthis.fire('down');\r\n\r\n \t\tvar first = e.touches ? e.touches[0] : e,\r\n \t\t sizedParent = getSizedParentNode(this._element);\r\n\r\n \t\tthis._startPoint = new Point(first.clientX, first.clientY);\r\n \t\tthis._startPos = getPosition(this._element);\r\n\r\n \t\t// Cache the scale, so that we can continuously compensate for it during drag (_onMove).\r\n \t\tthis._parentScale = getScale(sizedParent);\r\n\r\n \t\tvar mouseevent = e.type === 'mousedown';\r\n \t\ton(document, mouseevent ? 'mousemove' : 'touchmove', this._onMove, this);\r\n \t\ton(document, mouseevent ? 'mouseup' : 'touchend touchcancel', this._onUp, this);\r\n \t},\r\n\r\n \t_onMove: function (e) {\r\n \t\t// Ignore the event if disabled; this happens in IE11\r\n \t\t// under some circumstances, see #3666.\r\n \t\tif (!this._enabled) { return; }\r\n\r\n \t\tif (e.touches && e.touches.length > 1) {\r\n \t\t\tthis._moved = true;\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tvar first = (e.touches && e.touches.length === 1 ? e.touches[0] : e),\r\n \t\t offset = new Point(first.clientX, first.clientY)._subtract(this._startPoint);\r\n\r\n \t\tif (!offset.x && !offset.y) { return; }\r\n \t\tif (Math.abs(offset.x) + Math.abs(offset.y) < this.options.clickTolerance) { return; }\r\n\r\n \t\t// We assume that the parent container's position, border and scale do not change for the duration of the drag.\r\n \t\t// Therefore there is no need to account for the position and border (they are eliminated by the subtraction)\r\n \t\t// and we can use the cached value for the scale.\r\n \t\toffset.x /= this._parentScale.x;\r\n \t\toffset.y /= this._parentScale.y;\r\n\r\n \t\tpreventDefault(e);\r\n\r\n \t\tif (!this._moved) {\r\n \t\t\t// @event dragstart: Event\r\n \t\t\t// Fired when a drag starts\r\n \t\t\tthis.fire('dragstart');\r\n\r\n \t\t\tthis._moved = true;\r\n\r\n \t\t\taddClass(document.body, 'leaflet-dragging');\r\n\r\n \t\t\tthis._lastTarget = e.target || e.srcElement;\r\n \t\t\t// IE and Edge do not give the <use> element, so fetch it\r\n \t\t\t// if necessary\r\n \t\t\tif (window.SVGElementInstance && this._lastTarget instanceof window.SVGElementInstance) {\r\n \t\t\t\tthis._lastTarget = this._lastTarget.correspondingUseElement;\r\n \t\t\t}\r\n \t\t\taddClass(this._lastTarget, 'leaflet-drag-target');\r\n \t\t}\r\n\r\n \t\tthis._newPos = this._startPos.add(offset);\r\n \t\tthis._moving = true;\r\n\r\n \t\tthis._lastEvent = e;\r\n \t\tthis._updatePosition();\r\n \t},\r\n\r\n \t_updatePosition: function () {\r\n \t\tvar e = {originalEvent: this._lastEvent};\r\n\r\n \t\t// @event predrag: Event\r\n \t\t// Fired continuously during dragging *before* each corresponding\r\n \t\t// update of the element's position.\r\n \t\tthis.fire('predrag', e);\r\n \t\tsetPosition(this._element, this._newPos);\r\n\r\n \t\t// @event drag: Event\r\n \t\t// Fired continuously during dragging.\r\n \t\tthis.fire('drag', e);\r\n \t},\r\n\r\n \t_onUp: function () {\r\n \t\t// Ignore the event if disabled; this happens in IE11\r\n \t\t// under some circumstances, see #3666.\r\n \t\tif (!this._enabled) { return; }\r\n \t\tthis.finishDrag();\r\n \t},\r\n\r\n \tfinishDrag: function (noInertia) {\r\n \t\tremoveClass(document.body, 'leaflet-dragging');\r\n\r\n \t\tif (this._lastTarget) {\r\n \t\t\tremoveClass(this._lastTarget, 'leaflet-drag-target');\r\n \t\t\tthis._lastTarget = null;\r\n \t\t}\r\n\r\n \t\toff(document, 'mousemove touchmove', this._onMove, this);\r\n \t\toff(document, 'mouseup touchend touchcancel', this._onUp, this);\r\n\r\n \t\tenableImageDrag();\r\n \t\tenableTextSelection();\r\n\r\n \t\tvar fireDragend = this._moved && this._moving;\r\n\r\n \t\tthis._moving = false;\r\n \t\tDraggable._dragging = false;\r\n\r\n \t\tif (fireDragend) {\r\n \t\t\t// @event dragend: DragEndEvent\r\n \t\t\t// Fired when the drag ends.\r\n \t\t\tthis.fire('dragend', {\r\n \t\t\t\tnoInertia: noInertia,\r\n \t\t\t\tdistance: this._newPos.distanceTo(this._startPos)\r\n \t\t\t});\r\n \t\t}\r\n \t}\r\n\r\n });\n\n /*\r\n * @namespace PolyUtil\r\n * Various utility functions for polygon geometries.\r\n */\r\n\r\n /* @function clipPolygon(points: Point[], bounds: Bounds, round?: Boolean): Point[]\r\n * Clips the polygon geometry defined by the given `points` by the given bounds (using the [Sutherland-Hodgman algorithm](https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm)).\r\n * Used by Leaflet to only show polygon points that are on the screen or near, increasing\r\n * performance. Note that polygon points needs different algorithm for clipping\r\n * than polyline, so there's a separate method for it.\r\n */\r\n function clipPolygon(points, bounds, round) {\r\n \tvar clippedPoints,\r\n \t edges = [1, 4, 2, 8],\r\n \t i, j, k,\r\n \t a, b,\r\n \t len, edge, p;\r\n\r\n \tfor (i = 0, len = points.length; i < len; i++) {\r\n \t\tpoints[i]._code = _getBitCode(points[i], bounds);\r\n \t}\r\n\r\n \t// for each edge (left, bottom, right, top)\r\n \tfor (k = 0; k < 4; k++) {\r\n \t\tedge = edges[k];\r\n \t\tclippedPoints = [];\r\n\r\n \t\tfor (i = 0, len = points.length, j = len - 1; i < len; j = i++) {\r\n \t\t\ta = points[i];\r\n \t\t\tb = points[j];\r\n\r\n \t\t\t// if a is inside the clip window\r\n \t\t\tif (!(a._code & edge)) {\r\n \t\t\t\t// if b is outside the clip window (a->b goes out of screen)\r\n \t\t\t\tif (b._code & edge) {\r\n \t\t\t\t\tp = _getEdgeIntersection(b, a, edge, bounds, round);\r\n \t\t\t\t\tp._code = _getBitCode(p, bounds);\r\n \t\t\t\t\tclippedPoints.push(p);\r\n \t\t\t\t}\r\n \t\t\t\tclippedPoints.push(a);\r\n\r\n \t\t\t// else if b is inside the clip window (a->b enters the screen)\r\n \t\t\t} else if (!(b._code & edge)) {\r\n \t\t\t\tp = _getEdgeIntersection(b, a, edge, bounds, round);\r\n \t\t\t\tp._code = _getBitCode(p, bounds);\r\n \t\t\t\tclippedPoints.push(p);\r\n \t\t\t}\r\n \t\t}\r\n \t\tpoints = clippedPoints;\r\n \t}\r\n\r\n \treturn points;\r\n }\r\n\r\n /* @function polygonCenter(latlngs: LatLng[], crs: CRS): LatLng\r\n * Returns the center ([centroid](http://en.wikipedia.org/wiki/Centroid)) of the passed LatLngs (first ring) from a polygon.\r\n */\r\n function polygonCenter(latlngs, crs) {\r\n \tvar i, j, p1, p2, f, area, x, y, center;\r\n\r\n \tif (!latlngs || latlngs.length === 0) {\r\n \t\tthrow new Error('latlngs not passed');\r\n \t}\r\n\r\n \tif (!isFlat(latlngs)) {\r\n \t\tconsole.warn('latlngs are not flat! Only the first ring will be used');\r\n \t\tlatlngs = latlngs[0];\r\n \t}\r\n\r\n \tvar centroidLatLng = toLatLng([0, 0]);\r\n\r\n \tvar bounds = toLatLngBounds(latlngs);\r\n \tvar areaBounds = bounds.getNorthWest().distanceTo(bounds.getSouthWest()) * bounds.getNorthEast().distanceTo(bounds.getNorthWest());\r\n \t// tests showed that below 1700 rounding errors are happening\r\n \tif (areaBounds < 1700) {\r\n \t\t// getting a inexact center, to move the latlngs near to [0, 0] to prevent rounding errors\r\n \t\tcentroidLatLng = centroid(latlngs);\r\n \t}\r\n\r\n \tvar len = latlngs.length;\r\n \tvar points = [];\r\n \tfor (i = 0; i < len; i++) {\r\n \t\tvar latlng = toLatLng(latlngs[i]);\r\n \t\tpoints.push(crs.project(toLatLng([latlng.lat - centroidLatLng.lat, latlng.lng - centroidLatLng.lng])));\r\n \t}\r\n\r\n \tarea = x = y = 0;\r\n\r\n \t// polygon centroid algorithm;\r\n \tfor (i = 0, j = len - 1; i < len; j = i++) {\r\n \t\tp1 = points[i];\r\n \t\tp2 = points[j];\r\n\r\n \t\tf = p1.y * p2.x - p2.y * p1.x;\r\n \t\tx += (p1.x + p2.x) * f;\r\n \t\ty += (p1.y + p2.y) * f;\r\n \t\tarea += f * 3;\r\n \t}\r\n\r\n \tif (area === 0) {\r\n \t\t// Polygon is so small that all points are on same pixel.\r\n \t\tcenter = points[0];\r\n \t} else {\r\n \t\tcenter = [x / area, y / area];\r\n \t}\r\n\r\n \tvar latlngCenter = crs.unproject(toPoint(center));\r\n \treturn toLatLng([latlngCenter.lat + centroidLatLng.lat, latlngCenter.lng + centroidLatLng.lng]);\r\n }\r\n\r\n /* @function centroid(latlngs: LatLng[]): LatLng\r\n * Returns the 'center of mass' of the passed LatLngs.\r\n */\r\n function centroid(coords) {\r\n \tvar latSum = 0;\r\n \tvar lngSum = 0;\r\n \tvar len = 0;\r\n \tfor (var i = 0; i < coords.length; i++) {\r\n \t\tvar latlng = toLatLng(coords[i]);\r\n \t\tlatSum += latlng.lat;\r\n \t\tlngSum += latlng.lng;\r\n \t\tlen++;\r\n \t}\r\n \treturn toLatLng([latSum / len, lngSum / len]);\r\n }\n\n var PolyUtil = {\n __proto__: null,\n clipPolygon: clipPolygon,\n polygonCenter: polygonCenter,\n centroid: centroid\n };\n\n /*\r\n * @namespace LineUtil\r\n *\r\n * Various utility functions for polyline points processing, used by Leaflet internally to make polylines lightning-fast.\r\n */\r\n\r\n // Simplify polyline with vertex reduction and Douglas-Peucker simplification.\r\n // Improves rendering performance dramatically by lessening the number of points to draw.\r\n\r\n // @function simplify(points: Point[], tolerance: Number): Point[]\r\n // Dramatically reduces the number of points in a polyline while retaining\r\n // its shape and returns a new array of simplified points, using the\r\n // [Ramer-Douglas-Peucker algorithm](https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm).\r\n // Used for a huge performance boost when processing/displaying Leaflet polylines for\r\n // each zoom level and also reducing visual noise. tolerance affects the amount of\r\n // simplification (lesser value means higher quality but slower and with more points).\r\n // Also released as a separated micro-library [Simplify.js](https://mourner.github.io/simplify-js/).\r\n function simplify(points, tolerance) {\r\n \tif (!tolerance || !points.length) {\r\n \t\treturn points.slice();\r\n \t}\r\n\r\n \tvar sqTolerance = tolerance * tolerance;\r\n\r\n \t // stage 1: vertex reduction\r\n \t points = _reducePoints(points, sqTolerance);\r\n\r\n \t // stage 2: Douglas-Peucker simplification\r\n \t points = _simplifyDP(points, sqTolerance);\r\n\r\n \treturn points;\r\n }\r\n\r\n // @function pointToSegmentDistance(p: Point, p1: Point, p2: Point): Number\r\n // Returns the distance between point `p` and segment `p1` to `p2`.\r\n function pointToSegmentDistance(p, p1, p2) {\r\n \treturn Math.sqrt(_sqClosestPointOnSegment(p, p1, p2, true));\r\n }\r\n\r\n // @function closestPointOnSegment(p: Point, p1: Point, p2: Point): Number\r\n // Returns the closest point from a point `p` on a segment `p1` to `p2`.\r\n function closestPointOnSegment(p, p1, p2) {\r\n \treturn _sqClosestPointOnSegment(p, p1, p2);\r\n }\r\n\r\n // Ramer-Douglas-Peucker simplification, see https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm\r\n function _simplifyDP(points, sqTolerance) {\r\n\r\n \tvar len = points.length,\r\n \t ArrayConstructor = typeof Uint8Array !== undefined + '' ? Uint8Array : Array,\r\n \t markers = new ArrayConstructor(len);\r\n\r\n \t markers[0] = markers[len - 1] = 1;\r\n\r\n \t_simplifyDPStep(points, markers, sqTolerance, 0, len - 1);\r\n\r\n \tvar i,\r\n \t newPoints = [];\r\n\r\n \tfor (i = 0; i < len; i++) {\r\n \t\tif (markers[i]) {\r\n \t\t\tnewPoints.push(points[i]);\r\n \t\t}\r\n \t}\r\n\r\n \treturn newPoints;\r\n }\r\n\r\n function _simplifyDPStep(points, markers, sqTolerance, first, last) {\r\n\r\n \tvar maxSqDist = 0,\r\n \tindex, i, sqDist;\r\n\r\n \tfor (i = first + 1; i <= last - 1; i++) {\r\n \t\tsqDist = _sqClosestPointOnSegment(points[i], points[first], points[last], true);\r\n\r\n \t\tif (sqDist > maxSqDist) {\r\n \t\t\tindex = i;\r\n \t\t\tmaxSqDist = sqDist;\r\n \t\t}\r\n \t}\r\n\r\n \tif (maxSqDist > sqTolerance) {\r\n \t\tmarkers[index] = 1;\r\n\r\n \t\t_simplifyDPStep(points, markers, sqTolerance, first, index);\r\n \t\t_simplifyDPStep(points, markers, sqTolerance, index, last);\r\n \t}\r\n }\r\n\r\n // reduce points that are too close to each other to a single point\r\n function _reducePoints(points, sqTolerance) {\r\n \tvar reducedPoints = [points[0]];\r\n\r\n \tfor (var i = 1, prev = 0, len = points.length; i < len; i++) {\r\n \t\tif (_sqDist(points[i], points[prev]) > sqTolerance) {\r\n \t\t\treducedPoints.push(points[i]);\r\n \t\t\tprev = i;\r\n \t\t}\r\n \t}\r\n \tif (prev < len - 1) {\r\n \t\treducedPoints.push(points[len - 1]);\r\n \t}\r\n \treturn reducedPoints;\r\n }\r\n\r\n var _lastCode;\r\n\r\n // @function clipSegment(a: Point, b: Point, bounds: Bounds, useLastCode?: Boolean, round?: Boolean): Point[]|Boolean\r\n // Clips the segment a to b by rectangular bounds with the\r\n // [Cohen-Sutherland algorithm](https://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland_algorithm)\r\n // (modifying the segment points directly!). Used by Leaflet to only show polyline\r\n // points that are on the screen or near, increasing performance.\r\n function clipSegment(a, b, bounds, useLastCode, round) {\r\n \tvar codeA = useLastCode ? _lastCode : _getBitCode(a, bounds),\r\n \t codeB = _getBitCode(b, bounds),\r\n\r\n \t codeOut, p, newCode;\r\n\r\n \t // save 2nd code to avoid calculating it on the next segment\r\n \t _lastCode = codeB;\r\n\r\n \twhile (true) {\r\n \t\t// if a,b is inside the clip window (trivial accept)\r\n \t\tif (!(codeA | codeB)) {\r\n \t\t\treturn [a, b];\r\n \t\t}\r\n\r\n \t\t// if a,b is outside the clip window (trivial reject)\r\n \t\tif (codeA & codeB) {\r\n \t\t\treturn false;\r\n \t\t}\r\n\r\n \t\t// other cases\r\n \t\tcodeOut = codeA || codeB;\r\n \t\tp = _getEdgeIntersection(a, b, codeOut, bounds, round);\r\n \t\tnewCode = _getBitCode(p, bounds);\r\n\r\n \t\tif (codeOut === codeA) {\r\n \t\t\ta = p;\r\n \t\t\tcodeA = newCode;\r\n \t\t} else {\r\n \t\t\tb = p;\r\n \t\t\tcodeB = newCode;\r\n \t\t}\r\n \t}\r\n }\r\n\r\n function _getEdgeIntersection(a, b, code, bounds, round) {\r\n \tvar dx = b.x - a.x,\r\n \t dy = b.y - a.y,\r\n \t min = bounds.min,\r\n \t max = bounds.max,\r\n \t x, y;\r\n\r\n \tif (code & 8) { // top\r\n \t\tx = a.x + dx * (max.y - a.y) / dy;\r\n \t\ty = max.y;\r\n\r\n \t} else if (code & 4) { // bottom\r\n \t\tx = a.x + dx * (min.y - a.y) / dy;\r\n \t\ty = min.y;\r\n\r\n \t} else if (code & 2) { // right\r\n \t\tx = max.x;\r\n \t\ty = a.y + dy * (max.x - a.x) / dx;\r\n\r\n \t} else if (code & 1) { // left\r\n \t\tx = min.x;\r\n \t\ty = a.y + dy * (min.x - a.x) / dx;\r\n \t}\r\n\r\n \treturn new Point(x, y, round);\r\n }\r\n\r\n function _getBitCode(p, bounds) {\r\n \tvar code = 0;\r\n\r\n \tif (p.x < bounds.min.x) { // left\r\n \t\tcode |= 1;\r\n \t} else if (p.x > bounds.max.x) { // right\r\n \t\tcode |= 2;\r\n \t}\r\n\r\n \tif (p.y < bounds.min.y) { // bottom\r\n \t\tcode |= 4;\r\n \t} else if (p.y > bounds.max.y) { // top\r\n \t\tcode |= 8;\r\n \t}\r\n\r\n \treturn code;\r\n }\r\n\r\n // square distance (to avoid unnecessary Math.sqrt calls)\r\n function _sqDist(p1, p2) {\r\n \tvar dx = p2.x - p1.x,\r\n \t dy = p2.y - p1.y;\r\n \treturn dx * dx + dy * dy;\r\n }\r\n\r\n // return closest point on segment or distance to that point\r\n function _sqClosestPointOnSegment(p, p1, p2, sqDist) {\r\n \tvar x = p1.x,\r\n \t y = p1.y,\r\n \t dx = p2.x - x,\r\n \t dy = p2.y - y,\r\n \t dot = dx * dx + dy * dy,\r\n \t t;\r\n\r\n \tif (dot > 0) {\r\n \t\tt = ((p.x - x) * dx + (p.y - y) * dy) / dot;\r\n\r\n \t\tif (t > 1) {\r\n \t\t\tx = p2.x;\r\n \t\t\ty = p2.y;\r\n \t\t} else if (t > 0) {\r\n \t\t\tx += dx * t;\r\n \t\t\ty += dy * t;\r\n \t\t}\r\n \t}\r\n\r\n \tdx = p.x - x;\r\n \tdy = p.y - y;\r\n\r\n \treturn sqDist ? dx * dx + dy * dy : new Point(x, y);\r\n }\r\n\r\n\r\n // @function isFlat(latlngs: LatLng[]): Boolean\r\n // Returns true if `latlngs` is a flat array, false is nested.\r\n function isFlat(latlngs) {\r\n \treturn !isArray(latlngs[0]) || (typeof latlngs[0][0] !== 'object' && typeof latlngs[0][0] !== 'undefined');\r\n }\r\n\r\n function _flat(latlngs) {\r\n \tconsole.warn('Deprecated use of _flat, please use L.LineUtil.isFlat instead.');\r\n \treturn isFlat(latlngs);\r\n }\r\n\r\n /* @function polylineCenter(latlngs: LatLng[], crs: CRS): LatLng\r\n * Returns the center ([centroid](http://en.wikipedia.org/wiki/Centroid)) of the passed LatLngs (first ring) from a polyline.\r\n */\r\n function polylineCenter(latlngs, crs) {\r\n \tvar i, halfDist, segDist, dist, p1, p2, ratio, center;\r\n\r\n \tif (!latlngs || latlngs.length === 0) {\r\n \t\tthrow new Error('latlngs not passed');\r\n \t}\r\n\r\n \tif (!isFlat(latlngs)) {\r\n \t\tconsole.warn('latlngs are not flat! Only the first ring will be used');\r\n \t\tlatlngs = latlngs[0];\r\n \t}\r\n\r\n \tvar centroidLatLng = toLatLng([0, 0]);\r\n\r\n \tvar bounds = toLatLngBounds(latlngs);\r\n \tvar areaBounds = bounds.getNorthWest().distanceTo(bounds.getSouthWest()) * bounds.getNorthEast().distanceTo(bounds.getNorthWest());\r\n \t// tests showed that below 1700 rounding errors are happening\r\n \tif (areaBounds < 1700) {\r\n \t\t// getting a inexact center, to move the latlngs near to [0, 0] to prevent rounding errors\r\n \t\tcentroidLatLng = centroid(latlngs);\r\n \t}\r\n\r\n \tvar len = latlngs.length;\r\n \tvar points = [];\r\n \tfor (i = 0; i < len; i++) {\r\n \t\tvar latlng = toLatLng(latlngs[i]);\r\n \t\tpoints.push(crs.project(toLatLng([latlng.lat - centroidLatLng.lat, latlng.lng - centroidLatLng.lng])));\r\n \t}\r\n\r\n \tfor (i = 0, halfDist = 0; i < len - 1; i++) {\r\n \t\thalfDist += points[i].distanceTo(points[i + 1]) / 2;\r\n \t}\r\n\r\n \t// The line is so small in the current view that all points are on the same pixel.\r\n \tif (halfDist === 0) {\r\n \t\tcenter = points[0];\r\n \t} else {\r\n \t\tfor (i = 0, dist = 0; i < len - 1; i++) {\r\n \t\t\tp1 = points[i];\r\n \t\t\tp2 = points[i + 1];\r\n \t\t\tsegDist = p1.distanceTo(p2);\r\n \t\t\tdist += segDist;\r\n\r\n \t\t\tif (dist > halfDist) {\r\n \t\t\t\tratio = (dist - halfDist) / segDist;\r\n \t\t\t\tcenter = [\r\n \t\t\t\t\tp2.x - ratio * (p2.x - p1.x),\r\n \t\t\t\t\tp2.y - ratio * (p2.y - p1.y)\r\n \t\t\t\t];\r\n \t\t\t\tbreak;\r\n \t\t\t}\r\n \t\t}\r\n \t}\r\n\r\n \tvar latlngCenter = crs.unproject(toPoint(center));\r\n \treturn toLatLng([latlngCenter.lat + centroidLatLng.lat, latlngCenter.lng + centroidLatLng.lng]);\r\n }\n\n var LineUtil = {\n __proto__: null,\n simplify: simplify,\n pointToSegmentDistance: pointToSegmentDistance,\n closestPointOnSegment: closestPointOnSegment,\n clipSegment: clipSegment,\n _getEdgeIntersection: _getEdgeIntersection,\n _getBitCode: _getBitCode,\n _sqClosestPointOnSegment: _sqClosestPointOnSegment,\n isFlat: isFlat,\n _flat: _flat,\n polylineCenter: polylineCenter\n };\n\n /*\r\n * @namespace Projection\r\n * @section\r\n * Leaflet comes with a set of already defined Projections out of the box:\r\n *\r\n * @projection L.Projection.LonLat\r\n *\r\n * Equirectangular, or Plate Carree projection — the most simple projection,\r\n * mostly used by GIS enthusiasts. Directly maps `x` as longitude, and `y` as\r\n * latitude. Also suitable for flat worlds, e.g. game maps. Used by the\r\n * `EPSG:4326` and `Simple` CRS.\r\n */\r\n\r\n var LonLat = {\r\n \tproject: function (latlng) {\r\n \t\treturn new Point(latlng.lng, latlng.lat);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\treturn new LatLng(point.y, point.x);\r\n \t},\r\n\r\n \tbounds: new Bounds([-180, -90], [180, 90])\r\n };\n\n /*\r\n * @namespace Projection\r\n * @projection L.Projection.Mercator\r\n *\r\n * Elliptical Mercator projection — more complex than Spherical Mercator. Assumes that Earth is an ellipsoid. Used by the EPSG:3395 CRS.\r\n */\r\n\r\n var Mercator = {\r\n \tR: 6378137,\r\n \tR_MINOR: 6356752.314245179,\r\n\r\n \tbounds: new Bounds([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]),\r\n\r\n \tproject: function (latlng) {\r\n \t\tvar d = Math.PI / 180,\r\n \t\t r = this.R,\r\n \t\t y = latlng.lat * d,\r\n \t\t tmp = this.R_MINOR / r,\r\n \t\t e = Math.sqrt(1 - tmp * tmp),\r\n \t\t con = e * Math.sin(y);\r\n\r\n \t\tvar ts = Math.tan(Math.PI / 4 - y / 2) / Math.pow((1 - con) / (1 + con), e / 2);\r\n \t\ty = -r * Math.log(Math.max(ts, 1E-10));\r\n\r\n \t\treturn new Point(latlng.lng * d * r, y);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\tvar d = 180 / Math.PI,\r\n \t\t r = this.R,\r\n \t\t tmp = this.R_MINOR / r,\r\n \t\t e = Math.sqrt(1 - tmp * tmp),\r\n \t\t ts = Math.exp(-point.y / r),\r\n \t\t phi = Math.PI / 2 - 2 * Math.atan(ts);\r\n\r\n \t\tfor (var i = 0, dphi = 0.1, con; i < 15 && Math.abs(dphi) > 1e-7; i++) {\r\n \t\t\tcon = e * Math.sin(phi);\r\n \t\t\tcon = Math.pow((1 - con) / (1 + con), e / 2);\r\n \t\t\tdphi = Math.PI / 2 - 2 * Math.atan(ts * con) - phi;\r\n \t\t\tphi += dphi;\r\n \t\t}\r\n\r\n \t\treturn new LatLng(phi * d, point.x * d / r);\r\n \t}\r\n };\n\n /*\n * @class Projection\n\n * An object with methods for projecting geographical coordinates of the world onto\n * a flat surface (and back). See [Map projection](https://en.wikipedia.org/wiki/Map_projection).\n\n * @property bounds: Bounds\n * The bounds (specified in CRS units) where the projection is valid\n\n * @method project(latlng: LatLng): Point\n * Projects geographical coordinates into a 2D point.\n * Only accepts actual `L.LatLng` instances, not arrays.\n\n * @method unproject(point: Point): LatLng\n * The inverse of `project`. Projects a 2D point into a geographical location.\n * Only accepts actual `L.Point` instances, not arrays.\n\n * Note that the projection instances do not inherit from Leaflet's `Class` object,\n * and can't be instantiated. Also, new classes can't inherit from them,\n * and methods can't be added to them with the `include` function.\n\n */\n\n var index = {\n __proto__: null,\n LonLat: LonLat,\n Mercator: Mercator,\n SphericalMercator: SphericalMercator\n };\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3395\r\n *\r\n * Rarely used by some commercial tile providers. Uses Elliptical Mercator projection.\r\n */\r\n var EPSG3395 = extend({}, Earth, {\r\n \tcode: 'EPSG:3395',\r\n \tprojection: Mercator,\r\n\r\n \ttransformation: (function () {\r\n \t\tvar scale = 0.5 / (Math.PI * Mercator.R);\r\n \t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n \t}())\r\n });\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG4326\r\n *\r\n * A common CRS among GIS enthusiasts. Uses simple Equirectangular projection.\r\n *\r\n * Leaflet 1.0.x complies with the [TMS coordinate scheme for EPSG:4326](https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification#global-geodetic),\r\n * which is a breaking change from 0.7.x behaviour. If you are using a `TileLayer`\r\n * with this CRS, ensure that there are two 256x256 pixel tiles covering the\r\n * whole earth at zoom level zero, and that the tile coordinate origin is (-180,+90),\r\n * or (-180,-90) for `TileLayer`s with [the `tms` option](#tilelayer-tms) set.\r\n */\r\n\r\n var EPSG4326 = extend({}, Earth, {\r\n \tcode: 'EPSG:4326',\r\n \tprojection: LonLat,\r\n \ttransformation: toTransformation(1 / 180, 1, -1 / 180, 0.5)\r\n });\n\n /*\n * @namespace CRS\n * @crs L.CRS.Simple\n *\n * A simple CRS that maps longitude and latitude into `x` and `y` directly.\n * May be used for maps of flat surfaces (e.g. game maps). Note that the `y`\n * axis should still be inverted (going from bottom to top). `distance()` returns\n * simple euclidean distance.\n */\n\n var Simple = extend({}, CRS, {\n \tprojection: LonLat,\n \ttransformation: toTransformation(1, 0, -1, 0),\n\n \tscale: function (zoom) {\n \t\treturn Math.pow(2, zoom);\n \t},\n\n \tzoom: function (scale) {\n \t\treturn Math.log(scale) / Math.LN2;\n \t},\n\n \tdistance: function (latlng1, latlng2) {\n \t\tvar dx = latlng2.lng - latlng1.lng,\n \t\t dy = latlng2.lat - latlng1.lat;\n\n \t\treturn Math.sqrt(dx * dx + dy * dy);\n \t},\n\n \tinfinite: true\n });\n\n CRS.Earth = Earth;\n CRS.EPSG3395 = EPSG3395;\n CRS.EPSG3857 = EPSG3857;\n CRS.EPSG900913 = EPSG900913;\n CRS.EPSG4326 = EPSG4326;\n CRS.Simple = Simple;\n\n /*\n * @class Layer\n * @inherits Evented\n * @aka L.Layer\n * @aka ILayer\n *\n * A set of methods from the Layer base class that all Leaflet layers use.\n * Inherits all methods, options and events from `L.Evented`.\n *\n * @example\n *\n * ```js\n * var layer = L.marker(latlng).addTo(map);\n * layer.addTo(map);\n * layer.remove();\n * ```\n *\n * @event add: Event\n * Fired after the layer is added to a map\n *\n * @event remove: Event\n * Fired after the layer is removed from a map\n */\n\n\n var Layer = Evented.extend({\n\n \t// Classes extending `L.Layer` will inherit the following options:\n \toptions: {\n \t\t// @option pane: String = 'overlayPane'\n \t\t// By default the layer will be added to the map's [overlay pane](#map-overlaypane). Overriding this option will cause the layer to be placed on another pane by default.\n \t\tpane: 'overlayPane',\n\n \t\t// @option attribution: String = null\n \t\t// String to be shown in the attribution control, e.g. \"© OpenStreetMap contributors\". It describes the layer data and is often a legal obligation towards copyright holders and tile providers.\n \t\tattribution: null,\n\n \t\tbubblingMouseEvents: true\n \t},\n\n \t/* @section\n \t * Classes extending `L.Layer` will inherit the following methods:\n \t *\n \t * @method addTo(map: Map|LayerGroup): this\n \t * Adds the layer to the given map or layer group.\n \t */\n \taddTo: function (map) {\n \t\tmap.addLayer(this);\n \t\treturn this;\n \t},\n\n \t// @method remove: this\n \t// Removes the layer from the map it is currently active on.\n \tremove: function () {\n \t\treturn this.removeFrom(this._map || this._mapToAdd);\n \t},\n\n \t// @method removeFrom(map: Map): this\n \t// Removes the layer from the given map\n \t//\n \t// @alternative\n \t// @method removeFrom(group: LayerGroup): this\n \t// Removes the layer from the given `LayerGroup`\n \tremoveFrom: function (obj) {\n \t\tif (obj) {\n \t\t\tobj.removeLayer(this);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method getPane(name? : String): HTMLElement\n \t// Returns the `HTMLElement` representing the named pane on the map. If `name` is omitted, returns the pane for this layer.\n \tgetPane: function (name) {\n \t\treturn this._map.getPane(name ? (this.options[name] || name) : this.options.pane);\n \t},\n\n \taddInteractiveTarget: function (targetEl) {\n \t\tthis._map._targets[stamp(targetEl)] = this;\n \t\treturn this;\n \t},\n\n \tremoveInteractiveTarget: function (targetEl) {\n \t\tdelete this._map._targets[stamp(targetEl)];\n \t\treturn this;\n \t},\n\n \t// @method getAttribution: String\n \t// Used by the `attribution control`, returns the [attribution option](#gridlayer-attribution).\n \tgetAttribution: function () {\n \t\treturn this.options.attribution;\n \t},\n\n \t_layerAdd: function (e) {\n \t\tvar map = e.target;\n\n \t\t// check in case layer gets added and then removed before the map is ready\n \t\tif (!map.hasLayer(this)) { return; }\n\n \t\tthis._map = map;\n \t\tthis._zoomAnimated = map._zoomAnimated;\n\n \t\tif (this.getEvents) {\n \t\t\tvar events = this.getEvents();\n \t\t\tmap.on(events, this);\n \t\t\tthis.once('remove', function () {\n \t\t\t\tmap.off(events, this);\n \t\t\t}, this);\n \t\t}\n\n \t\tthis.onAdd(map);\n\n \t\tthis.fire('add');\n \t\tmap.fire('layeradd', {layer: this});\n \t}\n });\n\n /* @section Extension methods\n * @uninheritable\n *\n * Every layer should extend from `L.Layer` and (re-)implement the following methods.\n *\n * @method onAdd(map: Map): this\n * Should contain code that creates DOM elements for the layer, adds them to `map panes` where they should belong and puts listeners on relevant map events. Called on [`map.addLayer(layer)`](#map-addlayer).\n *\n * @method onRemove(map: Map): this\n * Should contain all clean up code that removes the layer's elements from the DOM and removes listeners previously added in [`onAdd`](#layer-onadd). Called on [`map.removeLayer(layer)`](#map-removelayer).\n *\n * @method getEvents(): Object\n * This optional method should return an object like `{ viewreset: this._reset }` for [`addEventListener`](#evented-addeventlistener). The event handlers in this object will be automatically added and removed from the map with your layer.\n *\n * @method getAttribution(): String\n * This optional method should return a string containing HTML to be shown on the `Attribution control` whenever the layer is visible.\n *\n * @method beforeAdd(map: Map): this\n * Optional method. Called on [`map.addLayer(layer)`](#map-addlayer), before the layer is added to the map, before events are initialized, without waiting until the map is in a usable state. Use for early initialization only.\n */\n\n\n /* @namespace Map\n * @section Layer events\n *\n * @event layeradd: LayerEvent\n * Fired when a new layer is added to the map.\n *\n * @event layerremove: LayerEvent\n * Fired when some layer is removed from the map\n *\n * @section Methods for Layers and Controls\n */\n Map.include({\n \t// @method addLayer(layer: Layer): this\n \t// Adds the given layer to the map\n \taddLayer: function (layer) {\n \t\tif (!layer._layerAdd) {\n \t\t\tthrow new Error('The provided object is not a Layer.');\n \t\t}\n\n \t\tvar id = stamp(layer);\n \t\tif (this._layers[id]) { return this; }\n \t\tthis._layers[id] = layer;\n\n \t\tlayer._mapToAdd = this;\n\n \t\tif (layer.beforeAdd) {\n \t\t\tlayer.beforeAdd(this);\n \t\t}\n\n \t\tthis.whenReady(layer._layerAdd, layer);\n\n \t\treturn this;\n \t},\n\n \t// @method removeLayer(layer: Layer): this\n \t// Removes the given layer from the map.\n \tremoveLayer: function (layer) {\n \t\tvar id = stamp(layer);\n\n \t\tif (!this._layers[id]) { return this; }\n\n \t\tif (this._loaded) {\n \t\t\tlayer.onRemove(this);\n \t\t}\n\n \t\tdelete this._layers[id];\n\n \t\tif (this._loaded) {\n \t\t\tthis.fire('layerremove', {layer: layer});\n \t\t\tlayer.fire('remove');\n \t\t}\n\n \t\tlayer._map = layer._mapToAdd = null;\n\n \t\treturn this;\n \t},\n\n \t// @method hasLayer(layer: Layer): Boolean\n \t// Returns `true` if the given layer is currently added to the map\n \thasLayer: function (layer) {\n \t\treturn stamp(layer) in this._layers;\n \t},\n\n \t/* @method eachLayer(fn: Function, context?: Object): this\n \t * Iterates over the layers of the map, optionally specifying context of the iterator function.\n \t * ```\n \t * map.eachLayer(function(layer){\n \t * layer.bindPopup('Hello');\n \t * });\n \t * ```\n \t */\n \teachLayer: function (method, context) {\n \t\tfor (var i in this._layers) {\n \t\t\tmethod.call(context, this._layers[i]);\n \t\t}\n \t\treturn this;\n \t},\n\n \t_addLayers: function (layers) {\n \t\tlayers = layers ? (isArray(layers) ? layers : [layers]) : [];\n\n \t\tfor (var i = 0, len = layers.length; i < len; i++) {\n \t\t\tthis.addLayer(layers[i]);\n \t\t}\n \t},\n\n \t_addZoomLimit: function (layer) {\n \t\tif (!isNaN(layer.options.maxZoom) || !isNaN(layer.options.minZoom)) {\n \t\t\tthis._zoomBoundLayers[stamp(layer)] = layer;\n \t\t\tthis._updateZoomLevels();\n \t\t}\n \t},\n\n \t_removeZoomLimit: function (layer) {\n \t\tvar id = stamp(layer);\n\n \t\tif (this._zoomBoundLayers[id]) {\n \t\t\tdelete this._zoomBoundLayers[id];\n \t\t\tthis._updateZoomLevels();\n \t\t}\n \t},\n\n \t_updateZoomLevels: function () {\n \t\tvar minZoom = Infinity,\n \t\t maxZoom = -Infinity,\n \t\t oldZoomSpan = this._getZoomSpan();\n\n \t\tfor (var i in this._zoomBoundLayers) {\n \t\t\tvar options = this._zoomBoundLayers[i].options;\n\n \t\t\tminZoom = options.minZoom === undefined ? minZoom : Math.min(minZoom, options.minZoom);\n \t\t\tmaxZoom = options.maxZoom === undefined ? maxZoom : Math.max(maxZoom, options.maxZoom);\n \t\t}\n\n \t\tthis._layersMaxZoom = maxZoom === -Infinity ? undefined : maxZoom;\n \t\tthis._layersMinZoom = minZoom === Infinity ? undefined : minZoom;\n\n \t\t// @section Map state change events\n \t\t// @event zoomlevelschange: Event\n \t\t// Fired when the number of zoomlevels on the map is changed due\n \t\t// to adding or removing a layer.\n \t\tif (oldZoomSpan !== this._getZoomSpan()) {\n \t\t\tthis.fire('zoomlevelschange');\n \t\t}\n\n \t\tif (this.options.maxZoom === undefined && this._layersMaxZoom && this.getZoom() > this._layersMaxZoom) {\n \t\t\tthis.setZoom(this._layersMaxZoom);\n \t\t}\n \t\tif (this.options.minZoom === undefined && this._layersMinZoom && this.getZoom() < this._layersMinZoom) {\n \t\t\tthis.setZoom(this._layersMinZoom);\n \t\t}\n \t}\n });\n\n /*\r\n * @class LayerGroup\r\n * @aka L.LayerGroup\r\n * @inherits Interactive layer\r\n *\r\n * Used to group several layers and handle them as one. If you add it to the map,\r\n * any layers added or removed from the group will be added/removed on the map as\r\n * well. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.layerGroup([marker1, marker2])\r\n * \t.addLayer(polyline)\r\n * \t.addTo(map);\r\n * ```\r\n */\r\n\r\n var LayerGroup = Layer.extend({\r\n\r\n \tinitialize: function (layers, options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._layers = {};\r\n\r\n \t\tvar i, len;\r\n\r\n \t\tif (layers) {\r\n \t\t\tfor (i = 0, len = layers.length; i < len; i++) {\r\n \t\t\t\tthis.addLayer(layers[i]);\r\n \t\t\t}\r\n \t\t}\r\n \t},\r\n\r\n \t// @method addLayer(layer: Layer): this\r\n \t// Adds the given layer to the group.\r\n \taddLayer: function (layer) {\r\n \t\tvar id = this.getLayerId(layer);\r\n\r\n \t\tthis._layers[id] = layer;\r\n\r\n \t\tif (this._map) {\r\n \t\t\tthis._map.addLayer(layer);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeLayer(layer: Layer): this\r\n \t// Removes the given layer from the group.\r\n \t// @alternative\r\n \t// @method removeLayer(id: Number): this\r\n \t// Removes the layer with the given internal ID from the group.\r\n \tremoveLayer: function (layer) {\r\n \t\tvar id = layer in this._layers ? layer : this.getLayerId(layer);\r\n\r\n \t\tif (this._map && this._layers[id]) {\r\n \t\t\tthis._map.removeLayer(this._layers[id]);\r\n \t\t}\r\n\r\n \t\tdelete this._layers[id];\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method hasLayer(layer: Layer): Boolean\r\n \t// Returns `true` if the given layer is currently added to the group.\r\n \t// @alternative\r\n \t// @method hasLayer(id: Number): Boolean\r\n \t// Returns `true` if the given internal ID is currently added to the group.\r\n \thasLayer: function (layer) {\r\n \t\tvar layerId = typeof layer === 'number' ? layer : this.getLayerId(layer);\r\n \t\treturn layerId in this._layers;\r\n \t},\r\n\r\n \t// @method clearLayers(): this\r\n \t// Removes all the layers from the group.\r\n \tclearLayers: function () {\r\n \t\treturn this.eachLayer(this.removeLayer, this);\r\n \t},\r\n\r\n \t// @method invoke(methodName: String, …): this\r\n \t// Calls `methodName` on every layer contained in this group, passing any\r\n \t// additional parameters. Has no effect if the layers contained do not\r\n \t// implement `methodName`.\r\n \tinvoke: function (methodName) {\r\n \t\tvar args = Array.prototype.slice.call(arguments, 1),\r\n \t\t i, layer;\r\n\r\n \t\tfor (i in this._layers) {\r\n \t\t\tlayer = this._layers[i];\r\n\r\n \t\t\tif (layer[methodName]) {\r\n \t\t\t\tlayer[methodName].apply(layer, args);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tthis.eachLayer(map.addLayer, map);\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tthis.eachLayer(map.removeLayer, map);\r\n \t},\r\n\r\n \t// @method eachLayer(fn: Function, context?: Object): this\r\n \t// Iterates over the layers of the group, optionally specifying context of the iterator function.\r\n \t// ```js\r\n \t// group.eachLayer(function (layer) {\r\n \t// \tlayer.bindPopup('Hello');\r\n \t// });\r\n \t// ```\r\n \teachLayer: function (method, context) {\r\n \t\tfor (var i in this._layers) {\r\n \t\t\tmethod.call(context, this._layers[i]);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getLayer(id: Number): Layer\r\n \t// Returns the layer with the given internal ID.\r\n \tgetLayer: function (id) {\r\n \t\treturn this._layers[id];\r\n \t},\r\n\r\n \t// @method getLayers(): Layer[]\r\n \t// Returns an array of all the layers added to the group.\r\n \tgetLayers: function () {\r\n \t\tvar layers = [];\r\n \t\tthis.eachLayer(layers.push, layers);\r\n \t\treturn layers;\r\n \t},\r\n\r\n \t// @method setZIndex(zIndex: Number): this\r\n \t// Calls `setZIndex` on every layer contained in this group, passing the z-index.\r\n \tsetZIndex: function (zIndex) {\r\n \t\treturn this.invoke('setZIndex', zIndex);\r\n \t},\r\n\r\n \t// @method getLayerId(layer: Layer): Number\r\n \t// Returns the internal ID for a layer\r\n \tgetLayerId: function (layer) {\r\n \t\treturn stamp(layer);\r\n \t}\r\n });\r\n\r\n\r\n // @factory L.layerGroup(layers?: Layer[], options?: Object)\r\n // Create a layer group, optionally given an initial set of layers and an `options` object.\r\n var layerGroup = function (layers, options) {\r\n \treturn new LayerGroup(layers, options);\r\n };\n\n /*\r\n * @class FeatureGroup\r\n * @aka L.FeatureGroup\r\n * @inherits LayerGroup\r\n *\r\n * Extended `LayerGroup` that makes it easier to do the same thing to all its member layers:\r\n * * [`bindPopup`](#layer-bindpopup) binds a popup to all of the layers at once (likewise with [`bindTooltip`](#layer-bindtooltip))\r\n * * Events are propagated to the `FeatureGroup`, so if the group has an event\r\n * handler, it will handle events from any of the layers. This includes mouse events\r\n * and custom events.\r\n * * Has `layeradd` and `layerremove` events\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.featureGroup([marker1, marker2, polyline])\r\n * \t.bindPopup('Hello world!')\r\n * \t.on('click', function() { alert('Clicked on a member of the group!'); })\r\n * \t.addTo(map);\r\n * ```\r\n */\r\n\r\n var FeatureGroup = LayerGroup.extend({\r\n\r\n \taddLayer: function (layer) {\r\n \t\tif (this.hasLayer(layer)) {\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tlayer.addEventParent(this);\r\n\r\n \t\tLayerGroup.prototype.addLayer.call(this, layer);\r\n\r\n \t\t// @event layeradd: LayerEvent\r\n \t\t// Fired when a layer is added to this `FeatureGroup`\r\n \t\treturn this.fire('layeradd', {layer: layer});\r\n \t},\r\n\r\n \tremoveLayer: function (layer) {\r\n \t\tif (!this.hasLayer(layer)) {\r\n \t\t\treturn this;\r\n \t\t}\r\n \t\tif (layer in this._layers) {\r\n \t\t\tlayer = this._layers[layer];\r\n \t\t}\r\n\r\n \t\tlayer.removeEventParent(this);\r\n\r\n \t\tLayerGroup.prototype.removeLayer.call(this, layer);\r\n\r\n \t\t// @event layerremove: LayerEvent\r\n \t\t// Fired when a layer is removed from this `FeatureGroup`\r\n \t\treturn this.fire('layerremove', {layer: layer});\r\n \t},\r\n\r\n \t// @method setStyle(style: Path options): this\r\n \t// Sets the given path options to each layer of the group that has a `setStyle` method.\r\n \tsetStyle: function (style) {\r\n \t\treturn this.invoke('setStyle', style);\r\n \t},\r\n\r\n \t// @method bringToFront(): this\r\n \t// Brings the layer group to the top of all other layers\r\n \tbringToFront: function () {\r\n \t\treturn this.invoke('bringToFront');\r\n \t},\r\n\r\n \t// @method bringToBack(): this\r\n \t// Brings the layer group to the back of all other layers\r\n \tbringToBack: function () {\r\n \t\treturn this.invoke('bringToBack');\r\n \t},\r\n\r\n \t// @method getBounds(): LatLngBounds\r\n \t// Returns the LatLngBounds of the Feature Group (created from bounds and coordinates of its children).\r\n \tgetBounds: function () {\r\n \t\tvar bounds = new LatLngBounds();\r\n\r\n \t\tfor (var id in this._layers) {\r\n \t\t\tvar layer = this._layers[id];\r\n \t\t\tbounds.extend(layer.getBounds ? layer.getBounds() : layer.getLatLng());\r\n \t\t}\r\n \t\treturn bounds;\r\n \t}\r\n });\r\n\r\n // @factory L.featureGroup(layers?: Layer[], options?: Object)\r\n // Create a feature group, optionally given an initial set of layers and an `options` object.\r\n var featureGroup = function (layers, options) {\r\n \treturn new FeatureGroup(layers, options);\r\n };\n\n /*\r\n * @class Icon\r\n * @aka L.Icon\r\n *\r\n * Represents an icon to provide when creating a marker.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var myIcon = L.icon({\r\n * iconUrl: 'my-icon.png',\r\n * iconRetinaUrl: 'my-icon@2x.png',\r\n * iconSize: [38, 95],\r\n * iconAnchor: [22, 94],\r\n * popupAnchor: [-3, -76],\r\n * shadowUrl: 'my-icon-shadow.png',\r\n * shadowRetinaUrl: 'my-icon-shadow@2x.png',\r\n * shadowSize: [68, 95],\r\n * shadowAnchor: [22, 94]\r\n * });\r\n *\r\n * L.marker([50.505, 30.57], {icon: myIcon}).addTo(map);\r\n * ```\r\n *\r\n * `L.Icon.Default` extends `L.Icon` and is the blue icon Leaflet uses for markers by default.\r\n *\r\n */\r\n\r\n var Icon = Class.extend({\r\n\r\n \t/* @section\r\n \t * @aka Icon options\r\n \t *\r\n \t * @option iconUrl: String = null\r\n \t * **(required)** The URL to the icon image (absolute or relative to your script path).\r\n \t *\r\n \t * @option iconRetinaUrl: String = null\r\n \t * The URL to a retina sized version of the icon image (absolute or relative to your\r\n \t * script path). Used for Retina screen devices.\r\n \t *\r\n \t * @option iconSize: Point = null\r\n \t * Size of the icon image in pixels.\r\n \t *\r\n \t * @option iconAnchor: Point = null\r\n \t * The coordinates of the \"tip\" of the icon (relative to its top left corner). The icon\r\n \t * will be aligned so that this point is at the marker's geographical location. Centered\r\n \t * by default if size is specified, also can be set in CSS with negative margins.\r\n \t *\r\n \t * @option popupAnchor: Point = [0, 0]\r\n \t * The coordinates of the point from which popups will \"open\", relative to the icon anchor.\r\n \t *\r\n \t * @option tooltipAnchor: Point = [0, 0]\r\n \t * The coordinates of the point from which tooltips will \"open\", relative to the icon anchor.\r\n \t *\r\n \t * @option shadowUrl: String = null\r\n \t * The URL to the icon shadow image. If not specified, no shadow image will be created.\r\n \t *\r\n \t * @option shadowRetinaUrl: String = null\r\n \t *\r\n \t * @option shadowSize: Point = null\r\n \t * Size of the shadow image in pixels.\r\n \t *\r\n \t * @option shadowAnchor: Point = null\r\n \t * The coordinates of the \"tip\" of the shadow (relative to its top left corner) (the same\r\n \t * as iconAnchor if not specified).\r\n \t *\r\n \t * @option className: String = ''\r\n \t * A custom class name to assign to both icon and shadow images. Empty by default.\r\n \t */\r\n\r\n \toptions: {\r\n \t\tpopupAnchor: [0, 0],\r\n \t\ttooltipAnchor: [0, 0],\r\n\r\n \t\t// @option crossOrigin: Boolean|String = false\r\n \t\t// Whether the crossOrigin attribute will be added to the tiles.\r\n \t\t// If a String is provided, all tiles will have their crossOrigin attribute set to the String provided. This is needed if you want to access tile pixel data.\r\n \t\t// Refer to [CORS Settings](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for valid String values.\r\n \t\tcrossOrigin: false\r\n \t},\r\n\r\n \tinitialize: function (options) {\r\n \t\tsetOptions(this, options);\r\n \t},\r\n\r\n \t// @method createIcon(oldIcon?: HTMLElement): HTMLElement\r\n \t// Called internally when the icon has to be shown, returns a `<img>` HTML element\r\n \t// styled according to the options.\r\n \tcreateIcon: function (oldIcon) {\r\n \t\treturn this._createIcon('icon', oldIcon);\r\n \t},\r\n\r\n \t// @method createShadow(oldIcon?: HTMLElement): HTMLElement\r\n \t// As `createIcon`, but for the shadow beneath it.\r\n \tcreateShadow: function (oldIcon) {\r\n \t\treturn this._createIcon('shadow', oldIcon);\r\n \t},\r\n\r\n \t_createIcon: function (name, oldIcon) {\r\n \t\tvar src = this._getIconUrl(name);\r\n\r\n \t\tif (!src) {\r\n \t\t\tif (name === 'icon') {\r\n \t\t\t\tthrow new Error('iconUrl not set in Icon options (see the docs).');\r\n \t\t\t}\r\n \t\t\treturn null;\r\n \t\t}\r\n\r\n \t\tvar img = this._createImg(src, oldIcon && oldIcon.tagName === 'IMG' ? oldIcon : null);\r\n \t\tthis._setIconStyles(img, name);\r\n\r\n \t\tif (this.options.crossOrigin || this.options.crossOrigin === '') {\r\n \t\t\timg.crossOrigin = this.options.crossOrigin === true ? '' : this.options.crossOrigin;\r\n \t\t}\r\n\r\n \t\treturn img;\r\n \t},\r\n\r\n \t_setIconStyles: function (img, name) {\r\n \t\tvar options = this.options;\r\n \t\tvar sizeOption = options[name + 'Size'];\r\n\r\n \t\tif (typeof sizeOption === 'number') {\r\n \t\t\tsizeOption = [sizeOption, sizeOption];\r\n \t\t}\r\n\r\n \t\tvar size = toPoint(sizeOption),\r\n \t\t anchor = toPoint(name === 'shadow' && options.shadowAnchor || options.iconAnchor ||\r\n \t\t size && size.divideBy(2, true));\r\n\r\n \t\timg.className = 'leaflet-marker-' + name + ' ' + (options.className || '');\r\n\r\n \t\tif (anchor) {\r\n \t\t\timg.style.marginLeft = (-anchor.x) + 'px';\r\n \t\t\timg.style.marginTop = (-anchor.y) + 'px';\r\n \t\t}\r\n\r\n \t\tif (size) {\r\n \t\t\timg.style.width = size.x + 'px';\r\n \t\t\timg.style.height = size.y + 'px';\r\n \t\t}\r\n \t},\r\n\r\n \t_createImg: function (src, el) {\r\n \t\tel = el || document.createElement('img');\r\n \t\tel.src = src;\r\n \t\treturn el;\r\n \t},\r\n\r\n \t_getIconUrl: function (name) {\r\n \t\treturn Browser.retina && this.options[name + 'RetinaUrl'] || this.options[name + 'Url'];\r\n \t}\r\n });\r\n\r\n\r\n // @factory L.icon(options: Icon options)\r\n // Creates an icon instance with the given options.\r\n function icon(options) {\r\n \treturn new Icon(options);\r\n }\n\n /*\n * @miniclass Icon.Default (Icon)\n * @aka L.Icon.Default\n * @section\n *\n * A trivial subclass of `Icon`, represents the icon to use in `Marker`s when\n * no icon is specified. Points to the blue marker image distributed with Leaflet\n * releases.\n *\n * In order to customize the default icon, just change the properties of `L.Icon.Default.prototype.options`\n * (which is a set of `Icon options`).\n *\n * If you want to _completely_ replace the default icon, override the\n * `L.Marker.prototype.options.icon` with your own icon instead.\n */\n\n var IconDefault = Icon.extend({\n\n \toptions: {\n \t\ticonUrl: 'marker-icon.png',\n \t\ticonRetinaUrl: 'marker-icon-2x.png',\n \t\tshadowUrl: 'marker-shadow.png',\n \t\ticonSize: [25, 41],\n \t\ticonAnchor: [12, 41],\n \t\tpopupAnchor: [1, -34],\n \t\ttooltipAnchor: [16, -28],\n \t\tshadowSize: [41, 41]\n \t},\n\n \t_getIconUrl: function (name) {\n \t\tif (typeof IconDefault.imagePath !== 'string') {\t// Deprecated, backwards-compatibility only\n \t\t\tIconDefault.imagePath = this._detectIconPath();\n \t\t}\n\n \t\t// @option imagePath: String\n \t\t// `Icon.Default` will try to auto-detect the location of the\n \t\t// blue icon images. If you are placing these images in a non-standard\n \t\t// way, set this option to point to the right path.\n \t\treturn (this.options.imagePath || IconDefault.imagePath) + Icon.prototype._getIconUrl.call(this, name);\n \t},\n\n \t_stripUrl: function (path) {\t// separate function to use in tests\n \t\tvar strip = function (str, re, idx) {\n \t\t\tvar match = re.exec(str);\n \t\t\treturn match && match[idx];\n \t\t};\n \t\tpath = strip(path, /^url\\((['\"])?(.+)\\1\\)$/, 2);\n \t\treturn path && strip(path, /^(.*)marker-icon\\.png$/, 1);\n \t},\n\n \t_detectIconPath: function () {\n \t\tvar el = create$1('div', 'leaflet-default-icon-path', document.body);\n \t\tvar path = getStyle(el, 'background-image') ||\n \t\t getStyle(el, 'backgroundImage');\t// IE8\n\n \t\tdocument.body.removeChild(el);\n \t\tpath = this._stripUrl(path);\n \t\tif (path) { return path; }\n \t\tvar link = document.querySelector('link[href$=\"leaflet.css\"]');\n \t\tif (!link) { return ''; }\n \t\treturn link.href.substring(0, link.href.length - 'leaflet.css'.length - 1);\n \t}\n });\n\n /*\n * L.Handler.MarkerDrag is used internally by L.Marker to make the markers draggable.\n */\n\n\n /* @namespace Marker\n * @section Interaction handlers\n *\n * Interaction handlers are properties of a marker instance that allow you to control interaction behavior in runtime, enabling or disabling certain features such as dragging (see `Handler` methods). Example:\n *\n * ```js\n * marker.dragging.disable();\n * ```\n *\n * @property dragging: Handler\n * Marker dragging handler (by both mouse and touch). Only valid when the marker is on the map (Otherwise set [`marker.options.draggable`](#marker-draggable)).\n */\n\n var MarkerDrag = Handler.extend({\n \tinitialize: function (marker) {\n \t\tthis._marker = marker;\n \t},\n\n \taddHooks: function () {\n \t\tvar icon = this._marker._icon;\n\n \t\tif (!this._draggable) {\n \t\t\tthis._draggable = new Draggable(icon, icon, true);\n \t\t}\n\n \t\tthis._draggable.on({\n \t\t\tdragstart: this._onDragStart,\n \t\t\tpredrag: this._onPreDrag,\n \t\t\tdrag: this._onDrag,\n \t\t\tdragend: this._onDragEnd\n \t\t}, this).enable();\n\n \t\taddClass(icon, 'leaflet-marker-draggable');\n \t},\n\n \tremoveHooks: function () {\n \t\tthis._draggable.off({\n \t\t\tdragstart: this._onDragStart,\n \t\t\tpredrag: this._onPreDrag,\n \t\t\tdrag: this._onDrag,\n \t\t\tdragend: this._onDragEnd\n \t\t}, this).disable();\n\n \t\tif (this._marker._icon) {\n \t\t\tremoveClass(this._marker._icon, 'leaflet-marker-draggable');\n \t\t}\n \t},\n\n \tmoved: function () {\n \t\treturn this._draggable && this._draggable._moved;\n \t},\n\n \t_adjustPan: function (e) {\n \t\tvar marker = this._marker,\n \t\t map = marker._map,\n \t\t speed = this._marker.options.autoPanSpeed,\n \t\t padding = this._marker.options.autoPanPadding,\n \t\t iconPos = getPosition(marker._icon),\n \t\t bounds = map.getPixelBounds(),\n \t\t origin = map.getPixelOrigin();\n\n \t\tvar panBounds = toBounds(\n \t\t\tbounds.min._subtract(origin).add(padding),\n \t\t\tbounds.max._subtract(origin).subtract(padding)\n \t\t);\n\n \t\tif (!panBounds.contains(iconPos)) {\n \t\t\t// Compute incremental movement\n \t\t\tvar movement = toPoint(\n \t\t\t\t(Math.max(panBounds.max.x, iconPos.x) - panBounds.max.x) / (bounds.max.x - panBounds.max.x) -\n \t\t\t\t(Math.min(panBounds.min.x, iconPos.x) - panBounds.min.x) / (bounds.min.x - panBounds.min.x),\n\n \t\t\t\t(Math.max(panBounds.max.y, iconPos.y) - panBounds.max.y) / (bounds.max.y - panBounds.max.y) -\n \t\t\t\t(Math.min(panBounds.min.y, iconPos.y) - panBounds.min.y) / (bounds.min.y - panBounds.min.y)\n \t\t\t).multiplyBy(speed);\n\n \t\t\tmap.panBy(movement, {animate: false});\n\n \t\t\tthis._draggable._newPos._add(movement);\n \t\t\tthis._draggable._startPos._add(movement);\n\n \t\t\tsetPosition(marker._icon, this._draggable._newPos);\n \t\t\tthis._onDrag(e);\n\n \t\t\tthis._panRequest = requestAnimFrame(this._adjustPan.bind(this, e));\n \t\t}\n \t},\n\n \t_onDragStart: function () {\n \t\t// @section Dragging events\n \t\t// @event dragstart: Event\n \t\t// Fired when the user starts dragging the marker.\n\n \t\t// @event movestart: Event\n \t\t// Fired when the marker starts moving (because of dragging).\n\n \t\tthis._oldLatLng = this._marker.getLatLng();\n\n \t\t// When using ES6 imports it could not be set when `Popup` was not imported as well\n \t\tthis._marker.closePopup && this._marker.closePopup();\n\n \t\tthis._marker\n \t\t\t.fire('movestart')\n \t\t\t.fire('dragstart');\n \t},\n\n \t_onPreDrag: function (e) {\n \t\tif (this._marker.options.autoPan) {\n \t\t\tcancelAnimFrame(this._panRequest);\n \t\t\tthis._panRequest = requestAnimFrame(this._adjustPan.bind(this, e));\n \t\t}\n \t},\n\n \t_onDrag: function (e) {\n \t\tvar marker = this._marker,\n \t\t shadow = marker._shadow,\n \t\t iconPos = getPosition(marker._icon),\n \t\t latlng = marker._map.layerPointToLatLng(iconPos);\n\n \t\t// update shadow position\n \t\tif (shadow) {\n \t\t\tsetPosition(shadow, iconPos);\n \t\t}\n\n \t\tmarker._latlng = latlng;\n \t\te.latlng = latlng;\n \t\te.oldLatLng = this._oldLatLng;\n\n \t\t// @event drag: Event\n \t\t// Fired repeatedly while the user drags the marker.\n \t\tmarker\n \t\t .fire('move', e)\n \t\t .fire('drag', e);\n \t},\n\n \t_onDragEnd: function (e) {\n \t\t// @event dragend: DragEndEvent\n \t\t// Fired when the user stops dragging the marker.\n\n \t\t cancelAnimFrame(this._panRequest);\n\n \t\t// @event moveend: Event\n \t\t// Fired when the marker stops moving (because of dragging).\n \t\tdelete this._oldLatLng;\n \t\tthis._marker\n \t\t .fire('moveend')\n \t\t .fire('dragend', e);\n \t}\n });\n\n /*\r\n * @class Marker\r\n * @inherits Interactive layer\r\n * @aka L.Marker\r\n * L.Marker is used to display clickable/draggable icons on the map. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.marker([50.5, 30.5]).addTo(map);\r\n * ```\r\n */\r\n\r\n var Marker = Layer.extend({\r\n\r\n \t// @section\r\n \t// @aka Marker options\r\n \toptions: {\r\n \t\t// @option icon: Icon = *\r\n \t\t// Icon instance to use for rendering the marker.\r\n \t\t// See [Icon documentation](#L.Icon) for details on how to customize the marker icon.\r\n \t\t// If not specified, a common instance of `L.Icon.Default` is used.\r\n \t\ticon: new IconDefault(),\r\n\r\n \t\t// Option inherited from \"Interactive layer\" abstract class\r\n \t\tinteractive: true,\r\n\r\n \t\t// @option keyboard: Boolean = true\r\n \t\t// Whether the marker can be tabbed to with a keyboard and clicked by pressing enter.\r\n \t\tkeyboard: true,\r\n\r\n \t\t// @option title: String = ''\r\n \t\t// Text for the browser tooltip that appear on marker hover (no tooltip by default).\r\n \t\t// [Useful for accessibility](https://leafletjs.com/examples/accessibility/#markers-must-be-labelled).\r\n \t\ttitle: '',\r\n\r\n \t\t// @option alt: String = 'Marker'\r\n \t\t// Text for the `alt` attribute of the icon image.\r\n \t\t// [Useful for accessibility](https://leafletjs.com/examples/accessibility/#markers-must-be-labelled).\r\n \t\talt: 'Marker',\r\n\r\n \t\t// @option zIndexOffset: Number = 0\r\n \t\t// By default, marker images zIndex is set automatically based on its latitude. Use this option if you want to put the marker on top of all others (or below), specifying a high value like `1000` (or high negative value, respectively).\r\n \t\tzIndexOffset: 0,\r\n\r\n \t\t// @option opacity: Number = 1.0\r\n \t\t// The opacity of the marker.\r\n \t\topacity: 1,\r\n\r\n \t\t// @option riseOnHover: Boolean = false\r\n \t\t// If `true`, the marker will get on top of others when you hover the mouse over it.\r\n \t\triseOnHover: false,\r\n\r\n \t\t// @option riseOffset: Number = 250\r\n \t\t// The z-index offset used for the `riseOnHover` feature.\r\n \t\triseOffset: 250,\r\n\r\n \t\t// @option pane: String = 'markerPane'\r\n \t\t// `Map pane` where the markers icon will be added.\r\n \t\tpane: 'markerPane',\r\n\r\n \t\t// @option shadowPane: String = 'shadowPane'\r\n \t\t// `Map pane` where the markers shadow will be added.\r\n \t\tshadowPane: 'shadowPane',\r\n\r\n \t\t// @option bubblingMouseEvents: Boolean = false\r\n \t\t// When `true`, a mouse event on this marker will trigger the same event on the map\r\n \t\t// (unless [`L.DomEvent.stopPropagation`](#domevent-stoppropagation) is used).\r\n \t\tbubblingMouseEvents: false,\r\n\r\n \t\t// @option autoPanOnFocus: Boolean = true\r\n \t\t// When `true`, the map will pan whenever the marker is focused (via\r\n \t\t// e.g. pressing `tab` on the keyboard) to ensure the marker is\r\n \t\t// visible within the map's bounds\r\n \t\tautoPanOnFocus: true,\r\n\r\n \t\t// @section Draggable marker options\r\n \t\t// @option draggable: Boolean = false\r\n \t\t// Whether the marker is draggable with mouse/touch or not.\r\n \t\tdraggable: false,\r\n\r\n \t\t// @option autoPan: Boolean = false\r\n \t\t// Whether to pan the map when dragging this marker near its edge or not.\r\n \t\tautoPan: false,\r\n\r\n \t\t// @option autoPanPadding: Point = Point(50, 50)\r\n \t\t// Distance (in pixels to the left/right and to the top/bottom) of the\r\n \t\t// map edge to start panning the map.\r\n \t\tautoPanPadding: [50, 50],\r\n\r\n \t\t// @option autoPanSpeed: Number = 10\r\n \t\t// Number of pixels the map should pan by.\r\n \t\tautoPanSpeed: 10\r\n \t},\r\n\r\n \t/* @section\r\n \t *\r\n \t * In addition to [shared layer methods](#Layer) like `addTo()` and `remove()` and [popup methods](#Popup) like bindPopup() you can also use the following methods:\r\n \t */\r\n\r\n \tinitialize: function (latlng, options) {\r\n \t\tsetOptions(this, options);\r\n \t\tthis._latlng = toLatLng(latlng);\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tthis._zoomAnimated = this._zoomAnimated && map.options.markerZoomAnimation;\r\n\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tmap.on('zoomanim', this._animateZoom, this);\r\n \t\t}\r\n\r\n \t\tthis._initIcon();\r\n \t\tthis.update();\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tif (this.dragging && this.dragging.enabled()) {\r\n \t\t\tthis.options.draggable = true;\r\n \t\t\tthis.dragging.removeHooks();\r\n \t\t}\r\n \t\tdelete this.dragging;\r\n\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tmap.off('zoomanim', this._animateZoom, this);\r\n \t\t}\r\n\r\n \t\tthis._removeIcon();\r\n \t\tthis._removeShadow();\r\n \t},\r\n\r\n \tgetEvents: function () {\r\n \t\treturn {\r\n \t\t\tzoom: this.update,\r\n \t\t\tviewreset: this.update\r\n \t\t};\r\n \t},\r\n\r\n \t// @method getLatLng: LatLng\r\n \t// Returns the current geographical position of the marker.\r\n \tgetLatLng: function () {\r\n \t\treturn this._latlng;\r\n \t},\r\n\r\n \t// @method setLatLng(latlng: LatLng): this\r\n \t// Changes the marker position to the given point.\r\n \tsetLatLng: function (latlng) {\r\n \t\tvar oldLatLng = this._latlng;\r\n \t\tthis._latlng = toLatLng(latlng);\r\n \t\tthis.update();\r\n\r\n \t\t// @event move: Event\r\n \t\t// Fired when the marker is moved via [`setLatLng`](#marker-setlatlng) or by [dragging](#marker-dragging). Old and new coordinates are included in event arguments as `oldLatLng`, `latlng`.\r\n \t\treturn this.fire('move', {oldLatLng: oldLatLng, latlng: this._latlng});\r\n \t},\r\n\r\n \t// @method setZIndexOffset(offset: Number): this\r\n \t// Changes the [zIndex offset](#marker-zindexoffset) of the marker.\r\n \tsetZIndexOffset: function (offset) {\r\n \t\tthis.options.zIndexOffset = offset;\r\n \t\treturn this.update();\r\n \t},\r\n\r\n \t// @method getIcon: Icon\r\n \t// Returns the current icon used by the marker\r\n \tgetIcon: function () {\r\n \t\treturn this.options.icon;\r\n \t},\r\n\r\n \t// @method setIcon(icon: Icon): this\r\n \t// Changes the marker icon.\r\n \tsetIcon: function (icon) {\r\n\r\n \t\tthis.options.icon = icon;\r\n\r\n \t\tif (this._map) {\r\n \t\t\tthis._initIcon();\r\n \t\t\tthis.update();\r\n \t\t}\r\n\r\n \t\tif (this._popup) {\r\n \t\t\tthis.bindPopup(this._popup, this._popup.options);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \tgetElement: function () {\r\n \t\treturn this._icon;\r\n \t},\r\n\r\n \tupdate: function () {\r\n\r\n \t\tif (this._icon && this._map) {\r\n \t\t\tvar pos = this._map.latLngToLayerPoint(this._latlng).round();\r\n \t\t\tthis._setPos(pos);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_initIcon: function () {\r\n \t\tvar options = this.options,\r\n \t\t classToAdd = 'leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide');\r\n\r\n \t\tvar icon = options.icon.createIcon(this._icon),\r\n \t\t addIcon = false;\r\n\r\n \t\t// if we're not reusing the icon, remove the old one and init new one\r\n \t\tif (icon !== this._icon) {\r\n \t\t\tif (this._icon) {\r\n \t\t\t\tthis._removeIcon();\r\n \t\t\t}\r\n \t\t\taddIcon = true;\r\n\r\n \t\t\tif (options.title) {\r\n \t\t\t\ticon.title = options.title;\r\n \t\t\t}\r\n\r\n \t\t\tif (icon.tagName === 'IMG') {\r\n \t\t\t\ticon.alt = options.alt || '';\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\taddClass(icon, classToAdd);\r\n\r\n \t\tif (options.keyboard) {\r\n \t\t\ticon.tabIndex = '0';\r\n \t\t\ticon.setAttribute('role', 'button');\r\n \t\t}\r\n\r\n \t\tthis._icon = icon;\r\n\r\n \t\tif (options.riseOnHover) {\r\n \t\t\tthis.on({\r\n \t\t\t\tmouseover: this._bringToFront,\r\n \t\t\t\tmouseout: this._resetZIndex\r\n \t\t\t});\r\n \t\t}\r\n\r\n \t\tif (this.options.autoPanOnFocus) {\r\n \t\t\ton(icon, 'focus', this._panOnFocus, this);\r\n \t\t}\r\n\r\n \t\tvar newShadow = options.icon.createShadow(this._shadow),\r\n \t\t addShadow = false;\r\n\r\n \t\tif (newShadow !== this._shadow) {\r\n \t\t\tthis._removeShadow();\r\n \t\t\taddShadow = true;\r\n \t\t}\r\n\r\n \t\tif (newShadow) {\r\n \t\t\taddClass(newShadow, classToAdd);\r\n \t\t\tnewShadow.alt = '';\r\n \t\t}\r\n \t\tthis._shadow = newShadow;\r\n\r\n\r\n \t\tif (options.opacity < 1) {\r\n \t\t\tthis._updateOpacity();\r\n \t\t}\r\n\r\n\r\n \t\tif (addIcon) {\r\n \t\t\tthis.getPane().appendChild(this._icon);\r\n \t\t}\r\n \t\tthis._initInteraction();\r\n \t\tif (newShadow && addShadow) {\r\n \t\t\tthis.getPane(options.shadowPane).appendChild(this._shadow);\r\n \t\t}\r\n \t},\r\n\r\n \t_removeIcon: function () {\r\n \t\tif (this.options.riseOnHover) {\r\n \t\t\tthis.off({\r\n \t\t\t\tmouseover: this._bringToFront,\r\n \t\t\t\tmouseout: this._resetZIndex\r\n \t\t\t});\r\n \t\t}\r\n\r\n \t\tif (this.options.autoPanOnFocus) {\r\n \t\t\toff(this._icon, 'focus', this._panOnFocus, this);\r\n \t\t}\r\n\r\n \t\tremove(this._icon);\r\n \t\tthis.removeInteractiveTarget(this._icon);\r\n\r\n \t\tthis._icon = null;\r\n \t},\r\n\r\n \t_removeShadow: function () {\r\n \t\tif (this._shadow) {\r\n \t\t\tremove(this._shadow);\r\n \t\t}\r\n \t\tthis._shadow = null;\r\n \t},\r\n\r\n \t_setPos: function (pos) {\r\n\r\n \t\tif (this._icon) {\r\n \t\t\tsetPosition(this._icon, pos);\r\n \t\t}\r\n\r\n \t\tif (this._shadow) {\r\n \t\t\tsetPosition(this._shadow, pos);\r\n \t\t}\r\n\r\n \t\tthis._zIndex = pos.y + this.options.zIndexOffset;\r\n\r\n \t\tthis._resetZIndex();\r\n \t},\r\n\r\n \t_updateZIndex: function (offset) {\r\n \t\tif (this._icon) {\r\n \t\t\tthis._icon.style.zIndex = this._zIndex + offset;\r\n \t\t}\r\n \t},\r\n\r\n \t_animateZoom: function (opt) {\r\n \t\tvar pos = this._map._latLngToNewLayerPoint(this._latlng, opt.zoom, opt.center).round();\r\n\r\n \t\tthis._setPos(pos);\r\n \t},\r\n\r\n \t_initInteraction: function () {\r\n\r\n \t\tif (!this.options.interactive) { return; }\r\n\r\n \t\taddClass(this._icon, 'leaflet-interactive');\r\n\r\n \t\tthis.addInteractiveTarget(this._icon);\r\n\r\n \t\tif (MarkerDrag) {\r\n \t\t\tvar draggable = this.options.draggable;\r\n \t\t\tif (this.dragging) {\r\n \t\t\t\tdraggable = this.dragging.enabled();\r\n \t\t\t\tthis.dragging.disable();\r\n \t\t\t}\r\n\r\n \t\t\tthis.dragging = new MarkerDrag(this);\r\n\r\n \t\t\tif (draggable) {\r\n \t\t\t\tthis.dragging.enable();\r\n \t\t\t}\r\n \t\t}\r\n \t},\r\n\r\n \t// @method setOpacity(opacity: Number): this\r\n \t// Changes the opacity of the marker.\r\n \tsetOpacity: function (opacity) {\r\n \t\tthis.options.opacity = opacity;\r\n \t\tif (this._map) {\r\n \t\t\tthis._updateOpacity();\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_updateOpacity: function () {\r\n \t\tvar opacity = this.options.opacity;\r\n\r\n \t\tif (this._icon) {\r\n \t\t\tsetOpacity(this._icon, opacity);\r\n \t\t}\r\n\r\n \t\tif (this._shadow) {\r\n \t\t\tsetOpacity(this._shadow, opacity);\r\n \t\t}\r\n \t},\r\n\r\n \t_bringToFront: function () {\r\n \t\tthis._updateZIndex(this.options.riseOffset);\r\n \t},\r\n\r\n \t_resetZIndex: function () {\r\n \t\tthis._updateZIndex(0);\r\n \t},\r\n\r\n \t_panOnFocus: function () {\r\n \t\tvar map = this._map;\r\n \t\tif (!map) { return; }\r\n\r\n \t\tvar iconOpts = this.options.icon.options;\r\n \t\tvar size = iconOpts.iconSize ? toPoint(iconOpts.iconSize) : toPoint(0, 0);\r\n \t\tvar anchor = iconOpts.iconAnchor ? toPoint(iconOpts.iconAnchor) : toPoint(0, 0);\r\n\r\n \t\tmap.panInside(this._latlng, {\r\n \t\t\tpaddingTopLeft: anchor,\r\n \t\t\tpaddingBottomRight: size.subtract(anchor)\r\n \t\t});\r\n \t},\r\n\r\n \t_getPopupAnchor: function () {\r\n \t\treturn this.options.icon.options.popupAnchor;\r\n \t},\r\n\r\n \t_getTooltipAnchor: function () {\r\n \t\treturn this.options.icon.options.tooltipAnchor;\r\n \t}\r\n });\r\n\r\n\r\n // factory L.marker(latlng: LatLng, options? : Marker options)\r\n\r\n // @factory L.marker(latlng: LatLng, options? : Marker options)\r\n // Instantiates a Marker object given a geographical point and optionally an options object.\r\n function marker(latlng, options) {\r\n \treturn new Marker(latlng, options);\r\n }\n\n /*\n * @class Path\n * @aka L.Path\n * @inherits Interactive layer\n *\n * An abstract class that contains options and constants shared between vector\n * overlays (Polygon, Polyline, Circle). Do not use it directly. Extends `Layer`.\n */\n\n var Path = Layer.extend({\n\n \t// @section\n \t// @aka Path options\n \toptions: {\n \t\t// @option stroke: Boolean = true\n \t\t// Whether to draw stroke along the path. Set it to `false` to disable borders on polygons or circles.\n \t\tstroke: true,\n\n \t\t// @option color: String = '#3388ff'\n \t\t// Stroke color\n \t\tcolor: '#3388ff',\n\n \t\t// @option weight: Number = 3\n \t\t// Stroke width in pixels\n \t\tweight: 3,\n\n \t\t// @option opacity: Number = 1.0\n \t\t// Stroke opacity\n \t\topacity: 1,\n\n \t\t// @option lineCap: String= 'round'\n \t\t// A string that defines [shape to be used at the end](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-linecap) of the stroke.\n \t\tlineCap: 'round',\n\n \t\t// @option lineJoin: String = 'round'\n \t\t// A string that defines [shape to be used at the corners](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-linejoin) of the stroke.\n \t\tlineJoin: 'round',\n\n \t\t// @option dashArray: String = null\n \t\t// A string that defines the stroke [dash pattern](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-dasharray). Doesn't work on `Canvas`-powered layers in [some old browsers](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash#Browser_compatibility).\n \t\tdashArray: null,\n\n \t\t// @option dashOffset: String = null\n \t\t// A string that defines the [distance into the dash pattern to start the dash](https://developer.mozilla.org/docs/Web/SVG/Attribute/stroke-dashoffset). Doesn't work on `Canvas`-powered layers in [some old browsers](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/setLineDash#Browser_compatibility).\n \t\tdashOffset: null,\n\n \t\t// @option fill: Boolean = depends\n \t\t// Whether to fill the path with color. Set it to `false` to disable filling on polygons or circles.\n \t\tfill: false,\n\n \t\t// @option fillColor: String = *\n \t\t// Fill color. Defaults to the value of the [`color`](#path-color) option\n \t\tfillColor: null,\n\n \t\t// @option fillOpacity: Number = 0.2\n \t\t// Fill opacity.\n \t\tfillOpacity: 0.2,\n\n \t\t// @option fillRule: String = 'evenodd'\n \t\t// A string that defines [how the inside of a shape](https://developer.mozilla.org/docs/Web/SVG/Attribute/fill-rule) is determined.\n \t\tfillRule: 'evenodd',\n\n \t\t// className: '',\n\n \t\t// Option inherited from \"Interactive layer\" abstract class\n \t\tinteractive: true,\n\n \t\t// @option bubblingMouseEvents: Boolean = true\n \t\t// When `true`, a mouse event on this path will trigger the same event on the map\n \t\t// (unless [`L.DomEvent.stopPropagation`](#domevent-stoppropagation) is used).\n \t\tbubblingMouseEvents: true\n \t},\n\n \tbeforeAdd: function (map) {\n \t\t// Renderer is set here because we need to call renderer.getEvents\n \t\t// before this.getEvents.\n \t\tthis._renderer = map.getRenderer(this);\n \t},\n\n \tonAdd: function () {\n \t\tthis._renderer._initPath(this);\n \t\tthis._reset();\n \t\tthis._renderer._addPath(this);\n \t},\n\n \tonRemove: function () {\n \t\tthis._renderer._removePath(this);\n \t},\n\n \t// @method redraw(): this\n \t// Redraws the layer. Sometimes useful after you changed the coordinates that the path uses.\n \tredraw: function () {\n \t\tif (this._map) {\n \t\t\tthis._renderer._updatePath(this);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method setStyle(style: Path options): this\n \t// Changes the appearance of a Path based on the options in the `Path options` object.\n \tsetStyle: function (style) {\n \t\tsetOptions(this, style);\n \t\tif (this._renderer) {\n \t\t\tthis._renderer._updateStyle(this);\n \t\t\tif (this.options.stroke && style && Object.prototype.hasOwnProperty.call(style, 'weight')) {\n \t\t\t\tthis._updateBounds();\n \t\t\t}\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method bringToFront(): this\n \t// Brings the layer to the top of all path layers.\n \tbringToFront: function () {\n \t\tif (this._renderer) {\n \t\t\tthis._renderer._bringToFront(this);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method bringToBack(): this\n \t// Brings the layer to the bottom of all path layers.\n \tbringToBack: function () {\n \t\tif (this._renderer) {\n \t\t\tthis._renderer._bringToBack(this);\n \t\t}\n \t\treturn this;\n \t},\n\n \tgetElement: function () {\n \t\treturn this._path;\n \t},\n\n \t_reset: function () {\n \t\t// defined in child classes\n \t\tthis._project();\n \t\tthis._update();\n \t},\n\n \t_clickTolerance: function () {\n \t\t// used when doing hit detection for Canvas layers\n \t\treturn (this.options.stroke ? this.options.weight / 2 : 0) +\n \t\t (this._renderer.options.tolerance || 0);\n \t}\n });\n\n /*\n * @class CircleMarker\n * @aka L.CircleMarker\n * @inherits Path\n *\n * A circle of a fixed size with radius specified in pixels. Extends `Path`.\n */\n\n var CircleMarker = Path.extend({\n\n \t// @section\n \t// @aka CircleMarker options\n \toptions: {\n \t\tfill: true,\n\n \t\t// @option radius: Number = 10\n \t\t// Radius of the circle marker, in pixels\n \t\tradius: 10\n \t},\n\n \tinitialize: function (latlng, options) {\n \t\tsetOptions(this, options);\n \t\tthis._latlng = toLatLng(latlng);\n \t\tthis._radius = this.options.radius;\n \t},\n\n \t// @method setLatLng(latLng: LatLng): this\n \t// Sets the position of a circle marker to a new location.\n \tsetLatLng: function (latlng) {\n \t\tvar oldLatLng = this._latlng;\n \t\tthis._latlng = toLatLng(latlng);\n \t\tthis.redraw();\n\n \t\t// @event move: Event\n \t\t// Fired when the marker is moved via [`setLatLng`](#circlemarker-setlatlng). Old and new coordinates are included in event arguments as `oldLatLng`, `latlng`.\n \t\treturn this.fire('move', {oldLatLng: oldLatLng, latlng: this._latlng});\n \t},\n\n \t// @method getLatLng(): LatLng\n \t// Returns the current geographical position of the circle marker\n \tgetLatLng: function () {\n \t\treturn this._latlng;\n \t},\n\n \t// @method setRadius(radius: Number): this\n \t// Sets the radius of a circle marker. Units are in pixels.\n \tsetRadius: function (radius) {\n \t\tthis.options.radius = this._radius = radius;\n \t\treturn this.redraw();\n \t},\n\n \t// @method getRadius(): Number\n \t// Returns the current radius of the circle\n \tgetRadius: function () {\n \t\treturn this._radius;\n \t},\n\n \tsetStyle : function (options) {\n \t\tvar radius = options && options.radius || this._radius;\n \t\tPath.prototype.setStyle.call(this, options);\n \t\tthis.setRadius(radius);\n \t\treturn this;\n \t},\n\n \t_project: function () {\n \t\tthis._point = this._map.latLngToLayerPoint(this._latlng);\n \t\tthis._updateBounds();\n \t},\n\n \t_updateBounds: function () {\n \t\tvar r = this._radius,\n \t\t r2 = this._radiusY || r,\n \t\t w = this._clickTolerance(),\n \t\t p = [r + w, r2 + w];\n \t\tthis._pxBounds = new Bounds(this._point.subtract(p), this._point.add(p));\n \t},\n\n \t_update: function () {\n \t\tif (this._map) {\n \t\t\tthis._updatePath();\n \t\t}\n \t},\n\n \t_updatePath: function () {\n \t\tthis._renderer._updateCircle(this);\n \t},\n\n \t_empty: function () {\n \t\treturn this._radius && !this._renderer._bounds.intersects(this._pxBounds);\n \t},\n\n \t// Needed by the `Canvas` renderer for interactivity\n \t_containsPoint: function (p) {\n \t\treturn p.distanceTo(this._point) <= this._radius + this._clickTolerance();\n \t}\n });\n\n\n // @factory L.circleMarker(latlng: LatLng, options?: CircleMarker options)\n // Instantiates a circle marker object given a geographical point, and an optional options object.\n function circleMarker(latlng, options) {\n \treturn new CircleMarker(latlng, options);\n }\n\n /*\n * @class Circle\n * @aka L.Circle\n * @inherits CircleMarker\n *\n * A class for drawing circle overlays on a map. Extends `CircleMarker`.\n *\n * It's an approximation and starts to diverge from a real circle closer to poles (due to projection distortion).\n *\n * @example\n *\n * ```js\n * L.circle([50.5, 30.5], {radius: 200}).addTo(map);\n * ```\n */\n\n var Circle = CircleMarker.extend({\n\n \tinitialize: function (latlng, options, legacyOptions) {\n \t\tif (typeof options === 'number') {\n \t\t\t// Backwards compatibility with 0.7.x factory (latlng, radius, options?)\n \t\t\toptions = extend({}, legacyOptions, {radius: options});\n \t\t}\n \t\tsetOptions(this, options);\n \t\tthis._latlng = toLatLng(latlng);\n\n \t\tif (isNaN(this.options.radius)) { throw new Error('Circle radius cannot be NaN'); }\n\n \t\t// @section\n \t\t// @aka Circle options\n \t\t// @option radius: Number; Radius of the circle, in meters.\n \t\tthis._mRadius = this.options.radius;\n \t},\n\n \t// @method setRadius(radius: Number): this\n \t// Sets the radius of a circle. Units are in meters.\n \tsetRadius: function (radius) {\n \t\tthis._mRadius = radius;\n \t\treturn this.redraw();\n \t},\n\n \t// @method getRadius(): Number\n \t// Returns the current radius of a circle. Units are in meters.\n \tgetRadius: function () {\n \t\treturn this._mRadius;\n \t},\n\n \t// @method getBounds(): LatLngBounds\n \t// Returns the `LatLngBounds` of the path.\n \tgetBounds: function () {\n \t\tvar half = [this._radius, this._radiusY || this._radius];\n\n \t\treturn new LatLngBounds(\n \t\t\tthis._map.layerPointToLatLng(this._point.subtract(half)),\n \t\t\tthis._map.layerPointToLatLng(this._point.add(half)));\n \t},\n\n \tsetStyle: Path.prototype.setStyle,\n\n \t_project: function () {\n\n \t\tvar lng = this._latlng.lng,\n \t\t lat = this._latlng.lat,\n \t\t map = this._map,\n \t\t crs = map.options.crs;\n\n \t\tif (crs.distance === Earth.distance) {\n \t\t\tvar d = Math.PI / 180,\n \t\t\t latR = (this._mRadius / Earth.R) / d,\n \t\t\t top = map.project([lat + latR, lng]),\n \t\t\t bottom = map.project([lat - latR, lng]),\n \t\t\t p = top.add(bottom).divideBy(2),\n \t\t\t lat2 = map.unproject(p).lat,\n \t\t\t lngR = Math.acos((Math.cos(latR * d) - Math.sin(lat * d) * Math.sin(lat2 * d)) /\n \t\t\t (Math.cos(lat * d) * Math.cos(lat2 * d))) / d;\n\n \t\t\tif (isNaN(lngR) || lngR === 0) {\n \t\t\t\tlngR = latR / Math.cos(Math.PI / 180 * lat); // Fallback for edge case, #2425\n \t\t\t}\n\n \t\t\tthis._point = p.subtract(map.getPixelOrigin());\n \t\t\tthis._radius = isNaN(lngR) ? 0 : p.x - map.project([lat2, lng - lngR]).x;\n \t\t\tthis._radiusY = p.y - top.y;\n\n \t\t} else {\n \t\t\tvar latlng2 = crs.unproject(crs.project(this._latlng).subtract([this._mRadius, 0]));\n\n \t\t\tthis._point = map.latLngToLayerPoint(this._latlng);\n \t\t\tthis._radius = this._point.x - map.latLngToLayerPoint(latlng2).x;\n \t\t}\n\n \t\tthis._updateBounds();\n \t}\n });\n\n // @factory L.circle(latlng: LatLng, options?: Circle options)\n // Instantiates a circle object given a geographical point, and an options object\n // which contains the circle radius.\n // @alternative\n // @factory L.circle(latlng: LatLng, radius: Number, options?: Circle options)\n // Obsolete way of instantiating a circle, for compatibility with 0.7.x code.\n // Do not use in new applications or plugins.\n function circle(latlng, options, legacyOptions) {\n \treturn new Circle(latlng, options, legacyOptions);\n }\n\n /*\n * @class Polyline\n * @aka L.Polyline\n * @inherits Path\n *\n * A class for drawing polyline overlays on a map. Extends `Path`.\n *\n * @example\n *\n * ```js\n * // create a red polyline from an array of LatLng points\n * var latlngs = [\n * \t[45.51, -122.68],\n * \t[37.77, -122.43],\n * \t[34.04, -118.2]\n * ];\n *\n * var polyline = L.polyline(latlngs, {color: 'red'}).addTo(map);\n *\n * // zoom the map to the polyline\n * map.fitBounds(polyline.getBounds());\n * ```\n *\n * You can also pass a multi-dimensional array to represent a `MultiPolyline` shape:\n *\n * ```js\n * // create a red polyline from an array of arrays of LatLng points\n * var latlngs = [\n * \t[[45.51, -122.68],\n * \t [37.77, -122.43],\n * \t [34.04, -118.2]],\n * \t[[40.78, -73.91],\n * \t [41.83, -87.62],\n * \t [32.76, -96.72]]\n * ];\n * ```\n */\n\n\n var Polyline = Path.extend({\n\n \t// @section\n \t// @aka Polyline options\n \toptions: {\n \t\t// @option smoothFactor: Number = 1.0\n \t\t// How much to simplify the polyline on each zoom level. More means\n \t\t// better performance and smoother look, and less means more accurate representation.\n \t\tsmoothFactor: 1.0,\n\n \t\t// @option noClip: Boolean = false\n \t\t// Disable polyline clipping.\n \t\tnoClip: false\n \t},\n\n \tinitialize: function (latlngs, options) {\n \t\tsetOptions(this, options);\n \t\tthis._setLatLngs(latlngs);\n \t},\n\n \t// @method getLatLngs(): LatLng[]\n \t// Returns an array of the points in the path, or nested arrays of points in case of multi-polyline.\n \tgetLatLngs: function () {\n \t\treturn this._latlngs;\n \t},\n\n \t// @method setLatLngs(latlngs: LatLng[]): this\n \t// Replaces all the points in the polyline with the given array of geographical points.\n \tsetLatLngs: function (latlngs) {\n \t\tthis._setLatLngs(latlngs);\n \t\treturn this.redraw();\n \t},\n\n \t// @method isEmpty(): Boolean\n \t// Returns `true` if the Polyline has no LatLngs.\n \tisEmpty: function () {\n \t\treturn !this._latlngs.length;\n \t},\n\n \t// @method closestLayerPoint(p: Point): Point\n \t// Returns the point closest to `p` on the Polyline.\n \tclosestLayerPoint: function (p) {\n \t\tvar minDistance = Infinity,\n \t\t minPoint = null,\n \t\t closest = _sqClosestPointOnSegment,\n \t\t p1, p2;\n\n \t\tfor (var j = 0, jLen = this._parts.length; j < jLen; j++) {\n \t\t\tvar points = this._parts[j];\n\n \t\t\tfor (var i = 1, len = points.length; i < len; i++) {\n \t\t\t\tp1 = points[i - 1];\n \t\t\t\tp2 = points[i];\n\n \t\t\t\tvar sqDist = closest(p, p1, p2, true);\n\n \t\t\t\tif (sqDist < minDistance) {\n \t\t\t\t\tminDistance = sqDist;\n \t\t\t\t\tminPoint = closest(p, p1, p2);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tif (minPoint) {\n \t\t\tminPoint.distance = Math.sqrt(minDistance);\n \t\t}\n \t\treturn minPoint;\n \t},\n\n \t// @method getCenter(): LatLng\n \t// Returns the center ([centroid](https://en.wikipedia.org/wiki/Centroid)) of the polyline.\n \tgetCenter: function () {\n \t\t// throws error when not yet added to map as this center calculation requires projected coordinates\n \t\tif (!this._map) {\n \t\t\tthrow new Error('Must add layer to map before using getCenter()');\n \t\t}\n \t\treturn polylineCenter(this._defaultShape(), this._map.options.crs);\n \t},\n\n \t// @method getBounds(): LatLngBounds\n \t// Returns the `LatLngBounds` of the path.\n \tgetBounds: function () {\n \t\treturn this._bounds;\n \t},\n\n \t// @method addLatLng(latlng: LatLng, latlngs?: LatLng[]): this\n \t// Adds a given point to the polyline. By default, adds to the first ring of\n \t// the polyline in case of a multi-polyline, but can be overridden by passing\n \t// a specific ring as a LatLng array (that you can earlier access with [`getLatLngs`](#polyline-getlatlngs)).\n \taddLatLng: function (latlng, latlngs) {\n \t\tlatlngs = latlngs || this._defaultShape();\n \t\tlatlng = toLatLng(latlng);\n \t\tlatlngs.push(latlng);\n \t\tthis._bounds.extend(latlng);\n \t\treturn this.redraw();\n \t},\n\n \t_setLatLngs: function (latlngs) {\n \t\tthis._bounds = new LatLngBounds();\n \t\tthis._latlngs = this._convertLatLngs(latlngs);\n \t},\n\n \t_defaultShape: function () {\n \t\treturn isFlat(this._latlngs) ? this._latlngs : this._latlngs[0];\n \t},\n\n \t// recursively convert latlngs input into actual LatLng instances; calculate bounds along the way\n \t_convertLatLngs: function (latlngs) {\n \t\tvar result = [],\n \t\t flat = isFlat(latlngs);\n\n \t\tfor (var i = 0, len = latlngs.length; i < len; i++) {\n \t\t\tif (flat) {\n \t\t\t\tresult[i] = toLatLng(latlngs[i]);\n \t\t\t\tthis._bounds.extend(result[i]);\n \t\t\t} else {\n \t\t\t\tresult[i] = this._convertLatLngs(latlngs[i]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t},\n\n \t_project: function () {\n \t\tvar pxBounds = new Bounds();\n \t\tthis._rings = [];\n \t\tthis._projectLatlngs(this._latlngs, this._rings, pxBounds);\n\n \t\tif (this._bounds.isValid() && pxBounds.isValid()) {\n \t\t\tthis._rawPxBounds = pxBounds;\n \t\t\tthis._updateBounds();\n \t\t}\n \t},\n\n \t_updateBounds: function () {\n \t\tvar w = this._clickTolerance(),\n \t\t p = new Point(w, w);\n\n \t\tif (!this._rawPxBounds) {\n \t\t\treturn;\n \t\t}\n\n \t\tthis._pxBounds = new Bounds([\n \t\t\tthis._rawPxBounds.min.subtract(p),\n \t\t\tthis._rawPxBounds.max.add(p)\n \t\t]);\n \t},\n\n \t// recursively turns latlngs into a set of rings with projected coordinates\n \t_projectLatlngs: function (latlngs, result, projectedBounds) {\n \t\tvar flat = latlngs[0] instanceof LatLng,\n \t\t len = latlngs.length,\n \t\t i, ring;\n\n \t\tif (flat) {\n \t\t\tring = [];\n \t\t\tfor (i = 0; i < len; i++) {\n \t\t\t\tring[i] = this._map.latLngToLayerPoint(latlngs[i]);\n \t\t\t\tprojectedBounds.extend(ring[i]);\n \t\t\t}\n \t\t\tresult.push(ring);\n \t\t} else {\n \t\t\tfor (i = 0; i < len; i++) {\n \t\t\t\tthis._projectLatlngs(latlngs[i], result, projectedBounds);\n \t\t\t}\n \t\t}\n \t},\n\n \t// clip polyline by renderer bounds so that we have less to render for performance\n \t_clipPoints: function () {\n \t\tvar bounds = this._renderer._bounds;\n\n \t\tthis._parts = [];\n \t\tif (!this._pxBounds || !this._pxBounds.intersects(bounds)) {\n \t\t\treturn;\n \t\t}\n\n \t\tif (this.options.noClip) {\n \t\t\tthis._parts = this._rings;\n \t\t\treturn;\n \t\t}\n\n \t\tvar parts = this._parts,\n \t\t i, j, k, len, len2, segment, points;\n\n \t\tfor (i = 0, k = 0, len = this._rings.length; i < len; i++) {\n \t\t\tpoints = this._rings[i];\n\n \t\t\tfor (j = 0, len2 = points.length; j < len2 - 1; j++) {\n \t\t\t\tsegment = clipSegment(points[j], points[j + 1], bounds, j, true);\n\n \t\t\t\tif (!segment) { continue; }\n\n \t\t\t\tparts[k] = parts[k] || [];\n \t\t\t\tparts[k].push(segment[0]);\n\n \t\t\t\t// if segment goes out of screen, or it's the last one, it's the end of the line part\n \t\t\t\tif ((segment[1] !== points[j + 1]) || (j === len2 - 2)) {\n \t\t\t\t\tparts[k].push(segment[1]);\n \t\t\t\t\tk++;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t},\n\n \t// simplify each clipped part of the polyline for performance\n \t_simplifyPoints: function () {\n \t\tvar parts = this._parts,\n \t\t tolerance = this.options.smoothFactor;\n\n \t\tfor (var i = 0, len = parts.length; i < len; i++) {\n \t\t\tparts[i] = simplify(parts[i], tolerance);\n \t\t}\n \t},\n\n \t_update: function () {\n \t\tif (!this._map) { return; }\n\n \t\tthis._clipPoints();\n \t\tthis._simplifyPoints();\n \t\tthis._updatePath();\n \t},\n\n \t_updatePath: function () {\n \t\tthis._renderer._updatePoly(this);\n \t},\n\n \t// Needed by the `Canvas` renderer for interactivity\n \t_containsPoint: function (p, closed) {\n \t\tvar i, j, k, len, len2, part,\n \t\t w = this._clickTolerance();\n\n \t\tif (!this._pxBounds || !this._pxBounds.contains(p)) { return false; }\n\n \t\t// hit detection for polylines\n \t\tfor (i = 0, len = this._parts.length; i < len; i++) {\n \t\t\tpart = this._parts[i];\n\n \t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\n \t\t\t\tif (!closed && (j === 0)) { continue; }\n\n \t\t\t\tif (pointToSegmentDistance(p, part[k], part[j]) <= w) {\n \t\t\t\t\treturn true;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\treturn false;\n \t}\n });\n\n // @factory L.polyline(latlngs: LatLng[], options?: Polyline options)\n // Instantiates a polyline object given an array of geographical points and\n // optionally an options object. You can create a `Polyline` object with\n // multiple separate lines (`MultiPolyline`) by passing an array of arrays\n // of geographic points.\n function polyline(latlngs, options) {\n \treturn new Polyline(latlngs, options);\n }\n\n // Retrocompat. Allow plugins to support Leaflet versions before and after 1.1.\n Polyline._flat = _flat;\n\n /*\n * @class Polygon\n * @aka L.Polygon\n * @inherits Polyline\n *\n * A class for drawing polygon overlays on a map. Extends `Polyline`.\n *\n * Note that points you pass when creating a polygon shouldn't have an additional last point equal to the first one — it's better to filter out such points.\n *\n *\n * @example\n *\n * ```js\n * // create a red polygon from an array of LatLng points\n * var latlngs = [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]];\n *\n * var polygon = L.polygon(latlngs, {color: 'red'}).addTo(map);\n *\n * // zoom the map to the polygon\n * map.fitBounds(polygon.getBounds());\n * ```\n *\n * You can also pass an array of arrays of latlngs, with the first array representing the outer shape and the other arrays representing holes in the outer shape:\n *\n * ```js\n * var latlngs = [\n * [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring\n * [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole\n * ];\n * ```\n *\n * Additionally, you can pass a multi-dimensional array to represent a MultiPolygon shape.\n *\n * ```js\n * var latlngs = [\n * [ // first polygon\n * [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring\n * [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole\n * ],\n * [ // second polygon\n * [[41, -111.03],[45, -111.04],[45, -104.05],[41, -104.05]]\n * ]\n * ];\n * ```\n */\n\n var Polygon = Polyline.extend({\n\n \toptions: {\n \t\tfill: true\n \t},\n\n \tisEmpty: function () {\n \t\treturn !this._latlngs.length || !this._latlngs[0].length;\n \t},\n\n \t// @method getCenter(): LatLng\n \t// Returns the center ([centroid](http://en.wikipedia.org/wiki/Centroid)) of the Polygon.\n \tgetCenter: function () {\n \t\t// throws error when not yet added to map as this center calculation requires projected coordinates\n \t\tif (!this._map) {\n \t\t\tthrow new Error('Must add layer to map before using getCenter()');\n \t\t}\n \t\treturn polygonCenter(this._defaultShape(), this._map.options.crs);\n \t},\n\n \t_convertLatLngs: function (latlngs) {\n \t\tvar result = Polyline.prototype._convertLatLngs.call(this, latlngs),\n \t\t len = result.length;\n\n \t\t// remove last point if it equals first one\n \t\tif (len >= 2 && result[0] instanceof LatLng && result[0].equals(result[len - 1])) {\n \t\t\tresult.pop();\n \t\t}\n \t\treturn result;\n \t},\n\n \t_setLatLngs: function (latlngs) {\n \t\tPolyline.prototype._setLatLngs.call(this, latlngs);\n \t\tif (isFlat(this._latlngs)) {\n \t\t\tthis._latlngs = [this._latlngs];\n \t\t}\n \t},\n\n \t_defaultShape: function () {\n \t\treturn isFlat(this._latlngs[0]) ? this._latlngs[0] : this._latlngs[0][0];\n \t},\n\n \t_clipPoints: function () {\n \t\t// polygons need a different clipping algorithm so we redefine that\n\n \t\tvar bounds = this._renderer._bounds,\n \t\t w = this.options.weight,\n \t\t p = new Point(w, w);\n\n \t\t// increase clip padding by stroke width to avoid stroke on clip edges\n \t\tbounds = new Bounds(bounds.min.subtract(p), bounds.max.add(p));\n\n \t\tthis._parts = [];\n \t\tif (!this._pxBounds || !this._pxBounds.intersects(bounds)) {\n \t\t\treturn;\n \t\t}\n\n \t\tif (this.options.noClip) {\n \t\t\tthis._parts = this._rings;\n \t\t\treturn;\n \t\t}\n\n \t\tfor (var i = 0, len = this._rings.length, clipped; i < len; i++) {\n \t\t\tclipped = clipPolygon(this._rings[i], bounds, true);\n \t\t\tif (clipped.length) {\n \t\t\t\tthis._parts.push(clipped);\n \t\t\t}\n \t\t}\n \t},\n\n \t_updatePath: function () {\n \t\tthis._renderer._updatePoly(this, true);\n \t},\n\n \t// Needed by the `Canvas` renderer for interactivity\n \t_containsPoint: function (p) {\n \t\tvar inside = false,\n \t\t part, p1, p2, i, j, k, len, len2;\n\n \t\tif (!this._pxBounds || !this._pxBounds.contains(p)) { return false; }\n\n \t\t// ray casting algorithm for detecting if point is in polygon\n \t\tfor (i = 0, len = this._parts.length; i < len; i++) {\n \t\t\tpart = this._parts[i];\n\n \t\t\tfor (j = 0, len2 = part.length, k = len2 - 1; j < len2; k = j++) {\n \t\t\t\tp1 = part[j];\n \t\t\t\tp2 = part[k];\n\n \t\t\t\tif (((p1.y > p.y) !== (p2.y > p.y)) && (p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x)) {\n \t\t\t\t\tinside = !inside;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// also check if it's on polygon stroke\n \t\treturn inside || Polyline.prototype._containsPoint.call(this, p, true);\n \t}\n\n });\n\n\n // @factory L.polygon(latlngs: LatLng[], options?: Polyline options)\n function polygon(latlngs, options) {\n \treturn new Polygon(latlngs, options);\n }\n\n /*\r\n * @class GeoJSON\r\n * @aka L.GeoJSON\r\n * @inherits FeatureGroup\r\n *\r\n * Represents a GeoJSON object or an array of GeoJSON objects. Allows you to parse\r\n * GeoJSON data and display it on the map. Extends `FeatureGroup`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.geoJSON(data, {\r\n * \tstyle: function (feature) {\r\n * \t\treturn {color: feature.properties.color};\r\n * \t}\r\n * }).bindPopup(function (layer) {\r\n * \treturn layer.feature.properties.description;\r\n * }).addTo(map);\r\n * ```\r\n */\r\n\r\n var GeoJSON = FeatureGroup.extend({\r\n\r\n \t/* @section\r\n \t * @aka GeoJSON options\r\n \t *\r\n \t * @option pointToLayer: Function = *\r\n \t * A `Function` defining how GeoJSON points spawn Leaflet layers. It is internally\r\n \t * called when data is added, passing the GeoJSON point feature and its `LatLng`.\r\n \t * The default is to spawn a default `Marker`:\r\n \t * ```js\r\n \t * function(geoJsonPoint, latlng) {\r\n \t * \treturn L.marker(latlng);\r\n \t * }\r\n \t * ```\r\n \t *\r\n \t * @option style: Function = *\r\n \t * A `Function` defining the `Path options` for styling GeoJSON lines and polygons,\r\n \t * called internally when data is added.\r\n \t * The default value is to not override any defaults:\r\n \t * ```js\r\n \t * function (geoJsonFeature) {\r\n \t * \treturn {}\r\n \t * }\r\n \t * ```\r\n \t *\r\n \t * @option onEachFeature: Function = *\r\n \t * A `Function` that will be called once for each created `Feature`, after it has\r\n \t * been created and styled. Useful for attaching events and popups to features.\r\n \t * The default is to do nothing with the newly created layers:\r\n \t * ```js\r\n \t * function (feature, layer) {}\r\n \t * ```\r\n \t *\r\n \t * @option filter: Function = *\r\n \t * A `Function` that will be used to decide whether to include a feature or not.\r\n \t * The default is to include all features:\r\n \t * ```js\r\n \t * function (geoJsonFeature) {\r\n \t * \treturn true;\r\n \t * }\r\n \t * ```\r\n \t * Note: dynamically changing the `filter` option will have effect only on newly\r\n \t * added data. It will _not_ re-evaluate already included features.\r\n \t *\r\n \t * @option coordsToLatLng: Function = *\r\n \t * A `Function` that will be used for converting GeoJSON coordinates to `LatLng`s.\r\n \t * The default is the `coordsToLatLng` static method.\r\n \t *\r\n \t * @option markersInheritOptions: Boolean = false\r\n \t * Whether default Markers for \"Point\" type Features inherit from group options.\r\n \t */\r\n\r\n \tinitialize: function (geojson, options) {\r\n \t\tsetOptions(this, options);\r\n\r\n \t\tthis._layers = {};\r\n\r\n \t\tif (geojson) {\r\n \t\t\tthis.addData(geojson);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method addData( <GeoJSON> data ): this\r\n \t// Adds a GeoJSON object to the layer.\r\n \taddData: function (geojson) {\r\n \t\tvar features = isArray(geojson) ? geojson : geojson.features,\r\n \t\t i, len, feature;\r\n\r\n \t\tif (features) {\r\n \t\t\tfor (i = 0, len = features.length; i < len; i++) {\r\n \t\t\t\t// only add this if geometry or geometries are set and not null\r\n \t\t\t\tfeature = features[i];\r\n \t\t\t\tif (feature.geometries || feature.geometry || feature.features || feature.coordinates) {\r\n \t\t\t\t\tthis.addData(feature);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\treturn this;\r\n \t\t}\r\n\r\n \t\tvar options = this.options;\r\n\r\n \t\tif (options.filter && !options.filter(geojson)) { return this; }\r\n\r\n \t\tvar layer = geometryToLayer(geojson, options);\r\n \t\tif (!layer) {\r\n \t\t\treturn this;\r\n \t\t}\r\n \t\tlayer.feature = asFeature(geojson);\r\n\r\n \t\tlayer.defaultOptions = layer.options;\r\n \t\tthis.resetStyle(layer);\r\n\r\n \t\tif (options.onEachFeature) {\r\n \t\t\toptions.onEachFeature(geojson, layer);\r\n \t\t}\r\n\r\n \t\treturn this.addLayer(layer);\r\n \t},\r\n\r\n \t// @method resetStyle( <Path> layer? ): this\r\n \t// Resets the given vector layer's style to the original GeoJSON style, useful for resetting style after hover events.\r\n \t// If `layer` is omitted, the style of all features in the current layer is reset.\r\n \tresetStyle: function (layer) {\r\n \t\tif (layer === undefined) {\r\n \t\t\treturn this.eachLayer(this.resetStyle, this);\r\n \t\t}\r\n \t\t// reset any custom styles\r\n \t\tlayer.options = extend({}, layer.defaultOptions);\r\n \t\tthis._setLayerStyle(layer, this.options.style);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setStyle( <Function> style ): this\r\n \t// Changes styles of GeoJSON vector layers with the given style function.\r\n \tsetStyle: function (style) {\r\n \t\treturn this.eachLayer(function (layer) {\r\n \t\t\tthis._setLayerStyle(layer, style);\r\n \t\t}, this);\r\n \t},\r\n\r\n \t_setLayerStyle: function (layer, style) {\r\n \t\tif (layer.setStyle) {\r\n \t\t\tif (typeof style === 'function') {\r\n \t\t\t\tstyle = style(layer.feature);\r\n \t\t\t}\r\n \t\t\tlayer.setStyle(style);\r\n \t\t}\r\n \t}\r\n });\r\n\r\n // @section\r\n // There are several static functions which can be called without instantiating L.GeoJSON:\r\n\r\n // @function geometryToLayer(featureData: Object, options?: GeoJSON options): Layer\r\n // Creates a `Layer` from a given GeoJSON feature. Can use a custom\r\n // [`pointToLayer`](#geojson-pointtolayer) and/or [`coordsToLatLng`](#geojson-coordstolatlng)\r\n // functions if provided as options.\r\n function geometryToLayer(geojson, options) {\r\n\r\n \tvar geometry = geojson.type === 'Feature' ? geojson.geometry : geojson,\r\n \t coords = geometry ? geometry.coordinates : null,\r\n \t layers = [],\r\n \t pointToLayer = options && options.pointToLayer,\r\n \t _coordsToLatLng = options && options.coordsToLatLng || coordsToLatLng,\r\n \t latlng, latlngs, i, len;\r\n\r\n \tif (!coords && !geometry) {\r\n \t\treturn null;\r\n \t}\r\n\r\n \tswitch (geometry.type) {\r\n \tcase 'Point':\r\n \t\tlatlng = _coordsToLatLng(coords);\r\n \t\treturn _pointToLayer(pointToLayer, geojson, latlng, options);\r\n\r\n \tcase 'MultiPoint':\r\n \t\tfor (i = 0, len = coords.length; i < len; i++) {\r\n \t\t\tlatlng = _coordsToLatLng(coords[i]);\r\n \t\t\tlayers.push(_pointToLayer(pointToLayer, geojson, latlng, options));\r\n \t\t}\r\n \t\treturn new FeatureGroup(layers);\r\n\r\n \tcase 'LineString':\r\n \tcase 'MultiLineString':\r\n \t\tlatlngs = coordsToLatLngs(coords, geometry.type === 'LineString' ? 0 : 1, _coordsToLatLng);\r\n \t\treturn new Polyline(latlngs, options);\r\n\r\n \tcase 'Polygon':\r\n \tcase 'MultiPolygon':\r\n \t\tlatlngs = coordsToLatLngs(coords, geometry.type === 'Polygon' ? 1 : 2, _coordsToLatLng);\r\n \t\treturn new Polygon(latlngs, options);\r\n\r\n \tcase 'GeometryCollection':\r\n \t\tfor (i = 0, len = geometry.geometries.length; i < len; i++) {\r\n \t\t\tvar geoLayer = geometryToLayer({\r\n \t\t\t\tgeometry: geometry.geometries[i],\r\n \t\t\t\ttype: 'Feature',\r\n \t\t\t\tproperties: geojson.properties\r\n \t\t\t}, options);\r\n\r\n \t\t\tif (geoLayer) {\r\n \t\t\t\tlayers.push(geoLayer);\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn new FeatureGroup(layers);\r\n\r\n \tcase 'FeatureCollection':\r\n \t\tfor (i = 0, len = geometry.features.length; i < len; i++) {\r\n \t\t\tvar featureLayer = geometryToLayer(geometry.features[i], options);\r\n\r\n \t\t\tif (featureLayer) {\r\n \t\t\t\tlayers.push(featureLayer);\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn new FeatureGroup(layers);\r\n\r\n \tdefault:\r\n \t\tthrow new Error('Invalid GeoJSON object.');\r\n \t}\r\n }\r\n\r\n function _pointToLayer(pointToLayerFn, geojson, latlng, options) {\r\n \treturn pointToLayerFn ?\r\n \t\tpointToLayerFn(geojson, latlng) :\r\n \t\tnew Marker(latlng, options && options.markersInheritOptions && options);\r\n }\r\n\r\n // @function coordsToLatLng(coords: Array): LatLng\r\n // Creates a `LatLng` object from an array of 2 numbers (longitude, latitude)\r\n // or 3 numbers (longitude, latitude, altitude) used in GeoJSON for points.\r\n function coordsToLatLng(coords) {\r\n \treturn new LatLng(coords[1], coords[0], coords[2]);\r\n }\r\n\r\n // @function coordsToLatLngs(coords: Array, levelsDeep?: Number, coordsToLatLng?: Function): Array\r\n // Creates a multidimensional array of `LatLng`s from a GeoJSON coordinates array.\r\n // `levelsDeep` specifies the nesting level (0 is for an array of points, 1 for an array of arrays of points, etc., 0 by default).\r\n // Can use a custom [`coordsToLatLng`](#geojson-coordstolatlng) function.\r\n function coordsToLatLngs(coords, levelsDeep, _coordsToLatLng) {\r\n \tvar latlngs = [];\r\n\r\n \tfor (var i = 0, len = coords.length, latlng; i < len; i++) {\r\n \t\tlatlng = levelsDeep ?\r\n \t\t\tcoordsToLatLngs(coords[i], levelsDeep - 1, _coordsToLatLng) :\r\n \t\t\t(_coordsToLatLng || coordsToLatLng)(coords[i]);\r\n\r\n \t\tlatlngs.push(latlng);\r\n \t}\r\n\r\n \treturn latlngs;\r\n }\r\n\r\n // @function latLngToCoords(latlng: LatLng, precision?: Number|false): Array\r\n // Reverse of [`coordsToLatLng`](#geojson-coordstolatlng)\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function.\r\n function latLngToCoords(latlng, precision) {\r\n \tlatlng = toLatLng(latlng);\r\n \treturn latlng.alt !== undefined ?\r\n \t\t[formatNum(latlng.lng, precision), formatNum(latlng.lat, precision), formatNum(latlng.alt, precision)] :\r\n \t\t[formatNum(latlng.lng, precision), formatNum(latlng.lat, precision)];\r\n }\r\n\r\n // @function latLngsToCoords(latlngs: Array, levelsDeep?: Number, closed?: Boolean, precision?: Number|false): Array\r\n // Reverse of [`coordsToLatLngs`](#geojson-coordstolatlngs)\r\n // `closed` determines whether the first point should be appended to the end of the array to close the feature, only used when `levelsDeep` is 0. False by default.\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function.\r\n function latLngsToCoords(latlngs, levelsDeep, closed, precision) {\r\n \tvar coords = [];\r\n\r\n \tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n \t\t// Check for flat arrays required to ensure unbalanced arrays are correctly converted in recursion\r\n \t\tcoords.push(levelsDeep ?\r\n \t\t\tlatLngsToCoords(latlngs[i], isFlat(latlngs[i]) ? 0 : levelsDeep - 1, closed, precision) :\r\n \t\t\tlatLngToCoords(latlngs[i], precision));\r\n \t}\r\n\r\n \tif (!levelsDeep && closed && coords.length > 0) {\r\n \t\tcoords.push(coords[0].slice());\r\n \t}\r\n\r\n \treturn coords;\r\n }\r\n\r\n function getFeature(layer, newGeometry) {\r\n \treturn layer.feature ?\r\n \t\textend({}, layer.feature, {geometry: newGeometry}) :\r\n \t\tasFeature(newGeometry);\r\n }\r\n\r\n // @function asFeature(geojson: Object): Object\r\n // Normalize GeoJSON geometries/features into GeoJSON features.\r\n function asFeature(geojson) {\r\n \tif (geojson.type === 'Feature' || geojson.type === 'FeatureCollection') {\r\n \t\treturn geojson;\r\n \t}\r\n\r\n \treturn {\r\n \t\ttype: 'Feature',\r\n \t\tproperties: {},\r\n \t\tgeometry: geojson\r\n \t};\r\n }\r\n\r\n var PointToGeoJSON = {\r\n \ttoGeoJSON: function (precision) {\r\n \t\treturn getFeature(this, {\r\n \t\t\ttype: 'Point',\r\n \t\t\tcoordinates: latLngToCoords(this.getLatLng(), precision)\r\n \t\t});\r\n \t}\r\n };\r\n\r\n // @namespace Marker\r\n // @section Other methods\r\n // @method toGeoJSON(precision?: Number|false): Object\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n // Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the marker (as a GeoJSON `Point` Feature).\r\n Marker.include(PointToGeoJSON);\r\n\r\n // @namespace CircleMarker\r\n // @method toGeoJSON(precision?: Number|false): Object\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n // Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the circle marker (as a GeoJSON `Point` Feature).\r\n Circle.include(PointToGeoJSON);\r\n CircleMarker.include(PointToGeoJSON);\r\n\r\n\r\n // @namespace Polyline\r\n // @method toGeoJSON(precision?: Number|false): Object\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n // Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the polyline (as a GeoJSON `LineString` or `MultiLineString` Feature).\r\n Polyline.include({\r\n \ttoGeoJSON: function (precision) {\r\n \t\tvar multi = !isFlat(this._latlngs);\r\n\r\n \t\tvar coords = latLngsToCoords(this._latlngs, multi ? 1 : 0, false, precision);\r\n\r\n \t\treturn getFeature(this, {\r\n \t\t\ttype: (multi ? 'Multi' : '') + 'LineString',\r\n \t\t\tcoordinates: coords\r\n \t\t});\r\n \t}\r\n });\r\n\r\n // @namespace Polygon\r\n // @method toGeoJSON(precision?: Number|false): Object\r\n // Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n // Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the polygon (as a GeoJSON `Polygon` or `MultiPolygon` Feature).\r\n Polygon.include({\r\n \ttoGeoJSON: function (precision) {\r\n \t\tvar holes = !isFlat(this._latlngs),\r\n \t\t multi = holes && !isFlat(this._latlngs[0]);\r\n\r\n \t\tvar coords = latLngsToCoords(this._latlngs, multi ? 2 : holes ? 1 : 0, true, precision);\r\n\r\n \t\tif (!holes) {\r\n \t\t\tcoords = [coords];\r\n \t\t}\r\n\r\n \t\treturn getFeature(this, {\r\n \t\t\ttype: (multi ? 'Multi' : '') + 'Polygon',\r\n \t\t\tcoordinates: coords\r\n \t\t});\r\n \t}\r\n });\r\n\r\n\r\n // @namespace LayerGroup\r\n LayerGroup.include({\r\n \ttoMultiPoint: function (precision) {\r\n \t\tvar coords = [];\r\n\r\n \t\tthis.eachLayer(function (layer) {\r\n \t\t\tcoords.push(layer.toGeoJSON(precision).geometry.coordinates);\r\n \t\t});\r\n\r\n \t\treturn getFeature(this, {\r\n \t\t\ttype: 'MultiPoint',\r\n \t\t\tcoordinates: coords\r\n \t\t});\r\n \t},\r\n\r\n \t// @method toGeoJSON(precision?: Number|false): Object\r\n \t// Coordinates values are rounded with [`formatNum`](#util-formatnum) function with given `precision`.\r\n \t// Returns a [`GeoJSON`](https://en.wikipedia.org/wiki/GeoJSON) representation of the layer group (as a GeoJSON `FeatureCollection`, `GeometryCollection`, or `MultiPoint`).\r\n \ttoGeoJSON: function (precision) {\r\n\r\n \t\tvar type = this.feature && this.feature.geometry && this.feature.geometry.type;\r\n\r\n \t\tif (type === 'MultiPoint') {\r\n \t\t\treturn this.toMultiPoint(precision);\r\n \t\t}\r\n\r\n \t\tvar isGeometryCollection = type === 'GeometryCollection',\r\n \t\t jsons = [];\r\n\r\n \t\tthis.eachLayer(function (layer) {\r\n \t\t\tif (layer.toGeoJSON) {\r\n \t\t\t\tvar json = layer.toGeoJSON(precision);\r\n \t\t\t\tif (isGeometryCollection) {\r\n \t\t\t\t\tjsons.push(json.geometry);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tvar feature = asFeature(json);\r\n \t\t\t\t\t// Squash nested feature collections\r\n \t\t\t\t\tif (feature.type === 'FeatureCollection') {\r\n \t\t\t\t\t\tjsons.push.apply(jsons, feature.features);\r\n \t\t\t\t\t} else {\r\n \t\t\t\t\t\tjsons.push(feature);\r\n \t\t\t\t\t}\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t});\r\n\r\n \t\tif (isGeometryCollection) {\r\n \t\t\treturn getFeature(this, {\r\n \t\t\t\tgeometries: jsons,\r\n \t\t\t\ttype: 'GeometryCollection'\r\n \t\t\t});\r\n \t\t}\r\n\r\n \t\treturn {\r\n \t\t\ttype: 'FeatureCollection',\r\n \t\t\tfeatures: jsons\r\n \t\t};\r\n \t}\r\n });\r\n\r\n // @namespace GeoJSON\r\n // @factory L.geoJSON(geojson?: Object, options?: GeoJSON options)\r\n // Creates a GeoJSON layer. Optionally accepts an object in\r\n // [GeoJSON format](https://tools.ietf.org/html/rfc7946) to display on the map\r\n // (you can alternatively add it later with `addData` method) and an `options` object.\r\n function geoJSON(geojson, options) {\r\n \treturn new GeoJSON(geojson, options);\r\n }\r\n\r\n // Backward compatibility.\r\n var geoJson = geoJSON;\n\n /*\r\n * @class ImageOverlay\r\n * @aka L.ImageOverlay\r\n * @inherits Interactive layer\r\n *\r\n * Used to load and display a single image over specific bounds of the map. Extends `Layer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var imageUrl = 'https://maps.lib.utexas.edu/maps/historical/newark_nj_1922.jpg',\r\n * \timageBounds = [[40.712216, -74.22655], [40.773941, -74.12544]];\r\n * L.imageOverlay(imageUrl, imageBounds).addTo(map);\r\n * ```\r\n */\r\n\r\n var ImageOverlay = Layer.extend({\r\n\r\n \t// @section\r\n \t// @aka ImageOverlay options\r\n \toptions: {\r\n \t\t// @option opacity: Number = 1.0\r\n \t\t// The opacity of the image overlay.\r\n \t\topacity: 1,\r\n\r\n \t\t// @option alt: String = ''\r\n \t\t// Text for the `alt` attribute of the image (useful for accessibility).\r\n \t\talt: '',\r\n\r\n \t\t// @option interactive: Boolean = false\r\n \t\t// If `true`, the image overlay will emit [mouse events](#interactive-layer) when clicked or hovered.\r\n \t\tinteractive: false,\r\n\r\n \t\t// @option crossOrigin: Boolean|String = false\r\n \t\t// Whether the crossOrigin attribute will be added to the image.\r\n \t\t// If a String is provided, the image will have its crossOrigin attribute set to the String provided. This is needed if you want to access image pixel data.\r\n \t\t// Refer to [CORS Settings](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for valid String values.\r\n \t\tcrossOrigin: false,\r\n\r\n \t\t// @option errorOverlayUrl: String = ''\r\n \t\t// URL to the overlay image to show in place of the overlay that failed to load.\r\n \t\terrorOverlayUrl: '',\r\n\r\n \t\t// @option zIndex: Number = 1\r\n \t\t// The explicit [zIndex](https://developer.mozilla.org/docs/Web/CSS/CSS_Positioning/Understanding_z_index) of the overlay layer.\r\n \t\tzIndex: 1,\r\n\r\n \t\t// @option className: String = ''\r\n \t\t// A custom class name to assign to the image. Empty by default.\r\n \t\tclassName: ''\r\n \t},\r\n\r\n \tinitialize: function (url, bounds, options) { // (String, LatLngBounds, Object)\r\n \t\tthis._url = url;\r\n \t\tthis._bounds = toLatLngBounds(bounds);\r\n\r\n \t\tsetOptions(this, options);\r\n \t},\r\n\r\n \tonAdd: function () {\r\n \t\tif (!this._image) {\r\n \t\t\tthis._initImage();\r\n\r\n \t\t\tif (this.options.opacity < 1) {\r\n \t\t\t\tthis._updateOpacity();\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (this.options.interactive) {\r\n \t\t\taddClass(this._image, 'leaflet-interactive');\r\n \t\t\tthis.addInteractiveTarget(this._image);\r\n \t\t}\r\n\r\n \t\tthis.getPane().appendChild(this._image);\r\n \t\tthis._reset();\r\n \t},\r\n\r\n \tonRemove: function () {\r\n \t\tremove(this._image);\r\n \t\tif (this.options.interactive) {\r\n \t\t\tthis.removeInteractiveTarget(this._image);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method setOpacity(opacity: Number): this\r\n \t// Sets the opacity of the overlay.\r\n \tsetOpacity: function (opacity) {\r\n \t\tthis.options.opacity = opacity;\r\n\r\n \t\tif (this._image) {\r\n \t\t\tthis._updateOpacity();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \tsetStyle: function (styleOpts) {\r\n \t\tif (styleOpts.opacity) {\r\n \t\t\tthis.setOpacity(styleOpts.opacity);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method bringToFront(): this\r\n \t// Brings the layer to the top of all overlays.\r\n \tbringToFront: function () {\r\n \t\tif (this._map) {\r\n \t\t\ttoFront(this._image);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method bringToBack(): this\r\n \t// Brings the layer to the bottom of all overlays.\r\n \tbringToBack: function () {\r\n \t\tif (this._map) {\r\n \t\t\ttoBack(this._image);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setUrl(url: String): this\r\n \t// Changes the URL of the image.\r\n \tsetUrl: function (url) {\r\n \t\tthis._url = url;\r\n\r\n \t\tif (this._image) {\r\n \t\t\tthis._image.src = url;\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method setBounds(bounds: LatLngBounds): this\r\n \t// Update the bounds that this ImageOverlay covers\r\n \tsetBounds: function (bounds) {\r\n \t\tthis._bounds = toLatLngBounds(bounds);\r\n\r\n \t\tif (this._map) {\r\n \t\t\tthis._reset();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \tgetEvents: function () {\r\n \t\tvar events = {\r\n \t\t\tzoom: this._reset,\r\n \t\t\tviewreset: this._reset\r\n \t\t};\r\n\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tevents.zoomanim = this._animateZoom;\r\n \t\t}\r\n\r\n \t\treturn events;\r\n \t},\r\n\r\n \t// @method setZIndex(value: Number): this\r\n \t// Changes the [zIndex](#imageoverlay-zindex) of the image overlay.\r\n \tsetZIndex: function (value) {\r\n \t\tthis.options.zIndex = value;\r\n \t\tthis._updateZIndex();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getBounds(): LatLngBounds\r\n \t// Get the bounds that this ImageOverlay covers\r\n \tgetBounds: function () {\r\n \t\treturn this._bounds;\r\n \t},\r\n\r\n \t// @method getElement(): HTMLElement\r\n \t// Returns the instance of [`HTMLImageElement`](https://developer.mozilla.org/docs/Web/API/HTMLImageElement)\r\n \t// used by this overlay.\r\n \tgetElement: function () {\r\n \t\treturn this._image;\r\n \t},\r\n\r\n \t_initImage: function () {\r\n \t\tvar wasElementSupplied = this._url.tagName === 'IMG';\r\n \t\tvar img = this._image = wasElementSupplied ? this._url : create$1('img');\r\n\r\n \t\taddClass(img, 'leaflet-image-layer');\r\n \t\tif (this._zoomAnimated) { addClass(img, 'leaflet-zoom-animated'); }\r\n \t\tif (this.options.className) { addClass(img, this.options.className); }\r\n\r\n \t\timg.onselectstart = falseFn;\r\n \t\timg.onmousemove = falseFn;\r\n\r\n \t\t// @event load: Event\r\n \t\t// Fired when the ImageOverlay layer has loaded its image\r\n \t\timg.onload = bind(this.fire, this, 'load');\r\n \t\timg.onerror = bind(this._overlayOnError, this, 'error');\r\n\r\n \t\tif (this.options.crossOrigin || this.options.crossOrigin === '') {\r\n \t\t\timg.crossOrigin = this.options.crossOrigin === true ? '' : this.options.crossOrigin;\r\n \t\t}\r\n\r\n \t\tif (this.options.zIndex) {\r\n \t\t\tthis._updateZIndex();\r\n \t\t}\r\n\r\n \t\tif (wasElementSupplied) {\r\n \t\t\tthis._url = img.src;\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\timg.src = this._url;\r\n \t\timg.alt = this.options.alt;\r\n \t},\r\n\r\n \t_animateZoom: function (e) {\r\n \t\tvar scale = this._map.getZoomScale(e.zoom),\r\n \t\t offset = this._map._latLngBoundsToNewLayerBounds(this._bounds, e.zoom, e.center).min;\r\n\r\n \t\tsetTransform(this._image, offset, scale);\r\n \t},\r\n\r\n \t_reset: function () {\r\n \t\tvar image = this._image,\r\n \t\t bounds = new Bounds(\r\n \t\t this._map.latLngToLayerPoint(this._bounds.getNorthWest()),\r\n \t\t this._map.latLngToLayerPoint(this._bounds.getSouthEast())),\r\n \t\t size = bounds.getSize();\r\n\r\n \t\tsetPosition(image, bounds.min);\r\n\r\n \t\timage.style.width = size.x + 'px';\r\n \t\timage.style.height = size.y + 'px';\r\n \t},\r\n\r\n \t_updateOpacity: function () {\r\n \t\tsetOpacity(this._image, this.options.opacity);\r\n \t},\r\n\r\n \t_updateZIndex: function () {\r\n \t\tif (this._image && this.options.zIndex !== undefined && this.options.zIndex !== null) {\r\n \t\t\tthis._image.style.zIndex = this.options.zIndex;\r\n \t\t}\r\n \t},\r\n\r\n \t_overlayOnError: function () {\r\n \t\t// @event error: Event\r\n \t\t// Fired when the ImageOverlay layer fails to load its image\r\n \t\tthis.fire('error');\r\n\r\n \t\tvar errorUrl = this.options.errorOverlayUrl;\r\n \t\tif (errorUrl && this._url !== errorUrl) {\r\n \t\t\tthis._url = errorUrl;\r\n \t\t\tthis._image.src = errorUrl;\r\n \t\t}\r\n \t},\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the center of the ImageOverlay.\r\n \tgetCenter: function () {\r\n \t\treturn this._bounds.getCenter();\r\n \t}\r\n });\r\n\r\n // @factory L.imageOverlay(imageUrl: String, bounds: LatLngBounds, options?: ImageOverlay options)\r\n // Instantiates an image overlay object given the URL of the image and the\r\n // geographical bounds it is tied to.\r\n var imageOverlay = function (url, bounds, options) {\r\n \treturn new ImageOverlay(url, bounds, options);\r\n };\n\n /*\r\n * @class VideoOverlay\r\n * @aka L.VideoOverlay\r\n * @inherits ImageOverlay\r\n *\r\n * Used to load and display a video player over specific bounds of the map. Extends `ImageOverlay`.\r\n *\r\n * A video overlay uses the [`<video>`](https://developer.mozilla.org/docs/Web/HTML/Element/video)\r\n * HTML5 element.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var videoUrl = 'https://www.mapbox.com/bites/00188/patricia_nasa.webm',\r\n * \tvideoBounds = [[ 32, -130], [ 13, -100]];\r\n * L.videoOverlay(videoUrl, videoBounds ).addTo(map);\r\n * ```\r\n */\r\n\r\n var VideoOverlay = ImageOverlay.extend({\r\n\r\n \t// @section\r\n \t// @aka VideoOverlay options\r\n \toptions: {\r\n \t\t// @option autoplay: Boolean = true\r\n \t\t// Whether the video starts playing automatically when loaded.\r\n \t\t// On some browsers autoplay will only work with `muted: true`\r\n \t\tautoplay: true,\r\n\r\n \t\t// @option loop: Boolean = true\r\n \t\t// Whether the video will loop back to the beginning when played.\r\n \t\tloop: true,\r\n\r\n \t\t// @option keepAspectRatio: Boolean = true\r\n \t\t// Whether the video will save aspect ratio after the projection.\r\n \t\t// Relevant for supported browsers. See [browser compatibility](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit)\r\n \t\tkeepAspectRatio: true,\r\n\r\n \t\t// @option muted: Boolean = false\r\n \t\t// Whether the video starts on mute when loaded.\r\n \t\tmuted: false,\r\n\r\n \t\t// @option playsInline: Boolean = true\r\n \t\t// Mobile browsers will play the video right where it is instead of open it up in fullscreen mode.\r\n \t\tplaysInline: true\r\n \t},\r\n\r\n \t_initImage: function () {\r\n \t\tvar wasElementSupplied = this._url.tagName === 'VIDEO';\r\n \t\tvar vid = this._image = wasElementSupplied ? this._url : create$1('video');\r\n\r\n \t\taddClass(vid, 'leaflet-image-layer');\r\n \t\tif (this._zoomAnimated) { addClass(vid, 'leaflet-zoom-animated'); }\r\n \t\tif (this.options.className) { addClass(vid, this.options.className); }\r\n\r\n \t\tvid.onselectstart = falseFn;\r\n \t\tvid.onmousemove = falseFn;\r\n\r\n \t\t// @event load: Event\r\n \t\t// Fired when the video has finished loading the first frame\r\n \t\tvid.onloadeddata = bind(this.fire, this, 'load');\r\n\r\n \t\tif (wasElementSupplied) {\r\n \t\t\tvar sourceElements = vid.getElementsByTagName('source');\r\n \t\t\tvar sources = [];\r\n \t\t\tfor (var j = 0; j < sourceElements.length; j++) {\r\n \t\t\t\tsources.push(sourceElements[j].src);\r\n \t\t\t}\r\n\r\n \t\t\tthis._url = (sourceElements.length > 0) ? sources : [vid.src];\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (!isArray(this._url)) { this._url = [this._url]; }\r\n\r\n \t\tif (!this.options.keepAspectRatio && Object.prototype.hasOwnProperty.call(vid.style, 'objectFit')) {\r\n \t\t\tvid.style['objectFit'] = 'fill';\r\n \t\t}\r\n \t\tvid.autoplay = !!this.options.autoplay;\r\n \t\tvid.loop = !!this.options.loop;\r\n \t\tvid.muted = !!this.options.muted;\r\n \t\tvid.playsInline = !!this.options.playsInline;\r\n \t\tfor (var i = 0; i < this._url.length; i++) {\r\n \t\t\tvar source = create$1('source');\r\n \t\t\tsource.src = this._url[i];\r\n \t\t\tvid.appendChild(source);\r\n \t\t}\r\n \t}\r\n\r\n \t// @method getElement(): HTMLVideoElement\r\n \t// Returns the instance of [`HTMLVideoElement`](https://developer.mozilla.org/docs/Web/API/HTMLVideoElement)\r\n \t// used by this overlay.\r\n });\r\n\r\n\r\n // @factory L.videoOverlay(video: String|Array|HTMLVideoElement, bounds: LatLngBounds, options?: VideoOverlay options)\r\n // Instantiates an image overlay object given the URL of the video (or array of URLs, or even a video element) and the\r\n // geographical bounds it is tied to.\r\n\r\n function videoOverlay(video, bounds, options) {\r\n \treturn new VideoOverlay(video, bounds, options);\r\n }\n\n /*\n * @class SVGOverlay\n * @aka L.SVGOverlay\n * @inherits ImageOverlay\n *\n * Used to load, display and provide DOM access to an SVG file over specific bounds of the map. Extends `ImageOverlay`.\n *\n * An SVG overlay uses the [`<svg>`](https://developer.mozilla.org/docs/Web/SVG/Element/svg) element.\n *\n * @example\n *\n * ```js\n * var svgElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n * svgElement.setAttribute('xmlns', \"http://www.w3.org/2000/svg\");\n * svgElement.setAttribute('viewBox', \"0 0 200 200\");\n * svgElement.innerHTML = '<rect width=\"200\" height=\"200\"/><rect x=\"75\" y=\"23\" width=\"50\" height=\"50\" style=\"fill:red\"/><rect x=\"75\" y=\"123\" width=\"50\" height=\"50\" style=\"fill:#0013ff\"/>';\n * var svgElementBounds = [ [ 32, -130 ], [ 13, -100 ] ];\n * L.svgOverlay(svgElement, svgElementBounds).addTo(map);\n * ```\n */\n\n var SVGOverlay = ImageOverlay.extend({\n \t_initImage: function () {\n \t\tvar el = this._image = this._url;\n\n \t\taddClass(el, 'leaflet-image-layer');\n \t\tif (this._zoomAnimated) { addClass(el, 'leaflet-zoom-animated'); }\n \t\tif (this.options.className) { addClass(el, this.options.className); }\n\n \t\tel.onselectstart = falseFn;\n \t\tel.onmousemove = falseFn;\n \t}\n\n \t// @method getElement(): SVGElement\n \t// Returns the instance of [`SVGElement`](https://developer.mozilla.org/docs/Web/API/SVGElement)\n \t// used by this overlay.\n });\n\n\n // @factory L.svgOverlay(svg: String|SVGElement, bounds: LatLngBounds, options?: SVGOverlay options)\n // Instantiates an image overlay object given an SVG element and the geographical bounds it is tied to.\n // A viewBox attribute is required on the SVG element to zoom in and out properly.\n\n function svgOverlay(el, bounds, options) {\n \treturn new SVGOverlay(el, bounds, options);\n }\n\n /*\r\n * @class DivOverlay\r\n * @inherits Interactive layer\r\n * @aka L.DivOverlay\r\n * Base model for L.Popup and L.Tooltip. Inherit from it for custom overlays like plugins.\r\n */\r\n\r\n // @namespace DivOverlay\r\n var DivOverlay = Layer.extend({\r\n\r\n \t// @section\r\n \t// @aka DivOverlay options\r\n \toptions: {\r\n \t\t// @option interactive: Boolean = false\r\n \t\t// If true, the popup/tooltip will listen to the mouse events.\r\n \t\tinteractive: false,\r\n\r\n \t\t// @option offset: Point = Point(0, 0)\r\n \t\t// The offset of the overlay position.\r\n \t\toffset: [0, 0],\r\n\r\n \t\t// @option className: String = ''\r\n \t\t// A custom CSS class name to assign to the overlay.\r\n \t\tclassName: '',\r\n\r\n \t\t// @option pane: String = undefined\r\n \t\t// `Map pane` where the overlay will be added.\r\n \t\tpane: undefined,\r\n\r\n \t\t// @option content: String|HTMLElement|Function = ''\r\n \t\t// Sets the HTML content of the overlay while initializing. If a function is passed the source layer will be\r\n \t\t// passed to the function. The function should return a `String` or `HTMLElement` to be used in the overlay.\r\n \t\tcontent: ''\r\n \t},\r\n\r\n \tinitialize: function (options, source) {\r\n \t\tif (options && (options instanceof LatLng || isArray(options))) {\r\n \t\t\tthis._latlng = toLatLng(options);\r\n \t\t\tsetOptions(this, source);\r\n \t\t} else {\r\n \t\t\tsetOptions(this, options);\r\n \t\t\tthis._source = source;\r\n \t\t}\r\n \t\tif (this.options.content) {\r\n \t\t\tthis._content = this.options.content;\r\n \t\t}\r\n \t},\r\n\r\n \t// @method openOn(map: Map): this\r\n \t// Adds the overlay to the map.\r\n \t// Alternative to `map.openPopup(popup)`/`.openTooltip(tooltip)`.\r\n \topenOn: function (map) {\r\n \t\tmap = arguments.length ? map : this._source._map; // experimental, not the part of public api\r\n \t\tif (!map.hasLayer(this)) {\r\n \t\t\tmap.addLayer(this);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method close(): this\r\n \t// Closes the overlay.\r\n \t// Alternative to `map.closePopup(popup)`/`.closeTooltip(tooltip)`\r\n \t// and `layer.closePopup()`/`.closeTooltip()`.\r\n \tclose: function () {\r\n \t\tif (this._map) {\r\n \t\t\tthis._map.removeLayer(this);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method toggle(layer?: Layer): this\r\n \t// Opens or closes the overlay bound to layer depending on its current state.\r\n \t// Argument may be omitted only for overlay bound to layer.\r\n \t// Alternative to `layer.togglePopup()`/`.toggleTooltip()`.\r\n \ttoggle: function (layer) {\r\n \t\tif (this._map) {\r\n \t\t\tthis.close();\r\n \t\t} else {\r\n \t\t\tif (arguments.length) {\r\n \t\t\t\tthis._source = layer;\r\n \t\t\t} else {\r\n \t\t\t\tlayer = this._source;\r\n \t\t\t}\r\n \t\t\tthis._prepareOpen();\r\n\r\n \t\t\t// open the overlay on the map\r\n \t\t\tthis.openOn(layer._map);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tthis._zoomAnimated = map._zoomAnimated;\r\n\r\n \t\tif (!this._container) {\r\n \t\t\tthis._initLayout();\r\n \t\t}\r\n\r\n \t\tif (map._fadeAnimated) {\r\n \t\t\tsetOpacity(this._container, 0);\r\n \t\t}\r\n\r\n \t\tclearTimeout(this._removeTimeout);\r\n \t\tthis.getPane().appendChild(this._container);\r\n \t\tthis.update();\r\n\r\n \t\tif (map._fadeAnimated) {\r\n \t\t\tsetOpacity(this._container, 1);\r\n \t\t}\r\n\r\n \t\tthis.bringToFront();\r\n\r\n \t\tif (this.options.interactive) {\r\n \t\t\taddClass(this._container, 'leaflet-interactive');\r\n \t\t\tthis.addInteractiveTarget(this._container);\r\n \t\t}\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tif (map._fadeAnimated) {\r\n \t\t\tsetOpacity(this._container, 0);\r\n \t\t\tthis._removeTimeout = setTimeout(bind(remove, undefined, this._container), 200);\r\n \t\t} else {\r\n \t\t\tremove(this._container);\r\n \t\t}\r\n\r\n \t\tif (this.options.interactive) {\r\n \t\t\tremoveClass(this._container, 'leaflet-interactive');\r\n \t\t\tthis.removeInteractiveTarget(this._container);\r\n \t\t}\r\n \t},\r\n\r\n \t// @namespace DivOverlay\r\n \t// @method getLatLng: LatLng\r\n \t// Returns the geographical point of the overlay.\r\n \tgetLatLng: function () {\r\n \t\treturn this._latlng;\r\n \t},\r\n\r\n \t// @method setLatLng(latlng: LatLng): this\r\n \t// Sets the geographical point where the overlay will open.\r\n \tsetLatLng: function (latlng) {\r\n \t\tthis._latlng = toLatLng(latlng);\r\n \t\tif (this._map) {\r\n \t\t\tthis._updatePosition();\r\n \t\t\tthis._adjustPan();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getContent: String|HTMLElement\r\n \t// Returns the content of the overlay.\r\n \tgetContent: function () {\r\n \t\treturn this._content;\r\n \t},\r\n\r\n \t// @method setContent(htmlContent: String|HTMLElement|Function): this\r\n \t// Sets the HTML content of the overlay. If a function is passed the source layer will be passed to the function.\r\n \t// The function should return a `String` or `HTMLElement` to be used in the overlay.\r\n \tsetContent: function (content) {\r\n \t\tthis._content = content;\r\n \t\tthis.update();\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getElement: String|HTMLElement\r\n \t// Returns the HTML container of the overlay.\r\n \tgetElement: function () {\r\n \t\treturn this._container;\r\n \t},\r\n\r\n \t// @method update: null\r\n \t// Updates the overlay content, layout and position. Useful for updating the overlay after something inside changed, e.g. image loaded.\r\n \tupdate: function () {\r\n \t\tif (!this._map) { return; }\r\n\r\n \t\tthis._container.style.visibility = 'hidden';\r\n\r\n \t\tthis._updateContent();\r\n \t\tthis._updateLayout();\r\n \t\tthis._updatePosition();\r\n\r\n \t\tthis._container.style.visibility = '';\r\n\r\n \t\tthis._adjustPan();\r\n \t},\r\n\r\n \tgetEvents: function () {\r\n \t\tvar events = {\r\n \t\t\tzoom: this._updatePosition,\r\n \t\t\tviewreset: this._updatePosition\r\n \t\t};\r\n\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tevents.zoomanim = this._animateZoom;\r\n \t\t}\r\n \t\treturn events;\r\n \t},\r\n\r\n \t// @method isOpen: Boolean\r\n \t// Returns `true` when the overlay is visible on the map.\r\n \tisOpen: function () {\r\n \t\treturn !!this._map && this._map.hasLayer(this);\r\n \t},\r\n\r\n \t// @method bringToFront: this\r\n \t// Brings this overlay in front of other overlays (in the same map pane).\r\n \tbringToFront: function () {\r\n \t\tif (this._map) {\r\n \t\t\ttoFront(this._container);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method bringToBack: this\r\n \t// Brings this overlay to the back of other overlays (in the same map pane).\r\n \tbringToBack: function () {\r\n \t\tif (this._map) {\r\n \t\t\ttoBack(this._container);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// prepare bound overlay to open: update latlng pos / content source (for FeatureGroup)\r\n \t_prepareOpen: function (latlng) {\r\n \t\tvar source = this._source;\r\n \t\tif (!source._map) { return false; }\r\n\r\n \t\tif (source instanceof FeatureGroup) {\r\n \t\t\tsource = null;\r\n \t\t\tvar layers = this._source._layers;\r\n \t\t\tfor (var id in layers) {\r\n \t\t\t\tif (layers[id]._map) {\r\n \t\t\t\t\tsource = layers[id];\r\n \t\t\t\t\tbreak;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\tif (!source) { return false; } // Unable to get source layer.\r\n\r\n \t\t\t// set overlay source to this layer\r\n \t\t\tthis._source = source;\r\n \t\t}\r\n\r\n \t\tif (!latlng) {\r\n \t\t\tif (source.getCenter) {\r\n \t\t\t\tlatlng = source.getCenter();\r\n \t\t\t} else if (source.getLatLng) {\r\n \t\t\t\tlatlng = source.getLatLng();\r\n \t\t\t} else if (source.getBounds) {\r\n \t\t\t\tlatlng = source.getBounds().getCenter();\r\n \t\t\t} else {\r\n \t\t\t\tthrow new Error('Unable to get source layer LatLng.');\r\n \t\t\t}\r\n \t\t}\r\n \t\tthis.setLatLng(latlng);\r\n\r\n \t\tif (this._map) {\r\n \t\t\t// update the overlay (content, layout, etc...)\r\n \t\t\tthis.update();\r\n \t\t}\r\n\r\n \t\treturn true;\r\n \t},\r\n\r\n \t_updateContent: function () {\r\n \t\tif (!this._content) { return; }\r\n\r\n \t\tvar node = this._contentNode;\r\n \t\tvar content = (typeof this._content === 'function') ? this._content(this._source || this) : this._content;\r\n\r\n \t\tif (typeof content === 'string') {\r\n \t\t\tnode.innerHTML = content;\r\n \t\t} else {\r\n \t\t\twhile (node.hasChildNodes()) {\r\n \t\t\t\tnode.removeChild(node.firstChild);\r\n \t\t\t}\r\n \t\t\tnode.appendChild(content);\r\n \t\t}\r\n\r\n \t\t// @namespace DivOverlay\r\n \t\t// @section DivOverlay events\r\n \t\t// @event contentupdate: Event\r\n \t\t// Fired when the content of the overlay is updated\r\n \t\tthis.fire('contentupdate');\r\n \t},\r\n\r\n \t_updatePosition: function () {\r\n \t\tif (!this._map) { return; }\r\n\r\n \t\tvar pos = this._map.latLngToLayerPoint(this._latlng),\r\n \t\t offset = toPoint(this.options.offset),\r\n \t\t anchor = this._getAnchor();\r\n\r\n \t\tif (this._zoomAnimated) {\r\n \t\t\tsetPosition(this._container, pos.add(anchor));\r\n \t\t} else {\r\n \t\t\toffset = offset.add(pos).add(anchor);\r\n \t\t}\r\n\r\n \t\tvar bottom = this._containerBottom = -offset.y,\r\n \t\t left = this._containerLeft = -Math.round(this._containerWidth / 2) + offset.x;\r\n\r\n \t\t// bottom position the overlay in case the height of the overlay changes (images loading etc)\r\n \t\tthis._container.style.bottom = bottom + 'px';\r\n \t\tthis._container.style.left = left + 'px';\r\n \t},\r\n\r\n \t_getAnchor: function () {\r\n \t\treturn [0, 0];\r\n \t}\r\n\r\n });\r\n\r\n Map.include({\r\n \t_initOverlay: function (OverlayClass, content, latlng, options) {\r\n \t\tvar overlay = content;\r\n \t\tif (!(overlay instanceof OverlayClass)) {\r\n \t\t\toverlay = new OverlayClass(options).setContent(content);\r\n \t\t}\r\n \t\tif (latlng) {\r\n \t\t\toverlay.setLatLng(latlng);\r\n \t\t}\r\n \t\treturn overlay;\r\n \t}\r\n });\r\n\r\n\r\n Layer.include({\r\n \t_initOverlay: function (OverlayClass, old, content, options) {\r\n \t\tvar overlay = content;\r\n \t\tif (overlay instanceof OverlayClass) {\r\n \t\t\tsetOptions(overlay, options);\r\n \t\t\toverlay._source = this;\r\n \t\t} else {\r\n \t\t\toverlay = (old && !options) ? old : new OverlayClass(options, this);\r\n \t\t\toverlay.setContent(content);\r\n \t\t}\r\n \t\treturn overlay;\r\n \t}\r\n });\n\n /*\r\n * @class Popup\r\n * @inherits DivOverlay\r\n * @aka L.Popup\r\n * Used to open popups in certain places of the map. Use [Map.openPopup](#map-openpopup) to\r\n * open popups while making sure that only one popup is open at one time\r\n * (recommended for usability), or use [Map.addLayer](#map-addlayer) to open as many as you want.\r\n *\r\n * @example\r\n *\r\n * If you want to just bind a popup to marker click and then open it, it's really easy:\r\n *\r\n * ```js\r\n * marker.bindPopup(popupContent).openPopup();\r\n * ```\r\n * Path overlays like polylines also have a `bindPopup` method.\r\n *\r\n * A popup can be also standalone:\r\n *\r\n * ```js\r\n * var popup = L.popup()\r\n * \t.setLatLng(latlng)\r\n * \t.setContent('<p>Hello world!<br />This is a nice popup.</p>')\r\n * \t.openOn(map);\r\n * ```\r\n * or\r\n * ```js\r\n * var popup = L.popup(latlng, {content: '<p>Hello world!<br />This is a nice popup.</p>')\r\n * \t.openOn(map);\r\n * ```\r\n */\r\n\r\n\r\n // @namespace Popup\r\n var Popup = DivOverlay.extend({\r\n\r\n \t// @section\r\n \t// @aka Popup options\r\n \toptions: {\r\n \t\t// @option pane: String = 'popupPane'\r\n \t\t// `Map pane` where the popup will be added.\r\n \t\tpane: 'popupPane',\r\n\r\n \t\t// @option offset: Point = Point(0, 7)\r\n \t\t// The offset of the popup position.\r\n \t\toffset: [0, 7],\r\n\r\n \t\t// @option maxWidth: Number = 300\r\n \t\t// Max width of the popup, in pixels.\r\n \t\tmaxWidth: 300,\r\n\r\n \t\t// @option minWidth: Number = 50\r\n \t\t// Min width of the popup, in pixels.\r\n \t\tminWidth: 50,\r\n\r\n \t\t// @option maxHeight: Number = null\r\n \t\t// If set, creates a scrollable container of the given height\r\n \t\t// inside a popup if its content exceeds it.\r\n \t\t// The scrollable container can be styled using the\r\n \t\t// `leaflet-popup-scrolled` CSS class selector.\r\n \t\tmaxHeight: null,\r\n\r\n \t\t// @option autoPan: Boolean = true\r\n \t\t// Set it to `false` if you don't want the map to do panning animation\r\n \t\t// to fit the opened popup.\r\n \t\tautoPan: true,\r\n\r\n \t\t// @option autoPanPaddingTopLeft: Point = null\r\n \t\t// The margin between the popup and the top left corner of the map\r\n \t\t// view after autopanning was performed.\r\n \t\tautoPanPaddingTopLeft: null,\r\n\r\n \t\t// @option autoPanPaddingBottomRight: Point = null\r\n \t\t// The margin between the popup and the bottom right corner of the map\r\n \t\t// view after autopanning was performed.\r\n \t\tautoPanPaddingBottomRight: null,\r\n\r\n \t\t// @option autoPanPadding: Point = Point(5, 5)\r\n \t\t// Equivalent of setting both top left and bottom right autopan padding to the same value.\r\n \t\tautoPanPadding: [5, 5],\r\n\r\n \t\t// @option keepInView: Boolean = false\r\n \t\t// Set it to `true` if you want to prevent users from panning the popup\r\n \t\t// off of the screen while it is open.\r\n \t\tkeepInView: false,\r\n\r\n \t\t// @option closeButton: Boolean = true\r\n \t\t// Controls the presence of a close button in the popup.\r\n \t\tcloseButton: true,\r\n\r\n \t\t// @option autoClose: Boolean = true\r\n \t\t// Set it to `false` if you want to override the default behavior of\r\n \t\t// the popup closing when another popup is opened.\r\n \t\tautoClose: true,\r\n\r\n \t\t// @option closeOnEscapeKey: Boolean = true\r\n \t\t// Set it to `false` if you want to override the default behavior of\r\n \t\t// the ESC key for closing of the popup.\r\n \t\tcloseOnEscapeKey: true,\r\n\r\n \t\t// @option closeOnClick: Boolean = *\r\n \t\t// Set it if you want to override the default behavior of the popup closing when user clicks\r\n \t\t// on the map. Defaults to the map's [`closePopupOnClick`](#map-closepopuponclick) option.\r\n\r\n \t\t// @option className: String = ''\r\n \t\t// A custom CSS class name to assign to the popup.\r\n \t\tclassName: ''\r\n \t},\r\n\r\n \t// @namespace Popup\r\n \t// @method openOn(map: Map): this\r\n \t// Alternative to `map.openPopup(popup)`.\r\n \t// Adds the popup to the map and closes the previous one.\r\n \topenOn: function (map) {\r\n \t\tmap = arguments.length ? map : this._source._map; // experimental, not the part of public api\r\n\r\n \t\tif (!map.hasLayer(this) && map._popup && map._popup.options.autoClose) {\r\n \t\t\tmap.removeLayer(map._popup);\r\n \t\t}\r\n \t\tmap._popup = this;\r\n\r\n \t\treturn DivOverlay.prototype.openOn.call(this, map);\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n \t\tDivOverlay.prototype.onAdd.call(this, map);\r\n\r\n \t\t// @namespace Map\r\n \t\t// @section Popup events\r\n \t\t// @event popupopen: PopupEvent\r\n \t\t// Fired when a popup is opened in the map\r\n \t\tmap.fire('popupopen', {popup: this});\r\n\r\n \t\tif (this._source) {\r\n \t\t\t// @namespace Layer\r\n \t\t\t// @section Popup events\r\n \t\t\t// @event popupopen: PopupEvent\r\n \t\t\t// Fired when a popup bound to this layer is opened\r\n \t\t\tthis._source.fire('popupopen', {popup: this}, true);\r\n \t\t\t// For non-path layers, we toggle the popup when clicking\r\n \t\t\t// again the layer, so prevent the map to reopen it.\r\n \t\t\tif (!(this._source instanceof Path)) {\r\n \t\t\t\tthis._source.on('preclick', stopPropagation);\r\n \t\t\t}\r\n \t\t}\r\n \t},\r\n\r\n \tonRemove: function (map) {\r\n \t\tDivOverlay.prototype.onRemove.call(this, map);\r\n\r\n \t\t// @namespace Map\r\n \t\t// @section Popup events\r\n \t\t// @event popupclose: PopupEvent\r\n \t\t// Fired when a popup in the map is closed\r\n \t\tmap.fire('popupclose', {popup: this});\r\n\r\n \t\tif (this._source) {\r\n \t\t\t// @namespace Layer\r\n \t\t\t// @section Popup events\r\n \t\t\t// @event popupclose: PopupEvent\r\n \t\t\t// Fired when a popup bound to this layer is closed\r\n \t\t\tthis._source.fire('popupclose', {popup: this}, true);\r\n \t\t\tif (!(this._source instanceof Path)) {\r\n \t\t\t\tthis._source.off('preclick', stopPropagation);\r\n \t\t\t}\r\n \t\t}\r\n \t},\r\n\r\n \tgetEvents: function () {\r\n \t\tvar events = DivOverlay.prototype.getEvents.call(this);\r\n\r\n \t\tif (this.options.closeOnClick !== undefined ? this.options.closeOnClick : this._map.options.closePopupOnClick) {\r\n \t\t\tevents.preclick = this.close;\r\n \t\t}\r\n\r\n \t\tif (this.options.keepInView) {\r\n \t\t\tevents.moveend = this._adjustPan;\r\n \t\t}\r\n\r\n \t\treturn events;\r\n \t},\r\n\r\n \t_initLayout: function () {\r\n \t\tvar prefix = 'leaflet-popup',\r\n \t\t container = this._container = create$1('div',\r\n \t\t\tprefix + ' ' + (this.options.className || '') +\r\n \t\t\t' leaflet-zoom-animated');\r\n\r\n \t\tvar wrapper = this._wrapper = create$1('div', prefix + '-content-wrapper', container);\r\n \t\tthis._contentNode = create$1('div', prefix + '-content', wrapper);\r\n\r\n \t\tdisableClickPropagation(container);\r\n \t\tdisableScrollPropagation(this._contentNode);\r\n \t\ton(container, 'contextmenu', stopPropagation);\r\n\r\n \t\tthis._tipContainer = create$1('div', prefix + '-tip-container', container);\r\n \t\tthis._tip = create$1('div', prefix + '-tip', this._tipContainer);\r\n\r\n \t\tif (this.options.closeButton) {\r\n \t\t\tvar closeButton = this._closeButton = create$1('a', prefix + '-close-button', container);\r\n \t\t\tcloseButton.setAttribute('role', 'button'); // overrides the implicit role=link of <a> elements #7399\r\n \t\t\tcloseButton.setAttribute('aria-label', 'Close popup');\r\n \t\t\tcloseButton.href = '#close';\r\n \t\t\tcloseButton.innerHTML = '<span aria-hidden=\"true\">&#215;</span>';\r\n\r\n \t\t\ton(closeButton, 'click', function (ev) {\r\n \t\t\t\tpreventDefault(ev);\r\n \t\t\t\tthis.close();\r\n \t\t\t}, this);\r\n \t\t}\r\n \t},\r\n\r\n \t_updateLayout: function () {\r\n \t\tvar container = this._contentNode,\r\n \t\t style = container.style;\r\n\r\n \t\tstyle.width = '';\r\n \t\tstyle.whiteSpace = 'nowrap';\r\n\r\n \t\tvar width = container.offsetWidth;\r\n \t\twidth = Math.min(width, this.options.maxWidth);\r\n \t\twidth = Math.max(width, this.options.minWidth);\r\n\r\n \t\tstyle.width = (width + 1) + 'px';\r\n \t\tstyle.whiteSpace = '';\r\n\r\n \t\tstyle.height = '';\r\n\r\n \t\tvar height = container.offsetHeight,\r\n \t\t maxHeight = this.options.maxHeight,\r\n \t\t scrolledClass = 'leaflet-popup-scrolled';\r\n\r\n \t\tif (maxHeight && height > maxHeight) {\r\n \t\t\tstyle.height = maxHeight + 'px';\r\n \t\t\taddClass(container, scrolledClass);\r\n \t\t} else {\r\n \t\t\tremoveClass(container, scrolledClass);\r\n \t\t}\r\n\r\n \t\tthis._containerWidth = this._container.offsetWidth;\r\n \t},\r\n\r\n \t_animateZoom: function (e) {\r\n \t\tvar pos = this._map._latLngToNewLayerPoint(this._latlng, e.zoom, e.center),\r\n \t\t anchor = this._getAnchor();\r\n \t\tsetPosition(this._container, pos.add(anchor));\r\n \t},\r\n\r\n \t_adjustPan: function () {\r\n \t\tif (!this.options.autoPan) { return; }\r\n \t\tif (this._map._panAnim) { this._map._panAnim.stop(); }\r\n\r\n \t\t// We can endlessly recurse if keepInView is set and the view resets.\r\n \t\t// Let's guard against that by exiting early if we're responding to our own autopan.\r\n \t\tif (this._autopanning) {\r\n \t\t\tthis._autopanning = false;\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tvar map = this._map,\r\n \t\t marginBottom = parseInt(getStyle(this._container, 'marginBottom'), 10) || 0,\r\n \t\t containerHeight = this._container.offsetHeight + marginBottom,\r\n \t\t containerWidth = this._containerWidth,\r\n \t\t layerPos = new Point(this._containerLeft, -containerHeight - this._containerBottom);\r\n\r\n \t\tlayerPos._add(getPosition(this._container));\r\n\r\n \t\tvar containerPos = map.layerPointToContainerPoint(layerPos),\r\n \t\t padding = toPoint(this.options.autoPanPadding),\r\n \t\t paddingTL = toPoint(this.options.autoPanPaddingTopLeft || padding),\r\n \t\t paddingBR = toPoint(this.options.autoPanPaddingBottomRight || padding),\r\n \t\t size = map.getSize(),\r\n \t\t dx = 0,\r\n \t\t dy = 0;\r\n\r\n \t\tif (containerPos.x + containerWidth + paddingBR.x > size.x) { // right\r\n \t\t\tdx = containerPos.x + containerWidth - size.x + paddingBR.x;\r\n \t\t}\r\n \t\tif (containerPos.x - dx - paddingTL.x < 0) { // left\r\n \t\t\tdx = containerPos.x - paddingTL.x;\r\n \t\t}\r\n \t\tif (containerPos.y + containerHeight + paddingBR.y > size.y) { // bottom\r\n \t\t\tdy = containerPos.y + containerHeight - size.y + paddingBR.y;\r\n \t\t}\r\n \t\tif (containerPos.y - dy - paddingTL.y < 0) { // top\r\n \t\t\tdy = containerPos.y - paddingTL.y;\r\n \t\t}\r\n\r\n \t\t// @namespace Map\r\n \t\t// @section Popup events\r\n \t\t// @event autopanstart: Event\r\n \t\t// Fired when the map starts autopanning when opening a popup.\r\n \t\tif (dx || dy) {\r\n \t\t\t// Track that we're autopanning, as this function will be re-ran on moveend\r\n \t\t\tif (this.options.keepInView) {\r\n \t\t\t\tthis._autopanning = true;\r\n \t\t\t}\r\n\r\n \t\t\tmap\r\n \t\t\t .fire('autopanstart')\r\n \t\t\t .panBy([dx, dy]);\r\n \t\t}\r\n \t},\r\n\r\n \t_getAnchor: function () {\r\n \t\t// Where should we anchor the popup on the source layer?\r\n \t\treturn toPoint(this._source && this._source._getPopupAnchor ? this._source._getPopupAnchor() : [0, 0]);\r\n \t}\r\n\r\n });\r\n\r\n // @namespace Popup\r\n // @factory L.popup(options?: Popup options, source?: Layer)\r\n // Instantiates a `Popup` object given an optional `options` object that describes its appearance and location and an optional `source` object that is used to tag the popup with a reference to the Layer to which it refers.\r\n // @alternative\r\n // @factory L.popup(latlng: LatLng, options?: Popup options)\r\n // Instantiates a `Popup` object given `latlng` where the popup will open and an optional `options` object that describes its appearance and location.\r\n var popup = function (options, source) {\r\n \treturn new Popup(options, source);\r\n };\r\n\r\n\r\n /* @namespace Map\r\n * @section Interaction Options\r\n * @option closePopupOnClick: Boolean = true\r\n * Set it to `false` if you don't want popups to close when user clicks the map.\r\n */\r\n Map.mergeOptions({\r\n \tclosePopupOnClick: true\r\n });\r\n\r\n\r\n // @namespace Map\r\n // @section Methods for Layers and Controls\r\n Map.include({\r\n \t// @method openPopup(popup: Popup): this\r\n \t// Opens the specified popup while closing the previously opened (to make sure only one is opened at one time for usability).\r\n \t// @alternative\r\n \t// @method openPopup(content: String|HTMLElement, latlng: LatLng, options?: Popup options): this\r\n \t// Creates a popup with the specified content and options and opens it in the given point on a map.\r\n \topenPopup: function (popup, latlng, options) {\r\n \t\tthis._initOverlay(Popup, popup, latlng, options)\r\n \t\t .openOn(this);\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method closePopup(popup?: Popup): this\r\n \t// Closes the popup previously opened with [openPopup](#map-openpopup) (or the given one).\r\n \tclosePopup: function (popup) {\r\n \t\tpopup = arguments.length ? popup : this._popup;\r\n \t\tif (popup) {\r\n \t\t\tpopup.close();\r\n \t\t}\r\n \t\treturn this;\r\n \t}\r\n });\r\n\r\n /*\r\n * @namespace Layer\r\n * @section Popup methods example\r\n *\r\n * All layers share a set of methods convenient for binding popups to it.\r\n *\r\n * ```js\r\n * var layer = L.Polygon(latlngs).bindPopup('Hi There!').addTo(map);\r\n * layer.openPopup();\r\n * layer.closePopup();\r\n * ```\r\n *\r\n * Popups will also be automatically opened when the layer is clicked on and closed when the layer is removed from the map or another popup is opened.\r\n */\r\n\r\n // @section Popup methods\r\n Layer.include({\r\n\r\n \t// @method bindPopup(content: String|HTMLElement|Function|Popup, options?: Popup options): this\r\n \t// Binds a popup to the layer with the passed `content` and sets up the\r\n \t// necessary event listeners. If a `Function` is passed it will receive\r\n \t// the layer as the first argument and should return a `String` or `HTMLElement`.\r\n \tbindPopup: function (content, options) {\r\n \t\tthis._popup = this._initOverlay(Popup, this._popup, content, options);\r\n \t\tif (!this._popupHandlersAdded) {\r\n \t\t\tthis.on({\r\n \t\t\t\tclick: this._openPopup,\r\n \t\t\t\tkeypress: this._onKeyPress,\r\n \t\t\t\tremove: this.closePopup,\r\n \t\t\t\tmove: this._movePopup\r\n \t\t\t});\r\n \t\t\tthis._popupHandlersAdded = true;\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method unbindPopup(): this\r\n \t// Removes the popup previously bound with `bindPopup`.\r\n \tunbindPopup: function () {\r\n \t\tif (this._popup) {\r\n \t\t\tthis.off({\r\n \t\t\t\tclick: this._openPopup,\r\n \t\t\t\tkeypress: this._onKeyPress,\r\n \t\t\t\tremove: this.closePopup,\r\n \t\t\t\tmove: this._movePopup\r\n \t\t\t});\r\n \t\t\tthis._popupHandlersAdded = false;\r\n \t\t\tthis._popup = null;\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method openPopup(latlng?: LatLng): this\r\n \t// Opens the bound popup at the specified `latlng` or at the default popup anchor if no `latlng` is passed.\r\n \topenPopup: function (latlng) {\r\n \t\tif (this._popup) {\r\n \t\t\tif (!(this instanceof FeatureGroup)) {\r\n \t\t\t\tthis._popup._source = this;\r\n \t\t\t}\r\n \t\t\tif (this._popup._prepareOpen(latlng || this._latlng)) {\r\n \t\t\t\t// open the popup on the map\r\n \t\t\t\tthis._popup.openOn(this._map);\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method closePopup(): this\r\n \t// Closes the popup bound to this layer if it is open.\r\n \tclosePopup: function () {\r\n \t\tif (this._popup) {\r\n \t\t\tthis._popup.close();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method togglePopup(): this\r\n \t// Opens or closes the popup bound to this layer depending on its current state.\r\n \ttogglePopup: function () {\r\n \t\tif (this._popup) {\r\n \t\t\tthis._popup.toggle(this);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method isPopupOpen(): boolean\r\n \t// Returns `true` if the popup bound to this layer is currently open.\r\n \tisPopupOpen: function () {\r\n \t\treturn (this._popup ? this._popup.isOpen() : false);\r\n \t},\r\n\r\n \t// @method setPopupContent(content: String|HTMLElement|Popup): this\r\n \t// Sets the content of the popup bound to this layer.\r\n \tsetPopupContent: function (content) {\r\n \t\tif (this._popup) {\r\n \t\t\tthis._popup.setContent(content);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getPopup(): Popup\r\n \t// Returns the popup bound to this layer.\r\n \tgetPopup: function () {\r\n \t\treturn this._popup;\r\n \t},\r\n\r\n \t_openPopup: function (e) {\r\n \t\tif (!this._popup || !this._map) {\r\n \t\t\treturn;\r\n \t\t}\r\n \t\t// prevent map click\r\n \t\tstop(e);\r\n\r\n \t\tvar target = e.layer || e.target;\r\n \t\tif (this._popup._source === target && !(target instanceof Path)) {\r\n \t\t\t// treat it like a marker and figure out\r\n \t\t\t// if we should toggle it open/closed\r\n \t\t\tif (this._map.hasLayer(this._popup)) {\r\n \t\t\t\tthis.closePopup();\r\n \t\t\t} else {\r\n \t\t\t\tthis.openPopup(e.latlng);\r\n \t\t\t}\r\n \t\t\treturn;\r\n \t\t}\r\n \t\tthis._popup._source = target;\r\n \t\tthis.openPopup(e.latlng);\r\n \t},\r\n\r\n \t_movePopup: function (e) {\r\n \t\tthis._popup.setLatLng(e.latlng);\r\n \t},\r\n\r\n \t_onKeyPress: function (e) {\r\n \t\tif (e.originalEvent.keyCode === 13) {\r\n \t\t\tthis._openPopup(e);\r\n \t\t}\r\n \t}\r\n });\n\n /*\n * @class Tooltip\n * @inherits DivOverlay\n * @aka L.Tooltip\n * Used to display small texts on top of map layers.\n *\n * @example\n * If you want to just bind a tooltip to marker:\n *\n * ```js\n * marker.bindTooltip(\"my tooltip text\").openTooltip();\n * ```\n * Path overlays like polylines also have a `bindTooltip` method.\n *\n * A tooltip can be also standalone:\n *\n * ```js\n * var tooltip = L.tooltip()\n * \t.setLatLng(latlng)\n * \t.setContent('Hello world!<br />This is a nice tooltip.')\n * \t.addTo(map);\n * ```\n * or\n * ```js\n * var tooltip = L.tooltip(latlng, {content: 'Hello world!<br />This is a nice tooltip.'})\n * \t.addTo(map);\n * ```\n *\n *\n * Note about tooltip offset. Leaflet takes two options in consideration\n * for computing tooltip offsetting:\n * - the `offset` Tooltip option: it defaults to [0, 0], and it's specific to one tooltip.\n * Add a positive x offset to move the tooltip to the right, and a positive y offset to\n * move it to the bottom. Negatives will move to the left and top.\n * - the `tooltipAnchor` Icon option: this will only be considered for Marker. You\n * should adapt this value if you use a custom icon.\n */\n\n\n // @namespace Tooltip\n var Tooltip = DivOverlay.extend({\n\n \t// @section\n \t// @aka Tooltip options\n \toptions: {\n \t\t// @option pane: String = 'tooltipPane'\n \t\t// `Map pane` where the tooltip will be added.\n \t\tpane: 'tooltipPane',\n\n \t\t// @option offset: Point = Point(0, 0)\n \t\t// Optional offset of the tooltip position.\n \t\toffset: [0, 0],\n\n \t\t// @option direction: String = 'auto'\n \t\t// Direction where to open the tooltip. Possible values are: `right`, `left`,\n \t\t// `top`, `bottom`, `center`, `auto`.\n \t\t// `auto` will dynamically switch between `right` and `left` according to the tooltip\n \t\t// position on the map.\n \t\tdirection: 'auto',\n\n \t\t// @option permanent: Boolean = false\n \t\t// Whether to open the tooltip permanently or only on mouseover.\n \t\tpermanent: false,\n\n \t\t// @option sticky: Boolean = false\n \t\t// If true, the tooltip will follow the mouse instead of being fixed at the feature center.\n \t\tsticky: false,\n\n \t\t// @option opacity: Number = 0.9\n \t\t// Tooltip container opacity.\n \t\topacity: 0.9\n \t},\n\n \tonAdd: function (map) {\n \t\tDivOverlay.prototype.onAdd.call(this, map);\n \t\tthis.setOpacity(this.options.opacity);\n\n \t\t// @namespace Map\n \t\t// @section Tooltip events\n \t\t// @event tooltipopen: TooltipEvent\n \t\t// Fired when a tooltip is opened in the map.\n \t\tmap.fire('tooltipopen', {tooltip: this});\n\n \t\tif (this._source) {\n \t\t\tthis.addEventParent(this._source);\n\n \t\t\t// @namespace Layer\n \t\t\t// @section Tooltip events\n \t\t\t// @event tooltipopen: TooltipEvent\n \t\t\t// Fired when a tooltip bound to this layer is opened.\n \t\t\tthis._source.fire('tooltipopen', {tooltip: this}, true);\n \t\t}\n \t},\n\n \tonRemove: function (map) {\n \t\tDivOverlay.prototype.onRemove.call(this, map);\n\n \t\t// @namespace Map\n \t\t// @section Tooltip events\n \t\t// @event tooltipclose: TooltipEvent\n \t\t// Fired when a tooltip in the map is closed.\n \t\tmap.fire('tooltipclose', {tooltip: this});\n\n \t\tif (this._source) {\n \t\t\tthis.removeEventParent(this._source);\n\n \t\t\t// @namespace Layer\n \t\t\t// @section Tooltip events\n \t\t\t// @event tooltipclose: TooltipEvent\n \t\t\t// Fired when a tooltip bound to this layer is closed.\n \t\t\tthis._source.fire('tooltipclose', {tooltip: this}, true);\n \t\t}\n \t},\n\n \tgetEvents: function () {\n \t\tvar events = DivOverlay.prototype.getEvents.call(this);\n\n \t\tif (!this.options.permanent) {\n \t\t\tevents.preclick = this.close;\n \t\t}\n\n \t\treturn events;\n \t},\n\n \t_initLayout: function () {\n \t\tvar prefix = 'leaflet-tooltip',\n \t\t className = prefix + ' ' + (this.options.className || '') + ' leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide');\n\n \t\tthis._contentNode = this._container = create$1('div', className);\n\n \t\tthis._container.setAttribute('role', 'tooltip');\n \t\tthis._container.setAttribute('id', 'leaflet-tooltip-' + stamp(this));\n \t},\n\n \t_updateLayout: function () {},\n\n \t_adjustPan: function () {},\n\n \t_setPosition: function (pos) {\n \t\tvar subX, subY,\n \t\t map = this._map,\n \t\t container = this._container,\n \t\t centerPoint = map.latLngToContainerPoint(map.getCenter()),\n \t\t tooltipPoint = map.layerPointToContainerPoint(pos),\n \t\t direction = this.options.direction,\n \t\t tooltipWidth = container.offsetWidth,\n \t\t tooltipHeight = container.offsetHeight,\n \t\t offset = toPoint(this.options.offset),\n \t\t anchor = this._getAnchor();\n\n \t\tif (direction === 'top') {\n \t\t\tsubX = tooltipWidth / 2;\n \t\t\tsubY = tooltipHeight;\n \t\t} else if (direction === 'bottom') {\n \t\t\tsubX = tooltipWidth / 2;\n \t\t\tsubY = 0;\n \t\t} else if (direction === 'center') {\n \t\t\tsubX = tooltipWidth / 2;\n \t\t\tsubY = tooltipHeight / 2;\n \t\t} else if (direction === 'right') {\n \t\t\tsubX = 0;\n \t\t\tsubY = tooltipHeight / 2;\n \t\t} else if (direction === 'left') {\n \t\t\tsubX = tooltipWidth;\n \t\t\tsubY = tooltipHeight / 2;\n \t\t} else if (tooltipPoint.x < centerPoint.x) {\n \t\t\tdirection = 'right';\n \t\t\tsubX = 0;\n \t\t\tsubY = tooltipHeight / 2;\n \t\t} else {\n \t\t\tdirection = 'left';\n \t\t\tsubX = tooltipWidth + (offset.x + anchor.x) * 2;\n \t\t\tsubY = tooltipHeight / 2;\n \t\t}\n\n \t\tpos = pos.subtract(toPoint(subX, subY, true)).add(offset).add(anchor);\n\n \t\tremoveClass(container, 'leaflet-tooltip-right');\n \t\tremoveClass(container, 'leaflet-tooltip-left');\n \t\tremoveClass(container, 'leaflet-tooltip-top');\n \t\tremoveClass(container, 'leaflet-tooltip-bottom');\n \t\taddClass(container, 'leaflet-tooltip-' + direction);\n \t\tsetPosition(container, pos);\n \t},\n\n \t_updatePosition: function () {\n \t\tvar pos = this._map.latLngToLayerPoint(this._latlng);\n \t\tthis._setPosition(pos);\n \t},\n\n \tsetOpacity: function (opacity) {\n \t\tthis.options.opacity = opacity;\n\n \t\tif (this._container) {\n \t\t\tsetOpacity(this._container, opacity);\n \t\t}\n \t},\n\n \t_animateZoom: function (e) {\n \t\tvar pos = this._map._latLngToNewLayerPoint(this._latlng, e.zoom, e.center);\n \t\tthis._setPosition(pos);\n \t},\n\n \t_getAnchor: function () {\n \t\t// Where should we anchor the tooltip on the source layer?\n \t\treturn toPoint(this._source && this._source._getTooltipAnchor && !this.options.sticky ? this._source._getTooltipAnchor() : [0, 0]);\n \t}\n\n });\n\n // @namespace Tooltip\n // @factory L.tooltip(options?: Tooltip options, source?: Layer)\n // Instantiates a `Tooltip` object given an optional `options` object that describes its appearance and location and an optional `source` object that is used to tag the tooltip with a reference to the Layer to which it refers.\n // @alternative\n // @factory L.tooltip(latlng: LatLng, options?: Tooltip options)\n // Instantiates a `Tooltip` object given `latlng` where the tooltip will open and an optional `options` object that describes its appearance and location.\n var tooltip = function (options, source) {\n \treturn new Tooltip(options, source);\n };\n\n // @namespace Map\n // @section Methods for Layers and Controls\n Map.include({\n\n \t// @method openTooltip(tooltip: Tooltip): this\n \t// Opens the specified tooltip.\n \t// @alternative\n \t// @method openTooltip(content: String|HTMLElement, latlng: LatLng, options?: Tooltip options): this\n \t// Creates a tooltip with the specified content and options and open it.\n \topenTooltip: function (tooltip, latlng, options) {\n \t\tthis._initOverlay(Tooltip, tooltip, latlng, options)\n \t\t .openOn(this);\n\n \t\treturn this;\n \t},\n\n \t// @method closeTooltip(tooltip: Tooltip): this\n \t// Closes the tooltip given as parameter.\n \tcloseTooltip: function (tooltip) {\n \t\ttooltip.close();\n \t\treturn this;\n \t}\n\n });\n\n /*\n * @namespace Layer\n * @section Tooltip methods example\n *\n * All layers share a set of methods convenient for binding tooltips to it.\n *\n * ```js\n * var layer = L.Polygon(latlngs).bindTooltip('Hi There!').addTo(map);\n * layer.openTooltip();\n * layer.closeTooltip();\n * ```\n */\n\n // @section Tooltip methods\n Layer.include({\n\n \t// @method bindTooltip(content: String|HTMLElement|Function|Tooltip, options?: Tooltip options): this\n \t// Binds a tooltip to the layer with the passed `content` and sets up the\n \t// necessary event listeners. If a `Function` is passed it will receive\n \t// the layer as the first argument and should return a `String` or `HTMLElement`.\n \tbindTooltip: function (content, options) {\n\n \t\tif (this._tooltip && this.isTooltipOpen()) {\n \t\t\tthis.unbindTooltip();\n \t\t}\n\n \t\tthis._tooltip = this._initOverlay(Tooltip, this._tooltip, content, options);\n \t\tthis._initTooltipInteractions();\n\n \t\tif (this._tooltip.options.permanent && this._map && this._map.hasLayer(this)) {\n \t\t\tthis.openTooltip();\n \t\t}\n\n \t\treturn this;\n \t},\n\n \t// @method unbindTooltip(): this\n \t// Removes the tooltip previously bound with `bindTooltip`.\n \tunbindTooltip: function () {\n \t\tif (this._tooltip) {\n \t\t\tthis._initTooltipInteractions(true);\n \t\t\tthis.closeTooltip();\n \t\t\tthis._tooltip = null;\n \t\t}\n \t\treturn this;\n \t},\n\n \t_initTooltipInteractions: function (remove) {\n \t\tif (!remove && this._tooltipHandlersAdded) { return; }\n \t\tvar onOff = remove ? 'off' : 'on',\n \t\t events = {\n \t\t\tremove: this.closeTooltip,\n \t\t\tmove: this._moveTooltip\n \t\t };\n \t\tif (!this._tooltip.options.permanent) {\n \t\t\tevents.mouseover = this._openTooltip;\n \t\t\tevents.mouseout = this.closeTooltip;\n \t\t\tevents.click = this._openTooltip;\n \t\t\tif (this._map) {\n \t\t\t\tthis._addFocusListeners();\n \t\t\t} else {\n \t\t\t\tevents.add = this._addFocusListeners;\n \t\t\t}\n \t\t} else {\n \t\t\tevents.add = this._openTooltip;\n \t\t}\n \t\tif (this._tooltip.options.sticky) {\n \t\t\tevents.mousemove = this._moveTooltip;\n \t\t}\n \t\tthis[onOff](events);\n \t\tthis._tooltipHandlersAdded = !remove;\n \t},\n\n \t// @method openTooltip(latlng?: LatLng): this\n \t// Opens the bound tooltip at the specified `latlng` or at the default tooltip anchor if no `latlng` is passed.\n \topenTooltip: function (latlng) {\n \t\tif (this._tooltip) {\n \t\t\tif (!(this instanceof FeatureGroup)) {\n \t\t\t\tthis._tooltip._source = this;\n \t\t\t}\n \t\t\tif (this._tooltip._prepareOpen(latlng)) {\n \t\t\t\t// open the tooltip on the map\n \t\t\t\tthis._tooltip.openOn(this._map);\n\n \t\t\t\tif (this.getElement) {\n \t\t\t\t\tthis._setAriaDescribedByOnLayer(this);\n \t\t\t\t} else if (this.eachLayer) {\n \t\t\t\t\tthis.eachLayer(this._setAriaDescribedByOnLayer, this);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method closeTooltip(): this\n \t// Closes the tooltip bound to this layer if it is open.\n \tcloseTooltip: function () {\n \t\tif (this._tooltip) {\n \t\t\treturn this._tooltip.close();\n \t\t}\n \t},\n\n \t// @method toggleTooltip(): this\n \t// Opens or closes the tooltip bound to this layer depending on its current state.\n \ttoggleTooltip: function () {\n \t\tif (this._tooltip) {\n \t\t\tthis._tooltip.toggle(this);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method isTooltipOpen(): boolean\n \t// Returns `true` if the tooltip bound to this layer is currently open.\n \tisTooltipOpen: function () {\n \t\treturn this._tooltip.isOpen();\n \t},\n\n \t// @method setTooltipContent(content: String|HTMLElement|Tooltip): this\n \t// Sets the content of the tooltip bound to this layer.\n \tsetTooltipContent: function (content) {\n \t\tif (this._tooltip) {\n \t\t\tthis._tooltip.setContent(content);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method getTooltip(): Tooltip\n \t// Returns the tooltip bound to this layer.\n \tgetTooltip: function () {\n \t\treturn this._tooltip;\n \t},\n\n \t_addFocusListeners: function () {\n \t\tif (this.getElement) {\n \t\t\tthis._addFocusListenersOnLayer(this);\n \t\t} else if (this.eachLayer) {\n \t\t\tthis.eachLayer(this._addFocusListenersOnLayer, this);\n \t\t}\n \t},\n\n \t_addFocusListenersOnLayer: function (layer) {\n \t\tvar el = typeof layer.getElement === 'function' && layer.getElement();\n \t\tif (el) {\n \t\t\ton(el, 'focus', function () {\n \t\t\t\tthis._tooltip._source = layer;\n \t\t\t\tthis.openTooltip();\n \t\t\t}, this);\n \t\t\ton(el, 'blur', this.closeTooltip, this);\n \t\t}\n \t},\n\n \t_setAriaDescribedByOnLayer: function (layer) {\n \t\tvar el = typeof layer.getElement === 'function' && layer.getElement();\n \t\tif (el) {\n \t\t\tel.setAttribute('aria-describedby', this._tooltip._container.id);\n \t\t}\n \t},\n\n\n \t_openTooltip: function (e) {\n \t\tif (!this._tooltip || !this._map) {\n \t\t\treturn;\n \t\t}\n\n \t\t// If the map is moving, we will show the tooltip after it's done.\n \t\tif (this._map.dragging && this._map.dragging.moving() && !this._openOnceFlag) {\n \t\t\tthis._openOnceFlag = true;\n \t\t\tvar that = this;\n \t\t\tthis._map.once('moveend', function () {\n \t\t\t\tthat._openOnceFlag = false;\n \t\t\t\tthat._openTooltip(e);\n \t\t\t});\n \t\t\treturn;\n \t\t}\n\n \t\tthis._tooltip._source = e.layer || e.target;\n\n \t\tthis.openTooltip(this._tooltip.options.sticky ? e.latlng : undefined);\n \t},\n\n \t_moveTooltip: function (e) {\n \t\tvar latlng = e.latlng, containerPoint, layerPoint;\n \t\tif (this._tooltip.options.sticky && e.originalEvent) {\n \t\t\tcontainerPoint = this._map.mouseEventToContainerPoint(e.originalEvent);\n \t\t\tlayerPoint = this._map.containerPointToLayerPoint(containerPoint);\n \t\t\tlatlng = this._map.layerPointToLatLng(layerPoint);\n \t\t}\n \t\tthis._tooltip.setLatLng(latlng);\n \t}\n });\n\n /*\n * @class DivIcon\n * @aka L.DivIcon\n * @inherits Icon\n *\n * Represents a lightweight icon for markers that uses a simple `<div>`\n * element instead of an image. Inherits from `Icon` but ignores the `iconUrl` and shadow options.\n *\n * @example\n * ```js\n * var myIcon = L.divIcon({className: 'my-div-icon'});\n * // you can set .my-div-icon styles in CSS\n *\n * L.marker([50.505, 30.57], {icon: myIcon}).addTo(map);\n * ```\n *\n * By default, it has a 'leaflet-div-icon' CSS class and is styled as a little white square with a shadow.\n */\n\n var DivIcon = Icon.extend({\n \toptions: {\n \t\t// @section\n \t\t// @aka DivIcon options\n \t\ticonSize: [12, 12], // also can be set through CSS\n\n \t\t// iconAnchor: (Point),\n \t\t// popupAnchor: (Point),\n\n \t\t// @option html: String|HTMLElement = ''\n \t\t// Custom HTML code to put inside the div element, empty by default. Alternatively,\n \t\t// an instance of `HTMLElement`.\n \t\thtml: false,\n\n \t\t// @option bgPos: Point = [0, 0]\n \t\t// Optional relative position of the background, in pixels\n \t\tbgPos: null,\n\n \t\tclassName: 'leaflet-div-icon'\n \t},\n\n \tcreateIcon: function (oldIcon) {\n \t\tvar div = (oldIcon && oldIcon.tagName === 'DIV') ? oldIcon : document.createElement('div'),\n \t\t options = this.options;\n\n \t\tif (options.html instanceof Element) {\n \t\t\tempty(div);\n \t\t\tdiv.appendChild(options.html);\n \t\t} else {\n \t\t\tdiv.innerHTML = options.html !== false ? options.html : '';\n \t\t}\n\n \t\tif (options.bgPos) {\n \t\t\tvar bgPos = toPoint(options.bgPos);\n \t\t\tdiv.style.backgroundPosition = (-bgPos.x) + 'px ' + (-bgPos.y) + 'px';\n \t\t}\n \t\tthis._setIconStyles(div, 'icon');\n\n \t\treturn div;\n \t},\n\n \tcreateShadow: function () {\n \t\treturn null;\n \t}\n });\n\n // @factory L.divIcon(options: DivIcon options)\n // Creates a `DivIcon` instance with the given options.\n function divIcon(options) {\n \treturn new DivIcon(options);\n }\n\n Icon.Default = IconDefault;\n\n /*\n * @class GridLayer\n * @inherits Layer\n * @aka L.GridLayer\n *\n * Generic class for handling a tiled grid of HTML elements. This is the base class for all tile layers and replaces `TileLayer.Canvas`.\n * GridLayer can be extended to create a tiled grid of HTML elements like `<canvas>`, `<img>` or `<div>`. GridLayer will handle creating and animating these DOM elements for you.\n *\n *\n * @section Synchronous usage\n * @example\n *\n * To create a custom layer, extend GridLayer and implement the `createTile()` method, which will be passed a `Point` object with the `x`, `y`, and `z` (zoom level) coordinates to draw your tile.\n *\n * ```js\n * var CanvasLayer = L.GridLayer.extend({\n * createTile: function(coords){\n * // create a <canvas> element for drawing\n * var tile = L.DomUtil.create('canvas', 'leaflet-tile');\n *\n * // setup tile width and height according to the options\n * var size = this.getTileSize();\n * tile.width = size.x;\n * tile.height = size.y;\n *\n * // get a canvas context and draw something on it using coords.x, coords.y and coords.z\n * var ctx = tile.getContext('2d');\n *\n * // return the tile so it can be rendered on screen\n * return tile;\n * }\n * });\n * ```\n *\n * @section Asynchronous usage\n * @example\n *\n * Tile creation can also be asynchronous, this is useful when using a third-party drawing library. Once the tile is finished drawing it can be passed to the `done()` callback.\n *\n * ```js\n * var CanvasLayer = L.GridLayer.extend({\n * createTile: function(coords, done){\n * var error;\n *\n * // create a <canvas> element for drawing\n * var tile = L.DomUtil.create('canvas', 'leaflet-tile');\n *\n * // setup tile width and height according to the options\n * var size = this.getTileSize();\n * tile.width = size.x;\n * tile.height = size.y;\n *\n * // draw something asynchronously and pass the tile to the done() callback\n * setTimeout(function() {\n * done(error, tile);\n * }, 1000);\n *\n * return tile;\n * }\n * });\n * ```\n *\n * @section\n */\n\n\n var GridLayer = Layer.extend({\n\n \t// @section\n \t// @aka GridLayer options\n \toptions: {\n \t\t// @option tileSize: Number|Point = 256\n \t\t// Width and height of tiles in the grid. Use a number if width and height are equal, or `L.point(width, height)` otherwise.\n \t\ttileSize: 256,\n\n \t\t// @option opacity: Number = 1.0\n \t\t// Opacity of the tiles. Can be used in the `createTile()` function.\n \t\topacity: 1,\n\n \t\t// @option updateWhenIdle: Boolean = (depends)\n \t\t// Load new tiles only when panning ends.\n \t\t// `true` by default on mobile browsers, in order to avoid too many requests and keep smooth navigation.\n \t\t// `false` otherwise in order to display new tiles _during_ panning, since it is easy to pan outside the\n \t\t// [`keepBuffer`](#gridlayer-keepbuffer) option in desktop browsers.\n \t\tupdateWhenIdle: Browser.mobile,\n\n \t\t// @option updateWhenZooming: Boolean = true\n \t\t// By default, a smooth zoom animation (during a [touch zoom](#map-touchzoom) or a [`flyTo()`](#map-flyto)) will update grid layers every integer zoom level. Setting this option to `false` will update the grid layer only when the smooth animation ends.\n \t\tupdateWhenZooming: true,\n\n \t\t// @option updateInterval: Number = 200\n \t\t// Tiles will not update more than once every `updateInterval` milliseconds when panning.\n \t\tupdateInterval: 200,\n\n \t\t// @option zIndex: Number = 1\n \t\t// The explicit zIndex of the tile layer.\n \t\tzIndex: 1,\n\n \t\t// @option bounds: LatLngBounds = undefined\n \t\t// If set, tiles will only be loaded inside the set `LatLngBounds`.\n \t\tbounds: null,\n\n \t\t// @option minZoom: Number = 0\n \t\t// The minimum zoom level down to which this layer will be displayed (inclusive).\n \t\tminZoom: 0,\n\n \t\t// @option maxZoom: Number = undefined\n \t\t// The maximum zoom level up to which this layer will be displayed (inclusive).\n \t\tmaxZoom: undefined,\n\n \t\t// @option maxNativeZoom: Number = undefined\n \t\t// Maximum zoom number the tile source has available. If it is specified,\n \t\t// the tiles on all zoom levels higher than `maxNativeZoom` will be loaded\n \t\t// from `maxNativeZoom` level and auto-scaled.\n \t\tmaxNativeZoom: undefined,\n\n \t\t// @option minNativeZoom: Number = undefined\n \t\t// Minimum zoom number the tile source has available. If it is specified,\n \t\t// the tiles on all zoom levels lower than `minNativeZoom` will be loaded\n \t\t// from `minNativeZoom` level and auto-scaled.\n \t\tminNativeZoom: undefined,\n\n \t\t// @option noWrap: Boolean = false\n \t\t// Whether the layer is wrapped around the antimeridian. If `true`, the\n \t\t// GridLayer will only be displayed once at low zoom levels. Has no\n \t\t// effect when the [map CRS](#map-crs) doesn't wrap around. Can be used\n \t\t// in combination with [`bounds`](#gridlayer-bounds) to prevent requesting\n \t\t// tiles outside the CRS limits.\n \t\tnoWrap: false,\n\n \t\t// @option pane: String = 'tilePane'\n \t\t// `Map pane` where the grid layer will be added.\n \t\tpane: 'tilePane',\n\n \t\t// @option className: String = ''\n \t\t// A custom class name to assign to the tile layer. Empty by default.\n \t\tclassName: '',\n\n \t\t// @option keepBuffer: Number = 2\n \t\t// When panning the map, keep this many rows and columns of tiles before unloading them.\n \t\tkeepBuffer: 2\n \t},\n\n \tinitialize: function (options) {\n \t\tsetOptions(this, options);\n \t},\n\n \tonAdd: function () {\n \t\tthis._initContainer();\n\n \t\tthis._levels = {};\n \t\tthis._tiles = {};\n\n \t\tthis._resetView(); // implicit _update() call\n \t},\n\n \tbeforeAdd: function (map) {\n \t\tmap._addZoomLimit(this);\n \t},\n\n \tonRemove: function (map) {\n \t\tthis._removeAllTiles();\n \t\tremove(this._container);\n \t\tmap._removeZoomLimit(this);\n \t\tthis._container = null;\n \t\tthis._tileZoom = undefined;\n \t},\n\n \t// @method bringToFront: this\n \t// Brings the tile layer to the top of all tile layers.\n \tbringToFront: function () {\n \t\tif (this._map) {\n \t\t\ttoFront(this._container);\n \t\t\tthis._setAutoZIndex(Math.max);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method bringToBack: this\n \t// Brings the tile layer to the bottom of all tile layers.\n \tbringToBack: function () {\n \t\tif (this._map) {\n \t\t\ttoBack(this._container);\n \t\t\tthis._setAutoZIndex(Math.min);\n \t\t}\n \t\treturn this;\n \t},\n\n \t// @method getContainer: HTMLElement\n \t// Returns the HTML element that contains the tiles for this layer.\n \tgetContainer: function () {\n \t\treturn this._container;\n \t},\n\n \t// @method setOpacity(opacity: Number): this\n \t// Changes the [opacity](#gridlayer-opacity) of the grid layer.\n \tsetOpacity: function (opacity) {\n \t\tthis.options.opacity = opacity;\n \t\tthis._updateOpacity();\n \t\treturn this;\n \t},\n\n \t// @method setZIndex(zIndex: Number): this\n \t// Changes the [zIndex](#gridlayer-zindex) of the grid layer.\n \tsetZIndex: function (zIndex) {\n \t\tthis.options.zIndex = zIndex;\n \t\tthis._updateZIndex();\n\n \t\treturn this;\n \t},\n\n \t// @method isLoading: Boolean\n \t// Returns `true` if any tile in the grid layer has not finished loading.\n \tisLoading: function () {\n \t\treturn this._loading;\n \t},\n\n \t// @method redraw: this\n \t// Causes the layer to clear all the tiles and request them again.\n \tredraw: function () {\n \t\tif (this._map) {\n \t\t\tthis._removeAllTiles();\n \t\t\tvar tileZoom = this._clampZoom(this._map.getZoom());\n \t\t\tif (tileZoom !== this._tileZoom) {\n \t\t\t\tthis._tileZoom = tileZoom;\n \t\t\t\tthis._updateLevels();\n \t\t\t}\n \t\t\tthis._update();\n \t\t}\n \t\treturn this;\n \t},\n\n \tgetEvents: function () {\n \t\tvar events = {\n \t\t\tviewprereset: this._invalidateAll,\n \t\t\tviewreset: this._resetView,\n \t\t\tzoom: this._resetView,\n \t\t\tmoveend: this._onMoveEnd\n \t\t};\n\n \t\tif (!this.options.updateWhenIdle) {\n \t\t\t// update tiles on move, but not more often than once per given interval\n \t\t\tif (!this._onMove) {\n \t\t\t\tthis._onMove = throttle(this._onMoveEnd, this.options.updateInterval, this);\n \t\t\t}\n\n \t\t\tevents.move = this._onMove;\n \t\t}\n\n \t\tif (this._zoomAnimated) {\n \t\t\tevents.zoomanim = this._animateZoom;\n \t\t}\n\n \t\treturn events;\n \t},\n\n \t// @section Extension methods\n \t// Layers extending `GridLayer` shall reimplement the following method.\n \t// @method createTile(coords: Object, done?: Function): HTMLElement\n \t// Called only internally, must be overridden by classes extending `GridLayer`.\n \t// Returns the `HTMLElement` corresponding to the given `coords`. If the `done` callback\n \t// is specified, it must be called when the tile has finished loading and drawing.\n \tcreateTile: function () {\n \t\treturn document.createElement('div');\n \t},\n\n \t// @section\n \t// @method getTileSize: Point\n \t// Normalizes the [tileSize option](#gridlayer-tilesize) into a point. Used by the `createTile()` method.\n \tgetTileSize: function () {\n \t\tvar s = this.options.tileSize;\n \t\treturn s instanceof Point ? s : new Point(s, s);\n \t},\n\n \t_updateZIndex: function () {\n \t\tif (this._container && this.options.zIndex !== undefined && this.options.zIndex !== null) {\n \t\t\tthis._container.style.zIndex = this.options.zIndex;\n \t\t}\n \t},\n\n \t_setAutoZIndex: function (compare) {\n \t\t// go through all other layers of the same pane, set zIndex to max + 1 (front) or min - 1 (back)\n\n \t\tvar layers = this.getPane().children,\n \t\t edgeZIndex = -compare(-Infinity, Infinity); // -Infinity for max, Infinity for min\n\n \t\tfor (var i = 0, len = layers.length, zIndex; i < len; i++) {\n\n \t\t\tzIndex = layers[i].style.zIndex;\n\n \t\t\tif (layers[i] !== this._container && zIndex) {\n \t\t\t\tedgeZIndex = compare(edgeZIndex, +zIndex);\n \t\t\t}\n \t\t}\n\n \t\tif (isFinite(edgeZIndex)) {\n \t\t\tthis.options.zIndex = edgeZIndex + compare(-1, 1);\n \t\t\tthis._updateZIndex();\n \t\t}\n \t},\n\n \t_updateOpacity: function () {\n \t\tif (!this._map) { return; }\n\n \t\t// IE doesn't inherit filter opacity properly, so we're forced to set it on tiles\n \t\tif (Browser.ielt9) { return; }\n\n \t\tsetOpacity(this._container, this.options.opacity);\n\n \t\tvar now = +new Date(),\n \t\t nextFrame = false,\n \t\t willPrune = false;\n\n \t\tfor (var key in this._tiles) {\n \t\t\tvar tile = this._tiles[key];\n \t\t\tif (!tile.current || !tile.loaded) { continue; }\n\n \t\t\tvar fade = Math.min(1, (now - tile.loaded) / 200);\n\n \t\t\tsetOpacity(tile.el, fade);\n \t\t\tif (fade < 1) {\n \t\t\t\tnextFrame = true;\n \t\t\t} else {\n \t\t\t\tif (tile.active) {\n \t\t\t\t\twillPrune = true;\n \t\t\t\t} else {\n \t\t\t\t\tthis._onOpaqueTile(tile);\n \t\t\t\t}\n \t\t\t\ttile.active = true;\n \t\t\t}\n \t\t}\n\n \t\tif (willPrune && !this._noPrune) { this._pruneTiles(); }\n\n \t\tif (nextFrame) {\n \t\t\tcancelAnimFrame(this._fadeFrame);\n \t\t\tthis._fadeFrame = requestAnimFrame(this._updateOpacity, this);\n \t\t}\n \t},\n\n \t_onOpaqueTile: falseFn,\n\n \t_initContainer: function () {\n \t\tif (this._container) { return; }\n\n \t\tthis._container = create$1('div', 'leaflet-layer ' + (this.options.className || ''));\n \t\tthis._updateZIndex();\n\n \t\tif (this.options.opacity < 1) {\n \t\t\tthis._updateOpacity();\n \t\t}\n\n \t\tthis.getPane().appendChild(this._container);\n \t},\n\n \t_updateLevels: function () {\n\n \t\tvar zoom = this._tileZoom,\n \t\t maxZoom = this.options.maxZoom;\n\n \t\tif (zoom === undefined) { return undefined; }\n\n \t\tfor (var z in this._levels) {\n \t\t\tz = Number(z);\n \t\t\tif (this._levels[z].el.children.length || z === zoom) {\n \t\t\t\tthis._levels[z].el.style.zIndex = maxZoom - Math.abs(zoom - z);\n \t\t\t\tthis._onUpdateLevel(z);\n \t\t\t} else {\n \t\t\t\tremove(this._levels[z].el);\n \t\t\t\tthis._removeTilesAtZoom(z);\n \t\t\t\tthis._onRemoveLevel(z);\n \t\t\t\tdelete this._levels[z];\n \t\t\t}\n \t\t}\n\n \t\tvar level = this._levels[zoom],\n \t\t map = this._map;\n\n \t\tif (!level) {\n \t\t\tlevel = this._levels[zoom] = {};\n\n \t\t\tlevel.el = create$1('div', 'leaflet-tile-container leaflet-zoom-animated', this._container);\n \t\t\tlevel.el.style.zIndex = maxZoom;\n\n \t\t\tlevel.origin = map.project(map.unproject(map.getPixelOrigin()), zoom).round();\n \t\t\tlevel.zoom = zoom;\n\n \t\t\tthis._setZoomTransform(level, map.getCenter(), map.getZoom());\n\n \t\t\t// force the browser to consider the newly added element for transition\n \t\t\tfalseFn(level.el.offsetWidth);\n\n \t\t\tthis._onCreateLevel(level);\n \t\t}\n\n \t\tthis._level = level;\n\n \t\treturn level;\n \t},\n\n \t_onUpdateLevel: falseFn,\n\n \t_onRemoveLevel: falseFn,\n\n \t_onCreateLevel: falseFn,\n\n \t_pruneTiles: function () {\n \t\tif (!this._map) {\n \t\t\treturn;\n \t\t}\n\n \t\tvar key, tile;\n\n \t\tvar zoom = this._map.getZoom();\n \t\tif (zoom > this.options.maxZoom ||\n \t\t\tzoom < this.options.minZoom) {\n \t\t\tthis._removeAllTiles();\n \t\t\treturn;\n \t\t}\n\n \t\tfor (key in this._tiles) {\n \t\t\ttile = this._tiles[key];\n \t\t\ttile.retain = tile.current;\n \t\t}\n\n \t\tfor (key in this._tiles) {\n \t\t\ttile = this._tiles[key];\n \t\t\tif (tile.current && !tile.active) {\n \t\t\t\tvar coords = tile.coords;\n \t\t\t\tif (!this._retainParent(coords.x, coords.y, coords.z, coords.z - 5)) {\n \t\t\t\t\tthis._retainChildren(coords.x, coords.y, coords.z, coords.z + 2);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\tfor (key in this._tiles) {\n \t\t\tif (!this._tiles[key].retain) {\n \t\t\t\tthis._removeTile(key);\n \t\t\t}\n \t\t}\n \t},\n\n \t_removeTilesAtZoom: function (zoom) {\n \t\tfor (var key in this._tiles) {\n \t\t\tif (this._tiles[key].coords.z !== zoom) {\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\tthis._removeTile(key);\n \t\t}\n \t},\n\n \t_removeAllTiles: function () {\n \t\tfor (var key in this._tiles) {\n \t\t\tthis._removeTile(key);\n \t\t}\n \t},\n\n \t_invalidateAll: function () {\n \t\tfor (var z in this._levels) {\n \t\t\tremove(this._levels[z].el);\n \t\t\tthis._onRemoveLevel(Number(z));\n \t\t\tdelete this._levels[z];\n \t\t}\n \t\tthis._removeAllTiles();\n\n \t\tthis._tileZoom = undefined;\n \t},\n\n \t_retainParent: function (x, y, z, minZoom) {\n \t\tvar x2 = Math.floor(x / 2),\n \t\t y2 = Math.floor(y / 2),\n \t\t z2 = z - 1,\n \t\t coords2 = new Point(+x2, +y2);\n \t\tcoords2.z = +z2;\n\n \t\tvar key = this._tileCoordsToKey(coords2),\n \t\t tile = this._tiles[key];\n\n \t\tif (tile && tile.active) {\n \t\t\ttile.retain = true;\n \t\t\treturn true;\n\n \t\t} else if (tile && tile.loaded) {\n \t\t\ttile.retain = true;\n \t\t}\n\n \t\tif (z2 > minZoom) {\n \t\t\treturn this._retainParent(x2, y2, z2, minZoom);\n \t\t}\n\n \t\treturn false;\n \t},\n\n \t_retainChildren: function (x, y, z, maxZoom) {\n\n \t\tfor (var i = 2 * x; i < 2 * x + 2; i++) {\n \t\t\tfor (var j = 2 * y; j < 2 * y + 2; j++) {\n\n \t\t\t\tvar coords = new Point(i, j);\n \t\t\t\tcoords.z = z + 1;\n\n \t\t\t\tvar key = this._tileCoordsToKey(coords),\n \t\t\t\t tile = this._tiles[key];\n\n \t\t\t\tif (tile && tile.active) {\n \t\t\t\t\ttile.retain = true;\n \t\t\t\t\tcontinue;\n\n \t\t\t\t} else if (tile && tile.loaded) {\n \t\t\t\t\ttile.retain = true;\n \t\t\t\t}\n\n \t\t\t\tif (z + 1 < maxZoom) {\n \t\t\t\t\tthis._retainChildren(i, j, z + 1, maxZoom);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t},\n\n \t_resetView: function (e) {\n \t\tvar animating = e && (e.pinch || e.flyTo);\n \t\tthis._setView(this._map.getCenter(), this._map.getZoom(), animating, animating);\n \t},\n\n \t_animateZoom: function (e) {\n \t\tthis._setView(e.center, e.zoom, true, e.noUpdate);\n \t},\n\n \t_clampZoom: function (zoom) {\n \t\tvar options = this.options;\n\n \t\tif (undefined !== options.minNativeZoom && zoom < options.minNativeZoom) {\n \t\t\treturn options.minNativeZoom;\n \t\t}\n\n \t\tif (undefined !== options.maxNativeZoom && options.maxNativeZoom < zoom) {\n \t\t\treturn options.maxNativeZoom;\n \t\t}\n\n \t\treturn zoom;\n \t},\n\n \t_setView: function (center, zoom, noPrune, noUpdate) {\n \t\tvar tileZoom = Math.round(zoom);\n \t\tif ((this.options.maxZoom !== undefined && tileZoom > this.options.maxZoom) ||\n \t\t (this.options.minZoom !== undefined && tileZoom < this.options.minZoom)) {\n \t\t\ttileZoom = undefined;\n \t\t} else {\n \t\t\ttileZoom = this._clampZoom(tileZoom);\n \t\t}\n\n \t\tvar tileZoomChanged = this.options.updateWhenZooming && (tileZoom !== this._tileZoom);\n\n \t\tif (!noUpdate || tileZoomChanged) {\n\n \t\t\tthis._tileZoom = tileZoom;\n\n \t\t\tif (this._abortLoading) {\n \t\t\t\tthis._abortLoading();\n \t\t\t}\n\n \t\t\tthis._updateLevels();\n \t\t\tthis._resetGrid();\n\n \t\t\tif (tileZoom !== undefined) {\n \t\t\t\tthis._update(center);\n \t\t\t}\n\n \t\t\tif (!noPrune) {\n \t\t\t\tthis._pruneTiles();\n \t\t\t}\n\n \t\t\t// Flag to prevent _updateOpacity from pruning tiles during\n \t\t\t// a zoom anim or a pinch gesture\n \t\t\tthis._noPrune = !!noPrune;\n \t\t}\n\n \t\tthis._setZoomTransforms(center, zoom);\n \t},\n\n \t_setZoomTransforms: function (center, zoom) {\n \t\tfor (var i in this._levels) {\n \t\t\tthis._setZoomTransform(this._levels[i], center, zoom);\n \t\t}\n \t},\n\n \t_setZoomTransform: function (level, center, zoom) {\n \t\tvar scale = this._map.getZoomScale(zoom, level.zoom),\n \t\t translate = level.origin.multiplyBy(scale)\n \t\t .subtract(this._map._getNewPixelOrigin(center, zoom)).round();\n\n \t\tif (Browser.any3d) {\n \t\t\tsetTransform(level.el, translate, scale);\n \t\t} else {\n \t\t\tsetPosition(level.el, translate);\n \t\t}\n \t},\n\n \t_resetGrid: function () {\n \t\tvar map = this._map,\n \t\t crs = map.options.crs,\n \t\t tileSize = this._tileSize = this.getTileSize(),\n \t\t tileZoom = this._tileZoom;\n\n \t\tvar bounds = this._map.getPixelWorldBounds(this._tileZoom);\n \t\tif (bounds) {\n \t\t\tthis._globalTileRange = this._pxBoundsToTileRange(bounds);\n \t\t}\n\n \t\tthis._wrapX = crs.wrapLng && !this.options.noWrap && [\n \t\t\tMath.floor(map.project([0, crs.wrapLng[0]], tileZoom).x / tileSize.x),\n \t\t\tMath.ceil(map.project([0, crs.wrapLng[1]], tileZoom).x / tileSize.y)\n \t\t];\n \t\tthis._wrapY = crs.wrapLat && !this.options.noWrap && [\n \t\t\tMath.floor(map.project([crs.wrapLat[0], 0], tileZoom).y / tileSize.x),\n \t\t\tMath.ceil(map.project([crs.wrapLat[1], 0], tileZoom).y / tileSize.y)\n \t\t];\n \t},\n\n \t_onMoveEnd: function () {\n \t\tif (!this._map || this._map._animatingZoom) { return; }\n\n \t\tthis._update();\n \t},\n\n \t_getTiledPixelBounds: function (center) {\n \t\tvar map = this._map,\n \t\t mapZoom = map._animatingZoom ? Math.max(map._animateToZoom, map.getZoom()) : map.getZoom(),\n \t\t scale = map.getZoomScale(mapZoom, this._tileZoom),\n \t\t pixelCenter = map.project(center, this._tileZoom).floor(),\n \t\t halfSize = map.getSize().divideBy(scale * 2);\n\n \t\treturn new Bounds(pixelCenter.subtract(halfSize), pixelCenter.add(halfSize));\n \t},\n\n \t// Private method to load tiles in the grid's active zoom level according to map bounds\n \t_update: function (center) {\n \t\tvar map = this._map;\n \t\tif (!map) { return; }\n \t\tvar zoom = this._clampZoom(map.getZoom());\n\n \t\tif (center === undefined) { center = map.getCenter(); }\n \t\tif (this._tileZoom === undefined) { return; }\t// if out of minzoom/maxzoom\n\n \t\tvar pixelBounds = this._getTiledPixelBounds(center),\n \t\t tileRange = this._pxBoundsToTileRange(pixelBounds),\n \t\t tileCenter = tileRange.getCenter(),\n \t\t queue = [],\n \t\t margin = this.options.keepBuffer,\n \t\t noPruneRange = new Bounds(tileRange.getBottomLeft().subtract([margin, -margin]),\n \t\t tileRange.getTopRight().add([margin, -margin]));\n\n \t\t// Sanity check: panic if the tile range contains Infinity somewhere.\n \t\tif (!(isFinite(tileRange.min.x) &&\n \t\t isFinite(tileRange.min.y) &&\n \t\t isFinite(tileRange.max.x) &&\n \t\t isFinite(tileRange.max.y))) { throw new Error('Attempted to load an infinite number of tiles'); }\n\n \t\tfor (var key in this._tiles) {\n \t\t\tvar c = this._tiles[key].coords;\n \t\t\tif (c.z !== this._tileZoom || !noPruneRange.contains(new Point(c.x, c.y))) {\n \t\t\t\tthis._tiles[key].current = false;\n \t\t\t}\n \t\t}\n\n \t\t// _update just loads more tiles. If the tile zoom level differs too much\n \t\t// from the map's, let _setView reset levels and prune old tiles.\n \t\tif (Math.abs(zoom - this._tileZoom) > 1) { this._setView(center, zoom); return; }\n\n \t\t// create a queue of coordinates to load tiles from\n \t\tfor (var j = tileRange.min.y; j <= tileRange.max.y; j++) {\n \t\t\tfor (var i = tileRange.min.x; i <= tileRange.max.x; i++) {\n \t\t\t\tvar coords = new Point(i, j);\n \t\t\t\tcoords.z = this._tileZoom;\n\n \t\t\t\tif (!this._isValidTile(coords)) { continue; }\n\n \t\t\t\tvar tile = this._tiles[this._tileCoordsToKey(coords)];\n \t\t\t\tif (tile) {\n \t\t\t\t\ttile.current = true;\n \t\t\t\t} else {\n \t\t\t\t\tqueue.push(coords);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// sort tile queue to load tiles in order of their distance to center\n \t\tqueue.sort(function (a, b) {\n \t\t\treturn a.distanceTo(tileCenter) - b.distanceTo(tileCenter);\n \t\t});\n\n \t\tif (queue.length !== 0) {\n \t\t\t// if it's the first batch of tiles to load\n \t\t\tif (!this._loading) {\n \t\t\t\tthis._loading = true;\n \t\t\t\t// @event loading: Event\n \t\t\t\t// Fired when the grid layer starts loading tiles.\n \t\t\t\tthis.fire('loading');\n \t\t\t}\n\n \t\t\t// create DOM fragment to append tiles in one batch\n \t\t\tvar fragment = document.createDocumentFragment();\n\n \t\t\tfor (i = 0; i < queue.length; i++) {\n \t\t\t\tthis._addTile(queue[i], fragment);\n \t\t\t}\n\n \t\t\tthis._level.el.appendChild(fragment);\n \t\t}\n \t},\n\n \t_isValidTile: function (coords) {\n \t\tvar crs = this._map.options.crs;\n\n \t\tif (!crs.infinite) {\n \t\t\t// don't load tile if it's out of bounds and not wrapped\n \t\t\tvar bounds = this._globalTileRange;\n \t\t\tif ((!crs.wrapLng && (coords.x < bounds.min.x || coords.x > bounds.max.x)) ||\n \t\t\t (!crs.wrapLat && (coords.y < bounds.min.y || coords.y > bounds.max.y))) { return false; }\n \t\t}\n\n \t\tif (!this.options.bounds) { return true; }\n\n \t\t// don't load tile if it doesn't intersect the bounds in options\n \t\tvar tileBounds = this._tileCoordsToBounds(coords);\n \t\treturn toLatLngBounds(this.options.bounds).overlaps(tileBounds);\n \t},\n\n \t_keyToBounds: function (key) {\n \t\treturn this._tileCoordsToBounds(this._keyToTileCoords(key));\n \t},\n\n \t_tileCoordsToNwSe: function (coords) {\n \t\tvar map = this._map,\n \t\t tileSize = this.getTileSize(),\n \t\t nwPoint = coords.scaleBy(tileSize),\n \t\t sePoint = nwPoint.add(tileSize),\n \t\t nw = map.unproject(nwPoint, coords.z),\n \t\t se = map.unproject(sePoint, coords.z);\n \t\treturn [nw, se];\n \t},\n\n \t// converts tile coordinates to its geographical bounds\n \t_tileCoordsToBounds: function (coords) {\n \t\tvar bp = this._tileCoordsToNwSe(coords),\n \t\t bounds = new LatLngBounds(bp[0], bp[1]);\n\n \t\tif (!this.options.noWrap) {\n \t\t\tbounds = this._map.wrapLatLngBounds(bounds);\n \t\t}\n \t\treturn bounds;\n \t},\n \t// converts tile coordinates to key for the tile cache\n \t_tileCoordsToKey: function (coords) {\n \t\treturn coords.x + ':' + coords.y + ':' + coords.z;\n \t},\n\n \t// converts tile cache key to coordinates\n \t_keyToTileCoords: function (key) {\n \t\tvar k = key.split(':'),\n \t\t coords = new Point(+k[0], +k[1]);\n \t\tcoords.z = +k[2];\n \t\treturn coords;\n \t},\n\n \t_removeTile: function (key) {\n \t\tvar tile = this._tiles[key];\n \t\tif (!tile) { return; }\n\n \t\tremove(tile.el);\n\n \t\tdelete this._tiles[key];\n\n \t\t// @event tileunload: TileEvent\n \t\t// Fired when a tile is removed (e.g. when a tile goes off the screen).\n \t\tthis.fire('tileunload', {\n \t\t\ttile: tile.el,\n \t\t\tcoords: this._keyToTileCoords(key)\n \t\t});\n \t},\n\n \t_initTile: function (tile) {\n \t\taddClass(tile, 'leaflet-tile');\n\n \t\tvar tileSize = this.getTileSize();\n \t\ttile.style.width = tileSize.x + 'px';\n \t\ttile.style.height = tileSize.y + 'px';\n\n \t\ttile.onselectstart = falseFn;\n \t\ttile.onmousemove = falseFn;\n\n \t\t// update opacity on tiles in IE7-8 because of filter inheritance problems\n \t\tif (Browser.ielt9 && this.options.opacity < 1) {\n \t\t\tsetOpacity(tile, this.options.opacity);\n \t\t}\n \t},\n\n \t_addTile: function (coords, container) {\n \t\tvar tilePos = this._getTilePos(coords),\n \t\t key = this._tileCoordsToKey(coords);\n\n \t\tvar tile = this.createTile(this._wrapCoords(coords), bind(this._tileReady, this, coords));\n\n \t\tthis._initTile(tile);\n\n \t\t// if createTile is defined with a second argument (\"done\" callback),\n \t\t// we know that tile is async and will be ready later; otherwise\n \t\tif (this.createTile.length < 2) {\n \t\t\t// mark tile as ready, but delay one frame for opacity animation to happen\n \t\t\trequestAnimFrame(bind(this._tileReady, this, coords, null, tile));\n \t\t}\n\n \t\tsetPosition(tile, tilePos);\n\n \t\t// save tile in cache\n \t\tthis._tiles[key] = {\n \t\t\tel: tile,\n \t\t\tcoords: coords,\n \t\t\tcurrent: true\n \t\t};\n\n \t\tcontainer.appendChild(tile);\n \t\t// @event tileloadstart: TileEvent\n \t\t// Fired when a tile is requested and starts loading.\n \t\tthis.fire('tileloadstart', {\n \t\t\ttile: tile,\n \t\t\tcoords: coords\n \t\t});\n \t},\n\n \t_tileReady: function (coords, err, tile) {\n \t\tif (err) {\n \t\t\t// @event tileerror: TileErrorEvent\n \t\t\t// Fired when there is an error loading a tile.\n \t\t\tthis.fire('tileerror', {\n \t\t\t\terror: err,\n \t\t\t\ttile: tile,\n \t\t\t\tcoords: coords\n \t\t\t});\n \t\t}\n\n \t\tvar key = this._tileCoordsToKey(coords);\n\n \t\ttile = this._tiles[key];\n \t\tif (!tile) { return; }\n\n \t\ttile.loaded = +new Date();\n \t\tif (this._map._fadeAnimated) {\n \t\t\tsetOpacity(tile.el, 0);\n \t\t\tcancelAnimFrame(this._fadeFrame);\n \t\t\tthis._fadeFrame = requestAnimFrame(this._updateOpacity, this);\n \t\t} else {\n \t\t\ttile.active = true;\n \t\t\tthis._pruneTiles();\n \t\t}\n\n \t\tif (!err) {\n \t\t\taddClass(tile.el, 'leaflet-tile-loaded');\n\n \t\t\t// @event tileload: TileEvent\n \t\t\t// Fired when a tile loads.\n \t\t\tthis.fire('tileload', {\n \t\t\t\ttile: tile.el,\n \t\t\t\tcoords: coords\n \t\t\t});\n \t\t}\n\n \t\tif (this._noTilesToLoad()) {\n \t\t\tthis._loading = false;\n \t\t\t// @event load: Event\n \t\t\t// Fired when the grid layer loaded all visible tiles.\n \t\t\tthis.fire('load');\n\n \t\t\tif (Browser.ielt9 || !this._map._fadeAnimated) {\n \t\t\t\trequestAnimFrame(this._pruneTiles, this);\n \t\t\t} else {\n \t\t\t\t// Wait a bit more than 0.2 secs (the duration of the tile fade-in)\n \t\t\t\t// to trigger a pruning.\n \t\t\t\tsetTimeout(bind(this._pruneTiles, this), 250);\n \t\t\t}\n \t\t}\n \t},\n\n \t_getTilePos: function (coords) {\n \t\treturn coords.scaleBy(this.getTileSize()).subtract(this._level.origin);\n \t},\n\n \t_wrapCoords: function (coords) {\n \t\tvar newCoords = new Point(\n \t\t\tthis._wrapX ? wrapNum(coords.x, this._wrapX) : coords.x,\n \t\t\tthis._wrapY ? wrapNum(coords.y, this._wrapY) : coords.y);\n \t\tnewCoords.z = coords.z;\n \t\treturn newCoords;\n \t},\n\n \t_pxBoundsToTileRange: function (bounds) {\n \t\tvar tileSize = this.getTileSize();\n \t\treturn new Bounds(\n \t\t\tbounds.min.unscaleBy(tileSize).floor(),\n \t\t\tbounds.max.unscaleBy(tileSize).ceil().subtract([1, 1]));\n \t},\n\n \t_noTilesToLoad: function () {\n \t\tfor (var key in this._tiles) {\n \t\t\tif (!this._tiles[key].loaded) { return false; }\n \t\t}\n \t\treturn true;\n \t}\n });\n\n // @factory L.gridLayer(options?: GridLayer options)\n // Creates a new instance of GridLayer with the supplied options.\n function gridLayer(options) {\n \treturn new GridLayer(options);\n }\n\n /*\r\n * @class TileLayer\r\n * @inherits GridLayer\r\n * @aka L.TileLayer\r\n * Used to load and display tile layers on the map. Note that most tile servers require attribution, which you can set under `Layer`. Extends `GridLayer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png?{foo}', {foo: 'bar', attribution: '&copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'}).addTo(map);\n * ```\r\n *\r\n * @section URL template\r\n * @example\r\n *\r\n * A string of the following form:\r\n *\r\n * ```\r\n * 'https://{s}.somedomain.com/blabla/{z}/{x}/{y}{r}.png'\r\n * ```\r\n *\r\n * `{s}` means one of the available subdomains (used sequentially to help with browser parallel requests per domain limitation; subdomain values are specified in options; `a`, `b` or `c` by default, can be omitted), `{z}` — zoom level, `{x}` and `{y}` — tile coordinates. `{r}` can be used to add \"&commat;2x\" to the URL to load retina tiles.\r\n *\r\n * You can use custom keys in the template, which will be [evaluated](#util-template) from TileLayer options, like this:\r\n *\r\n * ```\r\n * L.tileLayer('https://{s}.somedomain.com/{foo}/{z}/{x}/{y}.png', {foo: 'bar'});\r\n * ```\r\n */\r\n\r\n\r\n var TileLayer = GridLayer.extend({\r\n\r\n \t// @section\r\n \t// @aka TileLayer options\r\n \toptions: {\r\n \t\t// @option minZoom: Number = 0\r\n \t\t// The minimum zoom level down to which this layer will be displayed (inclusive).\r\n \t\tminZoom: 0,\r\n\r\n \t\t// @option maxZoom: Number = 18\r\n \t\t// The maximum zoom level up to which this layer will be displayed (inclusive).\r\n \t\tmaxZoom: 18,\r\n\r\n \t\t// @option subdomains: String|String[] = 'abc'\r\n \t\t// Subdomains of the tile service. Can be passed in the form of one string (where each letter is a subdomain name) or an array of strings.\r\n \t\tsubdomains: 'abc',\r\n\r\n \t\t// @option errorTileUrl: String = ''\r\n \t\t// URL to the tile image to show in place of the tile that failed to load.\r\n \t\terrorTileUrl: '',\r\n\r\n \t\t// @option zoomOffset: Number = 0\r\n \t\t// The zoom number used in tile URLs will be offset with this value.\r\n \t\tzoomOffset: 0,\r\n\r\n \t\t// @option tms: Boolean = false\r\n \t\t// If `true`, inverses Y axis numbering for tiles (turn this on for [TMS](https://en.wikipedia.org/wiki/Tile_Map_Service) services).\r\n \t\ttms: false,\r\n\r\n \t\t// @option zoomReverse: Boolean = false\r\n \t\t// If set to true, the zoom number used in tile URLs will be reversed (`maxZoom - zoom` instead of `zoom`)\r\n \t\tzoomReverse: false,\r\n\r\n \t\t// @option detectRetina: Boolean = false\r\n \t\t// If `true` and user is on a retina display, it will request four tiles of half the specified size and a bigger zoom level in place of one to utilize the high resolution.\r\n \t\tdetectRetina: false,\r\n\r\n \t\t// @option crossOrigin: Boolean|String = false\r\n \t\t// Whether the crossOrigin attribute will be added to the tiles.\r\n \t\t// If a String is provided, all tiles will have their crossOrigin attribute set to the String provided. This is needed if you want to access tile pixel data.\r\n \t\t// Refer to [CORS Settings](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) for valid String values.\r\n \t\tcrossOrigin: false,\r\n\r\n \t\t// @option referrerPolicy: Boolean|String = false\r\n \t\t// Whether the referrerPolicy attribute will be added to the tiles.\r\n \t\t// If a String is provided, all tiles will have their referrerPolicy attribute set to the String provided.\r\n \t\t// This may be needed if your map's rendering context has a strict default but your tile provider expects a valid referrer\r\n \t\t// (e.g. to validate an API token).\r\n \t\t// Refer to [HTMLImageElement.referrerPolicy](https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/referrerPolicy) for valid String values.\r\n \t\treferrerPolicy: false\r\n \t},\r\n\r\n \tinitialize: function (url, options) {\r\n\r\n \t\tthis._url = url;\r\n\r\n \t\toptions = setOptions(this, options);\r\n\r\n \t\t// detecting retina displays, adjusting tileSize and zoom levels\r\n \t\tif (options.detectRetina && Browser.retina && options.maxZoom > 0) {\r\n\r\n \t\t\toptions.tileSize = Math.floor(options.tileSize / 2);\r\n\r\n \t\t\tif (!options.zoomReverse) {\r\n \t\t\t\toptions.zoomOffset++;\r\n \t\t\t\toptions.maxZoom = Math.max(options.minZoom, options.maxZoom - 1);\r\n \t\t\t} else {\r\n \t\t\t\toptions.zoomOffset--;\r\n \t\t\t\toptions.minZoom = Math.min(options.maxZoom, options.minZoom + 1);\r\n \t\t\t}\r\n\r\n \t\t\toptions.minZoom = Math.max(0, options.minZoom);\r\n \t\t} else if (!options.zoomReverse) {\r\n \t\t\t// make sure maxZoom is gte minZoom\r\n \t\t\toptions.maxZoom = Math.max(options.minZoom, options.maxZoom);\r\n \t\t} else {\r\n \t\t\t// make sure minZoom is lte maxZoom\r\n \t\t\toptions.minZoom = Math.min(options.maxZoom, options.minZoom);\r\n \t\t}\r\n\r\n \t\tif (typeof options.subdomains === 'string') {\r\n \t\t\toptions.subdomains = options.subdomains.split('');\r\n \t\t}\r\n\r\n \t\tthis.on('tileunload', this._onTileRemove);\r\n \t},\r\n\r\n \t// @method setUrl(url: String, noRedraw?: Boolean): this\r\n \t// Updates the layer's URL template and redraws it (unless `noRedraw` is set to `true`).\r\n \t// If the URL does not change, the layer will not be redrawn unless\r\n \t// the noRedraw parameter is set to false.\r\n \tsetUrl: function (url, noRedraw) {\r\n \t\tif (this._url === url && noRedraw === undefined) {\r\n \t\t\tnoRedraw = true;\r\n \t\t}\r\n\r\n \t\tthis._url = url;\r\n\r\n \t\tif (!noRedraw) {\r\n \t\t\tthis.redraw();\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method createTile(coords: Object, done?: Function): HTMLElement\r\n \t// Called only internally, overrides GridLayer's [`createTile()`](#gridlayer-createtile)\r\n \t// to return an `<img>` HTML element with the appropriate image URL given `coords`. The `done`\r\n \t// callback is called when the tile has been loaded.\r\n \tcreateTile: function (coords, done) {\r\n \t\tvar tile = document.createElement('img');\r\n\r\n \t\ton(tile, 'load', bind(this._tileOnLoad, this, done, tile));\r\n \t\ton(tile, 'error', bind(this._tileOnError, this, done, tile));\r\n\r\n \t\tif (this.options.crossOrigin || this.options.crossOrigin === '') {\r\n \t\t\ttile.crossOrigin = this.options.crossOrigin === true ? '' : this.options.crossOrigin;\r\n \t\t}\r\n\r\n \t\t// for this new option we follow the documented behavior\r\n \t\t// more closely by only setting the property when string\r\n \t\tif (typeof this.options.referrerPolicy === 'string') {\r\n \t\t\ttile.referrerPolicy = this.options.referrerPolicy;\r\n \t\t}\r\n\r\n \t\t// The alt attribute is set to the empty string,\r\n \t\t// allowing screen readers to ignore the decorative image tiles.\r\n \t\t// https://www.w3.org/WAI/tutorials/images/decorative/\r\n \t\t// https://www.w3.org/TR/html-aria/#el-img-empty-alt\r\n \t\ttile.alt = '';\r\n\r\n \t\ttile.src = this.getTileUrl(coords);\r\n\r\n \t\treturn tile;\r\n \t},\r\n\r\n \t// @section Extension methods\r\n \t// @uninheritable\r\n \t// Layers extending `TileLayer` might reimplement the following method.\r\n \t// @method getTileUrl(coords: Object): String\r\n \t// Called only internally, returns the URL for a tile given its coordinates.\r\n \t// Classes extending `TileLayer` can override this function to provide custom tile URL naming schemes.\r\n \tgetTileUrl: function (coords) {\r\n \t\tvar data = {\r\n \t\t\tr: Browser.retina ? '@2x' : '',\r\n \t\t\ts: this._getSubdomain(coords),\r\n \t\t\tx: coords.x,\r\n \t\t\ty: coords.y,\r\n \t\t\tz: this._getZoomForUrl()\r\n \t\t};\r\n \t\tif (this._map && !this._map.options.crs.infinite) {\r\n \t\t\tvar invertedY = this._globalTileRange.max.y - coords.y;\r\n \t\t\tif (this.options.tms) {\r\n \t\t\t\tdata['y'] = invertedY;\r\n \t\t\t}\r\n \t\t\tdata['-y'] = invertedY;\r\n \t\t}\r\n\r\n \t\treturn template(this._url, extend(data, this.options));\r\n \t},\r\n\r\n \t_tileOnLoad: function (done, tile) {\r\n \t\t// For https://github.com/Leaflet/Leaflet/issues/3332\r\n \t\tif (Browser.ielt9) {\r\n \t\t\tsetTimeout(bind(done, this, null, tile), 0);\r\n \t\t} else {\r\n \t\t\tdone(null, tile);\r\n \t\t}\r\n \t},\r\n\r\n \t_tileOnError: function (done, tile, e) {\r\n \t\tvar errorUrl = this.options.errorTileUrl;\r\n \t\tif (errorUrl && tile.getAttribute('src') !== errorUrl) {\r\n \t\t\ttile.src = errorUrl;\r\n \t\t}\r\n \t\tdone(e, tile);\r\n \t},\r\n\r\n \t_onTileRemove: function (e) {\r\n \t\te.tile.onload = null;\r\n \t},\r\n\r\n \t_getZoomForUrl: function () {\r\n \t\tvar zoom = this._tileZoom,\r\n \t\tmaxZoom = this.options.maxZoom,\r\n \t\tzoomReverse = this.options.zoomReverse,\r\n \t\tzoomOffset = this.options.zoomOffset;\r\n\r\n \t\tif (zoomReverse) {\r\n \t\t\tzoom = maxZoom - zoom;\r\n \t\t}\r\n\r\n \t\treturn zoom + zoomOffset;\r\n \t},\r\n\r\n \t_getSubdomain: function (tilePoint) {\r\n \t\tvar index = Math.abs(tilePoint.x + tilePoint.y) % this.options.subdomains.length;\r\n \t\treturn this.options.subdomains[index];\r\n \t},\r\n\r\n \t// stops loading all tiles in the background layer\r\n \t_abortLoading: function () {\r\n \t\tvar i, tile;\r\n \t\tfor (i in this._tiles) {\r\n \t\t\tif (this._tiles[i].coords.z !== this._tileZoom) {\r\n \t\t\t\ttile = this._tiles[i].el;\r\n\r\n \t\t\t\ttile.onload = falseFn;\r\n \t\t\t\ttile.onerror = falseFn;\r\n\r\n \t\t\t\tif (!tile.complete) {\r\n \t\t\t\t\ttile.src = emptyImageUrl;\r\n \t\t\t\t\tvar coords = this._tiles[i].coords;\r\n \t\t\t\t\tremove(tile);\r\n \t\t\t\t\tdelete this._tiles[i];\r\n \t\t\t\t\t// @event tileabort: TileEvent\r\n \t\t\t\t\t// Fired when a tile was loading but is now not wanted.\r\n \t\t\t\t\tthis.fire('tileabort', {\r\n \t\t\t\t\t\ttile: tile,\r\n \t\t\t\t\t\tcoords: coords\r\n \t\t\t\t\t});\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n \t},\r\n\r\n \t_removeTile: function (key) {\r\n \t\tvar tile = this._tiles[key];\r\n \t\tif (!tile) { return; }\r\n\r\n \t\t// Cancels any pending http requests associated with the tile\r\n \t\ttile.el.setAttribute('src', emptyImageUrl);\r\n\r\n \t\treturn GridLayer.prototype._removeTile.call(this, key);\r\n \t},\r\n\r\n \t_tileReady: function (coords, err, tile) {\r\n \t\tif (!this._map || (tile && tile.getAttribute('src') === emptyImageUrl)) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\treturn GridLayer.prototype._tileReady.call(this, coords, err, tile);\r\n \t}\r\n });\r\n\r\n\r\n // @factory L.tilelayer(urlTemplate: String, options?: TileLayer options)\r\n // Instantiates a tile layer object given a `URL template` and optionally an options object.\r\n\r\n function tileLayer(url, options) {\r\n \treturn new TileLayer(url, options);\r\n }\n\n /*\r\n * @class TileLayer.WMS\r\n * @inherits TileLayer\r\n * @aka L.TileLayer.WMS\r\n * Used to display [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services as tile layers on the map. Extends `TileLayer`.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var nexrad = L.tileLayer.wms(\"http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi\", {\r\n * \tlayers: 'nexrad-n0r-900913',\r\n * \tformat: 'image/png',\r\n * \ttransparent: true,\r\n * \tattribution: \"Weather data © 2012 IEM Nexrad\"\r\n * });\r\n * ```\r\n */\r\n\r\n var TileLayerWMS = TileLayer.extend({\r\n\r\n \t// @section\r\n \t// @aka TileLayer.WMS options\r\n \t// If any custom options not documented here are used, they will be sent to the\r\n \t// WMS server as extra parameters in each request URL. This can be useful for\r\n \t// [non-standard vendor WMS parameters](https://docs.geoserver.org/stable/en/user/services/wms/vendor.html).\r\n \tdefaultWmsParams: {\r\n \t\tservice: 'WMS',\r\n \t\trequest: 'GetMap',\r\n\r\n \t\t// @option layers: String = ''\r\n \t\t// **(required)** Comma-separated list of WMS layers to show.\r\n \t\tlayers: '',\r\n\r\n \t\t// @option styles: String = ''\r\n \t\t// Comma-separated list of WMS styles.\r\n \t\tstyles: '',\r\n\r\n \t\t// @option format: String = 'image/jpeg'\r\n \t\t// WMS image format (use `'image/png'` for layers with transparency).\r\n \t\tformat: 'image/jpeg',\r\n\r\n \t\t// @option transparent: Boolean = false\r\n \t\t// If `true`, the WMS service will return images with transparency.\r\n \t\ttransparent: false,\r\n\r\n \t\t// @option version: String = '1.1.1'\r\n \t\t// Version of the WMS service to use\r\n \t\tversion: '1.1.1'\r\n \t},\r\n\r\n \toptions: {\r\n \t\t// @option crs: CRS = null\r\n \t\t// Coordinate Reference System to use for the WMS requests, defaults to\r\n \t\t// map CRS. Don't change this if you're not sure what it means.\r\n \t\tcrs: null,\r\n\r\n \t\t// @option uppercase: Boolean = false\r\n \t\t// If `true`, WMS request parameter keys will be uppercase.\r\n \t\tuppercase: false\r\n \t},\r\n\r\n \tinitialize: function (url, options) {\r\n\r\n \t\tthis._url = url;\r\n\r\n \t\tvar wmsParams = extend({}, this.defaultWmsParams);\r\n\r\n \t\t// all keys that are not TileLayer options go to WMS params\r\n \t\tfor (var i in options) {\r\n \t\t\tif (!(i in this.options)) {\r\n \t\t\t\twmsParams[i] = options[i];\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\toptions = setOptions(this, options);\r\n\r\n \t\tvar realRetina = options.detectRetina && Browser.retina ? 2 : 1;\r\n \t\tvar tileSize = this.getTileSize();\r\n \t\twmsParams.width = tileSize.x * realRetina;\r\n \t\twmsParams.height = tileSize.y * realRetina;\r\n\r\n \t\tthis.wmsParams = wmsParams;\r\n \t},\r\n\r\n \tonAdd: function (map) {\r\n\r\n \t\tthis._crs = this.options.crs || map.options.crs;\r\n \t\tthis._wmsVersion = parseFloat(this.wmsParams.version);\r\n\r\n \t\tvar projectionKey = this._wmsVersion >= 1.3 ? 'crs' : 'srs';\r\n \t\tthis.wmsParams[projectionKey] = this._crs.code;\r\n\r\n \t\tTileLayer.prototype.onAdd.call(this, map);\r\n \t},\r\n\r\n \tgetTileUrl: function (coords) {\r\n\r\n \t\tvar tileBounds = this._tileCoordsToNwSe(coords),\r\n \t\t crs = this._crs,\r\n \t\t bounds = toBounds(crs.project(tileBounds[0]), crs.project(tileBounds[1])),\r\n \t\t min = bounds.min,\r\n \t\t max = bounds.max,\r\n \t\t bbox = (this._wmsVersion >= 1.3 && this._crs === EPSG4326 ?\r\n \t\t [min.y, min.x, max.y, max.x] :\r\n \t\t [min.x, min.y, max.x, max.y]).join(','),\r\n \t\t url = TileLayer.prototype.getTileUrl.call(this, coords);\r\n \t\treturn url +\r\n \t\t\tgetParamString(this.wmsParams, url, this.options.uppercase) +\r\n \t\t\t(this.options.uppercase ? '&BBOX=' : '&bbox=') + bbox;\r\n \t},\r\n\r\n \t// @method setParams(params: Object, noRedraw?: Boolean): this\r\n \t// Merges an object with the new parameters and re-requests tiles on the current screen (unless `noRedraw` was set to true).\r\n \tsetParams: function (params, noRedraw) {\r\n\r\n \t\textend(this.wmsParams, params);\r\n\r\n \t\tif (!noRedraw) {\r\n \t\t\tthis.redraw();\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t}\r\n });\r\n\r\n\r\n // @factory L.tileLayer.wms(baseUrl: String, options: TileLayer.WMS options)\r\n // Instantiates a WMS tile layer object given a base URL of the WMS service and a WMS parameters/options object.\r\n function tileLayerWMS(url, options) {\r\n \treturn new TileLayerWMS(url, options);\r\n }\n\n TileLayer.WMS = TileLayerWMS;\n tileLayer.wms = tileLayerWMS;\n\n /*\n * @class Renderer\n * @inherits Layer\n * @aka L.Renderer\n *\n * Base class for vector renderer implementations (`SVG`, `Canvas`). Handles the\n * DOM container of the renderer, its bounds, and its zoom animation.\n *\n * A `Renderer` works as an implicit layer group for all `Path`s - the renderer\n * itself can be added or removed to the map. All paths use a renderer, which can\n * be implicit (the map will decide the type of renderer and use it automatically)\n * or explicit (using the [`renderer`](#path-renderer) option of the path).\n *\n * Do not use this class directly, use `SVG` and `Canvas` instead.\n *\n * @event update: Event\n * Fired when the renderer updates its bounds, center and zoom, for example when\n * its map has moved\n */\n\n var Renderer = Layer.extend({\n\n \t// @section\n \t// @aka Renderer options\n \toptions: {\n \t\t// @option padding: Number = 0.1\n \t\t// How much to extend the clip area around the map view (relative to its size)\n \t\t// e.g. 0.1 would be 10% of map view in each direction\n \t\tpadding: 0.1\n \t},\n\n \tinitialize: function (options) {\n \t\tsetOptions(this, options);\n \t\tstamp(this);\n \t\tthis._layers = this._layers || {};\n \t},\n\n \tonAdd: function () {\n \t\tif (!this._container) {\n \t\t\tthis._initContainer(); // defined by renderer implementations\n\n \t\t\t// always keep transform-origin as 0 0\n \t\t\taddClass(this._container, 'leaflet-zoom-animated');\n \t\t}\n\n \t\tthis.getPane().appendChild(this._container);\n \t\tthis._update();\n \t\tthis.on('update', this._updatePaths, this);\n \t},\n\n \tonRemove: function () {\n \t\tthis.off('update', this._updatePaths, this);\n \t\tthis._destroyContainer();\n \t},\n\n \tgetEvents: function () {\n \t\tvar events = {\n \t\t\tviewreset: this._reset,\n \t\t\tzoom: this._onZoom,\n \t\t\tmoveend: this._update,\n \t\t\tzoomend: this._onZoomEnd\n \t\t};\n \t\tif (this._zoomAnimated) {\n \t\t\tevents.zoomanim = this._onAnimZoom;\n \t\t}\n \t\treturn events;\n \t},\n\n \t_onAnimZoom: function (ev) {\n \t\tthis._updateTransform(ev.center, ev.zoom);\n \t},\n\n \t_onZoom: function () {\n \t\tthis._updateTransform(this._map.getCenter(), this._map.getZoom());\n \t},\n\n \t_updateTransform: function (center, zoom) {\n \t\tvar scale = this._map.getZoomScale(zoom, this._zoom),\n \t\t viewHalf = this._map.getSize().multiplyBy(0.5 + this.options.padding),\n \t\t currentCenterPoint = this._map.project(this._center, zoom),\n\n \t\t topLeftOffset = viewHalf.multiplyBy(-scale).add(currentCenterPoint)\n \t\t\t\t .subtract(this._map._getNewPixelOrigin(center, zoom));\n\n \t\tif (Browser.any3d) {\n \t\t\tsetTransform(this._container, topLeftOffset, scale);\n \t\t} else {\n \t\t\tsetPosition(this._container, topLeftOffset);\n \t\t}\n \t},\n\n \t_reset: function () {\n \t\tthis._update();\n \t\tthis._updateTransform(this._center, this._zoom);\n\n \t\tfor (var id in this._layers) {\n \t\t\tthis._layers[id]._reset();\n \t\t}\n \t},\n\n \t_onZoomEnd: function () {\n \t\tfor (var id in this._layers) {\n \t\t\tthis._layers[id]._project();\n \t\t}\n \t},\n\n \t_updatePaths: function () {\n \t\tfor (var id in this._layers) {\n \t\t\tthis._layers[id]._update();\n \t\t}\n \t},\n\n \t_update: function () {\n \t\t// Update pixel bounds of renderer container (for positioning/sizing/clipping later)\n \t\t// Subclasses are responsible of firing the 'update' event.\n \t\tvar p = this.options.padding,\n \t\t size = this._map.getSize(),\n \t\t min = this._map.containerPointToLayerPoint(size.multiplyBy(-p)).round();\n\n \t\tthis._bounds = new Bounds(min, min.add(size.multiplyBy(1 + p * 2)).round());\n\n \t\tthis._center = this._map.getCenter();\n \t\tthis._zoom = this._map.getZoom();\n \t}\n });\n\n /*\n * @class Canvas\n * @inherits Renderer\n * @aka L.Canvas\n *\n * Allows vector layers to be displayed with [`<canvas>`](https://developer.mozilla.org/docs/Web/API/Canvas_API).\n * Inherits `Renderer`.\n *\n * Due to [technical limitations](https://caniuse.com/canvas), Canvas is not\n * available in all web browsers, notably IE8, and overlapping geometries might\n * not display properly in some edge cases.\n *\n * @example\n *\n * Use Canvas by default for all paths in the map:\n *\n * ```js\n * var map = L.map('map', {\n * \trenderer: L.canvas()\n * });\n * ```\n *\n * Use a Canvas renderer with extra padding for specific vector geometries:\n *\n * ```js\n * var map = L.map('map');\n * var myRenderer = L.canvas({ padding: 0.5 });\n * var line = L.polyline( coordinates, { renderer: myRenderer } );\n * var circle = L.circle( center, { renderer: myRenderer } );\n * ```\n */\n\n var Canvas = Renderer.extend({\n\n \t// @section\n \t// @aka Canvas options\n \toptions: {\n \t\t// @option tolerance: Number = 0\n \t\t// How much to extend the click tolerance around a path/object on the map.\n \t\ttolerance: 0\n \t},\n\n \tgetEvents: function () {\n \t\tvar events = Renderer.prototype.getEvents.call(this);\n \t\tevents.viewprereset = this._onViewPreReset;\n \t\treturn events;\n \t},\n\n \t_onViewPreReset: function () {\n \t\t// Set a flag so that a viewprereset+moveend+viewreset only updates&redraws once\n \t\tthis._postponeUpdatePaths = true;\n \t},\n\n \tonAdd: function () {\n \t\tRenderer.prototype.onAdd.call(this);\n\n \t\t// Redraw vectors since canvas is cleared upon removal,\n \t\t// in case of removing the renderer itself from the map.\n \t\tthis._draw();\n \t},\n\n \t_initContainer: function () {\n \t\tvar container = this._container = document.createElement('canvas');\n\n \t\ton(container, 'mousemove', this._onMouseMove, this);\n \t\ton(container, 'click dblclick mousedown mouseup contextmenu', this._onClick, this);\n \t\ton(container, 'mouseout', this._handleMouseOut, this);\n \t\tcontainer['_leaflet_disable_events'] = true;\n\n \t\tthis._ctx = container.getContext('2d');\n \t},\n\n \t_destroyContainer: function () {\n \t\tcancelAnimFrame(this._redrawRequest);\n \t\tdelete this._ctx;\n \t\tremove(this._container);\n \t\toff(this._container);\n \t\tdelete this._container;\n \t},\n\n \t_updatePaths: function () {\n \t\tif (this._postponeUpdatePaths) { return; }\n\n \t\tvar layer;\n \t\tthis._redrawBounds = null;\n \t\tfor (var id in this._layers) {\n \t\t\tlayer = this._layers[id];\n \t\t\tlayer._update();\n \t\t}\n \t\tthis._redraw();\n \t},\n\n \t_update: function () {\n \t\tif (this._map._animatingZoom && this._bounds) { return; }\n\n \t\tRenderer.prototype._update.call(this);\n\n \t\tvar b = this._bounds,\n \t\t container = this._container,\n \t\t size = b.getSize(),\n \t\t m = Browser.retina ? 2 : 1;\n\n \t\tsetPosition(container, b.min);\n\n \t\t// set canvas size (also clearing it); use double size on retina\n \t\tcontainer.width = m * size.x;\n \t\tcontainer.height = m * size.y;\n \t\tcontainer.style.width = size.x + 'px';\n \t\tcontainer.style.height = size.y + 'px';\n\n \t\tif (Browser.retina) {\n \t\t\tthis._ctx.scale(2, 2);\n \t\t}\n\n \t\t// translate so we use the same path coordinates after canvas element moves\n \t\tthis._ctx.translate(-b.min.x, -b.min.y);\n\n \t\t// Tell paths to redraw themselves\n \t\tthis.fire('update');\n \t},\n\n \t_reset: function () {\n \t\tRenderer.prototype._reset.call(this);\n\n \t\tif (this._postponeUpdatePaths) {\n \t\t\tthis._postponeUpdatePaths = false;\n \t\t\tthis._updatePaths();\n \t\t}\n \t},\n\n \t_initPath: function (layer) {\n \t\tthis._updateDashArray(layer);\n \t\tthis._layers[stamp(layer)] = layer;\n\n \t\tvar order = layer._order = {\n \t\t\tlayer: layer,\n \t\t\tprev: this._drawLast,\n \t\t\tnext: null\n \t\t};\n \t\tif (this._drawLast) { this._drawLast.next = order; }\n \t\tthis._drawLast = order;\n \t\tthis._drawFirst = this._drawFirst || this._drawLast;\n \t},\n\n \t_addPath: function (layer) {\n \t\tthis._requestRedraw(layer);\n \t},\n\n \t_removePath: function (layer) {\n \t\tvar order = layer._order;\n \t\tvar next = order.next;\n \t\tvar prev = order.prev;\n\n \t\tif (next) {\n \t\t\tnext.prev = prev;\n \t\t} else {\n \t\t\tthis._drawLast = prev;\n \t\t}\n \t\tif (prev) {\n \t\t\tprev.next = next;\n \t\t} else {\n \t\t\tthis._drawFirst = next;\n \t\t}\n\n \t\tdelete layer._order;\n\n \t\tdelete this._layers[stamp(layer)];\n\n \t\tthis._requestRedraw(layer);\n \t},\n\n \t_updatePath: function (layer) {\n \t\t// Redraw the union of the layer's old pixel\n \t\t// bounds and the new pixel bounds.\n \t\tthis._extendRedrawBounds(layer);\n \t\tlayer._project();\n \t\tlayer._update();\n \t\t// The redraw will extend the redraw bounds\n \t\t// with the new pixel bounds.\n \t\tthis._requestRedraw(layer);\n \t},\n\n \t_updateStyle: function (layer) {\n \t\tthis._updateDashArray(layer);\n \t\tthis._requestRedraw(layer);\n \t},\n\n \t_updateDashArray: function (layer) {\n \t\tif (typeof layer.options.dashArray === 'string') {\n \t\t\tvar parts = layer.options.dashArray.split(/[, ]+/),\n \t\t\t dashArray = [],\n \t\t\t dashValue,\n \t\t\t i;\n \t\t\tfor (i = 0; i < parts.length; i++) {\n \t\t\t\tdashValue = Number(parts[i]);\n \t\t\t\t// Ignore dash array containing invalid lengths\n \t\t\t\tif (isNaN(dashValue)) { return; }\n \t\t\t\tdashArray.push(dashValue);\n \t\t\t}\n \t\t\tlayer.options._dashArray = dashArray;\n \t\t} else {\n \t\t\tlayer.options._dashArray = layer.options.dashArray;\n \t\t}\n \t},\n\n \t_requestRedraw: function (layer) {\n \t\tif (!this._map) { return; }\n\n \t\tthis._extendRedrawBounds(layer);\n \t\tthis._redrawRequest = this._redrawRequest || requestAnimFrame(this._redraw, this);\n \t},\n\n \t_extendRedrawBounds: function (layer) {\n \t\tif (layer._pxBounds) {\n \t\t\tvar padding = (layer.options.weight || 0) + 1;\n \t\t\tthis._redrawBounds = this._redrawBounds || new Bounds();\n \t\t\tthis._redrawBounds.extend(layer._pxBounds.min.subtract([padding, padding]));\n \t\t\tthis._redrawBounds.extend(layer._pxBounds.max.add([padding, padding]));\n \t\t}\n \t},\n\n \t_redraw: function () {\n \t\tthis._redrawRequest = null;\n\n \t\tif (this._redrawBounds) {\n \t\t\tthis._redrawBounds.min._floor();\n \t\t\tthis._redrawBounds.max._ceil();\n \t\t}\n\n \t\tthis._clear(); // clear layers in redraw bounds\n \t\tthis._draw(); // draw layers\n\n \t\tthis._redrawBounds = null;\n \t},\n\n \t_clear: function () {\n \t\tvar bounds = this._redrawBounds;\n \t\tif (bounds) {\n \t\t\tvar size = bounds.getSize();\n \t\t\tthis._ctx.clearRect(bounds.min.x, bounds.min.y, size.x, size.y);\n \t\t} else {\n \t\t\tthis._ctx.save();\n \t\t\tthis._ctx.setTransform(1, 0, 0, 1, 0, 0);\n \t\t\tthis._ctx.clearRect(0, 0, this._container.width, this._container.height);\n \t\t\tthis._ctx.restore();\n \t\t}\n \t},\n\n \t_draw: function () {\n \t\tvar layer, bounds = this._redrawBounds;\n \t\tthis._ctx.save();\n \t\tif (bounds) {\n \t\t\tvar size = bounds.getSize();\n \t\t\tthis._ctx.beginPath();\n \t\t\tthis._ctx.rect(bounds.min.x, bounds.min.y, size.x, size.y);\n \t\t\tthis._ctx.clip();\n \t\t}\n\n \t\tthis._drawing = true;\n\n \t\tfor (var order = this._drawFirst; order; order = order.next) {\n \t\t\tlayer = order.layer;\n \t\t\tif (!bounds || (layer._pxBounds && layer._pxBounds.intersects(bounds))) {\n \t\t\t\tlayer._updatePath();\n \t\t\t}\n \t\t}\n\n \t\tthis._drawing = false;\n\n \t\tthis._ctx.restore(); // Restore state before clipping.\n \t},\n\n \t_updatePoly: function (layer, closed) {\n \t\tif (!this._drawing) { return; }\n\n \t\tvar i, j, len2, p,\n \t\t parts = layer._parts,\n \t\t len = parts.length,\n \t\t ctx = this._ctx;\n\n \t\tif (!len) { return; }\n\n \t\tctx.beginPath();\n\n \t\tfor (i = 0; i < len; i++) {\n \t\t\tfor (j = 0, len2 = parts[i].length; j < len2; j++) {\n \t\t\t\tp = parts[i][j];\n \t\t\t\tctx[j ? 'lineTo' : 'moveTo'](p.x, p.y);\n \t\t\t}\n \t\t\tif (closed) {\n \t\t\t\tctx.closePath();\n \t\t\t}\n \t\t}\n\n \t\tthis._fillStroke(ctx, layer);\n\n \t\t// TODO optimization: 1 fill/stroke for all features with equal style instead of 1 for each feature\n \t},\n\n \t_updateCircle: function (layer) {\n\n \t\tif (!this._drawing || layer._empty()) { return; }\n\n \t\tvar p = layer._point,\n \t\t ctx = this._ctx,\n \t\t r = Math.max(Math.round(layer._radius), 1),\n \t\t s = (Math.max(Math.round(layer._radiusY), 1) || r) / r;\n\n \t\tif (s !== 1) {\n \t\t\tctx.save();\n \t\t\tctx.scale(1, s);\n \t\t}\n\n \t\tctx.beginPath();\n \t\tctx.arc(p.x, p.y / s, r, 0, Math.PI * 2, false);\n\n \t\tif (s !== 1) {\n \t\t\tctx.restore();\n \t\t}\n\n \t\tthis._fillStroke(ctx, layer);\n \t},\n\n \t_fillStroke: function (ctx, layer) {\n \t\tvar options = layer.options;\n\n \t\tif (options.fill) {\n \t\t\tctx.globalAlpha = options.fillOpacity;\n \t\t\tctx.fillStyle = options.fillColor || options.color;\n \t\t\tctx.fill(options.fillRule || 'evenodd');\n \t\t}\n\n \t\tif (options.stroke && options.weight !== 0) {\n \t\t\tif (ctx.setLineDash) {\n \t\t\t\tctx.setLineDash(layer.options && layer.options._dashArray || []);\n \t\t\t}\n \t\t\tctx.globalAlpha = options.opacity;\n \t\t\tctx.lineWidth = options.weight;\n \t\t\tctx.strokeStyle = options.color;\n \t\t\tctx.lineCap = options.lineCap;\n \t\t\tctx.lineJoin = options.lineJoin;\n \t\t\tctx.stroke();\n \t\t}\n \t},\n\n \t// Canvas obviously doesn't have mouse events for individual drawn objects,\n \t// so we emulate that by calculating what's under the mouse on mousemove/click manually\n\n \t_onClick: function (e) {\n \t\tvar point = this._map.mouseEventToLayerPoint(e), layer, clickedLayer;\n\n \t\tfor (var order = this._drawFirst; order; order = order.next) {\n \t\t\tlayer = order.layer;\n \t\t\tif (layer.options.interactive && layer._containsPoint(point)) {\n \t\t\t\tif (!(e.type === 'click' || e.type === 'preclick') || !this._map._draggableMoved(layer)) {\n \t\t\t\t\tclickedLayer = layer;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tthis._fireEvent(clickedLayer ? [clickedLayer] : false, e);\n \t},\n\n \t_onMouseMove: function (e) {\n \t\tif (!this._map || this._map.dragging.moving() || this._map._animatingZoom) { return; }\n\n \t\tvar point = this._map.mouseEventToLayerPoint(e);\n \t\tthis._handleMouseHover(e, point);\n \t},\n\n\n \t_handleMouseOut: function (e) {\n \t\tvar layer = this._hoveredLayer;\n \t\tif (layer) {\n \t\t\t// if we're leaving the layer, fire mouseout\n \t\t\tremoveClass(this._container, 'leaflet-interactive');\n \t\t\tthis._fireEvent([layer], e, 'mouseout');\n \t\t\tthis._hoveredLayer = null;\n \t\t\tthis._mouseHoverThrottled = false;\n \t\t}\n \t},\n\n \t_handleMouseHover: function (e, point) {\n \t\tif (this._mouseHoverThrottled) {\n \t\t\treturn;\n \t\t}\n\n \t\tvar layer, candidateHoveredLayer;\n\n \t\tfor (var order = this._drawFirst; order; order = order.next) {\n \t\t\tlayer = order.layer;\n \t\t\tif (layer.options.interactive && layer._containsPoint(point)) {\n \t\t\t\tcandidateHoveredLayer = layer;\n \t\t\t}\n \t\t}\n\n \t\tif (candidateHoveredLayer !== this._hoveredLayer) {\n \t\t\tthis._handleMouseOut(e);\n\n \t\t\tif (candidateHoveredLayer) {\n \t\t\t\taddClass(this._container, 'leaflet-interactive'); // change cursor\n \t\t\t\tthis._fireEvent([candidateHoveredLayer], e, 'mouseover');\n \t\t\t\tthis._hoveredLayer = candidateHoveredLayer;\n \t\t\t}\n \t\t}\n\n \t\tthis._fireEvent(this._hoveredLayer ? [this._hoveredLayer] : false, e);\n\n \t\tthis._mouseHoverThrottled = true;\n \t\tsetTimeout(bind(function () {\n \t\t\tthis._mouseHoverThrottled = false;\n \t\t}, this), 32);\n \t},\n\n \t_fireEvent: function (layers, e, type) {\n \t\tthis._map._fireDOMEvent(e, type || e.type, layers);\n \t},\n\n \t_bringToFront: function (layer) {\n \t\tvar order = layer._order;\n\n \t\tif (!order) { return; }\n\n \t\tvar next = order.next;\n \t\tvar prev = order.prev;\n\n \t\tif (next) {\n \t\t\tnext.prev = prev;\n \t\t} else {\n \t\t\t// Already last\n \t\t\treturn;\n \t\t}\n \t\tif (prev) {\n \t\t\tprev.next = next;\n \t\t} else if (next) {\n \t\t\t// Update first entry unless this is the\n \t\t\t// single entry\n \t\t\tthis._drawFirst = next;\n \t\t}\n\n \t\torder.prev = this._drawLast;\n \t\tthis._drawLast.next = order;\n\n \t\torder.next = null;\n \t\tthis._drawLast = order;\n\n \t\tthis._requestRedraw(layer);\n \t},\n\n \t_bringToBack: function (layer) {\n \t\tvar order = layer._order;\n\n \t\tif (!order) { return; }\n\n \t\tvar next = order.next;\n \t\tvar prev = order.prev;\n\n \t\tif (prev) {\n \t\t\tprev.next = next;\n \t\t} else {\n \t\t\t// Already first\n \t\t\treturn;\n \t\t}\n \t\tif (next) {\n \t\t\tnext.prev = prev;\n \t\t} else if (prev) {\n \t\t\t// Update last entry unless this is the\n \t\t\t// single entry\n \t\t\tthis._drawLast = prev;\n \t\t}\n\n \t\torder.prev = null;\n\n \t\torder.next = this._drawFirst;\n \t\tthis._drawFirst.prev = order;\n \t\tthis._drawFirst = order;\n\n \t\tthis._requestRedraw(layer);\n \t}\n });\n\n // @factory L.canvas(options?: Renderer options)\n // Creates a Canvas renderer with the given options.\n function canvas(options) {\n \treturn Browser.canvas ? new Canvas(options) : null;\n }\n\n /*\n * Thanks to Dmitry Baranovsky and his Raphael library for inspiration!\n */\n\n\n var vmlCreate = (function () {\n \ttry {\n \t\tdocument.namespaces.add('lvml', 'urn:schemas-microsoft-com:vml');\n \t\treturn function (name) {\n \t\t\treturn document.createElement('<lvml:' + name + ' class=\"lvml\">');\n \t\t};\n \t} catch (e) {\n \t\t// Do not return fn from catch block so `e` can be garbage collected\n \t\t// See https://github.com/Leaflet/Leaflet/pull/7279\n \t}\n \treturn function (name) {\n \t\treturn document.createElement('<' + name + ' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"lvml\">');\n \t};\n })();\n\n\n /*\n * @class SVG\n *\n *\n * VML was deprecated in 2012, which means VML functionality exists only for backwards compatibility\n * with old versions of Internet Explorer.\n */\n\n // mixin to redefine some SVG methods to handle VML syntax which is similar but with some differences\n var vmlMixin = {\n\n \t_initContainer: function () {\n \t\tthis._container = create$1('div', 'leaflet-vml-container');\n \t},\n\n \t_update: function () {\n \t\tif (this._map._animatingZoom) { return; }\n \t\tRenderer.prototype._update.call(this);\n \t\tthis.fire('update');\n \t},\n\n \t_initPath: function (layer) {\n \t\tvar container = layer._container = vmlCreate('shape');\n\n \t\taddClass(container, 'leaflet-vml-shape ' + (this.options.className || ''));\n\n \t\tcontainer.coordsize = '1 1';\n\n \t\tlayer._path = vmlCreate('path');\n \t\tcontainer.appendChild(layer._path);\n\n \t\tthis._updateStyle(layer);\n \t\tthis._layers[stamp(layer)] = layer;\n \t},\n\n \t_addPath: function (layer) {\n \t\tvar container = layer._container;\n \t\tthis._container.appendChild(container);\n\n \t\tif (layer.options.interactive) {\n \t\t\tlayer.addInteractiveTarget(container);\n \t\t}\n \t},\n\n \t_removePath: function (layer) {\n \t\tvar container = layer._container;\n \t\tremove(container);\n \t\tlayer.removeInteractiveTarget(container);\n \t\tdelete this._layers[stamp(layer)];\n \t},\n\n \t_updateStyle: function (layer) {\n \t\tvar stroke = layer._stroke,\n \t\t fill = layer._fill,\n \t\t options = layer.options,\n \t\t container = layer._container;\n\n \t\tcontainer.stroked = !!options.stroke;\n \t\tcontainer.filled = !!options.fill;\n\n \t\tif (options.stroke) {\n \t\t\tif (!stroke) {\n \t\t\t\tstroke = layer._stroke = vmlCreate('stroke');\n \t\t\t}\n \t\t\tcontainer.appendChild(stroke);\n \t\t\tstroke.weight = options.weight + 'px';\n \t\t\tstroke.color = options.color;\n \t\t\tstroke.opacity = options.opacity;\n\n \t\t\tif (options.dashArray) {\n \t\t\t\tstroke.dashStyle = isArray(options.dashArray) ?\n \t\t\t\t options.dashArray.join(' ') :\n \t\t\t\t options.dashArray.replace(/( *, *)/g, ' ');\n \t\t\t} else {\n \t\t\t\tstroke.dashStyle = '';\n \t\t\t}\n \t\t\tstroke.endcap = options.lineCap.replace('butt', 'flat');\n \t\t\tstroke.joinstyle = options.lineJoin;\n\n \t\t} else if (stroke) {\n \t\t\tcontainer.removeChild(stroke);\n \t\t\tlayer._stroke = null;\n \t\t}\n\n \t\tif (options.fill) {\n \t\t\tif (!fill) {\n \t\t\t\tfill = layer._fill = vmlCreate('fill');\n \t\t\t}\n \t\t\tcontainer.appendChild(fill);\n \t\t\tfill.color = options.fillColor || options.color;\n \t\t\tfill.opacity = options.fillOpacity;\n\n \t\t} else if (fill) {\n \t\t\tcontainer.removeChild(fill);\n \t\t\tlayer._fill = null;\n \t\t}\n \t},\n\n \t_updateCircle: function (layer) {\n \t\tvar p = layer._point.round(),\n \t\t r = Math.round(layer._radius),\n \t\t r2 = Math.round(layer._radiusY || r);\n\n \t\tthis._setPath(layer, layer._empty() ? 'M0 0' :\n \t\t\t'AL ' + p.x + ',' + p.y + ' ' + r + ',' + r2 + ' 0,' + (65535 * 360));\n \t},\n\n \t_setPath: function (layer, path) {\n \t\tlayer._path.v = path;\n \t},\n\n \t_bringToFront: function (layer) {\n \t\ttoFront(layer._container);\n \t},\n\n \t_bringToBack: function (layer) {\n \t\ttoBack(layer._container);\n \t}\n };\n\n var create = Browser.vml ? vmlCreate : svgCreate;\n\n /*\n * @class SVG\n * @inherits Renderer\n * @aka L.SVG\n *\n * Allows vector layers to be displayed with [SVG](https://developer.mozilla.org/docs/Web/SVG).\n * Inherits `Renderer`.\n *\n * Due to [technical limitations](https://caniuse.com/svg), SVG is not\n * available in all web browsers, notably Android 2.x and 3.x.\n *\n * Although SVG is not available on IE7 and IE8, these browsers support\n * [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language)\n * (a now deprecated technology), and the SVG renderer will fall back to VML in\n * this case.\n *\n * @example\n *\n * Use SVG by default for all paths in the map:\n *\n * ```js\n * var map = L.map('map', {\n * \trenderer: L.svg()\n * });\n * ```\n *\n * Use a SVG renderer with extra padding for specific vector geometries:\n *\n * ```js\n * var map = L.map('map');\n * var myRenderer = L.svg({ padding: 0.5 });\n * var line = L.polyline( coordinates, { renderer: myRenderer } );\n * var circle = L.circle( center, { renderer: myRenderer } );\n * ```\n */\n\n var SVG = Renderer.extend({\n\n \t_initContainer: function () {\n \t\tthis._container = create('svg');\n\n \t\t// makes it possible to click through svg root; we'll reset it back in individual paths\n \t\tthis._container.setAttribute('pointer-events', 'none');\n\n \t\tthis._rootGroup = create('g');\n \t\tthis._container.appendChild(this._rootGroup);\n \t},\n\n \t_destroyContainer: function () {\n \t\tremove(this._container);\n \t\toff(this._container);\n \t\tdelete this._container;\n \t\tdelete this._rootGroup;\n \t\tdelete this._svgSize;\n \t},\n\n \t_update: function () {\n \t\tif (this._map._animatingZoom && this._bounds) { return; }\n\n \t\tRenderer.prototype._update.call(this);\n\n \t\tvar b = this._bounds,\n \t\t size = b.getSize(),\n \t\t container = this._container;\n\n \t\t// set size of svg-container if changed\n \t\tif (!this._svgSize || !this._svgSize.equals(size)) {\n \t\t\tthis._svgSize = size;\n \t\t\tcontainer.setAttribute('width', size.x);\n \t\t\tcontainer.setAttribute('height', size.y);\n \t\t}\n\n \t\t// movement: update container viewBox so that we don't have to change coordinates of individual layers\n \t\tsetPosition(container, b.min);\n \t\tcontainer.setAttribute('viewBox', [b.min.x, b.min.y, size.x, size.y].join(' '));\n\n \t\tthis.fire('update');\n \t},\n\n \t// methods below are called by vector layers implementations\n\n \t_initPath: function (layer) {\n \t\tvar path = layer._path = create('path');\n\n \t\t// @namespace Path\n \t\t// @option className: String = null\n \t\t// Custom class name set on an element. Only for SVG renderer.\n \t\tif (layer.options.className) {\n \t\t\taddClass(path, layer.options.className);\n \t\t}\n\n \t\tif (layer.options.interactive) {\n \t\t\taddClass(path, 'leaflet-interactive');\n \t\t}\n\n \t\tthis._updateStyle(layer);\n \t\tthis._layers[stamp(layer)] = layer;\n \t},\n\n \t_addPath: function (layer) {\n \t\tif (!this._rootGroup) { this._initContainer(); }\n \t\tthis._rootGroup.appendChild(layer._path);\n \t\tlayer.addInteractiveTarget(layer._path);\n \t},\n\n \t_removePath: function (layer) {\n \t\tremove(layer._path);\n \t\tlayer.removeInteractiveTarget(layer._path);\n \t\tdelete this._layers[stamp(layer)];\n \t},\n\n \t_updatePath: function (layer) {\n \t\tlayer._project();\n \t\tlayer._update();\n \t},\n\n \t_updateStyle: function (layer) {\n \t\tvar path = layer._path,\n \t\t options = layer.options;\n\n \t\tif (!path) { return; }\n\n \t\tif (options.stroke) {\n \t\t\tpath.setAttribute('stroke', options.color);\n \t\t\tpath.setAttribute('stroke-opacity', options.opacity);\n \t\t\tpath.setAttribute('stroke-width', options.weight);\n \t\t\tpath.setAttribute('stroke-linecap', options.lineCap);\n \t\t\tpath.setAttribute('stroke-linejoin', options.lineJoin);\n\n \t\t\tif (options.dashArray) {\n \t\t\t\tpath.setAttribute('stroke-dasharray', options.dashArray);\n \t\t\t} else {\n \t\t\t\tpath.removeAttribute('stroke-dasharray');\n \t\t\t}\n\n \t\t\tif (options.dashOffset) {\n \t\t\t\tpath.setAttribute('stroke-dashoffset', options.dashOffset);\n \t\t\t} else {\n \t\t\t\tpath.removeAttribute('stroke-dashoffset');\n \t\t\t}\n \t\t} else {\n \t\t\tpath.setAttribute('stroke', 'none');\n \t\t}\n\n \t\tif (options.fill) {\n \t\t\tpath.setAttribute('fill', options.fillColor || options.color);\n \t\t\tpath.setAttribute('fill-opacity', options.fillOpacity);\n \t\t\tpath.setAttribute('fill-rule', options.fillRule || 'evenodd');\n \t\t} else {\n \t\t\tpath.setAttribute('fill', 'none');\n \t\t}\n \t},\n\n \t_updatePoly: function (layer, closed) {\n \t\tthis._setPath(layer, pointsToPath(layer._parts, closed));\n \t},\n\n \t_updateCircle: function (layer) {\n \t\tvar p = layer._point,\n \t\t r = Math.max(Math.round(layer._radius), 1),\n \t\t r2 = Math.max(Math.round(layer._radiusY), 1) || r,\n \t\t arc = 'a' + r + ',' + r2 + ' 0 1,0 ';\n\n \t\t// drawing a circle with two half-arcs\n \t\tvar d = layer._empty() ? 'M0 0' :\n \t\t\t'M' + (p.x - r) + ',' + p.y +\n \t\t\tarc + (r * 2) + ',0 ' +\n \t\t\tarc + (-r * 2) + ',0 ';\n\n \t\tthis._setPath(layer, d);\n \t},\n\n \t_setPath: function (layer, path) {\n \t\tlayer._path.setAttribute('d', path);\n \t},\n\n \t// SVG does not have the concept of zIndex so we resort to changing the DOM order of elements\n \t_bringToFront: function (layer) {\n \t\ttoFront(layer._path);\n \t},\n\n \t_bringToBack: function (layer) {\n \t\ttoBack(layer._path);\n \t}\n });\n\n if (Browser.vml) {\n \tSVG.include(vmlMixin);\n }\n\n // @namespace SVG\n // @factory L.svg(options?: Renderer options)\n // Creates a SVG renderer with the given options.\n function svg(options) {\n \treturn Browser.svg || Browser.vml ? new SVG(options) : null;\n }\n\n Map.include({\n \t// @namespace Map; @method getRenderer(layer: Path): Renderer\n \t// Returns the instance of `Renderer` that should be used to render the given\n \t// `Path`. It will ensure that the `renderer` options of the map and paths\n \t// are respected, and that the renderers do exist on the map.\n \tgetRenderer: function (layer) {\n \t\t// @namespace Path; @option renderer: Renderer\n \t\t// Use this specific instance of `Renderer` for this path. Takes\n \t\t// precedence over the map's [default renderer](#map-renderer).\n \t\tvar renderer = layer.options.renderer || this._getPaneRenderer(layer.options.pane) || this.options.renderer || this._renderer;\n\n \t\tif (!renderer) {\n \t\t\trenderer = this._renderer = this._createRenderer();\n \t\t}\n\n \t\tif (!this.hasLayer(renderer)) {\n \t\t\tthis.addLayer(renderer);\n \t\t}\n \t\treturn renderer;\n \t},\n\n \t_getPaneRenderer: function (name) {\n \t\tif (name === 'overlayPane' || name === undefined) {\n \t\t\treturn false;\n \t\t}\n\n \t\tvar renderer = this._paneRenderers[name];\n \t\tif (renderer === undefined) {\n \t\t\trenderer = this._createRenderer({pane: name});\n \t\t\tthis._paneRenderers[name] = renderer;\n \t\t}\n \t\treturn renderer;\n \t},\n\n \t_createRenderer: function (options) {\n \t\t// @namespace Map; @option preferCanvas: Boolean = false\n \t\t// Whether `Path`s should be rendered on a `Canvas` renderer.\n \t\t// By default, all `Path`s are rendered in a `SVG` renderer.\n \t\treturn (this.options.preferCanvas && canvas(options)) || svg(options);\n \t}\n });\n\n /*\n * L.Rectangle extends Polygon and creates a rectangle when passed a LatLngBounds object.\n */\n\n /*\n * @class Rectangle\n * @aka L.Rectangle\n * @inherits Polygon\n *\n * A class for drawing rectangle overlays on a map. Extends `Polygon`.\n *\n * @example\n *\n * ```js\n * // define rectangle geographical bounds\n * var bounds = [[54.559322, -5.767822], [56.1210604, -3.021240]];\n *\n * // create an orange rectangle\n * L.rectangle(bounds, {color: \"#ff7800\", weight: 1}).addTo(map);\n *\n * // zoom the map to the rectangle bounds\n * map.fitBounds(bounds);\n * ```\n *\n */\n\n\n var Rectangle = Polygon.extend({\n \tinitialize: function (latLngBounds, options) {\n \t\tPolygon.prototype.initialize.call(this, this._boundsToLatLngs(latLngBounds), options);\n \t},\n\n \t// @method setBounds(latLngBounds: LatLngBounds): this\n \t// Redraws the rectangle with the passed bounds.\n \tsetBounds: function (latLngBounds) {\n \t\treturn this.setLatLngs(this._boundsToLatLngs(latLngBounds));\n \t},\n\n \t_boundsToLatLngs: function (latLngBounds) {\n \t\tlatLngBounds = toLatLngBounds(latLngBounds);\n \t\treturn [\n \t\t\tlatLngBounds.getSouthWest(),\n \t\t\tlatLngBounds.getNorthWest(),\n \t\t\tlatLngBounds.getNorthEast(),\n \t\t\tlatLngBounds.getSouthEast()\n \t\t];\n \t}\n });\n\n\n // @factory L.rectangle(latLngBounds: LatLngBounds, options?: Polyline options)\n function rectangle(latLngBounds, options) {\n \treturn new Rectangle(latLngBounds, options);\n }\n\n SVG.create = create;\n SVG.pointsToPath = pointsToPath;\n\n GeoJSON.geometryToLayer = geometryToLayer;\n GeoJSON.coordsToLatLng = coordsToLatLng;\n GeoJSON.coordsToLatLngs = coordsToLatLngs;\n GeoJSON.latLngToCoords = latLngToCoords;\n GeoJSON.latLngsToCoords = latLngsToCoords;\n GeoJSON.getFeature = getFeature;\n GeoJSON.asFeature = asFeature;\n\n /*\n * L.Handler.BoxZoom is used to add shift-drag zoom interaction to the map\n * (zoom to a selected bounding box), enabled by default.\n */\n\n // @namespace Map\n // @section Interaction Options\n Map.mergeOptions({\n \t// @option boxZoom: Boolean = true\n \t// Whether the map can be zoomed to a rectangular area specified by\n \t// dragging the mouse while pressing the shift key.\n \tboxZoom: true\n });\n\n var BoxZoom = Handler.extend({\n \tinitialize: function (map) {\n \t\tthis._map = map;\n \t\tthis._container = map._container;\n \t\tthis._pane = map._panes.overlayPane;\n \t\tthis._resetStateTimeout = 0;\n \t\tmap.on('unload', this._destroy, this);\n \t},\n\n \taddHooks: function () {\n \t\ton(this._container, 'mousedown', this._onMouseDown, this);\n \t},\n\n \tremoveHooks: function () {\n \t\toff(this._container, 'mousedown', this._onMouseDown, this);\n \t},\n\n \tmoved: function () {\n \t\treturn this._moved;\n \t},\n\n \t_destroy: function () {\n \t\tremove(this._pane);\n \t\tdelete this._pane;\n \t},\n\n \t_resetState: function () {\n \t\tthis._resetStateTimeout = 0;\n \t\tthis._moved = false;\n \t},\n\n \t_clearDeferredResetState: function () {\n \t\tif (this._resetStateTimeout !== 0) {\n \t\t\tclearTimeout(this._resetStateTimeout);\n \t\t\tthis._resetStateTimeout = 0;\n \t\t}\n \t},\n\n \t_onMouseDown: function (e) {\n \t\tif (!e.shiftKey || ((e.which !== 1) && (e.button !== 1))) { return false; }\n\n \t\t// Clear the deferred resetState if it hasn't executed yet, otherwise it\n \t\t// will interrupt the interaction and orphan a box element in the container.\n \t\tthis._clearDeferredResetState();\n \t\tthis._resetState();\n\n \t\tdisableTextSelection();\n \t\tdisableImageDrag();\n\n \t\tthis._startPoint = this._map.mouseEventToContainerPoint(e);\n\n \t\ton(document, {\n \t\t\tcontextmenu: stop,\n \t\t\tmousemove: this._onMouseMove,\n \t\t\tmouseup: this._onMouseUp,\n \t\t\tkeydown: this._onKeyDown\n \t\t}, this);\n \t},\n\n \t_onMouseMove: function (e) {\n \t\tif (!this._moved) {\n \t\t\tthis._moved = true;\n\n \t\t\tthis._box = create$1('div', 'leaflet-zoom-box', this._container);\n \t\t\taddClass(this._container, 'leaflet-crosshair');\n\n \t\t\tthis._map.fire('boxzoomstart');\n \t\t}\n\n \t\tthis._point = this._map.mouseEventToContainerPoint(e);\n\n \t\tvar bounds = new Bounds(this._point, this._startPoint),\n \t\t size = bounds.getSize();\n\n \t\tsetPosition(this._box, bounds.min);\n\n \t\tthis._box.style.width = size.x + 'px';\n \t\tthis._box.style.height = size.y + 'px';\n \t},\n\n \t_finish: function () {\n \t\tif (this._moved) {\n \t\t\tremove(this._box);\n \t\t\tremoveClass(this._container, 'leaflet-crosshair');\n \t\t}\n\n \t\tenableTextSelection();\n \t\tenableImageDrag();\n\n \t\toff(document, {\n \t\t\tcontextmenu: stop,\n \t\t\tmousemove: this._onMouseMove,\n \t\t\tmouseup: this._onMouseUp,\n \t\t\tkeydown: this._onKeyDown\n \t\t}, this);\n \t},\n\n \t_onMouseUp: function (e) {\n \t\tif ((e.which !== 1) && (e.button !== 1)) { return; }\n\n \t\tthis._finish();\n\n \t\tif (!this._moved) { return; }\n \t\t// Postpone to next JS tick so internal click event handling\n \t\t// still see it as \"moved\".\n \t\tthis._clearDeferredResetState();\n \t\tthis._resetStateTimeout = setTimeout(bind(this._resetState, this), 0);\n\n \t\tvar bounds = new LatLngBounds(\n \t\t this._map.containerPointToLatLng(this._startPoint),\n \t\t this._map.containerPointToLatLng(this._point));\n\n \t\tthis._map\n \t\t\t.fitBounds(bounds)\n \t\t\t.fire('boxzoomend', {boxZoomBounds: bounds});\n \t},\n\n \t_onKeyDown: function (e) {\n \t\tif (e.keyCode === 27) {\n \t\t\tthis._finish();\n \t\t\tthis._clearDeferredResetState();\n \t\t\tthis._resetState();\n \t\t}\n \t}\n });\n\n // @section Handlers\n // @property boxZoom: Handler\n // Box (shift-drag with mouse) zoom handler.\n Map.addInitHook('addHandler', 'boxZoom', BoxZoom);\n\n /*\n * L.Handler.DoubleClickZoom is used to handle double-click zoom on the map, enabled by default.\n */\n\n // @namespace Map\n // @section Interaction Options\n\n Map.mergeOptions({\n \t// @option doubleClickZoom: Boolean|String = true\n \t// Whether the map can be zoomed in by double clicking on it and\n \t// zoomed out by double clicking while holding shift. If passed\n \t// `'center'`, double-click zoom will zoom to the center of the\n \t// view regardless of where the mouse was.\n \tdoubleClickZoom: true\n });\n\n var DoubleClickZoom = Handler.extend({\n \taddHooks: function () {\n \t\tthis._map.on('dblclick', this._onDoubleClick, this);\n \t},\n\n \tremoveHooks: function () {\n \t\tthis._map.off('dblclick', this._onDoubleClick, this);\n \t},\n\n \t_onDoubleClick: function (e) {\n \t\tvar map = this._map,\n \t\t oldZoom = map.getZoom(),\n \t\t delta = map.options.zoomDelta,\n \t\t zoom = e.originalEvent.shiftKey ? oldZoom - delta : oldZoom + delta;\n\n \t\tif (map.options.doubleClickZoom === 'center') {\n \t\t\tmap.setZoom(zoom);\n \t\t} else {\n \t\t\tmap.setZoomAround(e.containerPoint, zoom);\n \t\t}\n \t}\n });\n\n // @section Handlers\n //\n // Map properties include interaction handlers that allow you to control\n // interaction behavior in runtime, enabling or disabling certain features such\n // as dragging or touch zoom (see `Handler` methods). For example:\n //\n // ```js\n // map.doubleClickZoom.disable();\n // ```\n //\n // @property doubleClickZoom: Handler\n // Double click zoom handler.\n Map.addInitHook('addHandler', 'doubleClickZoom', DoubleClickZoom);\n\n /*\n * L.Handler.MapDrag is used to make the map draggable (with panning inertia), enabled by default.\n */\n\n // @namespace Map\n // @section Interaction Options\n Map.mergeOptions({\n \t// @option dragging: Boolean = true\n \t// Whether the map is draggable with mouse/touch or not.\n \tdragging: true,\n\n \t// @section Panning Inertia Options\n \t// @option inertia: Boolean = *\n \t// If enabled, panning of the map will have an inertia effect where\n \t// the map builds momentum while dragging and continues moving in\n \t// the same direction for some time. Feels especially nice on touch\n \t// devices. Enabled by default.\n \tinertia: true,\n\n \t// @option inertiaDeceleration: Number = 3000\n \t// The rate with which the inertial movement slows down, in pixels/second².\n \tinertiaDeceleration: 3400, // px/s^2\n\n \t// @option inertiaMaxSpeed: Number = Infinity\n \t// Max speed of the inertial movement, in pixels/second.\n \tinertiaMaxSpeed: Infinity, // px/s\n\n \t// @option easeLinearity: Number = 0.2\n \teaseLinearity: 0.2,\n\n \t// TODO refactor, move to CRS\n \t// @option worldCopyJump: Boolean = false\n \t// With this option enabled, the map tracks when you pan to another \"copy\"\n \t// of the world and seamlessly jumps to the original one so that all overlays\n \t// like markers and vector layers are still visible.\n \tworldCopyJump: false,\n\n \t// @option maxBoundsViscosity: Number = 0.0\n \t// If `maxBounds` is set, this option will control how solid the bounds\n \t// are when dragging the map around. The default value of `0.0` allows the\n \t// user to drag outside the bounds at normal speed, higher values will\n \t// slow down map dragging outside bounds, and `1.0` makes the bounds fully\n \t// solid, preventing the user from dragging outside the bounds.\n \tmaxBoundsViscosity: 0.0\n });\n\n var Drag = Handler.extend({\n \taddHooks: function () {\n \t\tif (!this._draggable) {\n \t\t\tvar map = this._map;\n\n \t\t\tthis._draggable = new Draggable(map._mapPane, map._container);\n\n \t\t\tthis._draggable.on({\n \t\t\t\tdragstart: this._onDragStart,\n \t\t\t\tdrag: this._onDrag,\n \t\t\t\tdragend: this._onDragEnd\n \t\t\t}, this);\n\n \t\t\tthis._draggable.on('predrag', this._onPreDragLimit, this);\n \t\t\tif (map.options.worldCopyJump) {\n \t\t\t\tthis._draggable.on('predrag', this._onPreDragWrap, this);\n \t\t\t\tmap.on('zoomend', this._onZoomEnd, this);\n\n \t\t\t\tmap.whenReady(this._onZoomEnd, this);\n \t\t\t}\n \t\t}\n \t\taddClass(this._map._container, 'leaflet-grab leaflet-touch-drag');\n \t\tthis._draggable.enable();\n \t\tthis._positions = [];\n \t\tthis._times = [];\n \t},\n\n \tremoveHooks: function () {\n \t\tremoveClass(this._map._container, 'leaflet-grab');\n \t\tremoveClass(this._map._container, 'leaflet-touch-drag');\n \t\tthis._draggable.disable();\n \t},\n\n \tmoved: function () {\n \t\treturn this._draggable && this._draggable._moved;\n \t},\n\n \tmoving: function () {\n \t\treturn this._draggable && this._draggable._moving;\n \t},\n\n \t_onDragStart: function () {\n \t\tvar map = this._map;\n\n \t\tmap._stop();\n \t\tif (this._map.options.maxBounds && this._map.options.maxBoundsViscosity) {\n \t\t\tvar bounds = toLatLngBounds(this._map.options.maxBounds);\n\n \t\t\tthis._offsetLimit = toBounds(\n \t\t\t\tthis._map.latLngToContainerPoint(bounds.getNorthWest()).multiplyBy(-1),\n \t\t\t\tthis._map.latLngToContainerPoint(bounds.getSouthEast()).multiplyBy(-1)\n \t\t\t\t\t.add(this._map.getSize()));\n\n \t\t\tthis._viscosity = Math.min(1.0, Math.max(0.0, this._map.options.maxBoundsViscosity));\n \t\t} else {\n \t\t\tthis._offsetLimit = null;\n \t\t}\n\n \t\tmap\n \t\t .fire('movestart')\n \t\t .fire('dragstart');\n\n \t\tif (map.options.inertia) {\n \t\t\tthis._positions = [];\n \t\t\tthis._times = [];\n \t\t}\n \t},\n\n \t_onDrag: function (e) {\n \t\tif (this._map.options.inertia) {\n \t\t\tvar time = this._lastTime = +new Date(),\n \t\t\t pos = this._lastPos = this._draggable._absPos || this._draggable._newPos;\n\n \t\t\tthis._positions.push(pos);\n \t\t\tthis._times.push(time);\n\n \t\t\tthis._prunePositions(time);\n \t\t}\n\n \t\tthis._map\n \t\t .fire('move', e)\n \t\t .fire('drag', e);\n \t},\n\n \t_prunePositions: function (time) {\n \t\twhile (this._positions.length > 1 && time - this._times[0] > 50) {\n \t\t\tthis._positions.shift();\n \t\t\tthis._times.shift();\n \t\t}\n \t},\n\n \t_onZoomEnd: function () {\n \t\tvar pxCenter = this._map.getSize().divideBy(2),\n \t\t pxWorldCenter = this._map.latLngToLayerPoint([0, 0]);\n\n \t\tthis._initialWorldOffset = pxWorldCenter.subtract(pxCenter).x;\n \t\tthis._worldWidth = this._map.getPixelWorldBounds().getSize().x;\n \t},\n\n \t_viscousLimit: function (value, threshold) {\n \t\treturn value - (value - threshold) * this._viscosity;\n \t},\n\n \t_onPreDragLimit: function () {\n \t\tif (!this._viscosity || !this._offsetLimit) { return; }\n\n \t\tvar offset = this._draggable._newPos.subtract(this._draggable._startPos);\n\n \t\tvar limit = this._offsetLimit;\n \t\tif (offset.x < limit.min.x) { offset.x = this._viscousLimit(offset.x, limit.min.x); }\n \t\tif (offset.y < limit.min.y) { offset.y = this._viscousLimit(offset.y, limit.min.y); }\n \t\tif (offset.x > limit.max.x) { offset.x = this._viscousLimit(offset.x, limit.max.x); }\n \t\tif (offset.y > limit.max.y) { offset.y = this._viscousLimit(offset.y, limit.max.y); }\n\n \t\tthis._draggable._newPos = this._draggable._startPos.add(offset);\n \t},\n\n \t_onPreDragWrap: function () {\n \t\t// TODO refactor to be able to adjust map pane position after zoom\n \t\tvar worldWidth = this._worldWidth,\n \t\t halfWidth = Math.round(worldWidth / 2),\n \t\t dx = this._initialWorldOffset,\n \t\t x = this._draggable._newPos.x,\n \t\t newX1 = (x - halfWidth + dx) % worldWidth + halfWidth - dx,\n \t\t newX2 = (x + halfWidth + dx) % worldWidth - halfWidth - dx,\n \t\t newX = Math.abs(newX1 + dx) < Math.abs(newX2 + dx) ? newX1 : newX2;\n\n \t\tthis._draggable._absPos = this._draggable._newPos.clone();\n \t\tthis._draggable._newPos.x = newX;\n \t},\n\n \t_onDragEnd: function (e) {\n \t\tvar map = this._map,\n \t\t options = map.options,\n\n \t\t noInertia = !options.inertia || e.noInertia || this._times.length < 2;\n\n \t\tmap.fire('dragend', e);\n\n \t\tif (noInertia) {\n \t\t\tmap.fire('moveend');\n\n \t\t} else {\n \t\t\tthis._prunePositions(+new Date());\n\n \t\t\tvar direction = this._lastPos.subtract(this._positions[0]),\n \t\t\t duration = (this._lastTime - this._times[0]) / 1000,\n \t\t\t ease = options.easeLinearity,\n\n \t\t\t speedVector = direction.multiplyBy(ease / duration),\n \t\t\t speed = speedVector.distanceTo([0, 0]),\n\n \t\t\t limitedSpeed = Math.min(options.inertiaMaxSpeed, speed),\n \t\t\t limitedSpeedVector = speedVector.multiplyBy(limitedSpeed / speed),\n\n \t\t\t decelerationDuration = limitedSpeed / (options.inertiaDeceleration * ease),\n \t\t\t offset = limitedSpeedVector.multiplyBy(-decelerationDuration / 2).round();\n\n \t\t\tif (!offset.x && !offset.y) {\n \t\t\t\tmap.fire('moveend');\n\n \t\t\t} else {\n \t\t\t\toffset = map._limitOffset(offset, map.options.maxBounds);\n\n \t\t\t\trequestAnimFrame(function () {\n \t\t\t\t\tmap.panBy(offset, {\n \t\t\t\t\t\tduration: decelerationDuration,\n \t\t\t\t\t\teaseLinearity: ease,\n \t\t\t\t\t\tnoMoveStart: true,\n \t\t\t\t\t\tanimate: true\n \t\t\t\t\t});\n \t\t\t\t});\n \t\t\t}\n \t\t}\n \t}\n });\n\n // @section Handlers\n // @property dragging: Handler\n // Map dragging handler (by both mouse and touch).\n Map.addInitHook('addHandler', 'dragging', Drag);\n\n /*\n * L.Map.Keyboard is handling keyboard interaction with the map, enabled by default.\n */\n\n // @namespace Map\n // @section Keyboard Navigation Options\n Map.mergeOptions({\n \t// @option keyboard: Boolean = true\n \t// Makes the map focusable and allows users to navigate the map with keyboard\n \t// arrows and `+`/`-` keys.\n \tkeyboard: true,\n\n \t// @option keyboardPanDelta: Number = 80\n \t// Amount of pixels to pan when pressing an arrow key.\n \tkeyboardPanDelta: 80\n });\n\n var Keyboard = Handler.extend({\n\n \tkeyCodes: {\n \t\tleft: [37],\n \t\tright: [39],\n \t\tdown: [40],\n \t\tup: [38],\n \t\tzoomIn: [187, 107, 61, 171],\n \t\tzoomOut: [189, 109, 54, 173]\n \t},\n\n \tinitialize: function (map) {\n \t\tthis._map = map;\n\n \t\tthis._setPanDelta(map.options.keyboardPanDelta);\n \t\tthis._setZoomDelta(map.options.zoomDelta);\n \t},\n\n \taddHooks: function () {\n \t\tvar container = this._map._container;\n\n \t\t// make the container focusable by tabbing\n \t\tif (container.tabIndex <= 0) {\n \t\t\tcontainer.tabIndex = '0';\n \t\t}\n\n \t\ton(container, {\n \t\t\tfocus: this._onFocus,\n \t\t\tblur: this._onBlur,\n \t\t\tmousedown: this._onMouseDown\n \t\t}, this);\n\n \t\tthis._map.on({\n \t\t\tfocus: this._addHooks,\n \t\t\tblur: this._removeHooks\n \t\t}, this);\n \t},\n\n \tremoveHooks: function () {\n \t\tthis._removeHooks();\n\n \t\toff(this._map._container, {\n \t\t\tfocus: this._onFocus,\n \t\t\tblur: this._onBlur,\n \t\t\tmousedown: this._onMouseDown\n \t\t}, this);\n\n \t\tthis._map.off({\n \t\t\tfocus: this._addHooks,\n \t\t\tblur: this._removeHooks\n \t\t}, this);\n \t},\n\n \t_onMouseDown: function () {\n \t\tif (this._focused) { return; }\n\n \t\tvar body = document.body,\n \t\t docEl = document.documentElement,\n \t\t top = body.scrollTop || docEl.scrollTop,\n \t\t left = body.scrollLeft || docEl.scrollLeft;\n\n \t\tthis._map._container.focus();\n\n \t\twindow.scrollTo(left, top);\n \t},\n\n \t_onFocus: function () {\n \t\tthis._focused = true;\n \t\tthis._map.fire('focus');\n \t},\n\n \t_onBlur: function () {\n \t\tthis._focused = false;\n \t\tthis._map.fire('blur');\n \t},\n\n \t_setPanDelta: function (panDelta) {\n \t\tvar keys = this._panKeys = {},\n \t\t codes = this.keyCodes,\n \t\t i, len;\n\n \t\tfor (i = 0, len = codes.left.length; i < len; i++) {\n \t\t\tkeys[codes.left[i]] = [-1 * panDelta, 0];\n \t\t}\n \t\tfor (i = 0, len = codes.right.length; i < len; i++) {\n \t\t\tkeys[codes.right[i]] = [panDelta, 0];\n \t\t}\n \t\tfor (i = 0, len = codes.down.length; i < len; i++) {\n \t\t\tkeys[codes.down[i]] = [0, panDelta];\n \t\t}\n \t\tfor (i = 0, len = codes.up.length; i < len; i++) {\n \t\t\tkeys[codes.up[i]] = [0, -1 * panDelta];\n \t\t}\n \t},\n\n \t_setZoomDelta: function (zoomDelta) {\n \t\tvar keys = this._zoomKeys = {},\n \t\t codes = this.keyCodes,\n \t\t i, len;\n\n \t\tfor (i = 0, len = codes.zoomIn.length; i < len; i++) {\n \t\t\tkeys[codes.zoomIn[i]] = zoomDelta;\n \t\t}\n \t\tfor (i = 0, len = codes.zoomOut.length; i < len; i++) {\n \t\t\tkeys[codes.zoomOut[i]] = -zoomDelta;\n \t\t}\n \t},\n\n \t_addHooks: function () {\n \t\ton(document, 'keydown', this._onKeyDown, this);\n \t},\n\n \t_removeHooks: function () {\n \t\toff(document, 'keydown', this._onKeyDown, this);\n \t},\n\n \t_onKeyDown: function (e) {\n \t\tif (e.altKey || e.ctrlKey || e.metaKey) { return; }\n\n \t\tvar key = e.keyCode,\n \t\t map = this._map,\n \t\t offset;\n\n \t\tif (key in this._panKeys) {\n \t\t\tif (!map._panAnim || !map._panAnim._inProgress) {\n \t\t\t\toffset = this._panKeys[key];\n \t\t\t\tif (e.shiftKey) {\n \t\t\t\t\toffset = toPoint(offset).multiplyBy(3);\n \t\t\t\t}\n\n \t\t\t\tif (map.options.maxBounds) {\n \t\t\t\t\toffset = map._limitOffset(toPoint(offset), map.options.maxBounds);\n \t\t\t\t}\n\n \t\t\t\tif (map.options.worldCopyJump) {\n \t\t\t\t\tvar newLatLng = map.wrapLatLng(map.unproject(map.project(map.getCenter()).add(offset)));\n \t\t\t\t\tmap.panTo(newLatLng);\n \t\t\t\t} else {\n \t\t\t\t\tmap.panBy(offset);\n \t\t\t\t}\n \t\t\t}\n \t\t} else if (key in this._zoomKeys) {\n \t\t\tmap.setZoom(map.getZoom() + (e.shiftKey ? 3 : 1) * this._zoomKeys[key]);\n\n \t\t} else if (key === 27 && map._popup && map._popup.options.closeOnEscapeKey) {\n \t\t\tmap.closePopup();\n\n \t\t} else {\n \t\t\treturn;\n \t\t}\n\n \t\tstop(e);\n \t}\n });\n\n // @section Handlers\n // @section Handlers\n // @property keyboard: Handler\n // Keyboard navigation handler.\n Map.addInitHook('addHandler', 'keyboard', Keyboard);\n\n /*\n * L.Handler.ScrollWheelZoom is used by L.Map to enable mouse scroll wheel zoom on the map.\n */\n\n // @namespace Map\n // @section Interaction Options\n Map.mergeOptions({\n \t// @section Mouse wheel options\n \t// @option scrollWheelZoom: Boolean|String = true\n \t// Whether the map can be zoomed by using the mouse wheel. If passed `'center'`,\n \t// it will zoom to the center of the view regardless of where the mouse was.\n \tscrollWheelZoom: true,\n\n \t// @option wheelDebounceTime: Number = 40\n \t// Limits the rate at which a wheel can fire (in milliseconds). By default\n \t// user can't zoom via wheel more often than once per 40 ms.\n \twheelDebounceTime: 40,\n\n \t// @option wheelPxPerZoomLevel: Number = 60\n \t// How many scroll pixels (as reported by [L.DomEvent.getWheelDelta](#domevent-getwheeldelta))\n \t// mean a change of one full zoom level. Smaller values will make wheel-zooming\n \t// faster (and vice versa).\n \twheelPxPerZoomLevel: 60\n });\n\n var ScrollWheelZoom = Handler.extend({\n \taddHooks: function () {\n \t\ton(this._map._container, 'wheel', this._onWheelScroll, this);\n\n \t\tthis._delta = 0;\n \t},\n\n \tremoveHooks: function () {\n \t\toff(this._map._container, 'wheel', this._onWheelScroll, this);\n \t},\n\n \t_onWheelScroll: function (e) {\n \t\tvar delta = getWheelDelta(e);\n\n \t\tvar debounce = this._map.options.wheelDebounceTime;\n\n \t\tthis._delta += delta;\n \t\tthis._lastMousePos = this._map.mouseEventToContainerPoint(e);\n\n \t\tif (!this._startTime) {\n \t\t\tthis._startTime = +new Date();\n \t\t}\n\n \t\tvar left = Math.max(debounce - (+new Date() - this._startTime), 0);\n\n \t\tclearTimeout(this._timer);\n \t\tthis._timer = setTimeout(bind(this._performZoom, this), left);\n\n \t\tstop(e);\n \t},\n\n \t_performZoom: function () {\n \t\tvar map = this._map,\n \t\t zoom = map.getZoom(),\n \t\t snap = this._map.options.zoomSnap || 0;\n\n \t\tmap._stop(); // stop panning and fly animations if any\n\n \t\t// map the delta with a sigmoid function to -4..4 range leaning on -1..1\n \t\tvar d2 = this._delta / (this._map.options.wheelPxPerZoomLevel * 4),\n \t\t d3 = 4 * Math.log(2 / (1 + Math.exp(-Math.abs(d2)))) / Math.LN2,\n \t\t d4 = snap ? Math.ceil(d3 / snap) * snap : d3,\n \t\t delta = map._limitZoom(zoom + (this._delta > 0 ? d4 : -d4)) - zoom;\n\n \t\tthis._delta = 0;\n \t\tthis._startTime = null;\n\n \t\tif (!delta) { return; }\n\n \t\tif (map.options.scrollWheelZoom === 'center') {\n \t\t\tmap.setZoom(zoom + delta);\n \t\t} else {\n \t\t\tmap.setZoomAround(this._lastMousePos, zoom + delta);\n \t\t}\n \t}\n });\n\n // @section Handlers\n // @property scrollWheelZoom: Handler\n // Scroll wheel zoom handler.\n Map.addInitHook('addHandler', 'scrollWheelZoom', ScrollWheelZoom);\n\n /*\n * L.Map.TapHold is used to simulate `contextmenu` event on long hold,\n * which otherwise is not fired by mobile Safari.\n */\n\n var tapHoldDelay = 600;\n\n // @namespace Map\n // @section Interaction Options\n Map.mergeOptions({\n \t// @section Touch interaction options\n \t// @option tapHold: Boolean\n \t// Enables simulation of `contextmenu` event, default is `true` for mobile Safari.\n \ttapHold: Browser.touchNative && Browser.safari && Browser.mobile,\n\n \t// @option tapTolerance: Number = 15\n \t// The max number of pixels a user can shift his finger during touch\n \t// for it to be considered a valid tap.\n \ttapTolerance: 15\n });\n\n var TapHold = Handler.extend({\n \taddHooks: function () {\n \t\ton(this._map._container, 'touchstart', this._onDown, this);\n \t},\n\n \tremoveHooks: function () {\n \t\toff(this._map._container, 'touchstart', this._onDown, this);\n \t},\n\n \t_onDown: function (e) {\n \t\tclearTimeout(this._holdTimeout);\n \t\tif (e.touches.length !== 1) { return; }\n\n \t\tvar first = e.touches[0];\n \t\tthis._startPos = this._newPos = new Point(first.clientX, first.clientY);\n\n \t\tthis._holdTimeout = setTimeout(bind(function () {\n \t\t\tthis._cancel();\n \t\t\tif (!this._isTapValid()) { return; }\n\n \t\t\t// prevent simulated mouse events https://w3c.github.io/touch-events/#mouse-events\n \t\t\ton(document, 'touchend', preventDefault);\n \t\t\ton(document, 'touchend touchcancel', this._cancelClickPrevent);\n \t\t\tthis._simulateEvent('contextmenu', first);\n \t\t}, this), tapHoldDelay);\n\n \t\ton(document, 'touchend touchcancel contextmenu', this._cancel, this);\n \t\ton(document, 'touchmove', this._onMove, this);\n \t},\n\n \t_cancelClickPrevent: function cancelClickPrevent() {\n \t\toff(document, 'touchend', preventDefault);\n \t\toff(document, 'touchend touchcancel', cancelClickPrevent);\n \t},\n\n \t_cancel: function () {\n \t\tclearTimeout(this._holdTimeout);\n \t\toff(document, 'touchend touchcancel contextmenu', this._cancel, this);\n \t\toff(document, 'touchmove', this._onMove, this);\n \t},\n\n \t_onMove: function (e) {\n \t\tvar first = e.touches[0];\n \t\tthis._newPos = new Point(first.clientX, first.clientY);\n \t},\n\n \t_isTapValid: function () {\n \t\treturn this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance;\n \t},\n\n \t_simulateEvent: function (type, e) {\n \t\tvar simulatedEvent = new MouseEvent(type, {\n \t\t\tbubbles: true,\n \t\t\tcancelable: true,\n \t\t\tview: window,\n \t\t\t// detail: 1,\n \t\t\tscreenX: e.screenX,\n \t\t\tscreenY: e.screenY,\n \t\t\tclientX: e.clientX,\n \t\t\tclientY: e.clientY,\n \t\t\t// button: 2,\n \t\t\t// buttons: 2\n \t\t});\n\n \t\tsimulatedEvent._simulated = true;\n\n \t\te.target.dispatchEvent(simulatedEvent);\n \t}\n });\n\n // @section Handlers\n // @property tapHold: Handler\n // Long tap handler to simulate `contextmenu` event (useful in mobile Safari).\n Map.addInitHook('addHandler', 'tapHold', TapHold);\n\n /*\n * L.Handler.TouchZoom is used by L.Map to add pinch zoom on supported mobile browsers.\n */\n\n // @namespace Map\n // @section Interaction Options\n Map.mergeOptions({\n \t// @section Touch interaction options\n \t// @option touchZoom: Boolean|String = *\n \t// Whether the map can be zoomed by touch-dragging with two fingers. If\n \t// passed `'center'`, it will zoom to the center of the view regardless of\n \t// where the touch events (fingers) were. Enabled for touch-capable web\n \t// browsers.\n \ttouchZoom: Browser.touch,\n\n \t// @option bounceAtZoomLimits: Boolean = true\n \t// Set it to false if you don't want the map to zoom beyond min/max zoom\n \t// and then bounce back when pinch-zooming.\n \tbounceAtZoomLimits: true\n });\n\n var TouchZoom = Handler.extend({\n \taddHooks: function () {\n \t\taddClass(this._map._container, 'leaflet-touch-zoom');\n \t\ton(this._map._container, 'touchstart', this._onTouchStart, this);\n \t},\n\n \tremoveHooks: function () {\n \t\tremoveClass(this._map._container, 'leaflet-touch-zoom');\n \t\toff(this._map._container, 'touchstart', this._onTouchStart, this);\n \t},\n\n \t_onTouchStart: function (e) {\n \t\tvar map = this._map;\n \t\tif (!e.touches || e.touches.length !== 2 || map._animatingZoom || this._zooming) { return; }\n\n \t\tvar p1 = map.mouseEventToContainerPoint(e.touches[0]),\n \t\t p2 = map.mouseEventToContainerPoint(e.touches[1]);\n\n \t\tthis._centerPoint = map.getSize()._divideBy(2);\n \t\tthis._startLatLng = map.containerPointToLatLng(this._centerPoint);\n \t\tif (map.options.touchZoom !== 'center') {\n \t\t\tthis._pinchStartLatLng = map.containerPointToLatLng(p1.add(p2)._divideBy(2));\n \t\t}\n\n \t\tthis._startDist = p1.distanceTo(p2);\n \t\tthis._startZoom = map.getZoom();\n\n \t\tthis._moved = false;\n \t\tthis._zooming = true;\n\n \t\tmap._stop();\n\n \t\ton(document, 'touchmove', this._onTouchMove, this);\n \t\ton(document, 'touchend touchcancel', this._onTouchEnd, this);\n\n \t\tpreventDefault(e);\n \t},\n\n \t_onTouchMove: function (e) {\n \t\tif (!e.touches || e.touches.length !== 2 || !this._zooming) { return; }\n\n \t\tvar map = this._map,\n \t\t p1 = map.mouseEventToContainerPoint(e.touches[0]),\n \t\t p2 = map.mouseEventToContainerPoint(e.touches[1]),\n \t\t scale = p1.distanceTo(p2) / this._startDist;\n\n \t\tthis._zoom = map.getScaleZoom(scale, this._startZoom);\n\n \t\tif (!map.options.bounceAtZoomLimits && (\n \t\t\t(this._zoom < map.getMinZoom() && scale < 1) ||\n \t\t\t(this._zoom > map.getMaxZoom() && scale > 1))) {\n \t\t\tthis._zoom = map._limitZoom(this._zoom);\n \t\t}\n\n \t\tif (map.options.touchZoom === 'center') {\n \t\t\tthis._center = this._startLatLng;\n \t\t\tif (scale === 1) { return; }\n \t\t} else {\n \t\t\t// Get delta from pinch to center, so centerLatLng is delta applied to initial pinchLatLng\n \t\t\tvar delta = p1._add(p2)._divideBy(2)._subtract(this._centerPoint);\n \t\t\tif (scale === 1 && delta.x === 0 && delta.y === 0) { return; }\n \t\t\tthis._center = map.unproject(map.project(this._pinchStartLatLng, this._zoom).subtract(delta), this._zoom);\n \t\t}\n\n \t\tif (!this._moved) {\n \t\t\tmap._moveStart(true, false);\n \t\t\tthis._moved = true;\n \t\t}\n\n \t\tcancelAnimFrame(this._animRequest);\n\n \t\tvar moveFn = bind(map._move, map, this._center, this._zoom, {pinch: true, round: false}, undefined);\n \t\tthis._animRequest = requestAnimFrame(moveFn, this, true);\n\n \t\tpreventDefault(e);\n \t},\n\n \t_onTouchEnd: function () {\n \t\tif (!this._moved || !this._zooming) {\n \t\t\tthis._zooming = false;\n \t\t\treturn;\n \t\t}\n\n \t\tthis._zooming = false;\n \t\tcancelAnimFrame(this._animRequest);\n\n \t\toff(document, 'touchmove', this._onTouchMove, this);\n \t\toff(document, 'touchend touchcancel', this._onTouchEnd, this);\n\n \t\t// Pinch updates GridLayers' levels only when zoomSnap is off, so zoomSnap becomes noUpdate.\n \t\tif (this._map.options.zoomAnimation) {\n \t\t\tthis._map._animateZoom(this._center, this._map._limitZoom(this._zoom), true, this._map.options.zoomSnap);\n \t\t} else {\n \t\t\tthis._map._resetView(this._center, this._map._limitZoom(this._zoom));\n \t\t}\n \t}\n });\n\n // @section Handlers\n // @property touchZoom: Handler\n // Touch zoom handler.\n Map.addInitHook('addHandler', 'touchZoom', TouchZoom);\n\n Map.BoxZoom = BoxZoom;\n Map.DoubleClickZoom = DoubleClickZoom;\n Map.Drag = Drag;\n Map.Keyboard = Keyboard;\n Map.ScrollWheelZoom = ScrollWheelZoom;\n Map.TapHold = TapHold;\n Map.TouchZoom = TouchZoom;\n\n exports.Bounds = Bounds;\n exports.Browser = Browser;\n exports.CRS = CRS;\n exports.Canvas = Canvas;\n exports.Circle = Circle;\n exports.CircleMarker = CircleMarker;\n exports.Class = Class;\n exports.Control = Control;\n exports.DivIcon = DivIcon;\n exports.DivOverlay = DivOverlay;\n exports.DomEvent = DomEvent;\n exports.DomUtil = DomUtil;\n exports.Draggable = Draggable;\n exports.Evented = Evented;\n exports.FeatureGroup = FeatureGroup;\n exports.GeoJSON = GeoJSON;\n exports.GridLayer = GridLayer;\n exports.Handler = Handler;\n exports.Icon = Icon;\n exports.ImageOverlay = ImageOverlay;\n exports.LatLng = LatLng;\n exports.LatLngBounds = LatLngBounds;\n exports.Layer = Layer;\n exports.LayerGroup = LayerGroup;\n exports.LineUtil = LineUtil;\n exports.Map = Map;\n exports.Marker = Marker;\n exports.Mixin = Mixin;\n exports.Path = Path;\n exports.Point = Point;\n exports.PolyUtil = PolyUtil;\n exports.Polygon = Polygon;\n exports.Polyline = Polyline;\n exports.Popup = Popup;\n exports.PosAnimation = PosAnimation;\n exports.Projection = index;\n exports.Rectangle = Rectangle;\n exports.Renderer = Renderer;\n exports.SVG = SVG;\n exports.SVGOverlay = SVGOverlay;\n exports.TileLayer = TileLayer;\n exports.Tooltip = Tooltip;\n exports.Transformation = Transformation;\n exports.Util = Util;\n exports.VideoOverlay = VideoOverlay;\n exports.bind = bind;\n exports.bounds = toBounds;\n exports.canvas = canvas;\n exports.circle = circle;\n exports.circleMarker = circleMarker;\n exports.control = control;\n exports.divIcon = divIcon;\n exports.extend = extend;\n exports.featureGroup = featureGroup;\n exports.geoJSON = geoJSON;\n exports.geoJson = geoJson;\n exports.gridLayer = gridLayer;\n exports.icon = icon;\n exports.imageOverlay = imageOverlay;\n exports.latLng = toLatLng;\n exports.latLngBounds = toLatLngBounds;\n exports.layerGroup = layerGroup;\n exports.map = createMap;\n exports.marker = marker;\n exports.point = toPoint;\n exports.polygon = polygon;\n exports.polyline = polyline;\n exports.popup = popup;\n exports.rectangle = rectangle;\n exports.setOptions = setOptions;\n exports.stamp = stamp;\n exports.svg = svg;\n exports.svgOverlay = svgOverlay;\n exports.tileLayer = tileLayer;\n exports.tooltip = tooltip;\n exports.transformation = toTransformation;\n exports.version = version;\n exports.videoOverlay = videoOverlay;\n\n var oldL = window.L;\n exports.noConflict = function() {\n \twindow.L = oldL;\n \treturn this;\n }\n // Always export us to window global (see #2364)\n window.L = exports;\n\n}));\n//# sourceMappingURL=leaflet-src.js.map\n","/*\n * leaflet.fullscreen\n * (c) Bruno B.; MIT License\n * Uses fragments from the package 'screenfull'\n */\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// define an AMD module that requires 'leaflet'\n\t\t// and resolve to an object containing leaflet\n\t\tdefine('leafletFullScreen', ['leaflet'], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// define a CommonJS module that requires 'leaflet'\n\t\tmodule.exports = factory(require('leaflet'));\n\t} else {\n\t\t// Assume 'leaflet' are loaded into global variable already\n\t\tfactory(root.L);\n\t}\n}(typeof self !== 'undefined'\n\t? self\n\t: this, (leaflet) => {\n\t'use strict';\n\n\tif (typeof document === 'undefined') {\n\t\tconsole.warn('\"window.document\" is undefined; leaflet.fullscreen requires this object to access the DOM');\n\t\treturn false;\n\t}\n\n\tconst nativeAPI = (() => {\n\t\tconst methodMap = [\n\t\t\t// Standard\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\t\t\t]\n\t\t];\n\n\t\tconst baseList = methodMap[0];\n\t\tconst ret = {};\n\n\t\tfor (const methodList of methodMap) {\n\t\t\tif (methodList[1] in document) {\n\t\t\t\tfor (let i = 0; i < methodList.length; i++) {\n\t\t\t\t\tret[baseList[i]] = methodList[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tconst eventNameMap = {\n\t\tchange: nativeAPI.fullscreenchange,\n\t\terror: nativeAPI.fullscreenerror,\n\t};\n\n\tconst fullscreenAPI = {\n\t\trequest(element, options) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\t\t\t\telement = element || document.documentElement;\n\t\t\t\tconst returnPromise = element[nativeAPI.requestFullscreen](options);\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\texit() {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\t\t\t\tconst returnPromise = document[nativeAPI.exitFullscreen]();\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\ton(event, callback) {\n\t\t\tconst eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff(event, callback) {\n\t\t\tconst eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\tnativeAPI: nativeAPI\n\t};\n\n\tObject.defineProperties(fullscreenAPI, {\n\t\tisFullscreen: {\n\t\t\tget() {\n\t\t\t\treturn Boolean(document[nativeAPI.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget() {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[nativeAPI.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tleaflet.Control.FullScreen = leaflet.Control.extend({\n\t\toptions: {\n\t\t\tposition: 'topleft',\n\t\t\ttitle: 'Full Screen',\n\t\t\ttitleCancel: 'Exit Full Screen',\n\t\t\tforceSeparateButton: false,\n\t\t\tforcePseudoFullscreen: false,\n\t\t\tfullscreenElement: false\n\t\t},\n\n\t\t_screenfull: fullscreenAPI,\n\n\t\tonAdd(map) {\n\t\t\tlet className = 'leaflet-control-zoom-fullscreen';\n\t\t\tlet container;\n\t\t\tlet content = '';\n\n\t\t\tif (map.zoomControl && !this.options.forceSeparateButton) {\n\t\t\t\tcontainer = map.zoomControl._container;\n\t\t\t} else {\n\t\t\t\tcontainer = leaflet.DomUtil.create('div', 'leaflet-bar');\n\t\t\t}\n\n\t\t\tif (this.options.content) {\n\t\t\t\tcontent = this.options.content;\n\t\t\t} else {\n\t\t\t\tclassName += ' fullscreen-icon';\n\t\t\t}\n\n\t\t\tthis._createButton(this.options.title, className, content, container, this.toggleFullScreen, this);\n\t\t\tthis._map.fullscreenControl = this;\n\n\t\t\tthis._map.on('enterFullscreen exitFullscreen', this._toggleState, this);\n\n\t\t\treturn container;\n\t\t},\n\n\t\tonRemove() {\n\t\t\tleaflet.DomEvent\n\t\t\t\t.off(this.link, 'click', leaflet.DomEvent.stop)\n\t\t\t\t.off(this.link, 'click', this.toggleFullScreen, this);\n\n\t\t\tif (this._screenfull.isEnabled) {\n\t\t\t\tleaflet.DomEvent\n\t\t\t\t\t.off(this._container, this._screenfull.nativeAPI.fullscreenchange, leaflet.DomEvent.stop)\n\t\t\t\t\t.off(this._container, this._screenfull.nativeAPI.fullscreenchange, this._handleFullscreenChange, this);\n\n\t\t\t\tleaflet.DomEvent\n\t\t\t\t\t.off(document, this._screenfull.nativeAPI.fullscreenchange, leaflet.DomEvent.stop)\n\t\t\t\t\t.off(document, this._screenfull.nativeAPI.fullscreenchange, this._handleFullscreenChange, this);\n\t\t\t}\n\t\t},\n\n\t\t_createButton(title, className, content, container, fn, context) {\n\t\t\tthis.link = leaflet.DomUtil.create('a', className, container);\n\t\t\tthis.link.href = '#';\n\t\t\tthis.link.title = title;\n\t\t\tthis.link.innerHTML = content;\n\n\t\t\tthis.link.setAttribute('role', 'button');\n\t\t\tthis.link.setAttribute('aria-label', title);\n\n\t\t\tL.DomEvent.disableClickPropagation(container);\n\n\t\t\tleaflet.DomEvent\n\t\t\t\t.on(this.link, 'click', leaflet.DomEvent.stop)\n\t\t\t\t.on(this.link, 'click', fn, context);\n\n\t\t\tif (this._screenfull.isEnabled) {\n\t\t\t\tleaflet.DomEvent\n\t\t\t\t\t.on(container, this._screenfull.nativeAPI.fullscreenchange, leaflet.DomEvent.stop)\n\t\t\t\t\t.on(container, this._screenfull.nativeAPI.fullscreenchange, this._handleFullscreenChange, context);\n\n\t\t\t\tleaflet.DomEvent\n\t\t\t\t\t.on(document, this._screenfull.nativeAPI.fullscreenchange, leaflet.DomEvent.stop)\n\t\t\t\t\t.on(document, this._screenfull.nativeAPI.fullscreenchange, this._handleFullscreenChange, context);\n\t\t\t}\n\n\t\t\treturn this.link;\n\t\t},\n\n\t\ttoggleFullScreen() {\n\t\t\tconst map = this._map;\n\t\t\tmap._exitFired = false;\n\t\t\tif (map._isFullscreen) {\n\t\t\t\tif (this._screenfull.isEnabled && !this.options.forcePseudoFullscreen) {\n\t\t\t\t\tthis._screenfull.exit().then(() => map.invalidateSize());\n\t\t\t\t} else {\n\t\t\t\t\tleaflet.DomUtil.removeClass(this.options.fullscreenElement\n\t\t\t\t\t\t? this.options.fullscreenElement\n\t\t\t\t\t\t: map._container, 'leaflet-pseudo-fullscreen');\n\t\t\t\t\tmap.invalidateSize();\n\t\t\t\t}\n\t\t\t\tmap.fire('exitFullscreen');\n\t\t\t\tmap._exitFired = true;\n\t\t\t\tmap._isFullscreen = false;\n\t\t\t} else {\n\t\t\t\tif (this._screenfull.isEnabled && !this.options.forcePseudoFullscreen) {\n\t\t\t\t\tthis._screenfull.request(this.options.fullscreenElement\n\t\t\t\t\t\t? this.options.fullscreenElement\n\t\t\t\t\t\t: map._container).then(() => map.invalidateSize());\n\t\t\t\t} else {\n\t\t\t\t\tleaflet.DomUtil.addClass(this.options.fullscreenElement\n\t\t\t\t\t\t? this.options.fullscreenElement\n\t\t\t\t\t\t: map._container, 'leaflet-pseudo-fullscreen');\n\t\t\t\t\tmap.invalidateSize();\n\t\t\t\t}\n\t\t\t\tmap.fire('enterFullscreen');\n\t\t\t\tmap._isFullscreen = true;\n\t\t\t}\n\t\t},\n\n\t\t_toggleState() {\n\t\t\tthis.link.title = this._map._isFullscreen\n\t\t\t\t? this.options.title\n\t\t\t\t: this.options.titleCancel;\n\t\t\tthis._map._isFullscreen\n\t\t\t\t? L.DomUtil.removeClass(this.link, 'leaflet-fullscreen-on')\n\t\t\t\t: L.DomUtil.addClass(this.link, 'leaflet-fullscreen-on');\n\t\t},\n\n\t\t_handleFullscreenChange(ev) {\n\t\t\tconst map = this._map;\n\t\t\tif (ev.target === map.getContainer() && !this._screenfull.isFullscreen && !map._exitFired) {\n\t\t\t\tthis._screenfull.exit().then(() => map.invalidateSize());\n\t\t\t\tmap.fire('exitFullscreen');\n\t\t\t\tmap._exitFired = true;\n\t\t\t\tmap._isFullscreen = false;\n\t\t\t}\n\t\t}\n\t});\n\n\tleaflet.Map.include({\n\t\ttoggleFullscreen() {\n\t\t\tthis.fullscreenControl.toggleFullScreen();\n\t\t}\n\t});\n\n\tleaflet.Map.addInitHook(function () {\n\t\tif (this.options.fullscreenControl) {\n\t\t\tthis.addControl(leaflet.control.fullscreen(this.options.fullscreenControlOptions));\n\t\t}\n\t});\n\n\tleaflet.control.fullscreen = function (options) {\n\t\treturn new leaflet.Control.FullScreen(options);\n\t};\n\n\treturn { leaflet };\n}));\n","/*\n * Leaflet.markercluster 1.5.3+master.e5124b2,\n * Provides Beautiful Animated Marker Clustering functionality for Leaflet, a JS library for interactive maps.\n * https://github.com/Leaflet/Leaflet.markercluster\n * (c) 2012-2017, Dave Leaver, smartrak\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(global = global || self, factory((global.Leaflet = global.Leaflet || {}, global.Leaflet.markercluster = {})));\n}(this, function (exports) { 'use strict';\n\n\t/*\n\t * L.MarkerClusterGroup extends L.FeatureGroup by clustering the markers contained within\n\t */\n\n\tvar MarkerClusterGroup = L.MarkerClusterGroup = L.FeatureGroup.extend({\n\n\t\toptions: {\n\t\t\tmaxClusterRadius: 80, //A cluster will cover at most this many pixels from its center\n\t\t\ticonCreateFunction: null,\n\t\t\tclusterPane: L.Marker.prototype.options.pane,\n\n\t\t\tspiderfyOnEveryZoom: false,\n\t\t\tspiderfyOnMaxZoom: true,\n\t\t\tshowCoverageOnHover: true,\n\t\t\tzoomToBoundsOnClick: true,\n\t\t\tsingleMarkerMode: false,\n\n\t\t\tdisableClusteringAtZoom: null,\n\n\t\t\t// Setting this to false prevents the removal of any clusters outside of the viewpoint, which\n\t\t\t// is the default behaviour for performance reasons.\n\t\t\tremoveOutsideVisibleBounds: true,\n\n\t\t\t// Set to false to disable all animations (zoom and spiderfy).\n\t\t\t// If false, option animateAddingMarkers below has no effect.\n\t\t\t// If L.DomUtil.TRANSITION is falsy, this option has no effect.\n\t\t\tanimate: true,\n\n\t\t\t//Whether to animate adding markers after adding the MarkerClusterGroup to the map\n\t\t\t// If you are adding individual markers set to true, if adding bulk markers leave false for massive performance gains.\n\t\t\tanimateAddingMarkers: false,\n\n\t\t\t// Make it possible to provide custom function to calculate spiderfy shape positions\n\t\t\tspiderfyShapePositions: null,\n\n\t\t\t//Increase to increase the distance away that spiderfied markers appear from the center\n\t\t\tspiderfyDistanceMultiplier: 1,\n\n\t\t\t// Make it possible to specify a polyline options on a spider leg\n\t\t\tspiderLegPolylineOptions: { weight: 1.5, color: '#222', opacity: 0.5 },\n\n\t\t\t// When bulk adding layers, adds markers in chunks. Means addLayers may not add all the layers in the call, others will be loaded during setTimeouts\n\t\t\tchunkedLoading: false,\n\t\t\tchunkInterval: 200, // process markers for a maximum of ~ n milliseconds (then trigger the chunkProgress callback)\n\t\t\tchunkDelay: 50, // at the end of each interval, give n milliseconds back to system/browser\n\t\t\tchunkProgress: null, // progress callback: function(processed, total, elapsed) (e.g. for a progress indicator)\n\n\t\t\t//Options to pass to the L.Polygon constructor\n\t\t\tpolygonOptions: {}\n\t\t},\n\n\t\tinitialize: function (options) {\n\t\t\tL.Util.setOptions(this, options);\n\t\t\tif (!this.options.iconCreateFunction) {\n\t\t\t\tthis.options.iconCreateFunction = this._defaultIconCreateFunction;\n\t\t\t}\n\n\t\t\tthis._featureGroup = L.featureGroup();\n\t\t\tthis._featureGroup.addEventParent(this);\n\n\t\t\tthis._nonPointGroup = L.featureGroup();\n\t\t\tthis._nonPointGroup.addEventParent(this);\n\n\t\t\tthis._inZoomAnimation = 0;\n\t\t\tthis._needsClustering = [];\n\t\t\tthis._needsRemoving = []; //Markers removed while we aren't on the map need to be kept track of\n\t\t\t//The bounds of the currently shown area (from _getExpandedVisibleBounds) Updated on zoom/move\n\t\t\tthis._currentShownBounds = null;\n\n\t\t\tthis._queue = [];\n\n\t\t\tthis._childMarkerEventHandlers = {\n\t\t\t\t'dragstart': this._childMarkerDragStart,\n\t\t\t\t'move': this._childMarkerMoved,\n\t\t\t\t'dragend': this._childMarkerDragEnd,\n\t\t\t};\n\n\t\t\t// Hook the appropriate animation methods.\n\t\t\tvar animate = L.DomUtil.TRANSITION && this.options.animate;\n\t\t\tL.extend(this, animate ? this._withAnimation : this._noAnimation);\n\t\t\t// Remember which MarkerCluster class to instantiate (animated or not).\n\t\t\tthis._markerCluster = animate ? L.MarkerCluster : L.MarkerClusterNonAnimated;\n\t\t},\n\n\t\taddLayer: function (layer) {\n\n\t\t\tif (layer instanceof L.LayerGroup) {\n\t\t\t\treturn this.addLayers([layer]);\n\t\t\t}\n\n\t\t\t//Don't cluster non point data\n\t\t\tif (!layer.getLatLng) {\n\t\t\t\tthis._nonPointGroup.addLayer(layer);\n\t\t\t\tthis.fire('layeradd', { layer: layer });\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tif (!this._map) {\n\t\t\t\tthis._needsClustering.push(layer);\n\t\t\t\tthis.fire('layeradd', { layer: layer });\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tif (this.hasLayer(layer)) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\n\t\t\t//If we have already clustered we'll need to add this one to a cluster\n\n\t\t\tif (this._unspiderfy) {\n\t\t\t\tthis._unspiderfy();\n\t\t\t}\n\n\t\t\tthis._addLayer(layer, this._maxZoom);\n\t\t\tthis.fire('layeradd', { layer: layer });\n\n\t\t\t// Refresh bounds and weighted positions.\n\t\t\tthis._topClusterLevel._recalculateBounds();\n\n\t\t\tthis._refreshClustersIcons();\n\n\t\t\t//Work out what is visible\n\t\t\tvar visibleLayer = layer,\n\t\t\t currentZoom = this._zoom;\n\t\t\tif (layer.__parent) {\n\t\t\t\twhile (visibleLayer.__parent._zoom >= currentZoom) {\n\t\t\t\t\tvisibleLayer = visibleLayer.__parent;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this._currentShownBounds.contains(visibleLayer.getLatLng())) {\n\t\t\t\tif (this.options.animateAddingMarkers) {\n\t\t\t\t\tthis._animationAddLayer(layer, visibleLayer);\n\t\t\t\t} else {\n\t\t\t\t\tthis._animationAddLayerNonAnimated(layer, visibleLayer);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tremoveLayer: function (layer) {\n\n\t\t\tif (layer instanceof L.LayerGroup) {\n\t\t\t\treturn this.removeLayers([layer]);\n\t\t\t}\n\n\t\t\t//Non point layers\n\t\t\tif (!layer.getLatLng) {\n\t\t\t\tthis._nonPointGroup.removeLayer(layer);\n\t\t\t\tthis.fire('layerremove', { layer: layer });\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tif (!this._map) {\n\t\t\t\tif (!this._arraySplice(this._needsClustering, layer) && this.hasLayer(layer)) {\n\t\t\t\t\tthis._needsRemoving.push({ layer: layer, latlng: layer._latlng });\n\t\t\t\t}\n\t\t\t\tthis.fire('layerremove', { layer: layer });\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tif (!layer.__parent) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tif (this._unspiderfy) {\n\t\t\t\tthis._unspiderfy();\n\t\t\t\tthis._unspiderfyLayer(layer);\n\t\t\t}\n\n\t\t\t//Remove the marker from clusters\n\t\t\tthis._removeLayer(layer, true);\n\t\t\tthis.fire('layerremove', { layer: layer });\n\n\t\t\t// Refresh bounds and weighted positions.\n\t\t\tthis._topClusterLevel._recalculateBounds();\n\n\t\t\tthis._refreshClustersIcons();\n\n\t\t\tlayer.off(this._childMarkerEventHandlers, this);\n\n\t\t\tif (this._featureGroup.hasLayer(layer)) {\n\t\t\t\tthis._featureGroup.removeLayer(layer);\n\t\t\t\tif (layer.clusterShow) {\n\t\t\t\t\tlayer.clusterShow();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t//Takes an array of markers and adds them in bulk\n\t\taddLayers: function (layersArray, skipLayerAddEvent) {\n\t\t\tif (!L.Util.isArray(layersArray)) {\n\t\t\t\treturn this.addLayer(layersArray);\n\t\t\t}\n\n\t\t\tvar fg = this._featureGroup,\n\t\t\t npg = this._nonPointGroup,\n\t\t\t chunked = this.options.chunkedLoading,\n\t\t\t chunkInterval = this.options.chunkInterval,\n\t\t\t chunkProgress = this.options.chunkProgress,\n\t\t\t l = layersArray.length,\n\t\t\t offset = 0,\n\t\t\t originalArray = true,\n\t\t\t m;\n\n\t\t\tif (this._map) {\n\t\t\t\tvar started = (new Date()).getTime();\n\t\t\t\tvar process = L.bind(function () {\n\t\t\t\t\tvar start = (new Date()).getTime();\n\n\t\t\t\t\t// Make sure to unspiderfy before starting to add some layers\n\t\t\t\t\tif (this._map && this._unspiderfy) {\n\t\t\t\t\t\tthis._unspiderfy();\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (; offset < l; offset++) {\n\t\t\t\t\t\tif (chunked && offset % 200 === 0) {\n\t\t\t\t\t\t\t// every couple hundred markers, instrument the time elapsed since processing started:\n\t\t\t\t\t\t\tvar elapsed = (new Date()).getTime() - start;\n\t\t\t\t\t\t\tif (elapsed > chunkInterval) {\n\t\t\t\t\t\t\t\tbreak; // been working too hard, time to take a break :-)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tm = layersArray[offset];\n\n\t\t\t\t\t\t// Group of layers, append children to layersArray and skip.\n\t\t\t\t\t\t// Side effects:\n\t\t\t\t\t\t// - Total increases, so chunkProgress ratio jumps backward.\n\t\t\t\t\t\t// - Groups are not included in this group, only their non-group child layers (hasLayer).\n\t\t\t\t\t\t// Changing array length while looping does not affect performance in current browsers:\n\t\t\t\t\t\t// http://jsperf.com/for-loop-changing-length/6\n\t\t\t\t\t\tif (m instanceof L.LayerGroup) {\n\t\t\t\t\t\t\tif (originalArray) {\n\t\t\t\t\t\t\t\tlayersArray = layersArray.slice();\n\t\t\t\t\t\t\t\toriginalArray = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis._extractNonGroupLayers(m, layersArray);\n\t\t\t\t\t\t\tl = layersArray.length;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//Not point data, can't be clustered\n\t\t\t\t\t\tif (!m.getLatLng) {\n\t\t\t\t\t\t\tnpg.addLayer(m);\n\t\t\t\t\t\t\tif (!skipLayerAddEvent) {\n\t\t\t\t\t\t\t\tthis.fire('layeradd', { layer: m });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.hasLayer(m)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._addLayer(m, this._maxZoom);\n\t\t\t\t\t\tif (!skipLayerAddEvent) {\n\t\t\t\t\t\t\tthis.fire('layeradd', { layer: m });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//If we just made a cluster of size 2 then we need to remove the other marker from the map (if it is) or we never will\n\t\t\t\t\t\tif (m.__parent) {\n\t\t\t\t\t\t\tif (m.__parent.getChildCount() === 2) {\n\t\t\t\t\t\t\t\tvar markers = m.__parent.getAllChildMarkers(),\n\t\t\t\t\t\t\t\t otherMarker = markers[0] === m ? markers[1] : markers[0];\n\t\t\t\t\t\t\t\tfg.removeLayer(otherMarker);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (chunkProgress) {\n\t\t\t\t\t\t// report progress and time elapsed:\n\t\t\t\t\t\tchunkProgress(offset, l, (new Date()).getTime() - started);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Completed processing all markers.\n\t\t\t\t\tif (offset === l) {\n\n\t\t\t\t\t\t// Refresh bounds and weighted positions.\n\t\t\t\t\t\tthis._topClusterLevel._recalculateBounds();\n\n\t\t\t\t\t\tthis._refreshClustersIcons();\n\n\t\t\t\t\t\tthis._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetTimeout(process, this.options.chunkDelay);\n\t\t\t\t\t}\n\t\t\t\t}, this);\n\n\t\t\t\tprocess();\n\t\t\t} else {\n\t\t\t\tvar needsClustering = this._needsClustering;\n\n\t\t\t\tfor (; offset < l; offset++) {\n\t\t\t\t\tm = layersArray[offset];\n\n\t\t\t\t\t// Group of layers, append children to layersArray and skip.\n\t\t\t\t\tif (m instanceof L.LayerGroup) {\n\t\t\t\t\t\tif (originalArray) {\n\t\t\t\t\t\t\tlayersArray = layersArray.slice();\n\t\t\t\t\t\t\toriginalArray = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._extractNonGroupLayers(m, layersArray);\n\t\t\t\t\t\tl = layersArray.length;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t//Not point data, can't be clustered\n\t\t\t\t\tif (!m.getLatLng) {\n\t\t\t\t\t\tnpg.addLayer(m);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.hasLayer(m)) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tneedsClustering.push(m);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t//Takes an array of markers and removes them in bulk\n\t\tremoveLayers: function (layersArray) {\n\t\t\tvar i, m,\n\t\t\t l = layersArray.length,\n\t\t\t fg = this._featureGroup,\n\t\t\t npg = this._nonPointGroup,\n\t\t\t originalArray = true;\n\n\t\t\tif (!this._map) {\n\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\tm = layersArray[i];\n\n\t\t\t\t\t// Group of layers, append children to layersArray and skip.\n\t\t\t\t\tif (m instanceof L.LayerGroup) {\n\t\t\t\t\t\tif (originalArray) {\n\t\t\t\t\t\t\tlayersArray = layersArray.slice();\n\t\t\t\t\t\t\toriginalArray = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._extractNonGroupLayers(m, layersArray);\n\t\t\t\t\t\tl = layersArray.length;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._arraySplice(this._needsClustering, m);\n\t\t\t\t\tnpg.removeLayer(m);\n\t\t\t\t\tif (this.hasLayer(m)) {\n\t\t\t\t\t\tthis._needsRemoving.push({ layer: m, latlng: m._latlng });\n\t\t\t\t\t}\n\t\t\t\t\tthis.fire('layerremove', { layer: m });\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tif (this._unspiderfy) {\n\t\t\t\tthis._unspiderfy();\n\n\t\t\t\t// Work on a copy of the array, so that next loop is not affected.\n\t\t\t\tvar layersArray2 = layersArray.slice(),\n\t\t\t\t l2 = l;\n\t\t\t\tfor (i = 0; i < l2; i++) {\n\t\t\t\t\tm = layersArray2[i];\n\n\t\t\t\t\t// Group of layers, append children to layersArray and skip.\n\t\t\t\t\tif (m instanceof L.LayerGroup) {\n\t\t\t\t\t\tthis._extractNonGroupLayers(m, layersArray2);\n\t\t\t\t\t\tl2 = layersArray2.length;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._unspiderfyLayer(m);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\tm = layersArray[i];\n\n\t\t\t\t// Group of layers, append children to layersArray and skip.\n\t\t\t\tif (m instanceof L.LayerGroup) {\n\t\t\t\t\tif (originalArray) {\n\t\t\t\t\t\tlayersArray = layersArray.slice();\n\t\t\t\t\t\toriginalArray = false;\n\t\t\t\t\t}\n\t\t\t\t\tthis._extractNonGroupLayers(m, layersArray);\n\t\t\t\t\tl = layersArray.length;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (!m.__parent) {\n\t\t\t\t\tnpg.removeLayer(m);\n\t\t\t\t\tthis.fire('layerremove', { layer: m });\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tthis._removeLayer(m, true, true);\n\t\t\t\tthis.fire('layerremove', { layer: m });\n\n\t\t\t\tif (fg.hasLayer(m)) {\n\t\t\t\t\tfg.removeLayer(m);\n\t\t\t\t\tif (m.clusterShow) {\n\t\t\t\t\t\tm.clusterShow();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Refresh bounds and weighted positions.\n\t\t\tthis._topClusterLevel._recalculateBounds();\n\n\t\t\tthis._refreshClustersIcons();\n\n\t\t\t//Fix up the clusters and markers on the map\n\t\t\tthis._topClusterLevel._recursivelyAddChildrenToMap(null, this._zoom, this._currentShownBounds);\n\n\t\t\treturn this;\n\t\t},\n\n\t\t//Removes all layers from the MarkerClusterGroup\n\t\tclearLayers: function () {\n\t\t\t//Need our own special implementation as the LayerGroup one doesn't work for us\n\n\t\t\t//If we aren't on the map (yet), blow away the markers we know of\n\t\t\tif (!this._map) {\n\t\t\t\tthis._needsClustering = [];\n\t\t\t\tthis._needsRemoving = [];\n\t\t\t\tdelete this._gridClusters;\n\t\t\t\tdelete this._gridUnclustered;\n\t\t\t}\n\n\t\t\tif (this._noanimationUnspiderfy) {\n\t\t\t\tthis._noanimationUnspiderfy();\n\t\t\t}\n\n\t\t\t//Remove all the visible layers\n\t\t\tthis._featureGroup.clearLayers();\n\t\t\tthis._nonPointGroup.clearLayers();\n\n\t\t\tthis.eachLayer(function (marker) {\n\t\t\t\tmarker.off(this._childMarkerEventHandlers, this);\n\t\t\t\tdelete marker.__parent;\n\t\t\t}, this);\n\n\t\t\tif (this._map) {\n\t\t\t\t//Reset _topClusterLevel and the DistanceGrids\n\t\t\t\tthis._generateInitialClusters();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t//Override FeatureGroup.getBounds as it doesn't work\n\t\tgetBounds: function () {\n\t\t\tvar bounds = new L.LatLngBounds();\n\n\t\t\tif (this._topClusterLevel) {\n\t\t\t\tbounds.extend(this._topClusterLevel._bounds);\n\t\t\t}\n\n\t\t\tfor (var i = this._needsClustering.length - 1; i >= 0; i--) {\n\t\t\t\tbounds.extend(this._needsClustering[i].getLatLng());\n\t\t\t}\n\n\t\t\tbounds.extend(this._nonPointGroup.getBounds());\n\n\t\t\treturn bounds;\n\t\t},\n\n\t\t//Overrides LayerGroup.eachLayer\n\t\teachLayer: function (method, context) {\n\t\t\tvar markers = this._needsClustering.slice(),\n\t\t\t\tneedsRemoving = this._needsRemoving,\n\t\t\t\tthisNeedsRemoving, i, j;\n\n\t\t\tif (this._topClusterLevel) {\n\t\t\t\tthis._topClusterLevel.getAllChildMarkers(markers);\n\t\t\t}\n\n\t\t\tfor (i = markers.length - 1; i >= 0; i--) {\n\t\t\t\tthisNeedsRemoving = true;\n\n\t\t\t\tfor (j = needsRemoving.length - 1; j >= 0; j--) {\n\t\t\t\t\tif (needsRemoving[j].layer === markers[i]) {\n\t\t\t\t\t\tthisNeedsRemoving = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (thisNeedsRemoving) {\n\t\t\t\t\tmethod.call(context, markers[i]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._nonPointGroup.eachLayer(method, context);\n\t\t},\n\n\t\t//Overrides LayerGroup.getLayers\n\t\tgetLayers: function () {\n\t\t\tvar layers = [];\n\t\t\tthis.eachLayer(function (l) {\n\t\t\t\tlayers.push(l);\n\t\t\t});\n\t\t\treturn layers;\n\t\t},\n\n\t\t//Overrides LayerGroup.getLayer, WARNING: Really bad performance\n\t\tgetLayer: function (id) {\n\t\t\tvar result = null;\n\n\t\t\tid = parseInt(id, 10);\n\n\t\t\tthis.eachLayer(function (l) {\n\t\t\t\tif (L.stamp(l) === id) {\n\t\t\t\t\tresult = l;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn result;\n\t\t},\n\n\t\t//Returns true if the given layer is in this MarkerClusterGroup\n\t\thasLayer: function (layer) {\n\t\t\tif (!layer) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar i, anArray = this._needsClustering;\n\n\t\t\tfor (i = anArray.length - 1; i >= 0; i--) {\n\t\t\t\tif (anArray[i] === layer) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tanArray = this._needsRemoving;\n\t\t\tfor (i = anArray.length - 1; i >= 0; i--) {\n\t\t\t\tif (anArray[i].layer === layer) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn !!(layer.__parent && layer.__parent._group === this) || this._nonPointGroup.hasLayer(layer);\n\t\t},\n\n\t\t//Zoom down to show the given layer (spiderfying if necessary) then calls the callback\n\t\tzoomToShowLayer: function (layer, callback) {\n\n\t\t\tvar map = this._map;\n\n\t\t\tif (typeof callback !== 'function') {\n\t\t\t\tcallback = function () {};\n\t\t\t}\n\n\t\t\tvar showMarker = function () {\n\t\t\t\t// Assumes that map.hasLayer checks for direct appearance on map, not recursively calling\n\t\t\t\t// hasLayer on Layer Groups that are on map (typically not calling this MarkerClusterGroup.hasLayer, which would always return true)\n\t\t\t\tif ((map.hasLayer(layer) || map.hasLayer(layer.__parent)) && !this._inZoomAnimation) {\n\t\t\t\t\tthis._map.off('moveend', showMarker, this);\n\t\t\t\t\tthis.off('animationend', showMarker, this);\n\n\t\t\t\t\tif (map.hasLayer(layer)) {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t} else if (layer.__parent._icon) {\n\t\t\t\t\t\tthis.once('spiderfied', callback, this);\n\t\t\t\t\t\tlayer.__parent.spiderfy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (layer._icon && this._map.getBounds().contains(layer.getLatLng())) {\n\t\t\t\t//Layer is visible ond on screen, immediate return\n\t\t\t\tcallback();\n\t\t\t} else if (layer.__parent._zoom < Math.round(this._map._zoom)) {\n\t\t\t\t//Layer should be visible at this zoom level. It must not be on screen so just pan over to it\n\t\t\t\tthis._map.on('moveend', showMarker, this);\n\t\t\t\tthis._map.panTo(layer.getLatLng());\n\t\t\t} else {\n\t\t\t\tthis._map.on('moveend', showMarker, this);\n\t\t\t\tthis.on('animationend', showMarker, this);\n\t\t\t\tlayer.__parent.zoomToBounds();\n\t\t\t}\n\t\t},\n\n\t\t//Overrides FeatureGroup.onAdd\n\t\tonAdd: function (map) {\n\t\t\tthis._map = map;\n\t\t\tvar i, l, layer;\n\n\t\t\tif (!isFinite(this._map.getMaxZoom())) {\n\t\t\t\tthrow \"Map has no maxZoom specified\";\n\t\t\t}\n\n\t\t\tthis._featureGroup.addTo(map);\n\t\t\tthis._nonPointGroup.addTo(map);\n\n\t\t\tif (!this._gridClusters) {\n\t\t\t\tthis._generateInitialClusters();\n\t\t\t}\n\n\t\t\tthis._maxLat = map.options.crs.projection.MAX_LATITUDE;\n\n\t\t\t//Restore all the positions as they are in the MCG before removing them\n\t\t\tfor (i = 0, l = this._needsRemoving.length; i < l; i++) {\n\t\t\t\tlayer = this._needsRemoving[i];\n\t\t\t\tlayer.newlatlng = layer.layer._latlng;\n\t\t\t\tlayer.layer._latlng = layer.latlng;\n\t\t\t}\n\t\t\t//Remove them, then restore their new positions\n\t\t\tfor (i = 0, l = this._needsRemoving.length; i < l; i++) {\n\t\t\t\tlayer = this._needsRemoving[i];\n\t\t\t\tthis._removeLayer(layer.layer, true);\n\t\t\t\tlayer.layer._latlng = layer.newlatlng;\n\t\t\t}\n\t\t\tthis._needsRemoving = [];\n\n\t\t\t//Remember the current zoom level and bounds\n\t\t\tthis._zoom = Math.round(this._map._zoom);\n\t\t\tthis._currentShownBounds = this._getExpandedVisibleBounds();\n\n\t\t\tthis._map.on('zoomend', this._zoomEnd, this);\n\t\t\tthis._map.on('moveend', this._moveEnd, this);\n\n\t\t\tif (this._spiderfierOnAdd) { //TODO FIXME: Not sure how to have spiderfier add something on here nicely\n\t\t\t\tthis._spiderfierOnAdd();\n\t\t\t}\n\n\t\t\tthis._bindEvents();\n\n\t\t\t//Actually add our markers to the map:\n\t\t\tl = this._needsClustering;\n\t\t\tthis._needsClustering = [];\n\t\t\tthis.addLayers(l, true);\n\t\t},\n\n\t\t//Overrides FeatureGroup.onRemove\n\t\tonRemove: function (map) {\n\t\t\tmap.off('zoomend', this._zoomEnd, this);\n\t\t\tmap.off('moveend', this._moveEnd, this);\n\n\t\t\tthis._unbindEvents();\n\n\t\t\t//In case we are in a cluster animation\n\t\t\tthis._map._mapPane.className = this._map._mapPane.className.replace(' leaflet-cluster-anim', '');\n\n\t\t\tif (this._spiderfierOnRemove) { //TODO FIXME: Not sure how to have spiderfier add something on here nicely\n\t\t\t\tthis._spiderfierOnRemove();\n\t\t\t}\n\n\t\t\tdelete this._maxLat;\n\n\t\t\t//Clean up all the layers we added to the map\n\t\t\tthis._hideCoverage();\n\t\t\tthis._featureGroup.remove();\n\t\t\tthis._nonPointGroup.remove();\n\n\t\t\tthis._featureGroup.clearLayers();\n\n\t\t\tthis._map = null;\n\t\t},\n\n\t\tgetVisibleParent: function (marker) {\n\t\t\tvar vMarker = marker;\n\t\t\twhile (vMarker && !vMarker._icon) {\n\t\t\t\tvMarker = vMarker.__parent;\n\t\t\t}\n\t\t\treturn vMarker || null;\n\t\t},\n\n\t\t//Remove the given object from the given array\n\t\t_arraySplice: function (anArray, obj) {\n\t\t\tfor (var i = anArray.length - 1; i >= 0; i--) {\n\t\t\t\tif (anArray[i] === obj) {\n\t\t\t\t\tanArray.splice(i, 1);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Removes a marker from all _gridUnclustered zoom levels, starting at the supplied zoom.\n\t\t * @param marker to be removed from _gridUnclustered.\n\t\t * @param z integer bottom start zoom level (included)\n\t\t * @private\n\t\t */\n\t\t_removeFromGridUnclustered: function (marker, z) {\n\t\t\tvar map = this._map,\n\t\t\t gridUnclustered = this._gridUnclustered,\n\t\t\t\tminZoom = Math.floor(this._map.getMinZoom());\n\n\t\t\tfor (; z >= minZoom; z--) {\n\t\t\t\tif (!gridUnclustered[z].removeObject(marker, map.project(marker.getLatLng(), z))) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_childMarkerDragStart: function (e) {\n\t\t\te.target.__dragStart = e.target._latlng;\n\t\t},\n\n\t\t_childMarkerMoved: function (e) {\n\t\t\tif (!this._ignoreMove && !e.target.__dragStart) {\n\t\t\t\tvar isPopupOpen = e.target._popup && e.target._popup.isOpen();\n\n\t\t\t\tthis._moveChild(e.target, e.oldLatLng, e.latlng);\n\n\t\t\t\tif (isPopupOpen) {\n\t\t\t\t\te.target.openPopup();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_moveChild: function (layer, from, to) {\n\t\t\tlayer._latlng = from;\n\t\t\tthis.removeLayer(layer);\n\n\t\t\tlayer._latlng = to;\n\t\t\tthis.addLayer(layer);\n\t\t},\n\n\t\t_childMarkerDragEnd: function (e) {\n\t\t\tvar dragStart = e.target.__dragStart;\n\t\t\tdelete e.target.__dragStart;\n\t\t\tif (dragStart) {\n\t\t\t\tthis._moveChild(e.target, dragStart, e.target._latlng);\n\t\t\t}\t\t\n\t\t},\n\n\n\t\t//Internal function for removing a marker from everything.\n\t\t//dontUpdateMap: set to true if you will handle updating the map manually (for bulk functions)\n\t\t_removeLayer: function (marker, removeFromDistanceGrid, dontUpdateMap) {\n\t\t\tvar gridClusters = this._gridClusters,\n\t\t\t\tgridUnclustered = this._gridUnclustered,\n\t\t\t\tfg = this._featureGroup,\n\t\t\t\tmap = this._map,\n\t\t\t\tminZoom = Math.floor(this._map.getMinZoom());\n\n\t\t\t//Remove the marker from distance clusters it might be in\n\t\t\tif (removeFromDistanceGrid) {\n\t\t\t\tthis._removeFromGridUnclustered(marker, this._maxZoom);\n\t\t\t}\n\n\t\t\t//Work our way up the clusters removing them as we go if required\n\t\t\tvar cluster = marker.__parent,\n\t\t\t\tmarkers = cluster._markers,\n\t\t\t\totherMarker;\n\n\t\t\t//Remove the marker from the immediate parents marker list\n\t\t\tthis._arraySplice(markers, marker);\n\n\t\t\twhile (cluster) {\n\t\t\t\tcluster._childCount--;\n\t\t\t\tcluster._boundsNeedUpdate = true;\n\n\t\t\t\tif (cluster._zoom < minZoom) {\n\t\t\t\t\t//Top level, do nothing\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (removeFromDistanceGrid && cluster._childCount <= 1) { //Cluster no longer required\n\t\t\t\t\t//We need to push the other marker up to the parent\n\t\t\t\t\totherMarker = cluster._markers[0] === marker ? cluster._markers[1] : cluster._markers[0];\n\n\t\t\t\t\t//Update distance grid\n\t\t\t\t\tgridClusters[cluster._zoom].removeObject(cluster, map.project(cluster._cLatLng, cluster._zoom));\n\t\t\t\t\tgridUnclustered[cluster._zoom].addObject(otherMarker, map.project(otherMarker.getLatLng(), cluster._zoom));\n\n\t\t\t\t\t//Move otherMarker up to parent\n\t\t\t\t\tthis._arraySplice(cluster.__parent._childClusters, cluster);\n\t\t\t\t\tcluster.__parent._markers.push(otherMarker);\n\t\t\t\t\totherMarker.__parent = cluster.__parent;\n\n\t\t\t\t\tif (cluster._icon) {\n\t\t\t\t\t\t//Cluster is currently on the map, need to put the marker on the map instead\n\t\t\t\t\t\tfg.removeLayer(cluster);\n\t\t\t\t\t\tif (!dontUpdateMap) {\n\t\t\t\t\t\t\tfg.addLayer(otherMarker);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcluster._iconNeedsUpdate = true;\n\t\t\t\t}\n\n\t\t\t\tcluster = cluster.__parent;\n\t\t\t}\n\n\t\t\tdelete marker.__parent;\n\t\t},\n\n\t\t_isOrIsParent: function (el, oel) {\n\t\t\twhile (oel) {\n\t\t\t\tif (el === oel) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\toel = oel.parentNode;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\t//Override L.Evented.fire\n\t\tfire: function (type, data, propagate) {\n\t\t\tif (data && data.layer instanceof L.MarkerCluster) {\n\t\t\t\t//Prevent multiple clustermouseover/off events if the icon is made up of stacked divs (Doesn't work in ie <= 8, no relatedTarget)\n\t\t\t\tif (data.originalEvent && this._isOrIsParent(data.layer._icon, data.originalEvent.relatedTarget)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttype = 'cluster' + type;\n\t\t\t}\n\n\t\t\tL.FeatureGroup.prototype.fire.call(this, type, data, propagate);\n\t\t},\n\n\t\t//Override L.Evented.listens\n\t\tlistens: function (type, propagate) {\n\t\t\treturn L.FeatureGroup.prototype.listens.call(this, type, propagate) || L.FeatureGroup.prototype.listens.call(this, 'cluster' + type, propagate);\n\t\t},\n\n\t\t//Default functionality\n\t\t_defaultIconCreateFunction: function (cluster) {\n\t\t\tvar childCount = cluster.getChildCount();\n\n\t\t\tvar c = ' marker-cluster-';\n\t\t\tif (childCount < 10) {\n\t\t\t\tc += 'small';\n\t\t\t} else if (childCount < 100) {\n\t\t\t\tc += 'medium';\n\t\t\t} else {\n\t\t\t\tc += 'large';\n\t\t\t}\n\n\t\t\treturn new L.DivIcon({ html: '<div><span>' + childCount + '</span></div>', className: 'marker-cluster' + c, iconSize: new L.Point(40, 40) });\n\t\t},\n\n\t\t_bindEvents: function () {\n\t\t\tvar map = this._map,\n\t\t\t spiderfyOnMaxZoom = this.options.spiderfyOnMaxZoom,\n\t\t\t showCoverageOnHover = this.options.showCoverageOnHover,\n\t\t\t zoomToBoundsOnClick = this.options.zoomToBoundsOnClick,\n\t\t\t spiderfyOnEveryZoom = this.options.spiderfyOnEveryZoom;\n\n\t\t\t//Zoom on cluster click or spiderfy if we are at the lowest level\n\t\t\tif (spiderfyOnMaxZoom || zoomToBoundsOnClick || spiderfyOnEveryZoom) {\n\t\t\t\tthis.on('clusterclick clusterkeypress', this._zoomOrSpiderfy, this);\n\t\t\t}\n\n\t\t\t//Show convex hull (boundary) polygon on mouse over\n\t\t\tif (showCoverageOnHover) {\n\t\t\t\tthis.on('clustermouseover', this._showCoverage, this);\n\t\t\t\tthis.on('clustermouseout', this._hideCoverage, this);\n\t\t\t\tmap.on('zoomend', this._hideCoverage, this);\n\t\t\t}\n\t\t},\n\n\t\t_zoomOrSpiderfy: function (e) {\n\t\t\tvar cluster = e.layer,\n\t\t\t bottomCluster = cluster;\n\n\t\t\tif (e.type === 'clusterkeypress' && e.originalEvent && e.originalEvent.keyCode !== 13) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\twhile (bottomCluster._childClusters.length === 1) {\n\t\t\t\tbottomCluster = bottomCluster._childClusters[0];\n\t\t\t}\n\n\t\t\tif (bottomCluster._zoom === this._maxZoom &&\n\t\t\t\tbottomCluster._childCount === cluster._childCount &&\n\t\t\t\tthis.options.spiderfyOnMaxZoom) {\n\n\t\t\t\t// All child markers are contained in a single cluster from this._maxZoom to this cluster.\n\t\t\t\tcluster.spiderfy();\n\t\t\t} else if (this.options.zoomToBoundsOnClick) {\n\t\t\t\tcluster.zoomToBounds();\n\t\t\t}\n\n\t\t\tif (this.options.spiderfyOnEveryZoom) {\n\t\t\t\tcluster.spiderfy();\n\t\t\t}\n\n\t\t\t// Focus the map again for keyboard users.\n\t\t\tif (e.originalEvent && e.originalEvent.keyCode === 13) {\n\t\t\t\tthis._map._container.focus();\n\t\t\t}\n\t\t},\n\n\t\t_showCoverage: function (e) {\n\t\t\tvar map = this._map;\n\t\t\tif (this._inZoomAnimation) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this._shownPolygon) {\n\t\t\t\tmap.removeLayer(this._shownPolygon);\n\t\t\t}\n\t\t\tif (e.layer.getChildCount() > 2 && e.layer !== this._spiderfied) {\n\t\t\t\tthis._shownPolygon = new L.Polygon(e.layer.getConvexHull(), this.options.polygonOptions);\n\t\t\t\tmap.addLayer(this._shownPolygon);\n\t\t\t}\n\t\t},\n\n\t\t_hideCoverage: function () {\n\t\t\tif (this._shownPolygon) {\n\t\t\t\tthis._map.removeLayer(this._shownPolygon);\n\t\t\t\tthis._shownPolygon = null;\n\t\t\t}\n\t\t},\n\n\t\t_unbindEvents: function () {\n\t\t\tvar spiderfyOnMaxZoom = this.options.spiderfyOnMaxZoom,\n\t\t\t\tshowCoverageOnHover = this.options.showCoverageOnHover,\n\t\t\t\tzoomToBoundsOnClick = this.options.zoomToBoundsOnClick,\n\t\t\t\tspiderfyOnEveryZoom = this.options.spiderfyOnEveryZoom,\n\t\t\t\tmap = this._map;\n\n\t\t\tif (spiderfyOnMaxZoom || zoomToBoundsOnClick || spiderfyOnEveryZoom) {\n\t\t\t\tthis.off('clusterclick clusterkeypress', this._zoomOrSpiderfy, this);\n\t\t\t}\n\t\t\tif (showCoverageOnHover) {\n\t\t\t\tthis.off('clustermouseover', this._showCoverage, this);\n\t\t\t\tthis.off('clustermouseout', this._hideCoverage, this);\n\t\t\t\tmap.off('zoomend', this._hideCoverage, this);\n\t\t\t}\n\t\t},\n\n\t\t_zoomEnd: function () {\n\t\t\tif (!this._map) { //May have been removed from the map by a zoomEnd handler\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._mergeSplitClusters();\n\n\t\t\tthis._zoom = Math.round(this._map._zoom);\n\t\t\tthis._currentShownBounds = this._getExpandedVisibleBounds();\n\t\t},\n\n\t\t_moveEnd: function () {\n\t\t\tif (this._inZoomAnimation) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar newBounds = this._getExpandedVisibleBounds();\n\n\t\t\tthis._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, newBounds);\n\t\t\tthis._topClusterLevel._recursivelyAddChildrenToMap(null, Math.round(this._map._zoom), newBounds);\n\n\t\t\tthis._currentShownBounds = newBounds;\n\t\t\treturn;\n\t\t},\n\n\t\t_generateInitialClusters: function () {\n\t\t\tvar maxZoom = Math.ceil(this._map.getMaxZoom()),\n\t\t\t\tminZoom = Math.floor(this._map.getMinZoom()),\n\t\t\t\tradius = this.options.maxClusterRadius,\n\t\t\t\tradiusFn = radius;\n\n\t\t\t//If we just set maxClusterRadius to a single number, we need to create\n\t\t\t//a simple function to return that number. Otherwise, we just have to\n\t\t\t//use the function we've passed in.\n\t\t\tif (typeof radius !== \"function\") {\n\t\t\t\tradiusFn = function () { return radius; };\n\t\t\t}\n\n\t\t\tif (this.options.disableClusteringAtZoom !== null) {\n\t\t\t\tmaxZoom = this.options.disableClusteringAtZoom - 1;\n\t\t\t}\n\t\t\tthis._maxZoom = maxZoom;\n\t\t\tthis._gridClusters = {};\n\t\t\tthis._gridUnclustered = {};\n\n\t\t\t//Set up DistanceGrids for each zoom\n\t\t\tfor (var zoom = maxZoom; zoom >= minZoom; zoom--) {\n\t\t\t\tthis._gridClusters[zoom] = new L.DistanceGrid(radiusFn(zoom));\n\t\t\t\tthis._gridUnclustered[zoom] = new L.DistanceGrid(radiusFn(zoom));\n\t\t\t}\n\n\t\t\t// Instantiate the appropriate L.MarkerCluster class (animated or not).\n\t\t\tthis._topClusterLevel = new this._markerCluster(this, minZoom - 1);\n\t\t},\n\n\t\t//Zoom: Zoom to start adding at (Pass this._maxZoom to start at the bottom)\n\t\t_addLayer: function (layer, zoom) {\n\t\t\tvar gridClusters = this._gridClusters,\n\t\t\t gridUnclustered = this._gridUnclustered,\n\t\t\t\tminZoom = Math.floor(this._map.getMinZoom()),\n\t\t\t markerPoint, z;\n\n\t\t\tif (this.options.singleMarkerMode) {\n\t\t\t\tthis._overrideMarkerIcon(layer);\n\t\t\t}\n\n\t\t\tlayer.on(this._childMarkerEventHandlers, this);\n\n\t\t\t//Find the lowest zoom level to slot this one in\n\t\t\tfor (; zoom >= minZoom; zoom--) {\n\t\t\t\tmarkerPoint = this._map.project(layer.getLatLng(), zoom); // calculate pixel position\n\n\t\t\t\t//Try find a cluster close by\n\t\t\t\tvar closest = gridClusters[zoom].getNearObject(markerPoint);\n\t\t\t\tif (closest) {\n\t\t\t\t\tclosest._addChild(layer);\n\t\t\t\t\tlayer.__parent = closest;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t//Try find a marker close by to form a new cluster with\n\t\t\t\tclosest = gridUnclustered[zoom].getNearObject(markerPoint);\n\t\t\t\tif (closest) {\n\t\t\t\t\tvar parent = closest.__parent;\n\t\t\t\t\tif (parent) {\n\t\t\t\t\t\tthis._removeLayer(closest, false);\n\t\t\t\t\t}\n\n\t\t\t\t\t//Create new cluster with these 2 in it\n\n\t\t\t\t\tvar newCluster = new this._markerCluster(this, zoom, closest, layer);\n\t\t\t\t\tgridClusters[zoom].addObject(newCluster, this._map.project(newCluster._cLatLng, zoom));\n\t\t\t\t\tclosest.__parent = newCluster;\n\t\t\t\t\tlayer.__parent = newCluster;\n\n\t\t\t\t\t//First create any new intermediate parent clusters that don't exist\n\t\t\t\t\tvar lastParent = newCluster;\n\t\t\t\t\tfor (z = zoom - 1; z > parent._zoom; z--) {\n\t\t\t\t\t\tlastParent = new this._markerCluster(this, z, lastParent);\n\t\t\t\t\t\tgridClusters[z].addObject(lastParent, this._map.project(closest.getLatLng(), z));\n\t\t\t\t\t}\n\t\t\t\t\tparent._addChild(lastParent);\n\n\t\t\t\t\t//Remove closest from this zoom level and any above that it is in, replace with newCluster\n\t\t\t\t\tthis._removeFromGridUnclustered(closest, zoom);\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t//Didn't manage to cluster in at this zoom, record us as a marker here and continue upwards\n\t\t\t\tgridUnclustered[zoom].addObject(layer, markerPoint);\n\t\t\t}\n\n\t\t\t//Didn't get in anything, add us to the top\n\t\t\tthis._topClusterLevel._addChild(layer);\n\t\t\tlayer.__parent = this._topClusterLevel;\n\t\t\treturn;\n\t\t},\n\n\t\t/**\n\t\t * Refreshes the icon of all \"dirty\" visible clusters.\n\t\t * Non-visible \"dirty\" clusters will be updated when they are added to the map.\n\t\t * @private\n\t\t */\n\t\t_refreshClustersIcons: function () {\n\t\t\tthis._featureGroup.eachLayer(function (c) {\n\t\t\t\tif (c instanceof L.MarkerCluster && c._iconNeedsUpdate) {\n\t\t\t\t\tc._updateIcon();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t//Enqueue code to fire after the marker expand/contract has happened\n\t\t_enqueue: function (fn) {\n\t\t\tthis._queue.push(fn);\n\t\t\tif (!this._queueTimeout) {\n\t\t\t\tthis._queueTimeout = setTimeout(L.bind(this._processQueue, this), 300);\n\t\t\t}\n\t\t},\n\t\t_processQueue: function () {\n\t\t\tfor (var i = 0; i < this._queue.length; i++) {\n\t\t\t\tthis._queue[i].call(this);\n\t\t\t}\n\t\t\tthis._queue.length = 0;\n\t\t\tclearTimeout(this._queueTimeout);\n\t\t\tthis._queueTimeout = null;\n\t\t},\n\n\t\t//Merge and split any existing clusters that are too big or small\n\t\t_mergeSplitClusters: function () {\n\t\t\tvar mapZoom = Math.round(this._map._zoom);\n\n\t\t\t//In case we are starting to split before the animation finished\n\t\t\tthis._processQueue();\n\n\t\t\tif (this._zoom < mapZoom && this._currentShownBounds.intersects(this._getExpandedVisibleBounds())) { //Zoom in, split\n\t\t\t\tthis._animationStart();\n\t\t\t\t//Remove clusters now off screen\n\t\t\t\tthis._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), this._zoom, this._getExpandedVisibleBounds());\n\n\t\t\t\tthis._animationZoomIn(this._zoom, mapZoom);\n\n\t\t\t} else if (this._zoom > mapZoom) { //Zoom out, merge\n\t\t\t\tthis._animationStart();\n\n\t\t\t\tthis._animationZoomOut(this._zoom, mapZoom);\n\t\t\t} else {\n\t\t\t\tthis._moveEnd();\n\t\t\t}\n\t\t},\n\n\t\t//Gets the maps visible bounds expanded in each direction by the size of the screen (so the user cannot see an area we do not cover in one pan)\n\t\t_getExpandedVisibleBounds: function () {\n\t\t\tif (!this.options.removeOutsideVisibleBounds) {\n\t\t\t\treturn this._mapBoundsInfinite;\n\t\t\t} else if (L.Browser.mobile) {\n\t\t\t\treturn this._checkBoundsMaxLat(this._map.getBounds());\n\t\t\t}\n\n\t\t\treturn this._checkBoundsMaxLat(this._map.getBounds().pad(1)); // Padding expands the bounds by its own dimensions but scaled with the given factor.\n\t\t},\n\n\t\t/**\n\t\t * Expands the latitude to Infinity (or -Infinity) if the input bounds reach the map projection maximum defined latitude\n\t\t * (in the case of Web/Spherical Mercator, it is 85.0511287798 / see https://en.wikipedia.org/wiki/Web_Mercator#Formulas).\n\t\t * Otherwise, the removeOutsideVisibleBounds option will remove markers beyond that limit, whereas the same markers without\n\t\t * this option (or outside MCG) will have their position floored (ceiled) by the projection and rendered at that limit,\n\t\t * making the user think that MCG \"eats\" them and never displays them again.\n\t\t * @param bounds L.LatLngBounds\n\t\t * @returns {L.LatLngBounds}\n\t\t * @private\n\t\t */\n\t\t_checkBoundsMaxLat: function (bounds) {\n\t\t\tvar maxLat = this._maxLat;\n\n\t\t\tif (maxLat !== undefined) {\n\t\t\t\tif (bounds.getNorth() >= maxLat) {\n\t\t\t\t\tbounds._northEast.lat = Infinity;\n\t\t\t\t}\n\t\t\t\tif (bounds.getSouth() <= -maxLat) {\n\t\t\t\t\tbounds._southWest.lat = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn bounds;\n\t\t},\n\n\t\t//Shared animation code\n\t\t_animationAddLayerNonAnimated: function (layer, newCluster) {\n\t\t\tif (newCluster === layer) {\n\t\t\t\tthis._featureGroup.addLayer(layer);\n\t\t\t} else if (newCluster._childCount === 2) {\n\t\t\t\tnewCluster._addToMap();\n\n\t\t\t\tvar markers = newCluster.getAllChildMarkers();\n\t\t\t\tthis._featureGroup.removeLayer(markers[0]);\n\t\t\t\tthis._featureGroup.removeLayer(markers[1]);\n\t\t\t} else {\n\t\t\t\tnewCluster._updateIcon();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Extracts individual (i.e. non-group) layers from a Layer Group.\n\t\t * @param group to extract layers from.\n\t\t * @param output {Array} in which to store the extracted layers.\n\t\t * @returns {*|Array}\n\t\t * @private\n\t\t */\n\t\t_extractNonGroupLayers: function (group, output) {\n\t\t\tvar layers = group.getLayers(),\n\t\t\t i = 0,\n\t\t\t layer;\n\n\t\t\toutput = output || [];\n\n\t\t\tfor (; i < layers.length; i++) {\n\t\t\t\tlayer = layers[i];\n\n\t\t\t\tif (layer instanceof L.LayerGroup) {\n\t\t\t\t\tthis._extractNonGroupLayers(layer, output);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\toutput.push(layer);\n\t\t\t}\n\n\t\t\treturn output;\n\t\t},\n\n\t\t/**\n\t\t * Implements the singleMarkerMode option.\n\t\t * @param layer Marker to re-style using the Clusters iconCreateFunction.\n\t\t * @returns {L.Icon} The newly created icon.\n\t\t * @private\n\t\t */\n\t\t_overrideMarkerIcon: function (layer) {\n\t\t\tvar icon = layer.options.icon = this.options.iconCreateFunction({\n\t\t\t\tgetChildCount: function () {\n\t\t\t\t\treturn 1;\n\t\t\t\t},\n\t\t\t\tgetAllChildMarkers: function () {\n\t\t\t\t\treturn [layer];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn icon;\n\t\t}\n\t});\n\n\t// Constant bounds used in case option \"removeOutsideVisibleBounds\" is set to false.\n\tL.MarkerClusterGroup.include({\n\t\t_mapBoundsInfinite: new L.LatLngBounds(new L.LatLng(-Infinity, -Infinity), new L.LatLng(Infinity, Infinity))\n\t});\n\n\tL.MarkerClusterGroup.include({\n\t\t_noAnimation: {\n\t\t\t//Non Animated versions of everything\n\t\t\t_animationStart: function () {\n\t\t\t\t//Do nothing...\n\t\t\t},\n\t\t\t_animationZoomIn: function (previousZoomLevel, newZoomLevel) {\n\t\t\t\tthis._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), previousZoomLevel);\n\t\t\t\tthis._topClusterLevel._recursivelyAddChildrenToMap(null, newZoomLevel, this._getExpandedVisibleBounds());\n\n\t\t\t\t//We didn't actually animate, but we use this event to mean \"clustering animations have finished\"\n\t\t\t\tthis.fire('animationend');\n\t\t\t},\n\t\t\t_animationZoomOut: function (previousZoomLevel, newZoomLevel) {\n\t\t\t\tthis._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), previousZoomLevel);\n\t\t\t\tthis._topClusterLevel._recursivelyAddChildrenToMap(null, newZoomLevel, this._getExpandedVisibleBounds());\n\n\t\t\t\t//We didn't actually animate, but we use this event to mean \"clustering animations have finished\"\n\t\t\t\tthis.fire('animationend');\n\t\t\t},\n\t\t\t_animationAddLayer: function (layer, newCluster) {\n\t\t\t\tthis._animationAddLayerNonAnimated(layer, newCluster);\n\t\t\t}\n\t\t},\n\n\t\t_withAnimation: {\n\t\t\t//Animated versions here\n\t\t\t_animationStart: function () {\n\t\t\t\tthis._map._mapPane.className += ' leaflet-cluster-anim';\n\t\t\t\tthis._inZoomAnimation++;\n\t\t\t},\n\n\t\t\t_animationZoomIn: function (previousZoomLevel, newZoomLevel) {\n\t\t\t\tvar bounds = this._getExpandedVisibleBounds(),\n\t\t\t\t fg = this._featureGroup,\n\t\t\t\t\tminZoom = Math.floor(this._map.getMinZoom()),\n\t\t\t\t i;\n\n\t\t\t\tthis._ignoreMove = true;\n\n\t\t\t\t//Add all children of current clusters to map and remove those clusters from map\n\t\t\t\tthis._topClusterLevel._recursively(bounds, previousZoomLevel, minZoom, function (c) {\n\t\t\t\t\tvar startPos = c._latlng,\n\t\t\t\t\t markers = c._markers,\n\t\t\t\t\t m;\n\n\t\t\t\t\tif (!bounds.contains(startPos)) {\n\t\t\t\t\t\tstartPos = null;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (c._isSingleParent() && previousZoomLevel + 1 === newZoomLevel) { //Immediately add the new child and remove us\n\t\t\t\t\t\tfg.removeLayer(c);\n\t\t\t\t\t\tc._recursivelyAddChildrenToMap(null, newZoomLevel, bounds);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//Fade out old cluster\n\t\t\t\t\t\tc.clusterHide();\n\t\t\t\t\t\tc._recursivelyAddChildrenToMap(startPos, newZoomLevel, bounds);\n\t\t\t\t\t}\n\n\t\t\t\t\t//Remove all markers that aren't visible any more\n\t\t\t\t\t//TODO: Do we actually need to do this on the higher levels too?\n\t\t\t\t\tfor (i = markers.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tm = markers[i];\n\t\t\t\t\t\tif (!bounds.contains(m._latlng)) {\n\t\t\t\t\t\t\tfg.removeLayer(m);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t});\n\n\t\t\t\tthis._forceLayout();\n\n\t\t\t\t//Update opacities\n\t\t\t\tthis._topClusterLevel._recursivelyBecomeVisible(bounds, newZoomLevel);\n\t\t\t\t//TODO Maybe? Update markers in _recursivelyBecomeVisible\n\t\t\t\tfg.eachLayer(function (n) {\n\t\t\t\t\tif (!(n instanceof L.MarkerCluster) && n._icon) {\n\t\t\t\t\t\tn.clusterShow();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t//update the positions of the just added clusters/markers\n\t\t\t\tthis._topClusterLevel._recursively(bounds, previousZoomLevel, newZoomLevel, function (c) {\n\t\t\t\t\tc._recursivelyRestoreChildPositions(newZoomLevel);\n\t\t\t\t});\n\n\t\t\t\tthis._ignoreMove = false;\n\n\t\t\t\t//Remove the old clusters and close the zoom animation\n\t\t\t\tthis._enqueue(function () {\n\t\t\t\t\t//update the positions of the just added clusters/markers\n\t\t\t\t\tthis._topClusterLevel._recursively(bounds, previousZoomLevel, minZoom, function (c) {\n\t\t\t\t\t\tfg.removeLayer(c);\n\t\t\t\t\t\tc.clusterShow();\n\t\t\t\t\t});\n\n\t\t\t\t\tthis._animationEnd();\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t_animationZoomOut: function (previousZoomLevel, newZoomLevel) {\n\t\t\t\tthis._animationZoomOutSingle(this._topClusterLevel, previousZoomLevel - 1, newZoomLevel);\n\n\t\t\t\t//Need to add markers for those that weren't on the map before but are now\n\t\t\t\tthis._topClusterLevel._recursivelyAddChildrenToMap(null, newZoomLevel, this._getExpandedVisibleBounds());\n\t\t\t\t//Remove markers that were on the map before but won't be now\n\t\t\t\tthis._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds, Math.floor(this._map.getMinZoom()), previousZoomLevel, this._getExpandedVisibleBounds());\n\t\t\t},\n\n\t\t\t_animationAddLayer: function (layer, newCluster) {\n\t\t\t\tvar me = this,\n\t\t\t\t fg = this._featureGroup;\n\n\t\t\t\tfg.addLayer(layer);\n\t\t\t\tif (newCluster !== layer) {\n\t\t\t\t\tif (newCluster._childCount > 2) { //Was already a cluster\n\n\t\t\t\t\t\tnewCluster._updateIcon();\n\t\t\t\t\t\tthis._forceLayout();\n\t\t\t\t\t\tthis._animationStart();\n\n\t\t\t\t\t\tlayer._setPos(this._map.latLngToLayerPoint(newCluster.getLatLng()));\n\t\t\t\t\t\tlayer.clusterHide();\n\n\t\t\t\t\t\tthis._enqueue(function () {\n\t\t\t\t\t\t\tfg.removeLayer(layer);\n\t\t\t\t\t\t\tlayer.clusterShow();\n\n\t\t\t\t\t\t\tme._animationEnd();\n\t\t\t\t\t\t});\n\n\t\t\t\t\t} else { //Just became a cluster\n\t\t\t\t\t\tthis._forceLayout();\n\n\t\t\t\t\t\tme._animationStart();\n\t\t\t\t\t\tme._animationZoomOutSingle(newCluster, this._map.getMaxZoom(), this._zoom);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Private methods for animated versions.\n\t\t_animationZoomOutSingle: function (cluster, previousZoomLevel, newZoomLevel) {\n\t\t\tvar bounds = this._getExpandedVisibleBounds(),\n\t\t\t\tminZoom = Math.floor(this._map.getMinZoom());\n\n\t\t\t//Animate all of the markers in the clusters to move to their cluster center point\n\t\t\tcluster._recursivelyAnimateChildrenInAndAddSelfToMap(bounds, minZoom, previousZoomLevel + 1, newZoomLevel);\n\n\t\t\tvar me = this;\n\n\t\t\t//Update the opacity (If we immediately set it they won't animate)\n\t\t\tthis._forceLayout();\n\t\t\tcluster._recursivelyBecomeVisible(bounds, newZoomLevel);\n\n\t\t\t//TODO: Maybe use the transition timing stuff to make this more reliable\n\t\t\t//When the animations are done, tidy up\n\t\t\tthis._enqueue(function () {\n\n\t\t\t\t//This cluster stopped being a cluster before the timeout fired\n\t\t\t\tif (cluster._childCount === 1) {\n\t\t\t\t\tvar m = cluster._markers[0];\n\t\t\t\t\t//If we were in a cluster animation at the time then the opacity and position of our child could be wrong now, so fix it\n\t\t\t\t\tthis._ignoreMove = true;\n\t\t\t\t\tm.setLatLng(m.getLatLng());\n\t\t\t\t\tthis._ignoreMove = false;\n\t\t\t\t\tif (m.clusterShow) {\n\t\t\t\t\t\tm.clusterShow();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcluster._recursively(bounds, newZoomLevel, minZoom, function (c) {\n\t\t\t\t\t\tc._recursivelyRemoveChildrenFromMap(bounds, minZoom, previousZoomLevel + 1);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tme._animationEnd();\n\t\t\t});\n\t\t},\n\n\t\t_animationEnd: function () {\n\t\t\tif (this._map) {\n\t\t\t\tthis._map._mapPane.className = this._map._mapPane.className.replace(' leaflet-cluster-anim', '');\n\t\t\t}\n\t\t\tthis._inZoomAnimation--;\n\t\t\tthis.fire('animationend');\n\t\t},\n\n\t\t//Force a browser layout of stuff in the map\n\t\t// Should apply the current opacity and location to all elements so we can update them again for an animation\n\t\t_forceLayout: function () {\n\t\t\t//In my testing this works, infact offsetWidth of any element seems to work.\n\t\t\t//Could loop all this._layers and do this for each _icon if it stops working\n\n\t\t\tL.Util.falseFn(document.body.offsetWidth);\n\t\t}\n\t});\n\n\tL.markerClusterGroup = function (options) {\n\t\treturn new L.MarkerClusterGroup(options);\n\t};\n\n\tvar MarkerCluster = L.MarkerCluster = L.Marker.extend({\n\t\toptions: L.Icon.prototype.options,\n\n\t\tinitialize: function (group, zoom, a, b) {\n\n\t\t\tL.Marker.prototype.initialize.call(this, a ? (a._cLatLng || a.getLatLng()) : new L.LatLng(0, 0),\n\t { icon: this, pane: group.options.clusterPane });\n\n\t\t\tthis._group = group;\n\t\t\tthis._zoom = zoom;\n\n\t\t\tthis._markers = [];\n\t\t\tthis._childClusters = [];\n\t\t\tthis._childCount = 0;\n\t\t\tthis._iconNeedsUpdate = true;\n\t\t\tthis._boundsNeedUpdate = true;\n\n\t\t\tthis._bounds = new L.LatLngBounds();\n\n\t\t\tif (a) {\n\t\t\t\tthis._addChild(a);\n\t\t\t}\n\t\t\tif (b) {\n\t\t\t\tthis._addChild(b);\n\t\t\t}\n\t\t},\n\n\t\t//Recursively retrieve all child markers of this cluster\n\t\tgetAllChildMarkers: function (storageArray, ignoreDraggedMarker) {\n\t\t\tstorageArray = storageArray || [];\n\n\t\t\tfor (var i = this._childClusters.length - 1; i >= 0; i--) {\n\t\t\t\tthis._childClusters[i].getAllChildMarkers(storageArray, ignoreDraggedMarker);\n\t\t\t}\n\n\t\t\tfor (var j = this._markers.length - 1; j >= 0; j--) {\n\t\t\t\tif (ignoreDraggedMarker && this._markers[j].__dragStart) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstorageArray.push(this._markers[j]);\n\t\t\t}\n\n\t\t\treturn storageArray;\n\t\t},\n\n\t\t//Returns the count of how many child markers we have\n\t\tgetChildCount: function () {\n\t\t\treturn this._childCount;\n\t\t},\n\n\t\t//Zoom to the minimum of showing all of the child markers, or the extents of this cluster\n\t\tzoomToBounds: function (fitBoundsOptions) {\n\t\t\tvar childClusters = this._childClusters.slice(),\n\t\t\t\tmap = this._group._map,\n\t\t\t\tboundsZoom = map.getBoundsZoom(this._bounds),\n\t\t\t\tzoom = this._zoom + 1,\n\t\t\t\tmapZoom = map.getZoom(),\n\t\t\t\ti;\n\n\t\t\t//calculate how far we need to zoom down to see all of the markers\n\t\t\twhile (childClusters.length > 0 && boundsZoom > zoom) {\n\t\t\t\tzoom++;\n\t\t\t\tvar newClusters = [];\n\t\t\t\tfor (i = 0; i < childClusters.length; i++) {\n\t\t\t\t\tnewClusters = newClusters.concat(childClusters[i]._childClusters);\n\t\t\t\t}\n\t\t\t\tchildClusters = newClusters;\n\t\t\t}\n\n\t\t\tif (boundsZoom > zoom) {\n\t\t\t\tthis._group._map.setView(this._latlng, zoom);\n\t\t\t} else if (boundsZoom <= mapZoom) { //If fitBounds wouldn't zoom us down, zoom us down instead\n\t\t\t\tthis._group._map.setView(this._latlng, mapZoom + 1);\n\t\t\t} else {\n\t\t\t\tthis._group._map.fitBounds(this._bounds, fitBoundsOptions);\n\t\t\t}\n\t\t},\n\n\t\tgetBounds: function () {\n\t\t\tvar bounds = new L.LatLngBounds();\n\t\t\tbounds.extend(this._bounds);\n\t\t\treturn bounds;\n\t\t},\n\n\t\t_updateIcon: function () {\n\t\t\tthis._iconNeedsUpdate = true;\n\t\t\tif (this._icon) {\n\t\t\t\tthis.setIcon(this);\n\t\t\t}\n\t\t},\n\n\t\t//Cludge for Icon, we pretend to be an icon for performance\n\t\tcreateIcon: function () {\n\t\t\tif (this._iconNeedsUpdate) {\n\t\t\t\tthis._iconObj = this._group.options.iconCreateFunction(this);\n\t\t\t\tthis._iconNeedsUpdate = false;\n\t\t\t}\n\t\t\treturn this._iconObj.createIcon();\n\t\t},\n\t\tcreateShadow: function () {\n\t\t\treturn this._iconObj.createShadow();\n\t\t},\n\n\n\t\t_addChild: function (new1, isNotificationFromChild) {\n\n\t\t\tthis._iconNeedsUpdate = true;\n\n\t\t\tthis._boundsNeedUpdate = true;\n\t\t\tthis._setClusterCenter(new1);\n\n\t\t\tif (new1 instanceof L.MarkerCluster) {\n\t\t\t\tif (!isNotificationFromChild) {\n\t\t\t\t\tthis._childClusters.push(new1);\n\t\t\t\t\tnew1.__parent = this;\n\t\t\t\t}\n\t\t\t\tthis._childCount += new1._childCount;\n\t\t\t} else {\n\t\t\t\tif (!isNotificationFromChild) {\n\t\t\t\t\tthis._markers.push(new1);\n\t\t\t\t}\n\t\t\t\tthis._childCount++;\n\t\t\t}\n\n\t\t\tif (this.__parent) {\n\t\t\t\tthis.__parent._addChild(new1, true);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Makes sure the cluster center is set. If not, uses the child center if it is a cluster, or the marker position.\n\t\t * @param child L.MarkerCluster|L.Marker that will be used as cluster center if not defined yet.\n\t\t * @private\n\t\t */\n\t\t_setClusterCenter: function (child) {\n\t\t\tif (!this._cLatLng) {\n\t\t\t\t// when clustering, take position of the first point as the cluster center\n\t\t\t\tthis._cLatLng = child._cLatLng || child._latlng;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Assigns impossible bounding values so that the next extend entirely determines the new bounds.\n\t\t * This method avoids having to trash the previous L.LatLngBounds object and to create a new one, which is much slower for this class.\n\t\t * As long as the bounds are not extended, most other methods would probably fail, as they would with bounds initialized but not extended.\n\t\t * @private\n\t\t */\n\t\t_resetBounds: function () {\n\t\t\tvar bounds = this._bounds;\n\n\t\t\tif (bounds._southWest) {\n\t\t\t\tbounds._southWest.lat = Infinity;\n\t\t\t\tbounds._southWest.lng = Infinity;\n\t\t\t}\n\t\t\tif (bounds._northEast) {\n\t\t\t\tbounds._northEast.lat = -Infinity;\n\t\t\t\tbounds._northEast.lng = -Infinity;\n\t\t\t}\n\t\t},\n\n\t\t_recalculateBounds: function () {\n\t\t\tvar markers = this._markers,\n\t\t\t childClusters = this._childClusters,\n\t\t\t latSum = 0,\n\t\t\t lngSum = 0,\n\t\t\t totalCount = this._childCount,\n\t\t\t i, child, childLatLng, childCount;\n\n\t\t\t// Case where all markers are removed from the map and we are left with just an empty _topClusterLevel.\n\t\t\tif (totalCount === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Reset rather than creating a new object, for performance.\n\t\t\tthis._resetBounds();\n\n\t\t\t// Child markers.\n\t\t\tfor (i = 0; i < markers.length; i++) {\n\t\t\t\tchildLatLng = markers[i]._latlng;\n\n\t\t\t\tthis._bounds.extend(childLatLng);\n\n\t\t\t\tlatSum += childLatLng.lat;\n\t\t\t\tlngSum += childLatLng.lng;\n\t\t\t}\n\n\t\t\t// Child clusters.\n\t\t\tfor (i = 0; i < childClusters.length; i++) {\n\t\t\t\tchild = childClusters[i];\n\n\t\t\t\t// Re-compute child bounds and weighted position first if necessary.\n\t\t\t\tif (child._boundsNeedUpdate) {\n\t\t\t\t\tchild._recalculateBounds();\n\t\t\t\t}\n\n\t\t\t\tthis._bounds.extend(child._bounds);\n\n\t\t\t\tchildLatLng = child._wLatLng;\n\t\t\t\tchildCount = child._childCount;\n\n\t\t\t\tlatSum += childLatLng.lat * childCount;\n\t\t\t\tlngSum += childLatLng.lng * childCount;\n\t\t\t}\n\n\t\t\tthis._latlng = this._wLatLng = new L.LatLng(latSum / totalCount, lngSum / totalCount);\n\n\t\t\t// Reset dirty flag.\n\t\t\tthis._boundsNeedUpdate = false;\n\t\t},\n\n\t\t//Set our markers position as given and add it to the map\n\t\t_addToMap: function (startPos) {\n\t\t\tif (startPos) {\n\t\t\t\tthis._backupLatlng = this._latlng;\n\t\t\t\tthis.setLatLng(startPos);\n\t\t\t}\n\t\t\tthis._group._featureGroup.addLayer(this);\n\t\t},\n\n\t\t_recursivelyAnimateChildrenIn: function (bounds, center, maxZoom) {\n\t\t\tthis._recursively(bounds, this._group._map.getMinZoom(), maxZoom - 1,\n\t\t\t\tfunction (c) {\n\t\t\t\t\tvar markers = c._markers,\n\t\t\t\t\t\ti, m;\n\t\t\t\t\tfor (i = markers.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tm = markers[i];\n\n\t\t\t\t\t\t//Only do it if the icon is still on the map\n\t\t\t\t\t\tif (m._icon) {\n\t\t\t\t\t\t\tm._setPos(center);\n\t\t\t\t\t\t\tm.clusterHide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunction (c) {\n\t\t\t\t\tvar childClusters = c._childClusters,\n\t\t\t\t\t\tj, cm;\n\t\t\t\t\tfor (j = childClusters.length - 1; j >= 0; j--) {\n\t\t\t\t\t\tcm = childClusters[j];\n\t\t\t\t\t\tif (cm._icon) {\n\t\t\t\t\t\t\tcm._setPos(center);\n\t\t\t\t\t\t\tcm.clusterHide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t_recursivelyAnimateChildrenInAndAddSelfToMap: function (bounds, mapMinZoom, previousZoomLevel, newZoomLevel) {\n\t\t\tthis._recursively(bounds, newZoomLevel, mapMinZoom,\n\t\t\t\tfunction (c) {\n\t\t\t\t\tc._recursivelyAnimateChildrenIn(bounds, c._group._map.latLngToLayerPoint(c.getLatLng()).round(), previousZoomLevel);\n\n\t\t\t\t\t//TODO: depthToAnimateIn affects _isSingleParent, if there is a multizoom we may/may not be.\n\t\t\t\t\t//As a hack we only do a animation free zoom on a single level zoom, if someone does multiple levels then we always animate\n\t\t\t\t\tif (c._isSingleParent() && previousZoomLevel - 1 === newZoomLevel) {\n\t\t\t\t\t\tc.clusterShow();\n\t\t\t\t\t\tc._recursivelyRemoveChildrenFromMap(bounds, mapMinZoom, previousZoomLevel); //Immediately remove our children as we are replacing them. TODO previousBounds not bounds\n\t\t\t\t\t} else {\n\t\t\t\t\t\tc.clusterHide();\n\t\t\t\t\t}\n\n\t\t\t\t\tc._addToMap();\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t_recursivelyBecomeVisible: function (bounds, zoomLevel) {\n\t\t\tthis._recursively(bounds, this._group._map.getMinZoom(), zoomLevel, null, function (c) {\n\t\t\t\tc.clusterShow();\n\t\t\t});\n\t\t},\n\n\t\t_recursivelyAddChildrenToMap: function (startPos, zoomLevel, bounds) {\n\t\t\tthis._recursively(bounds, this._group._map.getMinZoom() - 1, zoomLevel,\n\t\t\t\tfunction (c) {\n\t\t\t\t\tif (zoomLevel === c._zoom) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t//Add our child markers at startPos (so they can be animated out)\n\t\t\t\t\tfor (var i = c._markers.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tvar nm = c._markers[i];\n\n\t\t\t\t\t\tif (!bounds.contains(nm._latlng)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (startPos) {\n\t\t\t\t\t\t\tnm._backupLatlng = nm.getLatLng();\n\n\t\t\t\t\t\t\tnm.setLatLng(startPos);\n\t\t\t\t\t\t\tif (nm.clusterHide) {\n\t\t\t\t\t\t\t\tnm.clusterHide();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tc._group._featureGroup.addLayer(nm);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunction (c) {\n\t\t\t\t\tc._addToMap(startPos);\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t_recursivelyRestoreChildPositions: function (zoomLevel) {\n\t\t\t//Fix positions of child markers\n\t\t\tfor (var i = this._markers.length - 1; i >= 0; i--) {\n\t\t\t\tvar nm = this._markers[i];\n\t\t\t\tif (nm._backupLatlng) {\n\t\t\t\t\tnm.setLatLng(nm._backupLatlng);\n\t\t\t\t\tdelete nm._backupLatlng;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (zoomLevel - 1 === this._zoom) {\n\t\t\t\t//Reposition child clusters\n\t\t\t\tfor (var j = this._childClusters.length - 1; j >= 0; j--) {\n\t\t\t\t\tthis._childClusters[j]._restorePosition();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (var k = this._childClusters.length - 1; k >= 0; k--) {\n\t\t\t\t\tthis._childClusters[k]._recursivelyRestoreChildPositions(zoomLevel);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_restorePosition: function () {\n\t\t\tif (this._backupLatlng) {\n\t\t\t\tthis.setLatLng(this._backupLatlng);\n\t\t\t\tdelete this._backupLatlng;\n\t\t\t}\n\t\t},\n\n\t\t//exceptBounds: If set, don't remove any markers/clusters in it\n\t\t_recursivelyRemoveChildrenFromMap: function (previousBounds, mapMinZoom, zoomLevel, exceptBounds) {\n\t\t\tvar m, i;\n\t\t\tthis._recursively(previousBounds, mapMinZoom - 1, zoomLevel - 1,\n\t\t\t\tfunction (c) {\n\t\t\t\t\t//Remove markers at every level\n\t\t\t\t\tfor (i = c._markers.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tm = c._markers[i];\n\t\t\t\t\t\tif (!exceptBounds || !exceptBounds.contains(m._latlng)) {\n\t\t\t\t\t\t\tc._group._featureGroup.removeLayer(m);\n\t\t\t\t\t\t\tif (m.clusterShow) {\n\t\t\t\t\t\t\t\tm.clusterShow();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tfunction (c) {\n\t\t\t\t\t//Remove child clusters at just the bottom level\n\t\t\t\t\tfor (i = c._childClusters.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tm = c._childClusters[i];\n\t\t\t\t\t\tif (!exceptBounds || !exceptBounds.contains(m._latlng)) {\n\t\t\t\t\t\t\tc._group._featureGroup.removeLayer(m);\n\t\t\t\t\t\t\tif (m.clusterShow) {\n\t\t\t\t\t\t\t\tm.clusterShow();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\t//Run the given functions recursively to this and child clusters\n\t\t// boundsToApplyTo: a L.LatLngBounds representing the bounds of what clusters to recurse in to\n\t\t// zoomLevelToStart: zoom level to start running functions (inclusive)\n\t\t// zoomLevelToStop: zoom level to stop running functions (inclusive)\n\t\t// runAtEveryLevel: function that takes an L.MarkerCluster as an argument that should be applied on every level\n\t\t// runAtBottomLevel: function that takes an L.MarkerCluster as an argument that should be applied at only the bottom level\n\t\t_recursively: function (boundsToApplyTo, zoomLevelToStart, zoomLevelToStop, runAtEveryLevel, runAtBottomLevel) {\n\t\t\tvar childClusters = this._childClusters,\n\t\t\t zoom = this._zoom,\n\t\t\t i, c;\n\n\t\t\tif (zoomLevelToStart <= zoom) {\n\t\t\t\tif (runAtEveryLevel) {\n\t\t\t\t\trunAtEveryLevel(this);\n\t\t\t\t}\n\t\t\t\tif (runAtBottomLevel && zoom === zoomLevelToStop) {\n\t\t\t\t\trunAtBottomLevel(this);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (zoom < zoomLevelToStart || zoom < zoomLevelToStop) {\n\t\t\t\tfor (i = childClusters.length - 1; i >= 0; i--) {\n\t\t\t\t\tc = childClusters[i];\n\t\t\t\t\tif (c._boundsNeedUpdate) {\n\t\t\t\t\t\tc._recalculateBounds();\n\t\t\t\t\t}\n\t\t\t\t\tif (boundsToApplyTo.intersects(c._bounds)) {\n\t\t\t\t\t\tc._recursively(boundsToApplyTo, zoomLevelToStart, zoomLevelToStop, runAtEveryLevel, runAtBottomLevel);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t//Returns true if we are the parent of only one cluster and that cluster is the same as us\n\t\t_isSingleParent: function () {\n\t\t\t//Don't need to check this._markers as the rest won't work if there are any\n\t\t\treturn this._childClusters.length > 0 && this._childClusters[0]._childCount === this._childCount;\n\t\t}\n\t});\n\n\t/*\n\t* Extends L.Marker to include two extra methods: clusterHide and clusterShow.\n\t* \n\t* They work as setOpacity(0) and setOpacity(1) respectively, but\n\t* don't overwrite the options.opacity\n\t* \n\t*/\n\n\tL.Marker.include({\n\t\tclusterHide: function () {\n\t\t\tvar backup = this.options.opacity;\n\t\t\tthis.setOpacity(0);\n\t\t\tthis.options.opacity = backup;\n\t\t\treturn this;\n\t\t},\n\t\t\n\t\tclusterShow: function () {\n\t\t\treturn this.setOpacity(this.options.opacity);\n\t\t}\n\t});\n\n\tL.DistanceGrid = function (cellSize) {\n\t\tthis._cellSize = cellSize;\n\t\tthis._sqCellSize = cellSize * cellSize;\n\t\tthis._grid = {};\n\t\tthis._objectPoint = { };\n\t};\n\n\tL.DistanceGrid.prototype = {\n\n\t\taddObject: function (obj, point) {\n\t\t\tvar x = this._getCoord(point.x),\n\t\t\t y = this._getCoord(point.y),\n\t\t\t grid = this._grid,\n\t\t\t row = grid[y] = grid[y] || {},\n\t\t\t cell = row[x] = row[x] || [],\n\t\t\t stamp = L.Util.stamp(obj);\n\n\t\t\tthis._objectPoint[stamp] = point;\n\n\t\t\tcell.push(obj);\n\t\t},\n\n\t\tupdateObject: function (obj, point) {\n\t\t\tthis.removeObject(obj);\n\t\t\tthis.addObject(obj, point);\n\t\t},\n\n\t\t//Returns true if the object was found\n\t\tremoveObject: function (obj, point) {\n\t\t\tvar x = this._getCoord(point.x),\n\t\t\t y = this._getCoord(point.y),\n\t\t\t grid = this._grid,\n\t\t\t row = grid[y] = grid[y] || {},\n\t\t\t cell = row[x] = row[x] || [],\n\t\t\t i, len;\n\n\t\t\tdelete this._objectPoint[L.Util.stamp(obj)];\n\n\t\t\tfor (i = 0, len = cell.length; i < len; i++) {\n\t\t\t\tif (cell[i] === obj) {\n\n\t\t\t\t\tcell.splice(i, 1);\n\n\t\t\t\t\tif (len === 1) {\n\t\t\t\t\t\tdelete row[x];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t},\n\n\t\teachObject: function (fn, context) {\n\t\t\tvar i, j, k, len, row, cell, removed,\n\t\t\t grid = this._grid;\n\n\t\t\tfor (i in grid) {\n\t\t\t\trow = grid[i];\n\n\t\t\t\tfor (j in row) {\n\t\t\t\t\tcell = row[j];\n\n\t\t\t\t\tfor (k = 0, len = cell.length; k < len; k++) {\n\t\t\t\t\t\tremoved = fn.call(context, cell[k]);\n\t\t\t\t\t\tif (removed) {\n\t\t\t\t\t\t\tk--;\n\t\t\t\t\t\t\tlen--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tgetNearObject: function (point) {\n\t\t\tvar x = this._getCoord(point.x),\n\t\t\t y = this._getCoord(point.y),\n\t\t\t i, j, k, row, cell, len, obj, dist,\n\t\t\t objectPoint = this._objectPoint,\n\t\t\t closestDistSq = this._sqCellSize,\n\t\t\t closest = null;\n\n\t\t\tfor (i = y - 1; i <= y + 1; i++) {\n\t\t\t\trow = this._grid[i];\n\t\t\t\tif (row) {\n\n\t\t\t\t\tfor (j = x - 1; j <= x + 1; j++) {\n\t\t\t\t\t\tcell = row[j];\n\t\t\t\t\t\tif (cell) {\n\n\t\t\t\t\t\t\tfor (k = 0, len = cell.length; k < len; k++) {\n\t\t\t\t\t\t\t\tobj = cell[k];\n\t\t\t\t\t\t\t\tdist = this._sqDist(objectPoint[L.Util.stamp(obj)], point);\n\t\t\t\t\t\t\t\tif (dist < closestDistSq ||\n\t\t\t\t\t\t\t\t\tdist <= closestDistSq && closest === null) {\n\t\t\t\t\t\t\t\t\tclosestDistSq = dist;\n\t\t\t\t\t\t\t\t\tclosest = obj;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn closest;\n\t\t},\n\n\t\t_getCoord: function (x) {\n\t\t\tvar coord = Math.floor(x / this._cellSize);\n\t\t\treturn isFinite(coord) ? coord : x;\n\t\t},\n\n\t\t_sqDist: function (p, p2) {\n\t\t\tvar dx = p2.x - p.x,\n\t\t\t dy = p2.y - p.y;\n\t\t\treturn dx * dx + dy * dy;\n\t\t}\n\t};\n\n\t/* Copyright (c) 2012 the authors listed at the following URL, and/or\n\tthe authors of referenced articles or incorporated external code:\n\thttp://en.literateprograms.org/Quickhull_(Javascript)?action=history&offset=20120410175256\n\n\tPermission is hereby granted, free of charge, to any person obtaining\n\ta copy of this software and associated documentation files (the\n\t\"Software\"), to deal in the Software without restriction, including\n\twithout limitation the rights to use, copy, modify, merge, publish,\n\tdistribute, sublicense, and/or sell copies of the Software, and to\n\tpermit persons to whom the Software is furnished to do so, subject to\n\tthe following conditions:\n\n\tThe above copyright notice and this permission notice shall be\n\tincluded in all copies or substantial portions of the Software.\n\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n\tEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\tMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n\tIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n\tCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n\tTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n\tSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\tRetrieved from: http://en.literateprograms.org/Quickhull_(Javascript)?oldid=18434\n\t*/\n\n\t(function () {\n\t\tL.QuickHull = {\n\n\t\t\t/*\n\t\t\t * @param {Object} cpt a point to be measured from the baseline\n\t\t\t * @param {Array} bl the baseline, as represented by a two-element\n\t\t\t * array of latlng objects.\n\t\t\t * @returns {Number} an approximate distance measure\n\t\t\t */\n\t\t\tgetDistant: function (cpt, bl) {\n\t\t\t\tvar vY = bl[1].lat - bl[0].lat,\n\t\t\t\t\tvX = bl[0].lng - bl[1].lng;\n\t\t\t\treturn (vX * (cpt.lat - bl[0].lat) + vY * (cpt.lng - bl[0].lng));\n\t\t\t},\n\n\t\t\t/*\n\t\t\t * @param {Array} baseLine a two-element array of latlng objects\n\t\t\t * representing the baseline to project from\n\t\t\t * @param {Array} latLngs an array of latlng objects\n\t\t\t * @returns {Object} the maximum point and all new points to stay\n\t\t\t * in consideration for the hull.\n\t\t\t */\n\t\t\tfindMostDistantPointFromBaseLine: function (baseLine, latLngs) {\n\t\t\t\tvar maxD = 0,\n\t\t\t\t\tmaxPt = null,\n\t\t\t\t\tnewPoints = [],\n\t\t\t\t\ti, pt, d;\n\n\t\t\t\tfor (i = latLngs.length - 1; i >= 0; i--) {\n\t\t\t\t\tpt = latLngs[i];\n\t\t\t\t\td = this.getDistant(pt, baseLine);\n\n\t\t\t\t\tif (d > 0) {\n\t\t\t\t\t\tnewPoints.push(pt);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (d > maxD) {\n\t\t\t\t\t\tmaxD = d;\n\t\t\t\t\t\tmaxPt = pt;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn { maxPoint: maxPt, newPoints: newPoints };\n\t\t\t},\n\n\n\t\t\t/*\n\t\t\t * Given a baseline, compute the convex hull of latLngs as an array\n\t\t\t * of latLngs.\n\t\t\t *\n\t\t\t * @param {Array} latLngs\n\t\t\t * @returns {Array}\n\t\t\t */\n\t\t\tbuildConvexHull: function (baseLine, latLngs) {\n\t\t\t\tvar convexHullBaseLines = [],\n\t\t\t\t\tt = this.findMostDistantPointFromBaseLine(baseLine, latLngs);\n\n\t\t\t\tif (t.maxPoint) { // if there is still a point \"outside\" the base line\n\t\t\t\t\tconvexHullBaseLines =\n\t\t\t\t\t\tconvexHullBaseLines.concat(\n\t\t\t\t\t\t\tthis.buildConvexHull([baseLine[0], t.maxPoint], t.newPoints)\n\t\t\t\t\t\t);\n\t\t\t\t\tconvexHullBaseLines =\n\t\t\t\t\t\tconvexHullBaseLines.concat(\n\t\t\t\t\t\t\tthis.buildConvexHull([t.maxPoint, baseLine[1]], t.newPoints)\n\t\t\t\t\t\t);\n\t\t\t\t\treturn convexHullBaseLines;\n\t\t\t\t} else { // if there is no more point \"outside\" the base line, the current base line is part of the convex hull\n\t\t\t\t\treturn [baseLine[0]];\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/*\n\t\t\t * Given an array of latlngs, compute a convex hull as an array\n\t\t\t * of latlngs\n\t\t\t *\n\t\t\t * @param {Array} latLngs\n\t\t\t * @returns {Array}\n\t\t\t */\n\t\t\tgetConvexHull: function (latLngs) {\n\t\t\t\t// find first baseline\n\t\t\t\tvar maxLat = false, minLat = false,\n\t\t\t\t\tmaxLng = false, minLng = false,\n\t\t\t\t\tmaxLatPt = null, minLatPt = null,\n\t\t\t\t\tmaxLngPt = null, minLngPt = null,\n\t\t\t\t\tmaxPt = null, minPt = null,\n\t\t\t\t\ti;\n\n\t\t\t\tfor (i = latLngs.length - 1; i >= 0; i--) {\n\t\t\t\t\tvar pt = latLngs[i];\n\t\t\t\t\tif (maxLat === false || pt.lat > maxLat) {\n\t\t\t\t\t\tmaxLatPt = pt;\n\t\t\t\t\t\tmaxLat = pt.lat;\n\t\t\t\t\t}\n\t\t\t\t\tif (minLat === false || pt.lat < minLat) {\n\t\t\t\t\t\tminLatPt = pt;\n\t\t\t\t\t\tminLat = pt.lat;\n\t\t\t\t\t}\n\t\t\t\t\tif (maxLng === false || pt.lng > maxLng) {\n\t\t\t\t\t\tmaxLngPt = pt;\n\t\t\t\t\t\tmaxLng = pt.lng;\n\t\t\t\t\t}\n\t\t\t\t\tif (minLng === false || pt.lng < minLng) {\n\t\t\t\t\t\tminLngPt = pt;\n\t\t\t\t\t\tminLng = pt.lng;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (minLat !== maxLat) {\n\t\t\t\t\tminPt = minLatPt;\n\t\t\t\t\tmaxPt = maxLatPt;\n\t\t\t\t} else {\n\t\t\t\t\tminPt = minLngPt;\n\t\t\t\t\tmaxPt = maxLngPt;\n\t\t\t\t}\n\n\t\t\t\tvar ch = [].concat(this.buildConvexHull([minPt, maxPt], latLngs),\n\t\t\t\t\t\t\t\t\tthis.buildConvexHull([maxPt, minPt], latLngs));\n\t\t\t\treturn ch;\n\t\t\t}\n\t\t};\n\t}());\n\n\tL.MarkerCluster.include({\n\t\tgetConvexHull: function () {\n\t\t\tvar childMarkers = this.getAllChildMarkers(),\n\t\t\t\tpoints = [],\n\t\t\t\tp, i;\n\n\t\t\tfor (i = childMarkers.length - 1; i >= 0; i--) {\n\t\t\t\tp = childMarkers[i].getLatLng();\n\t\t\t\tpoints.push(p);\n\t\t\t}\n\n\t\t\treturn L.QuickHull.getConvexHull(points);\n\t\t}\n\t});\n\n\t//This code is 100% based on https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet\n\t//Huge thanks to jawj for implementing it first to make my job easy :-)\n\n\tL.MarkerCluster.include({\n\n\t\t_2PI: Math.PI * 2,\n\t\t_circleFootSeparation: 25, //related to circumference of circle\n\t\t_circleStartAngle: 0,\n\n\t\t_spiralFootSeparation: 28, //related to size of spiral (experiment!)\n\t\t_spiralLengthStart: 11,\n\t\t_spiralLengthFactor: 5,\n\n\t\t_circleSpiralSwitchover: 9, //show spiral instead of circle from this marker count upwards.\n\t\t\t\t\t\t\t\t\t// 0 -> always spiral; Infinity -> always circle\n\n\t\tspiderfy: function () {\n\t\t\tif (this._group._spiderfied === this || this._group._inZoomAnimation) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar childMarkers = this.getAllChildMarkers(null, true),\n\t\t\t\tgroup = this._group,\n\t\t\t\tmap = group._map,\n\t\t\t\tcenter = map.latLngToLayerPoint(this._latlng),\n\t\t\t\tpositions;\n\n\t\t\tthis._group._unspiderfy();\n\t\t\tthis._group._spiderfied = this;\n\n\t\t\t//TODO Maybe: childMarkers order by distance to center\n\n\t\t\tif (this._group.options.spiderfyShapePositions) {\n\t\t\t\tpositions = this._group.options.spiderfyShapePositions(childMarkers.length, center);\n\t\t\t} else if (childMarkers.length >= this._circleSpiralSwitchover) {\n\t\t\t\tpositions = this._generatePointsSpiral(childMarkers.length, center);\n\t\t\t} else {\n\t\t\t\tcenter.y += 10; // Otherwise circles look wrong => hack for standard blue icon, renders differently for other icons.\n\t\t\t\tpositions = this._generatePointsCircle(childMarkers.length, center);\n\t\t\t}\n\n\t\t\tthis._animationSpiderfy(childMarkers, positions);\n\t\t},\n\n\t\tunspiderfy: function (zoomDetails) {\n\t\t\t/// <param Name=\"zoomDetails\">Argument from zoomanim if being called in a zoom animation or null otherwise</param>\n\t\t\tif (this._group._inZoomAnimation) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._animationUnspiderfy(zoomDetails);\n\n\t\t\tthis._group._spiderfied = null;\n\t\t},\n\n\t\t_generatePointsCircle: function (count, centerPt) {\n\t\t\tvar circumference = this._group.options.spiderfyDistanceMultiplier * this._circleFootSeparation * (2 + count),\n\t\t\t\tlegLength = circumference / this._2PI, //radius from circumference\n\t\t\t\tangleStep = this._2PI / count,\n\t\t\t\tres = [],\n\t\t\t\ti, angle;\n\n\t\t\tlegLength = Math.max(legLength, 35); // Minimum distance to get outside the cluster icon.\n\n\t\t\tres.length = count;\n\n\t\t\tfor (i = 0; i < count; i++) { // Clockwise, like spiral.\n\t\t\t\tangle = this._circleStartAngle + i * angleStep;\n\t\t\t\tres[i] = new L.Point(centerPt.x + legLength * Math.cos(angle), centerPt.y + legLength * Math.sin(angle))._round();\n\t\t\t}\n\n\t\t\treturn res;\n\t\t},\n\n\t\t_generatePointsSpiral: function (count, centerPt) {\n\t\t\tvar spiderfyDistanceMultiplier = this._group.options.spiderfyDistanceMultiplier,\n\t\t\t\tlegLength = spiderfyDistanceMultiplier * this._spiralLengthStart,\n\t\t\t\tseparation = spiderfyDistanceMultiplier * this._spiralFootSeparation,\n\t\t\t\tlengthFactor = spiderfyDistanceMultiplier * this._spiralLengthFactor * this._2PI,\n\t\t\t\tangle = 0,\n\t\t\t\tres = [],\n\t\t\t\ti;\n\n\t\t\tres.length = count;\n\n\t\t\t// Higher index, closer position to cluster center.\n\t\t\tfor (i = count; i >= 0; i--) {\n\t\t\t\t// Skip the first position, so that we are already farther from center and we avoid\n\t\t\t\t// being under the default cluster icon (especially important for Circle Markers).\n\t\t\t\tif (i < count) {\n\t\t\t\t\tres[i] = new L.Point(centerPt.x + legLength * Math.cos(angle), centerPt.y + legLength * Math.sin(angle))._round();\n\t\t\t\t}\n\t\t\t\tangle += separation / legLength + i * 0.0005;\n\t\t\t\tlegLength += lengthFactor / angle;\n\t\t\t}\n\t\t\treturn res;\n\t\t},\n\n\t\t_noanimationUnspiderfy: function () {\n\t\t\tvar group = this._group,\n\t\t\t\tmap = group._map,\n\t\t\t\tfg = group._featureGroup,\n\t\t\t\tchildMarkers = this.getAllChildMarkers(null, true),\n\t\t\t\tm, i;\n\n\t\t\tgroup._ignoreMove = true;\n\n\t\t\tthis.setOpacity(1);\n\t\t\tfor (i = childMarkers.length - 1; i >= 0; i--) {\n\t\t\t\tm = childMarkers[i];\n\n\t\t\t\tfg.removeLayer(m);\n\n\t\t\t\tif (m._preSpiderfyLatlng) {\n\t\t\t\t\tm.setLatLng(m._preSpiderfyLatlng);\n\t\t\t\t\tdelete m._preSpiderfyLatlng;\n\t\t\t\t}\n\t\t\t\tif (m.setZIndexOffset) {\n\t\t\t\t\tm.setZIndexOffset(0);\n\t\t\t\t}\n\n\t\t\t\tif (m._spiderLeg) {\n\t\t\t\t\tmap.removeLayer(m._spiderLeg);\n\t\t\t\t\tdelete m._spiderLeg;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tgroup.fire('unspiderfied', {\n\t\t\t\tcluster: this,\n\t\t\t\tmarkers: childMarkers\n\t\t\t});\n\t\t\tgroup._ignoreMove = false;\n\t\t\tgroup._spiderfied = null;\n\t\t}\n\t});\n\n\t//Non Animated versions of everything\n\tL.MarkerClusterNonAnimated = L.MarkerCluster.extend({\n\t\t_animationSpiderfy: function (childMarkers, positions) {\n\t\t\tvar group = this._group,\n\t\t\t\tmap = group._map,\n\t\t\t\tfg = group._featureGroup,\n\t\t\t\tlegOptions = this._group.options.spiderLegPolylineOptions,\n\t\t\t\ti, m, leg, newPos;\n\n\t\t\tgroup._ignoreMove = true;\n\n\t\t\t// Traverse in ascending order to make sure that inner circleMarkers are on top of further legs. Normal markers are re-ordered by newPosition.\n\t\t\t// The reverse order trick no longer improves performance on modern browsers.\n\t\t\tfor (i = 0; i < childMarkers.length; i++) {\n\t\t\t\tnewPos = map.layerPointToLatLng(positions[i]);\n\t\t\t\tm = childMarkers[i];\n\n\t\t\t\t// Add the leg before the marker, so that in case the latter is a circleMarker, the leg is behind it.\n\t\t\t\tleg = new L.Polyline([this._latlng, newPos], legOptions);\n\t\t\t\tmap.addLayer(leg);\n\t\t\t\tm._spiderLeg = leg;\n\n\t\t\t\t// Now add the marker.\n\t\t\t\tm._preSpiderfyLatlng = m._latlng;\n\t\t\t\tm.setLatLng(newPos);\n\t\t\t\tif (m.setZIndexOffset) {\n\t\t\t\t\tm.setZIndexOffset(1000000); //Make these appear on top of EVERYTHING\n\t\t\t\t}\n\n\t\t\t\tfg.addLayer(m);\n\t\t\t}\n\t\t\tthis.setOpacity(0.3);\n\n\t\t\tgroup._ignoreMove = false;\n\t\t\tgroup.fire('spiderfied', {\n\t\t\t\tcluster: this,\n\t\t\t\tmarkers: childMarkers\n\t\t\t});\n\t\t},\n\n\t\t_animationUnspiderfy: function () {\n\t\t\tthis._noanimationUnspiderfy();\n\t\t}\n\t});\n\n\t//Animated versions here\n\tL.MarkerCluster.include({\n\n\t\t_animationSpiderfy: function (childMarkers, positions) {\n\t\t\tvar me = this,\n\t\t\t\tgroup = this._group,\n\t\t\t\tmap = group._map,\n\t\t\t\tfg = group._featureGroup,\n\t\t\t\tthisLayerLatLng = this._latlng,\n\t\t\t\tthisLayerPos = map.latLngToLayerPoint(thisLayerLatLng),\n\t\t\t\tsvg = L.Path.SVG,\n\t\t\t\tlegOptions = L.extend({}, this._group.options.spiderLegPolylineOptions), // Copy the options so that we can modify them for animation.\n\t\t\t\tfinalLegOpacity = legOptions.opacity,\n\t\t\t\ti, m, leg, legPath, legLength, newPos;\n\n\t\t\tif (finalLegOpacity === undefined) {\n\t\t\t\tfinalLegOpacity = L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity;\n\t\t\t}\n\n\t\t\tif (svg) {\n\t\t\t\t// If the initial opacity of the spider leg is not 0 then it appears before the animation starts.\n\t\t\t\tlegOptions.opacity = 0;\n\n\t\t\t\t// Add the class for CSS transitions.\n\t\t\t\tlegOptions.className = (legOptions.className || '') + ' leaflet-cluster-spider-leg';\n\t\t\t} else {\n\t\t\t\t// Make sure we have a defined opacity.\n\t\t\t\tlegOptions.opacity = finalLegOpacity;\n\t\t\t}\n\n\t\t\tgroup._ignoreMove = true;\n\n\t\t\t// Add markers and spider legs to map, hidden at our center point.\n\t\t\t// Traverse in ascending order to make sure that inner circleMarkers are on top of further legs. Normal markers are re-ordered by newPosition.\n\t\t\t// The reverse order trick no longer improves performance on modern browsers.\n\t\t\tfor (i = 0; i < childMarkers.length; i++) {\n\t\t\t\tm = childMarkers[i];\n\n\t\t\t\tnewPos = map.layerPointToLatLng(positions[i]);\n\n\t\t\t\t// Add the leg before the marker, so that in case the latter is a circleMarker, the leg is behind it.\n\t\t\t\tleg = new L.Polyline([thisLayerLatLng, newPos], legOptions);\n\t\t\t\tmap.addLayer(leg);\n\t\t\t\tm._spiderLeg = leg;\n\n\t\t\t\t// Explanations: https://jakearchibald.com/2013/animated-line-drawing-svg/\n\t\t\t\t// In our case the transition property is declared in the CSS file.\n\t\t\t\tif (svg) {\n\t\t\t\t\tlegPath = leg._path;\n\t\t\t\t\tlegLength = legPath.getTotalLength() + 0.1; // Need a small extra length to avoid remaining dot in Firefox.\n\t\t\t\t\tlegPath.style.strokeDasharray = legLength; // Just 1 length is enough, it will be duplicated.\n\t\t\t\t\tlegPath.style.strokeDashoffset = legLength;\n\t\t\t\t}\n\n\t\t\t\t// If it is a marker, add it now and we'll animate it out\n\t\t\t\tif (m.setZIndexOffset) {\n\t\t\t\t\tm.setZIndexOffset(1000000); // Make normal markers appear on top of EVERYTHING\n\t\t\t\t}\n\t\t\t\tif (m.clusterHide) {\n\t\t\t\t\tm.clusterHide();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t// Vectors just get immediately added\n\t\t\t\tfg.addLayer(m);\n\n\t\t\t\tif (m._setPos) {\n\t\t\t\t\tm._setPos(thisLayerPos);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tgroup._forceLayout();\n\t\t\tgroup._animationStart();\n\n\t\t\t// Reveal markers and spider legs.\n\t\t\tfor (i = childMarkers.length - 1; i >= 0; i--) {\n\t\t\t\tnewPos = map.layerPointToLatLng(positions[i]);\n\t\t\t\tm = childMarkers[i];\n\n\t\t\t\t//Move marker to new position\n\t\t\t\tm._preSpiderfyLatlng = m._latlng;\n\t\t\t\tm.setLatLng(newPos);\n\t\t\t\t\n\t\t\t\tif (m.clusterShow) {\n\t\t\t\t\tm.clusterShow();\n\t\t\t\t}\n\n\t\t\t\t// Animate leg (animation is actually delegated to CSS transition).\n\t\t\t\tif (svg) {\n\t\t\t\t\tleg = m._spiderLeg;\n\t\t\t\t\tlegPath = leg._path;\n\t\t\t\t\tlegPath.style.strokeDashoffset = 0;\n\t\t\t\t\t//legPath.style.strokeOpacity = finalLegOpacity;\n\t\t\t\t\tleg.setStyle({opacity: finalLegOpacity});\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.setOpacity(0.3);\n\n\t\t\tgroup._ignoreMove = false;\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tgroup._animationEnd();\n\t\t\t\tgroup.fire('spiderfied', {\n\t\t\t\t\tcluster: me,\n\t\t\t\t\tmarkers: childMarkers\n\t\t\t\t});\n\t\t\t}, 200);\n\t\t},\n\n\t\t_animationUnspiderfy: function (zoomDetails) {\n\t\t\tvar me = this,\n\t\t\t\tgroup = this._group,\n\t\t\t\tmap = group._map,\n\t\t\t\tfg = group._featureGroup,\n\t\t\t\tthisLayerPos = zoomDetails ? map._latLngToNewLayerPoint(this._latlng, zoomDetails.zoom, zoomDetails.center) : map.latLngToLayerPoint(this._latlng),\n\t\t\t\tchildMarkers = this.getAllChildMarkers(null, true),\n\t\t\t\tsvg = L.Path.SVG,\n\t\t\t\tm, i, leg, legPath, legLength, nonAnimatable;\n\n\t\t\tgroup._ignoreMove = true;\n\t\t\tgroup._animationStart();\n\n\t\t\t//Make us visible and bring the child markers back in\n\t\t\tthis.setOpacity(1);\n\t\t\tfor (i = childMarkers.length - 1; i >= 0; i--) {\n\t\t\t\tm = childMarkers[i];\n\n\t\t\t\t//Marker was added to us after we were spiderfied\n\t\t\t\tif (!m._preSpiderfyLatlng) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t//Close any popup on the marker first, otherwise setting the location of the marker will make the map scroll\n\t\t\t\tm.closePopup();\n\n\t\t\t\t//Fix up the location to the real one\n\t\t\t\tm.setLatLng(m._preSpiderfyLatlng);\n\t\t\t\tdelete m._preSpiderfyLatlng;\n\n\t\t\t\t//Hack override the location to be our center\n\t\t\t\tnonAnimatable = true;\n\t\t\t\tif (m._setPos) {\n\t\t\t\t\tm._setPos(thisLayerPos);\n\t\t\t\t\tnonAnimatable = false;\n\t\t\t\t}\n\t\t\t\tif (m.clusterHide) {\n\t\t\t\t\tm.clusterHide();\n\t\t\t\t\tnonAnimatable = false;\n\t\t\t\t}\n\t\t\t\tif (nonAnimatable) {\n\t\t\t\t\tfg.removeLayer(m);\n\t\t\t\t}\n\n\t\t\t\t// Animate the spider leg back in (animation is actually delegated to CSS transition).\n\t\t\t\tif (svg) {\n\t\t\t\t\tleg = m._spiderLeg;\n\t\t\t\t\tlegPath = leg._path;\n\t\t\t\t\tlegLength = legPath.getTotalLength() + 0.1;\n\t\t\t\t\tlegPath.style.strokeDashoffset = legLength;\n\t\t\t\t\tleg.setStyle({opacity: 0});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tgroup._ignoreMove = false;\n\n\t\t\tsetTimeout(function () {\n\t\t\t\t//If we have only <= one child left then that marker will be shown on the map so don't remove it!\n\t\t\t\tvar stillThereChildCount = 0;\n\t\t\t\tfor (i = childMarkers.length - 1; i >= 0; i--) {\n\t\t\t\t\tm = childMarkers[i];\n\t\t\t\t\tif (m._spiderLeg) {\n\t\t\t\t\t\tstillThereChildCount++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\t\t\t\tfor (i = childMarkers.length - 1; i >= 0; i--) {\n\t\t\t\t\tm = childMarkers[i];\n\n\t\t\t\t\tif (!m._spiderLeg) { //Has already been unspiderfied\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (m.clusterShow) {\n\t\t\t\t\t\tm.clusterShow();\n\t\t\t\t\t}\n\t\t\t\t\tif (m.setZIndexOffset) {\n\t\t\t\t\t\tm.setZIndexOffset(0);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (stillThereChildCount > 1) {\n\t\t\t\t\t\tfg.removeLayer(m);\n\t\t\t\t\t}\n\n\t\t\t\t\tmap.removeLayer(m._spiderLeg);\n\t\t\t\t\tdelete m._spiderLeg;\n\t\t\t\t}\n\t\t\t\tgroup._animationEnd();\n\t\t\t\tgroup.fire('unspiderfied', {\n\t\t\t\t\tcluster: me,\n\t\t\t\t\tmarkers: childMarkers\n\t\t\t\t});\n\t\t\t}, 200);\n\t\t}\n\t});\n\n\n\tL.MarkerClusterGroup.include({\n\t\t//The MarkerCluster currently spiderfied (if any)\n\t\t_spiderfied: null,\n\n\t\tunspiderfy: function () {\n\t\t\tthis._unspiderfy.apply(this, arguments);\n\t\t},\n\n\t\t_spiderfierOnAdd: function () {\n\t\t\tthis._map.on('click', this._unspiderfyWrapper, this);\n\n\t\t\tif (this._map.options.zoomAnimation) {\n\t\t\t\tthis._map.on('zoomstart', this._unspiderfyZoomStart, this);\n\t\t\t}\n\t\t\t//Browsers without zoomAnimation or a big zoom don't fire zoomstart\n\t\t\tthis._map.on('zoomend', this._noanimationUnspiderfy, this);\n\n\t\t\tif (!L.Browser.touch) {\n\t\t\t\tthis._map.getRenderer(this);\n\t\t\t\t//Needs to happen in the pageload, not after, or animations don't work in webkit\n\t\t\t\t// http://stackoverflow.com/questions/8455200/svg-animate-with-dynamically-added-elements\n\t\t\t\t//Disable on touch browsers as the animation messes up on a touch zoom and isn't very noticable\n\t\t\t}\n\t\t},\n\n\t\t_spiderfierOnRemove: function () {\n\t\t\tthis._map.off('click', this._unspiderfyWrapper, this);\n\t\t\tthis._map.off('zoomstart', this._unspiderfyZoomStart, this);\n\t\t\tthis._map.off('zoomanim', this._unspiderfyZoomAnim, this);\n\t\t\tthis._map.off('zoomend', this._noanimationUnspiderfy, this);\n\n\t\t\t//Ensure that markers are back where they should be\n\t\t\t// Use no animation to avoid a sticky leaflet-cluster-anim class on mapPane\n\t\t\tthis._noanimationUnspiderfy();\n\t\t},\n\n\t\t//On zoom start we add a zoomanim handler so that we are guaranteed to be last (after markers are animated)\n\t\t//This means we can define the animation they do rather than Markers doing an animation to their actual location\n\t\t_unspiderfyZoomStart: function () {\n\t\t\tif (!this._map) { //May have been removed from the map by a zoomEnd handler\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._map.on('zoomanim', this._unspiderfyZoomAnim, this);\n\t\t},\n\n\t\t_unspiderfyZoomAnim: function (zoomDetails) {\n\t\t\t//Wait until the first zoomanim after the user has finished touch-zooming before running the animation\n\t\t\tif (L.DomUtil.hasClass(this._map._mapPane, 'leaflet-touching')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._map.off('zoomanim', this._unspiderfyZoomAnim, this);\n\t\t\tthis._unspiderfy(zoomDetails);\n\t\t},\n\n\t\t_unspiderfyWrapper: function () {\n\t\t\t/// <summary>_unspiderfy but passes no arguments</summary>\n\t\t\tthis._unspiderfy();\n\t\t},\n\n\t\t_unspiderfy: function (zoomDetails) {\n\t\t\tif (this._spiderfied) {\n\t\t\t\tthis._spiderfied.unspiderfy(zoomDetails);\n\t\t\t}\n\t\t},\n\n\t\t_noanimationUnspiderfy: function () {\n\t\t\tif (this._spiderfied) {\n\t\t\t\tthis._spiderfied._noanimationUnspiderfy();\n\t\t\t}\n\t\t},\n\n\t\t//If the given layer is currently being spiderfied then we unspiderfy it so it isn't on the map anymore etc\n\t\t_unspiderfyLayer: function (layer) {\n\t\t\tif (layer._spiderLeg) {\n\t\t\t\tthis._featureGroup.removeLayer(layer);\n\n\t\t\t\tif (layer.clusterShow) {\n\t\t\t\t\tlayer.clusterShow();\n\t\t\t\t}\n\t\t\t\t\t//Position will be fixed up immediately in _animationUnspiderfy\n\t\t\t\tif (layer.setZIndexOffset) {\n\t\t\t\t\tlayer.setZIndexOffset(0);\n\t\t\t\t}\n\n\t\t\t\tthis._map.removeLayer(layer._spiderLeg);\n\t\t\t\tdelete layer._spiderLeg;\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * Adds 1 public method to MCG and 1 to L.Marker to facilitate changing\n\t * markers' icon options and refreshing their icon and their parent clusters\n\t * accordingly (case where their iconCreateFunction uses data of childMarkers\n\t * to make up the cluster icon).\n\t */\n\n\n\tL.MarkerClusterGroup.include({\n\t\t/**\n\t\t * Updates the icon of all clusters which are parents of the given marker(s).\n\t\t * In singleMarkerMode, also updates the given marker(s) icon.\n\t\t * @param layers L.MarkerClusterGroup|L.LayerGroup|Array(L.Marker)|Map(L.Marker)|\n\t\t * L.MarkerCluster|L.Marker (optional) list of markers (or single marker) whose parent\n\t\t * clusters need to be updated. If not provided, retrieves all child markers of this.\n\t\t * @returns {L.MarkerClusterGroup}\n\t\t */\n\t\trefreshClusters: function (layers) {\n\t\t\tif (!layers) {\n\t\t\t\tlayers = this._topClusterLevel.getAllChildMarkers();\n\t\t\t} else if (layers instanceof L.MarkerClusterGroup) {\n\t\t\t\tlayers = layers._topClusterLevel.getAllChildMarkers();\n\t\t\t} else if (layers instanceof L.LayerGroup) {\n\t\t\t\tlayers = layers._layers;\n\t\t\t} else if (layers instanceof L.MarkerCluster) {\n\t\t\t\tlayers = layers.getAllChildMarkers();\n\t\t\t} else if (layers instanceof L.Marker) {\n\t\t\t\tlayers = [layers];\n\t\t\t} // else: must be an Array(L.Marker)|Map(L.Marker)\n\t\t\tthis._flagParentsIconsNeedUpdate(layers);\n\t\t\tthis._refreshClustersIcons();\n\n\t\t\t// In case of singleMarkerMode, also re-draw the markers.\n\t\t\tif (this.options.singleMarkerMode) {\n\t\t\t\tthis._refreshSingleMarkerModeMarkers(layers);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * Simply flags all parent clusters of the given markers as having a \"dirty\" icon.\n\t\t * @param layers Array(L.Marker)|Map(L.Marker) list of markers.\n\t\t * @private\n\t\t */\n\t\t_flagParentsIconsNeedUpdate: function (layers) {\n\t\t\tvar id, parent;\n\n\t\t\t// Assumes layers is an Array or an Object whose prototype is non-enumerable.\n\t\t\tfor (id in layers) {\n\t\t\t\t// Flag parent clusters' icon as \"dirty\", all the way up.\n\t\t\t\t// Dumb process that flags multiple times upper parents, but still\n\t\t\t\t// much more efficient than trying to be smart and make short lists,\n\t\t\t\t// at least in the case of a hierarchy following a power law:\n\t\t\t\t// http://jsperf.com/flag-nodes-in-power-hierarchy/2\n\t\t\t\tparent = layers[id].__parent;\n\t\t\t\twhile (parent) {\n\t\t\t\t\tparent._iconNeedsUpdate = true;\n\t\t\t\t\tparent = parent.__parent;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Re-draws the icon of the supplied markers.\n\t\t * To be used in singleMarkerMode only.\n\t\t * @param layers Array(L.Marker)|Map(L.Marker) list of markers.\n\t\t * @private\n\t\t */\n\t\t_refreshSingleMarkerModeMarkers: function (layers) {\n\t\t\tvar id, layer;\n\n\t\t\tfor (id in layers) {\n\t\t\t\tlayer = layers[id];\n\n\t\t\t\t// Make sure we do not override markers that do not belong to THIS group.\n\t\t\t\tif (this.hasLayer(layer)) {\n\t\t\t\t\t// Need to re-create the icon first, then re-draw the marker.\n\t\t\t\t\tlayer.setIcon(this._overrideMarkerIcon(layer));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\tL.Marker.include({\n\t\t/**\n\t\t * Updates the given options in the marker's icon and refreshes the marker.\n\t\t * @param options map object of icon options.\n\t\t * @param directlyRefreshClusters boolean (optional) true to trigger\n\t\t * MCG.refreshClustersOf() right away with this single marker.\n\t\t * @returns {L.Marker}\n\t\t */\n\t\trefreshIconOptions: function (options, directlyRefreshClusters) {\n\t\t\tvar icon = this.options.icon;\n\n\t\t\tL.setOptions(icon, options);\n\n\t\t\tthis.setIcon(icon);\n\n\t\t\t// Shortcut to refresh the associated MCG clusters right away.\n\t\t\t// To be used when refreshing a single marker.\n\t\t\t// Otherwise, better use MCG.refreshClusters() once at the end with\n\t\t\t// the list of modified markers.\n\t\t\tif (directlyRefreshClusters && this.__parent) {\n\t\t\t\tthis.__parent._group.refreshClusters(this);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\t});\n\n\texports.MarkerClusterGroup = MarkerClusterGroup;\n\texports.MarkerCluster = MarkerCluster;\n\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=leaflet.markercluster-src.js.map\n","import L, { Layer, Map, Marker, Polyline, Polygon } from 'leaflet';\r\nimport 'leaflet.fullscreen/Control.FullScreen.js';\r\nimport 'leaflet.fullscreen';\r\nimport 'leaflet.markercluster';\r\nimport { WPGPXMAPS } from '../Utils/Utils';\r\n\r\nimport 'leaflet.markercluster/dist/MarkerCluster.css';\r\nimport 'leaflet/dist/leaflet.css';\r\nimport 'leaflet.fullscreen/Control.FullScreen.css';\r\n\r\nclass ClusterPhotos {\r\n\r\n map: Map | null = null;\r\n\r\n shownLayer: Layer | null = null;\r\n polygon: Polygon | null = null;\r\n markers: any | null = null;\r\n\r\n options: {\r\n icon: {\r\n iconSize: [40, 40],\r\n },\r\n };\r\n\r\n\r\n constructor(map: Map) {\r\n\r\n this.map = map;\r\n\r\n //Custom radius and icon create function\r\n this.markers = (L as any).markerClusterGroup({\r\n maxClusterRadius: 120,\r\n iconCreateFunction: function (cluster) {\r\n return new L.DivIcon(\r\n L.extend(\r\n {\r\n className: \"leaflet-marker-photo\",\r\n html:\r\n '<div style=\"background-image: url(' +\r\n cluster.getAllChildMarkers()[0].photo.thumbnail +\r\n ');\"></div><b>' +\r\n cluster.getChildCount() +\r\n \"</b>\",\r\n },\r\n this.icon\r\n )\r\n );\r\n },\r\n //Disable all of the defaults:\r\n spiderfyOnMaxZoom: false, showCoverageOnHover: false, zoomToBoundsOnClick: false\r\n });\r\n\r\n this.markers.on('click', function (evt: any) {\r\n var photo = evt.layer.photo;\r\n var template = '<img src=\"{url}\" /></a><p>{name}</p>';\r\n evt.layer.bindPopup(L.Util.template(template, photo), {\r\n minWidth: 'auto'\r\n }).openPopup();\r\n });\r\n\r\n this.markers.on('clustermouseover', function (a) {\r\n this.removePolygon();\r\n\r\n a.layer.setOpacity(0.2);\r\n this.shownLayer = a.layer;\r\n this.polygon = L.polygon(a.layer.getConvexHull());\r\n this.map.addLayer(this.polygon);\r\n });\r\n this.markers.on('clustermouseout', this.removePolygon);\r\n this.map.on('zoomend', this.removePolygon);\r\n\r\n this.map.addLayer(this.markers);\r\n\r\n }\r\n\r\n populate(images: any[]) {\r\n\r\n for (const photo of images) {\r\n\r\n var m = L.marker(L.latLng(photo.lat, photo.lng), {\r\n icon: L.divIcon(\r\n L.extend(\r\n {\r\n html:\r\n '<div style=\"background-image: url(' +\r\n photo.thumbnail +\r\n ');\"></div>',\r\n className: \"leaflet-marker-photo\",\r\n },\r\n photo,\r\n {\r\n iconSize: [40, 40],\r\n }\r\n )\r\n ),\r\n title: photo.caption || \"\",\r\n });\r\n this.markers.addLayer(m);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n private removePolygon() {\r\n if (this.shownLayer) {\r\n (this.shownLayer as any).setOpacity(1);\r\n this.shownLayer = null;\r\n }\r\n if (this.polygon) {\r\n this.map.removeLayer(this.polygon);\r\n this.polygon = null;\r\n }\r\n };\r\n\r\n\r\n}\r\n\r\nexport class LeafletMapEngine implements MapEngine<Map> {\r\n\r\n Bounds: Array<number[]> = [];\r\n lng: LangTranslation | null = null;\r\n map: Map | null = null;\r\n EventSelectChart: null | Function = null;\r\n Polylines: Array<Polyline> = [];\r\n CurrentPositionMarker: Marker | null = null;\r\n CurrentGPSPositionMarker: Marker | null = null;\r\n\r\n constructor() {\r\n }\r\n\r\n init(targetElement: HTMLElement, mapType: string, scrollWheelZoom: boolean, ThunderforestApiKey: string | null | undefined, otherParams: any): void {\r\n\r\n this.map = L.map(targetElement,\r\n {\r\n scrollWheelZoom: scrollWheelZoom\r\n }\r\n );\r\n\r\n // create fullscreen control. \r\n var fsControl = new (L as any).Control.FullScreen();\r\n\r\n // Add fullscreen control to the map. \r\n this.map.addControl(fsControl);\r\n\r\n L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\r\n attribution: 'Data &copy; <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors'\r\n }).addTo(this.map);\r\n\r\n var hasThunderforestApiKey = (ThunderforestApiKey + '').length > 0;\r\n\r\n var baseMaps: any = {};\r\n\r\n var overlayMaps = {};\r\n\r\n var defaultMpaLayer = null;\r\n\r\n if (hasThunderforestApiKey) {\r\n\r\n /* Map type: Thunderforest - OpenCycleMap with API key */\r\n baseMaps['Thunderforest - Cycle'] = L.tileLayer('https://a.tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey=' + ThunderforestApiKey, {\r\n maxZoom: 18,\r\n attribution: 'Maps &copy; <a href=\"https://www.thunderforest.com/\">Thunderforest</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n } else {\r\n\r\n /* Map type: Open Cycle Map - Cycle */\r\n baseMaps['Open Cycle Map'] = L.tileLayer('http://a.tile.opencyclemap.org/cycle/{z}/{x}/{y}.png', {\r\n maxZoom: 18,\r\n attribution: 'Maps &copy; <a href=\"https://www.thunderforest.com/\">Thunderforest</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n }\r\n\r\n /* Map type: Thunderforest - Outdoors with API key */\r\n baseMaps['Thunderforest - Outdoors'] = L.tileLayer('https://a.tile.thunderforest.com/outddors/{z}/{x}/{y}.png?apikey=' + ThunderforestApiKey, {\r\n maxZoom: 18,\r\n attribution: 'Maps &copy; <a href=\"https://www.thunderforest.com/\">Thunderforest</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n /* Map type: Thunderforest - Transport with API key */\r\n baseMaps['Thunderforest - Transport'] = L.tileLayer('https://a.tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey=' + ThunderforestApiKey, {\r\n maxZoom: 18,\r\n attribution: 'Maps &copy; <a href=\"https://www.thunderforest.com/\">Thunderforest</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n /* Map type: Thunderforest - Landscape with API key */\r\n baseMaps['Thunderforest - Landscape'] = L.tileLayer('https://a.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=' + ThunderforestApiKey, {\r\n maxZoom: 18,\r\n attribution: 'Maps &copy; <a href=\"https://www.thunderforest.com/\">Thunderforest</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n /* Map type: Open Street Map */\r\n baseMaps['Open Street Map'] = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {\r\n maxZoom: 18,\r\n attribution: 'Maps &copy; <a href=\"https://www.openstreetmap.org/\">OpenStreetMap</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n ///* Map type: MapToolKit - Terrain */\r\n //baseMaps['MapToolKit - Terrain'] = L.tileLayer( 'https://tile2.maptoolkit.net/terrain/{z}/{x}/{y}.png', {\r\n //\tmaxZoom: 18,\r\n //\tattribution: 'Maps &copy; <a href=\"https://www.maptoolkit.net/\">Maptoolkit</a> contributors, ' +\r\n //\t\t'<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n //\t\t'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n //});\r\n\r\n /* Map type: Open Street Map - Humanitarian Map Style */\r\n baseMaps['Humanitarian Map Style'] = L.tileLayer('https://a.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', {\r\n maxZoom: 18,\r\n attribution: 'Maps &copy; <a href=\"https://www.openstreetmap.org/\">OpenStreetMap</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n /*\r\n Map type: Open Ski Map\r\n baseMaps['Open Ski Map'] = L.tileLayer( 'http://tiles.skimap.org/openskimap/{z}/{x}/{y}.png', {\r\n maxZoom: 18,\r\n attribution: 'Map data &copy; <a href=\"https://www.openstreetmap.org/\">OpenStreetMap</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>',\r\n });\r\n */\r\n\r\n /* Map type: Hike & Bike */\r\n baseMaps['Hike & Bike'] = L.tileLayer('http://toolserver.org/tiles/hikebike/{z}/{x}/{y}.png', {\r\n maxZoom: 18,\r\n attribution: 'Maps &copy; <a href=\"https://hikebikemap.org/\">Hike & Bike Map</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n /* Map type: Open Sea Map */\r\n baseMaps['Open Sea Map'] = L.tileLayer('http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png', {\r\n maxZoom: 18,\r\n attribution: 'Maps &copy; <a href=\"https://www.openseamap.org/\">OpenSeaMap</a> contributors, ' +\r\n '<a href=\"https://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n baseMaps['GSI Map (Japan)'] = L.tileLayer('https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png', {\r\n maxZoom: 18,\r\n attribution: '&copy; <a href=\"https://maps.gsi.go.jp/development/ichiran.html\" target=\"_blank\">国土地理院</a>, ' +\r\n 'Imagery © <a href=\"https://www.mapbox.com/\">Mapbox</a>'\r\n });\r\n\r\n switch (mapType) {\r\n\r\n /* Map type: Open Street Map */\r\n case 'OSM1': {\r\n baseMaps['Open Street Map'].addTo(this.map);\r\n break;\r\n }\r\n\r\n /* Map type: Thunderforest - Open Cycle Maps with API key */\r\n case 'OSM2': {\r\n baseMaps['Thunderforest - Cycle'].addTo(this.map);\r\n break;\r\n }\r\n\r\n /* Map type: Thunderforest - Outdoors with API key */\r\n case 'OSM3': {\r\n baseMaps['Thunderforest - Outdoors'].addTo(this.map);\r\n break;\r\n }\r\n\r\n /* Map type: Thunderforest - Landscape with API key */\r\n case 'OSM4': {\r\n baseMaps['Thunderforest - Transport'].addTo(this.map);\r\n break;\r\n }\r\n\r\n /* Map type: Thunderforest - Landscape with API key */\r\n case 'OSM5': {\r\n baseMaps['Thunderforest - Landscape'].addTo(this.map);\r\n break;\r\n }\r\n\r\n ///* Map type: MapToolKit - Terrain */\r\n //case 'OSM6': {\r\n //\tbaseMaps['MapToolKit - Terrain'].addTo( this.map );\r\n //\tbreak;\r\n //}\r\n\r\n /* Map type: Open Street Map - Humanitarian Map Style*/\r\n case 'OSM7': {\r\n baseMaps['Humanitarian Map Style'].addTo(this.map);\r\n break;\r\n }\r\n\r\n /*\r\n Map type: Open Ski Map\r\n case 'OSM8': {\r\n baseMaps['Open Ski Map'].addTo( this.map );\r\n break;\r\n }\r\n */\r\n\r\n /* Map type: Hike & Bike */\r\n case 'OSM9': {\r\n baseMaps['Hike & Bike'].addTo(this.map);\r\n break;\r\n }\r\n\r\n /* Map type: Open Sea Map */\r\n case 'OSM10': {\r\n baseMaps['Open Sea Map'].addTo(this.map);\r\n break;\r\n }\r\n\r\n case 'OSM11': {\r\n baseMaps['GSI Map (Japan)'].addTo(this.map);\r\n break;\r\n }\r\n\r\n /* Map type: Open Street Map */\r\n default: {\r\n baseMaps['Open Street Map'].addTo(this.map);\r\n }\r\n\r\n }\r\n\r\n L.control.layers(baseMaps, overlayMaps).addTo(this.map);\r\n\r\n }\r\n\r\n AppPolylines(mapData: Array<[number, number] | null>, colors: string[], currentIcon: string | null, startIcon: string | null, endIcon: string | null): void {\r\n\r\n if (null == this.map) {\r\n return;\r\n }\r\n\r\n var first = WPGPXMAPS.Utils.GetItemFromArray(mapData, 0);\r\n\r\n if (null == first) {\r\n return;\r\n }\r\n\r\n if ('' == currentIcon || null == currentIcon) {\r\n currentIcon = 'https://maps.google.com/mapfiles/kml/pal4/icon25.png';\r\n }\r\n\r\n var CurrentPositionMarker = L.marker(L.latLng(first), {\r\n icon: L.icon({\r\n iconUrl: currentIcon,\r\n iconSize: [32, 32], // Size of the icon.\r\n iconAnchor: [16, 16] // Point of the icon which will correspond to marker's location.\r\n }),\r\n title: this.lng?.currentPosition\r\n\r\n });\r\n CurrentPositionMarker.addTo(this.map);\r\n\r\n this.CurrentPositionMarker = CurrentPositionMarker;\r\n\r\n var pointsArray = WPGPXMAPS.Utils.DividePolylinesPoints(mapData);\r\n\r\n var lng = this.lng;\r\n var EventSelectChart = this.EventSelectChart;\r\n\r\n this.Bounds = mapData.filter(o => o != null);\r\n\r\n this.CenterMap();\r\n\r\n for (let i = 0; i < pointsArray.length; i++) {\r\n let color = '';\r\n if (i < colors.length) {\r\n color = colors[i];\r\n } else {\r\n color = colors[colors.length - 1];\r\n }\r\n try {\r\n let polyline = L.polyline(pointsArray[i], { color: color }).addTo(this.map);\r\n this.Polylines.push(polyline);\r\n\r\n let context = this;\r\n\r\n this.Polylines[i].on('mousemove', function (e: any) {\r\n context.MoveMarkerToPosition([e.latlng.lat, e.latlng.lng], true);\r\n });\r\n } catch (err) {\r\n }\r\n }\r\n\r\n if (startIcon != '') {\r\n\r\n let ll = mapData[0];\r\n\r\n if (ll != null) {\r\n\r\n let startMarker = L.marker(L.latLng(ll), {\r\n icon: L.icon({\r\n iconUrl: startIcon + \"\",\r\n iconSize: [32, 32], // Size of the icon.\r\n iconAnchor: [16, 16] // Point of the icon which will correspond to marker's location.\r\n }),\r\n title: 'Start'\r\n });\r\n\r\n startMarker.addTo(this.map);\r\n\r\n }\r\n\r\n }\r\n\r\n if (endIcon != '' && mapData[mapData.length - 1] != null) {\r\n\r\n let ll = mapData[mapData.length - 1];\r\n\r\n if (ll != null) {\r\n\r\n var endMarker = L.marker(L.latLng(ll), {\r\n icon: L.icon({\r\n iconUrl: endIcon + \"\",\r\n iconSize: [32, 32], // size of the icon\r\n iconAnchor: [16, 16] // point of the icon which will correspond to marker's location\r\n }),\r\n title: 'End'\r\n });\r\n endMarker.addTo(this.map);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n SetCurrentGPSPosition(pos: [number, number], currentpositioncon: string, lng: LangTranslation): void {\r\n\r\n if (null == this.CurrentGPSPositionMarker) {\r\n if ('' == currentpositioncon) {\r\n currentpositioncon = 'https://maps.google.com/mapfiles/kml/pal4/icon25.png';\r\n }\r\n\r\n if (this.map != null) {\r\n\r\n this.CurrentGPSPositionMarker = L.marker(pos, {\r\n icon: L.icon({\r\n iconUrl: currentpositioncon,\r\n iconSize: [32, 32], // Size of the icon.\r\n iconAnchor: [16, 16] // Point of the icon which will correspond to marker's location.\r\n })\r\n })\r\n .addTo(this.map)\r\n .bindPopup(lng.currentPosition)\r\n .openPopup();\r\n\r\n }\r\n\r\n\r\n } else {\r\n this.CurrentGPSPositionMarker.setLatLng(pos);\r\n }\r\n this.Bounds.push(pos);\r\n this.CenterMap();\r\n\r\n }\r\n\r\n AddWaypoints(waypoints: any, waypointIcon: string | null): void {\r\n\r\n var icon = L.icon({\r\n iconUrl: 'https://maps.google.com/mapfiles/ms/micons/flag.png',\r\n iconSize: [32, 32], // Size of the icon.\r\n iconAnchor: [16, 16] // Point of the icon which will correspond to marker's location.\r\n });\r\n\r\n if (waypointIcon != '') {\r\n icon = L.icon({\r\n iconUrl: 'waypointIcon',\r\n iconSize: [32, 32], // Size of the icon.\r\n iconAnchor: [16, 16] // Point of the icon which will correspond to marker's location.\r\n });\r\n }\r\n\r\n for (let i = 0; i < waypoints.length; i++) {\r\n var wpt = waypoints[i];\r\n\r\n this.Bounds.push([wpt.lat, wpt.lon]);\r\n\r\n var lat = wpt.lat;\r\n var lon = wpt.lon;\r\n var sym = wpt.sym;\r\n var typ = wpt.type;\r\n\r\n if (wpt.img) {\r\n (icon as any).iconUrl = wpt.img + \"\";\r\n //wsh = '';\r\n }\r\n var marker = L.marker([lat, lon], { icon: icon });\r\n var cnt = '';\r\n\r\n if (wpt.name == '') {\r\n cnt = \"<div>\" + unescape(wpt.desc) + \"</div>\";\r\n } else {\r\n cnt = \"<div><b>\" + wpt.name + \"</b><br />\" + unescape(wpt.desc) + \"</div>\";\r\n }\r\n cnt += \"<br /><p><a href='https://maps.google.com?daddr=\" + lat + \",\" + lon + \"' target='_blank'>Itin&eacute;raire</a></p>\";\r\n\r\n if (this.map != null)\r\n marker.addTo(this.map).bindPopup(cnt);\r\n }\r\n this.CenterMap();\r\n }\r\n\r\n MoveMarkerToPosition(LatLon: [number, number], updateChart: boolean): void {\r\n if (null == this.CurrentPositionMarker)\r\n return;\r\n\r\n this.CurrentPositionMarker.setLatLng(LatLon);\r\n\r\n if (this.lng)\r\n this.CurrentPositionMarker.setTooltipContent(this.lng.currentPosition);\r\n //this.CurrentPositionMarker.title = this.lng.currentPosition;\r\n\r\n if (true == updateChart && this.EventSelectChart)\r\n this.EventSelectChart(LatLon);\r\n }\r\n\r\n CenterMap(): void {\r\n try {\r\n\r\n if (this.Bounds && this.Bounds.length > 0) {\r\n\r\n let bounds = {\r\n minLat: Number.POSITIVE_INFINITY,\r\n maxLat: Number.NEGATIVE_INFINITY,\r\n minLng: Number.POSITIVE_INFINITY,\r\n maxLng: Number.NEGATIVE_INFINITY\r\n };\r\n\r\n this.Bounds.forEach(coord => {\r\n if (!Array.isArray(coord) || coord.length !== 2) {\r\n throw new Error(\"Each coordinate must be an array with [latitude, longitude].\");\r\n }\r\n\r\n const [lat, lng] = coord;\r\n bounds.minLat = Math.min(bounds.minLat, lat);\r\n bounds.maxLat = Math.max(bounds.maxLat, lat);\r\n bounds.minLng = Math.min(bounds.minLng, lng);\r\n bounds.maxLng = Math.max(bounds.maxLng, lng);\r\n });\r\n\r\n var southWest = new L.LatLng(bounds.minLat, bounds.minLng),\r\n northEast = new L.LatLng(bounds.maxLat, bounds.maxLng);\r\n\r\n this.map?.fitBounds(new L.LatLngBounds(southWest, northEast));\r\n\r\n }\r\n\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n AddPhotos(photos: any[]): void {\r\n\r\n for (const photo of photos) {\r\n let m = L.marker(photo, {\r\n icon: L.divIcon(\r\n L.extend(\r\n {\r\n html:\r\n '<div style=\"background-image: url(' +\r\n photo.thumbnail +\r\n ');\"></div>',\r\n className: \"leaflet-marker-photo\",\r\n },\r\n photo,\r\n {\r\n iconSize: [40, 40],\r\n }\r\n )\r\n ),\r\n title: photo.caption || \"\",\r\n });\r\n\r\n m.bindPopup('<img src=\"' + photo.url + '\" /></a><p>' + photo.name + '</p>', { minWidth: 500 });\r\n\r\n m.addTo(this.map);\r\n //this.map.addLayer(m);\r\n }\r\n\r\n //new ClusterPhotos(this.map).populate(photos)\r\n }\r\n\r\n}\r\n\r\nexport default LeafletMapEngine; ","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass MapboxStyleSwitcherControl {\n constructor(styles, options) {\n this.styles = styles || MapboxStyleSwitcherControl.DEFAULT_STYLES;\n const defaultStyle = typeof (options) === \"string\" ? options : options ? options.defaultStyle : undefined;\n this.defaultStyle = defaultStyle || MapboxStyleSwitcherControl.DEFAULT_STYLE;\n this.onDocumentClick = this.onDocumentClick.bind(this);\n this.events = typeof (options) !== \"string\" && options ? options.eventListeners : undefined;\n }\n getDefaultPosition() {\n const defaultPosition = \"top-right\";\n return defaultPosition;\n }\n onAdd(map) {\n this.map = map;\n this.controlContainer = document.createElement(\"div\");\n this.controlContainer.classList.add(\"mapboxgl-ctrl\");\n this.controlContainer.classList.add(\"mapboxgl-ctrl-group\");\n this.mapStyleContainer = document.createElement(\"div\");\n this.styleButton = document.createElement(\"button\");\n this.styleButton.type = \"button\";\n this.mapStyleContainer.classList.add(\"mapboxgl-style-list\");\n for (const style of this.styles) {\n const styleElement = document.createElement(\"button\");\n styleElement.type = \"button\";\n styleElement.innerText = style.title;\n styleElement.classList.add(style.title.replace(/[^a-z0-9-]/gi, '_'));\n styleElement.dataset.uri = JSON.stringify(style.uri);\n styleElement.addEventListener(\"click\", event => {\n const srcElement = event.srcElement;\n this.closeModal();\n if (srcElement.classList.contains(\"active\")) {\n return;\n }\n if (this.events && this.events.onOpen && this.events.onOpen(event)) {\n return;\n }\n const style = JSON.parse(srcElement.dataset.uri);\n this.map.setStyle(style);\n const elms = this.mapStyleContainer.getElementsByClassName(\"active\");\n while (elms[0]) {\n elms[0].classList.remove(\"active\");\n }\n srcElement.classList.add(\"active\");\n if (this.events && this.events.onChange && this.events.onChange(event, style)) {\n return;\n }\n });\n if (style.title === this.defaultStyle) {\n styleElement.classList.add(\"active\");\n }\n this.mapStyleContainer.appendChild(styleElement);\n }\n this.styleButton.classList.add(\"mapboxgl-ctrl-icon\");\n this.styleButton.classList.add(\"mapboxgl-style-switcher\");\n this.styleButton.addEventListener(\"click\", event => {\n if (this.events && this.events.onSelect && this.events.onSelect(event)) {\n return;\n }\n this.openModal();\n });\n document.addEventListener(\"click\", this.onDocumentClick);\n this.controlContainer.appendChild(this.styleButton);\n this.controlContainer.appendChild(this.mapStyleContainer);\n return this.controlContainer;\n }\n onRemove() {\n if (!this.controlContainer || !this.controlContainer.parentNode || !this.map || !this.styleButton) {\n return;\n }\n this.styleButton.removeEventListener(\"click\", this.onDocumentClick);\n this.controlContainer.parentNode.removeChild(this.controlContainer);\n document.removeEventListener(\"click\", this.onDocumentClick);\n this.map = undefined;\n }\n closeModal() {\n if (this.mapStyleContainer && this.styleButton) {\n this.mapStyleContainer.style.display = \"none\";\n this.styleButton.style.display = \"block\";\n }\n }\n openModal() {\n if (this.mapStyleContainer && this.styleButton) {\n this.mapStyleContainer.style.display = \"block\";\n this.styleButton.style.display = \"none\";\n }\n }\n onDocumentClick(event) {\n if (this.controlContainer && !this.controlContainer.contains(event.target)) {\n this.closeModal();\n }\n }\n}\nMapboxStyleSwitcherControl.DEFAULT_STYLE = \"Streets\";\nMapboxStyleSwitcherControl.DEFAULT_STYLES = [\n { title: \"Dark\", uri: \"mapbox://styles/mapbox/dark-v10\" },\n { title: \"Light\", uri: \"mapbox://styles/mapbox/light-v10\" },\n { title: \"Outdoors\", uri: \"mapbox://styles/mapbox/outdoors-v11\" },\n { title: \"Satellite\", uri: \"mapbox://styles/mapbox/satellite-streets-v11\" },\n { title: \"Streets\", uri: \"mapbox://styles/mapbox/streets-v11\" }\n];\nexports.MapboxStyleSwitcherControl = MapboxStyleSwitcherControl;\n//# sourceMappingURL=index.js.map","/* Mapbox GL JS is Copyright © 2020 Mapbox and subject to the Mapbox Terms of Service ((https://www.mapbox.com/legal/tos/). */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\ntypeof define === 'function' && define.amd ? define(factory) :\n(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.mapboxgl = factory());\n})(this, (function () { 'use strict';\n\n/* eslint-disable */\n\nvar shared, worker, mapboxgl;\n// define gets called three times: one for each chunk. we rely on the order\n// they're imported to know which is which\nfunction define(_, chunk) {\nif (!shared) {\n shared = chunk;\n} else if (!worker) {\n worker = chunk;\n} else {\n var workerBundleString = \"self.onerror = function() { console.error('An error occurred while parsing the WebWorker bundle. This is most likely due to improper transpilation by Babel; please see https://docs.mapbox.com/mapbox-gl-js/guides/install/#transpiling'); }; var sharedChunk = {}; (\" + shared + \")(sharedChunk); (\" + worker + \")(sharedChunk); self.onerror = null;\"\n\n var sharedChunk = {};\n shared(sharedChunk);\n mapboxgl = chunk(sharedChunk);\n if (typeof window !== 'undefined' && window && window.URL && window.URL.createObjectURL) {\n mapboxgl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: 'text/javascript' }));\n }\n}\n}\n\n\ndefine([\"exports\"],(function(t){function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}var r,n={},i={};function a(){if(r)return i;r=1,Object.defineProperty(i,\"__esModule\",{value:!0}),i.setMatrixArrayType=function(t){i.ARRAY_TYPE=e=t;},i.toRadian=function(t){return t*a},i.equals=function(e,r){return Math.abs(e-r)<=t*Math.max(1,Math.abs(e),Math.abs(r))},i.RANDOM=i.ARRAY_TYPE=i.EPSILON=void 0;var t=1e-6;i.EPSILON=t;var e=\"undefined\"!=typeof Float32Array?Float32Array:Array;i.ARRAY_TYPE=e;var n=Math.random;i.RANDOM=n;var a=Math.PI/180;return Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),i}var s,o={};function l(){if(s)return o;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}s=1,Object.defineProperty(o,\"__esModule\",{value:!0}),o.create=function(){var t=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},o.clone=function(t){var r=new e.ARRAY_TYPE(4);return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r},o.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},o.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t},o.fromValues=function(t,r,n,i){var a=new e.ARRAY_TYPE(4);return a[0]=t,a[1]=r,a[2]=n,a[3]=i,a},o.set=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t},o.transpose=function(t,e){if(t===e){var r=e[1];t[1]=e[2],t[2]=r;}else t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3];return t},o.invert=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=r*a-i*n;return s?(t[0]=a*(s=1/s),t[1]=-n*s,t[2]=-i*s,t[3]=r*s,t):null},o.adjoint=function(t,e){var r=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=r,t},o.determinant=function(t){return t[0]*t[3]-t[2]*t[1]},o.multiply=n,o.rotate=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l+a*o,t[1]=i*l+s*o,t[2]=n*-o+a*l,t[3]=i*-o+s*l,t},o.scale=function(t,e,r){var n=e[1],i=e[2],a=e[3],s=r[0],o=r[1];return t[0]=e[0]*s,t[1]=n*s,t[2]=i*o,t[3]=a*o,t},o.fromRotation=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t},o.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t},o.str=function(t){return \"mat2(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\", \"+t[3]+\")\"},o.frob=function(t){return Math.hypot(t[0],t[1],t[2],t[3])},o.LDU=function(t,e,r,n){return t[2]=n[2]/n[0],r[0]=n[0],r[1]=n[1],r[3]=n[3]-t[2]*r[1],[t,e,r]},o.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t},o.subtract=i,o.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]},o.equals=function(t,r){var n=t[0],i=t[1],a=t[2],s=t[3],o=r[0],l=r[1],u=r[2],c=r[3];return Math.abs(n-o)<=e.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-l)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(a-u)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(u))&&Math.abs(s-c)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(c))},o.multiplyScalar=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t},o.multiplyScalarAndAdd=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t},o.sub=o.mul=void 0;var e=function(e,n){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var i=r(void 0);if(i&&i.has(e))return i.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(\"default\"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=s?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(a,o,l):a[o]=e[o];}return a.default=e,i&&i.set(e,a),a}(a());function r(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return (r=function(t){return t?n:e})(t)}function n(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=r[0],l=r[1],u=r[2],c=r[3];return t[0]=n*o+a*l,t[1]=i*o+s*l,t[2]=n*u+a*c,t[3]=i*u+s*c,t}function i(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}return o.mul=n,o.sub=i,o}var u,c={};function h(){if(u)return c;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}u=1,Object.defineProperty(c,\"__esModule\",{value:!0}),c.create=function(){var t=new e.ARRAY_TYPE(6);return e.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[4]=0,t[5]=0),t[0]=1,t[3]=1,t},c.clone=function(t){var r=new e.ARRAY_TYPE(6);return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r[4]=t[4],r[5]=t[5],r},c.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t},c.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t},c.fromValues=function(t,r,n,i,a,s){var o=new e.ARRAY_TYPE(6);return o[0]=t,o[1]=r,o[2]=n,o[3]=i,o[4]=a,o[5]=s,o},c.set=function(t,e,r,n,i,a,s){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=a,t[5]=s,t},c.invert=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=r*a-n*i;return l?(t[0]=a*(l=1/l),t[1]=-n*l,t[2]=-i*l,t[3]=r*l,t[4]=(i*o-a*s)*l,t[5]=(n*s-r*o)*l,t):null},c.determinant=function(t){return t[0]*t[3]-t[1]*t[2]},c.multiply=n,c.rotate=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=Math.sin(r),c=Math.cos(r);return t[0]=n*c+a*u,t[1]=i*c+s*u,t[2]=n*-u+a*c,t[3]=i*-u+s*c,t[4]=o,t[5]=l,t},c.scale=function(t,e,r){var n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=r[0],u=r[1];return t[0]=e[0]*l,t[1]=n*l,t[2]=i*u,t[3]=a*u,t[4]=s,t[5]=o,t},c.translate=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=r[0],c=r[1];return t[0]=n,t[1]=i,t[2]=a,t[3]=s,t[4]=n*u+a*c+o,t[5]=i*u+s*c+l,t},c.fromRotation=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t[4]=0,t[5]=0,t},c.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t[4]=0,t[5]=0,t},c.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=e[0],t[5]=e[1],t},c.str=function(t){return \"mat2d(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\", \"+t[3]+\", \"+t[4]+\", \"+t[5]+\")\"},c.frob=function(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],1)},c.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t},c.subtract=i,c.multiplyScalar=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t},c.multiplyScalarAndAdd=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t},c.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]},c.equals=function(t,r){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],l=t[5],u=r[0],c=r[1],h=r[2],p=r[3],f=r[4],d=r[5];return Math.abs(n-u)<=e.EPSILON*Math.max(1,Math.abs(n),Math.abs(u))&&Math.abs(i-c)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(c))&&Math.abs(a-h)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(s-p)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(p))&&Math.abs(o-f)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(f))&&Math.abs(l-d)<=e.EPSILON*Math.max(1,Math.abs(l),Math.abs(d))},c.sub=c.mul=void 0;var e=function(e,n){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var i=r(void 0);if(i&&i.has(e))return i.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(\"default\"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=s?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(a,o,l):a[o]=e[o];}return a.default=e,i&&i.set(e,a),a}(a());function r(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return (r=function(t){return t?n:e})(t)}function n(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=r[0],c=r[1],h=r[2],p=r[3],f=r[4],d=r[5];return t[0]=n*u+a*c,t[1]=i*u+s*c,t[2]=n*h+a*p,t[3]=i*h+s*p,t[4]=n*f+a*d+o,t[5]=i*f+s*d+l,t}function i(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t}return c.mul=n,c.sub=i,c}var p,f={};function d(){if(p)return f;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}p=1,Object.defineProperty(f,\"__esModule\",{value:!0}),f.create=function(){var t=new e.ARRAY_TYPE(9);return e.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},f.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},f.clone=function(t){var r=new e.ARRAY_TYPE(9);return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r[4]=t[4],r[5]=t[5],r[6]=t[6],r[7]=t[7],r[8]=t[8],r},f.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},f.fromValues=function(t,r,n,i,a,s,o,l,u){var c=new e.ARRAY_TYPE(9);return c[0]=t,c[1]=r,c[2]=n,c[3]=i,c[4]=a,c[5]=s,c[6]=o,c[7]=l,c[8]=u,c},f.set=function(t,e,r,n,i,a,s,o,l,u){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=a,t[5]=s,t[6]=o,t[7]=l,t[8]=u,t},f.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},f.transpose=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=i;}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t},f.invert=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=c*s-o*u,p=-c*a+o*l,f=u*a-s*l,d=r*h+n*p+i*f;return d?(t[0]=h*(d=1/d),t[1]=(-c*n+i*u)*d,t[2]=(o*n-i*s)*d,t[3]=p*d,t[4]=(c*r-i*l)*d,t[5]=(-o*r+i*a)*d,t[6]=f*d,t[7]=(-u*r+n*l)*d,t[8]=(s*r-n*a)*d,t):null},f.adjoint=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8];return t[0]=s*c-o*u,t[1]=i*u-n*c,t[2]=n*o-i*s,t[3]=o*l-a*c,t[4]=r*c-i*l,t[5]=i*a-r*o,t[6]=a*u-s*l,t[7]=n*l-r*u,t[8]=r*s-n*a,t},f.determinant=function(t){var e=t[3],r=t[4],n=t[5],i=t[6],a=t[7],s=t[8];return t[0]*(s*r-n*a)+t[1]*(-s*e+n*i)+t[2]*(a*e-r*i)},f.multiply=n,f.translate=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=r[0],f=r[1];return t[0]=n,t[1]=i,t[2]=a,t[3]=s,t[4]=o,t[5]=l,t[6]=p*n+f*s+u,t[7]=p*i+f*o+c,t[8]=p*a+f*l+h,t},f.rotate=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=Math.sin(r),f=Math.cos(r);return t[0]=f*n+p*s,t[1]=f*i+p*o,t[2]=f*a+p*l,t[3]=f*s-p*n,t[4]=f*o-p*i,t[5]=f*l-p*a,t[6]=u,t[7]=c,t[8]=h,t},f.scale=function(t,e,r){var n=r[0],i=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=i*e[3],t[4]=i*e[4],t[5]=i*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},f.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=e[0],t[7]=e[1],t[8]=1,t},f.fromRotation=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=-r,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},f.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=e[1],t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},f.fromMat2d=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=0,t[3]=e[2],t[4]=e[3],t[5]=0,t[6]=e[4],t[7]=e[5],t[8]=1,t},f.fromQuat=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=r+r,o=n+n,l=i+i,u=r*s,c=n*s,h=n*o,p=i*s,f=i*o,d=i*l,m=a*s,y=a*o,g=a*l;return t[0]=1-h-d,t[3]=c-g,t[6]=p+y,t[1]=c+g,t[4]=1-u-d,t[7]=f-m,t[2]=p-y,t[5]=f+m,t[8]=1-u-h,t},f.normalFromMat4=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],p=e[10],f=e[11],d=e[12],m=e[13],y=e[14],g=e[15],x=r*o-n*s,v=r*l-i*s,b=r*u-a*s,_=n*l-i*o,w=n*u-a*o,M=i*u-a*l,A=c*m-h*d,S=c*y-p*d,I=c*g-f*d,P=h*y-p*m,z=h*g-f*m,E=p*g-f*y,k=x*E-v*z+b*P+_*I-w*S+M*A;return k?(t[0]=(o*E-l*z+u*P)*(k=1/k),t[1]=(l*I-s*E-u*S)*k,t[2]=(s*z-o*I+u*A)*k,t[3]=(i*z-n*E-a*P)*k,t[4]=(r*E-i*I+a*S)*k,t[5]=(n*I-r*z-a*A)*k,t[6]=(m*M-y*w+g*_)*k,t[7]=(y*b-d*M-g*v)*k,t[8]=(d*w-m*b+g*x)*k,t):null},f.projection=function(t,e,r){return t[0]=2/e,t[1]=0,t[2]=0,t[3]=0,t[4]=-2/r,t[5]=0,t[6]=-1,t[7]=1,t[8]=1,t},f.str=function(t){return \"mat3(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\", \"+t[3]+\", \"+t[4]+\", \"+t[5]+\", \"+t[6]+\", \"+t[7]+\", \"+t[8]+\")\"},f.frob=function(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},f.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t},f.subtract=i,f.multiplyScalar=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t},f.multiplyScalarAndAdd=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t},f.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]},f.equals=function(t,r){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],l=t[5],u=t[6],c=t[7],h=t[8],p=r[0],f=r[1],d=r[2],m=r[3],y=r[4],g=r[5],x=r[6],v=r[7],b=r[8];return Math.abs(n-p)<=e.EPSILON*Math.max(1,Math.abs(n),Math.abs(p))&&Math.abs(i-f)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(f))&&Math.abs(a-d)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(d))&&Math.abs(s-m)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(o-y)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(y))&&Math.abs(l-g)<=e.EPSILON*Math.max(1,Math.abs(l),Math.abs(g))&&Math.abs(u-x)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(x))&&Math.abs(c-v)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(v))&&Math.abs(h-b)<=e.EPSILON*Math.max(1,Math.abs(h),Math.abs(b))},f.sub=f.mul=void 0;var e=function(e,n){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var i=r(void 0);if(i&&i.has(e))return i.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(\"default\"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=s?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(a,o,l):a[o]=e[o];}return a.default=e,i&&i.set(e,a),a}(a());function r(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return (r=function(t){return t?n:e})(t)}function n(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=r[0],f=r[1],d=r[2],m=r[3],y=r[4],g=r[5],x=r[6],v=r[7],b=r[8];return t[0]=p*n+f*s+d*u,t[1]=p*i+f*o+d*c,t[2]=p*a+f*l+d*h,t[3]=m*n+y*s+g*u,t[4]=m*i+y*o+g*c,t[5]=m*a+y*l+g*h,t[6]=x*n+v*s+b*u,t[7]=x*i+v*o+b*c,t[8]=x*a+v*l+b*h,t}function i(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t}return f.mul=n,f.sub=i,f}var m,y={};function g(){if(m)return y;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}m=1,Object.defineProperty(y,\"__esModule\",{value:!0}),y.create=function(){var t=new e.ARRAY_TYPE(16);return e.ARRAY_TYPE!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},y.clone=function(t){var r=new e.ARRAY_TYPE(16);return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r[4]=t[4],r[5]=t[5],r[6]=t[6],r[7]=t[7],r[8]=t[8],r[9]=t[9],r[10]=t[10],r[11]=t[11],r[12]=t[12],r[13]=t[13],r[14]=t[14],r[15]=t[15],r},y.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},y.fromValues=function(t,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y){var g=new e.ARRAY_TYPE(16);return g[0]=t,g[1]=r,g[2]=n,g[3]=i,g[4]=a,g[5]=s,g[6]=o,g[7]=l,g[8]=u,g[9]=c,g[10]=h,g[11]=p,g[12]=f,g[13]=d,g[14]=m,g[15]=y,g},y.set=function(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=a,t[5]=s,t[6]=o,t[7]=l,t[8]=u,t[9]=c,t[10]=h,t[11]=p,t[12]=f,t[13]=d,t[14]=m,t[15]=y,t},y.identity=n,y.transpose=function(t,e){if(t===e){var r=e[1],n=e[2],i=e[3],a=e[6],s=e[7],o=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[11]=e[14],t[12]=i,t[13]=s,t[14]=o;}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t},y.invert=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],p=e[10],f=e[11],d=e[12],m=e[13],y=e[14],g=e[15],x=r*o-n*s,v=r*l-i*s,b=r*u-a*s,_=n*l-i*o,w=n*u-a*o,M=i*u-a*l,A=c*m-h*d,S=c*y-p*d,I=c*g-f*d,P=h*y-p*m,z=h*g-f*m,E=p*g-f*y,k=x*E-v*z+b*P+_*I-w*S+M*A;return k?(t[0]=(o*E-l*z+u*P)*(k=1/k),t[1]=(i*z-n*E-a*P)*k,t[2]=(m*M-y*w+g*_)*k,t[3]=(p*w-h*M-f*_)*k,t[4]=(l*I-s*E-u*S)*k,t[5]=(r*E-i*I+a*S)*k,t[6]=(y*b-d*M-g*v)*k,t[7]=(c*M-p*b+f*v)*k,t[8]=(s*z-o*I+u*A)*k,t[9]=(n*I-r*z-a*A)*k,t[10]=(d*w-m*b+g*x)*k,t[11]=(h*b-c*w-f*x)*k,t[12]=(o*S-s*P-l*A)*k,t[13]=(r*P-n*S+i*A)*k,t[14]=(m*v-d*_-y*x)*k,t[15]=(c*_-h*v+p*x)*k,t):null},y.adjoint=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],p=e[10],f=e[11],d=e[12],m=e[13],y=e[14],g=e[15];return t[0]=o*(p*g-f*y)-h*(l*g-u*y)+m*(l*f-u*p),t[1]=-(n*(p*g-f*y)-h*(i*g-a*y)+m*(i*f-a*p)),t[2]=n*(l*g-u*y)-o*(i*g-a*y)+m*(i*u-a*l),t[3]=-(n*(l*f-u*p)-o*(i*f-a*p)+h*(i*u-a*l)),t[4]=-(s*(p*g-f*y)-c*(l*g-u*y)+d*(l*f-u*p)),t[5]=r*(p*g-f*y)-c*(i*g-a*y)+d*(i*f-a*p),t[6]=-(r*(l*g-u*y)-s*(i*g-a*y)+d*(i*u-a*l)),t[7]=r*(l*f-u*p)-s*(i*f-a*p)+c*(i*u-a*l),t[8]=s*(h*g-f*m)-c*(o*g-u*m)+d*(o*f-u*h),t[9]=-(r*(h*g-f*m)-c*(n*g-a*m)+d*(n*f-a*h)),t[10]=r*(o*g-u*m)-s*(n*g-a*m)+d*(n*u-a*o),t[11]=-(r*(o*f-u*h)-s*(n*f-a*h)+c*(n*u-a*o)),t[12]=-(s*(h*y-p*m)-c*(o*y-l*m)+d*(o*p-l*h)),t[13]=r*(h*y-p*m)-c*(n*y-i*m)+d*(n*p-i*h),t[14]=-(r*(o*y-l*m)-s*(n*y-i*m)+d*(n*l-i*o)),t[15]=r*(o*p-l*h)-s*(n*p-i*h)+c*(n*l-i*o),t},y.determinant=function(t){var e=t[0],r=t[1],n=t[2],i=t[3],a=t[4],s=t[5],o=t[6],l=t[7],u=t[8],c=t[9],h=t[10],p=t[11],f=t[12],d=t[13],m=t[14],y=t[15];return (e*s-r*a)*(h*y-p*m)-(e*o-n*a)*(c*y-p*d)+(e*l-i*a)*(c*m-h*d)+(r*o-n*s)*(u*y-p*f)-(r*l-i*s)*(u*m-h*f)+(n*l-i*o)*(u*d-c*f)},y.multiply=i,y.translate=function(t,e,r){var n,i,a,s,o,l,u,c,h,p,f,d,m=r[0],y=r[1],g=r[2];return e===t?(t[12]=e[0]*m+e[4]*y+e[8]*g+e[12],t[13]=e[1]*m+e[5]*y+e[9]*g+e[13],t[14]=e[2]*m+e[6]*y+e[10]*g+e[14],t[15]=e[3]*m+e[7]*y+e[11]*g+e[15]):(i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=e[9],f=e[10],d=e[11],t[0]=n=e[0],t[1]=i,t[2]=a,t[3]=s,t[4]=o,t[5]=l,t[6]=u,t[7]=c,t[8]=h,t[9]=p,t[10]=f,t[11]=d,t[12]=n*m+o*y+h*g+e[12],t[13]=i*m+l*y+p*g+e[13],t[14]=a*m+u*y+f*g+e[14],t[15]=s*m+c*y+d*g+e[15]),t},y.scale=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},y.rotate=function(t,r,n,i){var a,s,o,l,u,c,h,p,f,d,m,y,g,x,v,b,_,w,M,A,S,I,P,z,E=i[0],k=i[1],T=i[2],B=Math.hypot(E,k,T);return B<e.EPSILON?null:(E*=B=1/B,k*=B,T*=B,a=Math.sin(n),s=Math.cos(n),u=r[1],c=r[2],h=r[3],f=r[5],d=r[6],m=r[7],g=r[9],x=r[10],v=r[11],b=E*E*(o=1-s)+s,M=E*k*o-T*a,A=k*k*o+s,S=T*k*o+E*a,I=E*T*o+k*a,P=k*T*o-E*a,z=T*T*o+s,t[0]=(l=r[0])*b+(p=r[4])*(_=k*E*o+T*a)+(y=r[8])*(w=T*E*o-k*a),t[1]=u*b+f*_+g*w,t[2]=c*b+d*_+x*w,t[3]=h*b+m*_+v*w,t[4]=l*M+p*A+y*S,t[5]=u*M+f*A+g*S,t[6]=c*M+d*A+x*S,t[7]=h*M+m*A+v*S,t[8]=l*I+p*P+y*z,t[9]=u*I+f*P+g*z,t[10]=c*I+d*P+x*z,t[11]=h*I+m*P+v*z,r!==t&&(t[12]=r[12],t[13]=r[13],t[14]=r[14],t[15]=r[15]),t)},y.rotateX=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],s=e[5],o=e[6],l=e[7],u=e[8],c=e[9],h=e[10],p=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+u*n,t[5]=s*i+c*n,t[6]=o*i+h*n,t[7]=l*i+p*n,t[8]=u*i-a*n,t[9]=c*i-s*n,t[10]=h*i-o*n,t[11]=p*i-l*n,t},y.rotateY=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],s=e[1],o=e[2],l=e[3],u=e[8],c=e[9],h=e[10],p=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i-u*n,t[1]=s*i-c*n,t[2]=o*i-h*n,t[3]=l*i-p*n,t[8]=a*n+u*i,t[9]=s*n+c*i,t[10]=o*n+h*i,t[11]=l*n+p*i,t},y.rotateZ=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],s=e[1],o=e[2],l=e[3],u=e[4],c=e[5],h=e[6],p=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i+u*n,t[1]=s*i+c*n,t[2]=o*i+h*n,t[3]=l*i+p*n,t[4]=u*i-a*n,t[5]=c*i-s*n,t[6]=h*i-o*n,t[7]=p*i-l*n,t},y.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},y.fromScaling=function(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},y.fromRotation=function(t,r,n){var i,a,s,o=n[0],l=n[1],u=n[2],c=Math.hypot(o,l,u);return c<e.EPSILON?null:(o*=c=1/c,l*=c,u*=c,i=Math.sin(r),a=Math.cos(r),t[0]=o*o*(s=1-a)+a,t[1]=l*o*s+u*i,t[2]=u*o*s-l*i,t[3]=0,t[4]=o*l*s-u*i,t[5]=l*l*s+a,t[6]=u*l*s+o*i,t[7]=0,t[8]=o*u*s+l*i,t[9]=l*u*s-o*i,t[10]=u*u*s+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},y.fromXRotation=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},y.fromYRotation=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},y.fromZRotation=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},y.fromRotationTranslation=s,y.fromQuat2=function(t,r){var n=new e.ARRAY_TYPE(3),i=-r[0],a=-r[1],o=-r[2],l=r[3],u=r[4],c=r[5],h=r[6],p=r[7],f=i*i+a*a+o*o+l*l;return f>0?(n[0]=2*(u*l+p*i+c*o-h*a)/f,n[1]=2*(c*l+p*a+h*i-u*o)/f,n[2]=2*(h*l+p*o+u*a-c*i)/f):(n[0]=2*(u*l+p*i+c*o-h*a),n[1]=2*(c*l+p*a+h*i-u*o),n[2]=2*(h*l+p*o+u*a-c*i)),s(t,r,n),t},y.getTranslation=function(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t},y.getScaling=o,y.getRotation=function(t,r){var n=new e.ARRAY_TYPE(3);o(n,r);var i=1/n[0],a=1/n[1],s=1/n[2],l=r[0]*i,u=r[1]*a,c=r[2]*s,h=r[4]*i,p=r[5]*a,f=r[6]*s,d=r[8]*i,m=r[9]*a,y=r[10]*s,g=l+p+y,x=0;return g>0?(x=2*Math.sqrt(g+1),t[3]=.25*x,t[0]=(f-m)/x,t[1]=(d-c)/x,t[2]=(u-h)/x):l>p&&l>y?(x=2*Math.sqrt(1+l-p-y),t[3]=(f-m)/x,t[0]=.25*x,t[1]=(u+h)/x,t[2]=(d+c)/x):p>y?(x=2*Math.sqrt(1+p-l-y),t[3]=(d-c)/x,t[0]=(u+h)/x,t[1]=.25*x,t[2]=(f+m)/x):(x=2*Math.sqrt(1+y-l-p),t[3]=(u-h)/x,t[0]=(d+c)/x,t[1]=(f+m)/x,t[2]=.25*x),t},y.fromRotationTranslationScale=function(t,e,r,n){var i=e[0],a=e[1],s=e[2],o=e[3],l=i+i,u=a+a,c=s+s,h=i*l,p=i*u,f=i*c,d=a*u,m=a*c,y=s*c,g=o*l,x=o*u,v=o*c,b=n[0],_=n[1],w=n[2];return t[0]=(1-(d+y))*b,t[1]=(p+v)*b,t[2]=(f-x)*b,t[3]=0,t[4]=(p-v)*_,t[5]=(1-(h+y))*_,t[6]=(m+g)*_,t[7]=0,t[8]=(f+x)*w,t[9]=(m-g)*w,t[10]=(1-(h+d))*w,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t},y.fromRotationTranslationScaleOrigin=function(t,e,r,n,i){var a=e[0],s=e[1],o=e[2],l=e[3],u=a+a,c=s+s,h=o+o,p=a*u,f=a*c,d=a*h,m=s*c,y=s*h,g=o*h,x=l*u,v=l*c,b=l*h,_=n[0],w=n[1],M=n[2],A=i[0],S=i[1],I=i[2],P=(1-(m+g))*_,z=(f+b)*_,E=(d-v)*_,k=(f-b)*w,T=(1-(p+g))*w,B=(y+x)*w,V=(d+v)*M,C=(y-x)*M,D=(1-(p+m))*M;return t[0]=P,t[1]=z,t[2]=E,t[3]=0,t[4]=k,t[5]=T,t[6]=B,t[7]=0,t[8]=V,t[9]=C,t[10]=D,t[11]=0,t[12]=r[0]+A-(P*A+k*S+V*I),t[13]=r[1]+S-(z*A+T*S+C*I),t[14]=r[2]+I-(E*A+B*S+D*I),t[15]=1,t},y.fromQuat=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=r+r,o=n+n,l=i+i,u=r*s,c=n*s,h=n*o,p=i*s,f=i*o,d=i*l,m=a*s,y=a*o,g=a*l;return t[0]=1-h-d,t[1]=c+g,t[2]=p-y,t[3]=0,t[4]=c-g,t[5]=1-u-d,t[6]=f+m,t[7]=0,t[8]=p+y,t[9]=f-m,t[10]=1-u-h,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},y.frustum=function(t,e,r,n,i,a,s){var o=1/(r-e),l=1/(i-n),u=1/(a-s);return t[0]=2*a*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*a*l,t[6]=0,t[7]=0,t[8]=(r+e)*o,t[9]=(i+n)*l,t[10]=(s+a)*u,t[11]=-1,t[12]=0,t[13]=0,t[14]=s*a*2*u,t[15]=0,t},y.perspectiveNO=l,y.perspectiveZO=function(t,e,r,n,i){var a,s=1/Math.tan(e/2);return t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=i&&i!==1/0?(t[10]=i*(a=1/(n-i)),t[14]=i*n*a):(t[10]=-1,t[14]=-n),t},y.perspectiveFromFieldOfView=function(t,e,r,n){var i=Math.tan(e.upDegrees*Math.PI/180),a=Math.tan(e.downDegrees*Math.PI/180),s=Math.tan(e.leftDegrees*Math.PI/180),o=Math.tan(e.rightDegrees*Math.PI/180),l=2/(s+o),u=2/(i+a);return t[0]=l,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=u,t[6]=0,t[7]=0,t[8]=-(s-o)*l*.5,t[9]=(i-a)*u*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t},y.orthoNO=u,y.orthoZO=function(t,e,r,n,i,a,s){var o=1/(e-r),l=1/(n-i),u=1/(a-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=u,t[11]=0,t[12]=(e+r)*o,t[13]=(i+n)*l,t[14]=a*u,t[15]=1,t},y.lookAt=function(t,r,i,a){var s,o,l,u,c,h,p,f,d,m,y=r[0],g=r[1],x=r[2],v=a[0],b=a[1],_=a[2],w=i[0],M=i[1],A=i[2];return Math.abs(y-w)<e.EPSILON&&Math.abs(g-M)<e.EPSILON&&Math.abs(x-A)<e.EPSILON?n(t):(p=y-w,f=g-M,d=x-A,s=b*(d*=m=1/Math.hypot(p,f,d))-_*(f*=m),o=_*(p*=m)-v*d,l=v*f-b*p,(m=Math.hypot(s,o,l))?(s*=m=1/m,o*=m,l*=m):(s=0,o=0,l=0),u=f*l-d*o,c=d*s-p*l,h=p*o-f*s,(m=Math.hypot(u,c,h))?(u*=m=1/m,c*=m,h*=m):(u=0,c=0,h=0),t[0]=s,t[1]=u,t[2]=p,t[3]=0,t[4]=o,t[5]=c,t[6]=f,t[7]=0,t[8]=l,t[9]=h,t[10]=d,t[11]=0,t[12]=-(s*y+o*g+l*x),t[13]=-(u*y+c*g+h*x),t[14]=-(p*y+f*g+d*x),t[15]=1,t)},y.targetTo=function(t,e,r,n){var i=e[0],a=e[1],s=e[2],o=n[0],l=n[1],u=n[2],c=i-r[0],h=a-r[1],p=s-r[2],f=c*c+h*h+p*p;f>0&&(c*=f=1/Math.sqrt(f),h*=f,p*=f);var d=l*p-u*h,m=u*c-o*p,y=o*h-l*c;return (f=d*d+m*m+y*y)>0&&(d*=f=1/Math.sqrt(f),m*=f,y*=f),t[0]=d,t[1]=m,t[2]=y,t[3]=0,t[4]=h*y-p*m,t[5]=p*d-c*y,t[6]=c*m-h*d,t[7]=0,t[8]=c,t[9]=h,t[10]=p,t[11]=0,t[12]=i,t[13]=a,t[14]=s,t[15]=1,t},y.str=function(t){return \"mat4(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\", \"+t[3]+\", \"+t[4]+\", \"+t[5]+\", \"+t[6]+\", \"+t[7]+\", \"+t[8]+\", \"+t[9]+\", \"+t[10]+\", \"+t[11]+\", \"+t[12]+\", \"+t[13]+\", \"+t[14]+\", \"+t[15]+\")\"},y.frob=function(t){return Math.hypot(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])},y.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t},y.subtract=c,y.multiplyScalar=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t},y.multiplyScalarAndAdd=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t},y.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]},y.equals=function(t,r){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],l=t[5],u=t[6],c=t[7],h=t[8],p=t[9],f=t[10],d=t[11],m=t[12],y=t[13],g=t[14],x=t[15],v=r[0],b=r[1],_=r[2],w=r[3],M=r[4],A=r[5],S=r[6],I=r[7],P=r[8],z=r[9],E=r[10],k=r[11],T=r[12],B=r[13],V=r[14],C=r[15];return Math.abs(n-v)<=e.EPSILON*Math.max(1,Math.abs(n),Math.abs(v))&&Math.abs(i-b)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(b))&&Math.abs(a-_)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(_))&&Math.abs(s-w)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(w))&&Math.abs(o-M)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(M))&&Math.abs(l-A)<=e.EPSILON*Math.max(1,Math.abs(l),Math.abs(A))&&Math.abs(u-S)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(S))&&Math.abs(c-I)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(I))&&Math.abs(h-P)<=e.EPSILON*Math.max(1,Math.abs(h),Math.abs(P))&&Math.abs(p-z)<=e.EPSILON*Math.max(1,Math.abs(p),Math.abs(z))&&Math.abs(f-E)<=e.EPSILON*Math.max(1,Math.abs(f),Math.abs(E))&&Math.abs(d-k)<=e.EPSILON*Math.max(1,Math.abs(d),Math.abs(k))&&Math.abs(m-T)<=e.EPSILON*Math.max(1,Math.abs(m),Math.abs(T))&&Math.abs(y-B)<=e.EPSILON*Math.max(1,Math.abs(y),Math.abs(B))&&Math.abs(g-V)<=e.EPSILON*Math.max(1,Math.abs(g),Math.abs(V))&&Math.abs(x-C)<=e.EPSILON*Math.max(1,Math.abs(x),Math.abs(C))},y.sub=y.mul=y.ortho=y.perspective=void 0;var e=function(e,n){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var i=r(void 0);if(i&&i.has(e))return i.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(\"default\"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=s?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(a,o,l):a[o]=e[o];}return a.default=e,i&&i.set(e,a),a}(a());function r(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return (r=function(t){return t?n:e})(t)}function n(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function i(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],p=e[9],f=e[10],d=e[11],m=e[12],y=e[13],g=e[14],x=e[15],v=r[0],b=r[1],_=r[2],w=r[3];return t[0]=v*n+b*o+_*h+w*m,t[1]=v*i+b*l+_*p+w*y,t[2]=v*a+b*u+_*f+w*g,t[3]=v*s+b*c+_*d+w*x,t[4]=(v=r[4])*n+(b=r[5])*o+(_=r[6])*h+(w=r[7])*m,t[5]=v*i+b*l+_*p+w*y,t[6]=v*a+b*u+_*f+w*g,t[7]=v*s+b*c+_*d+w*x,t[8]=(v=r[8])*n+(b=r[9])*o+(_=r[10])*h+(w=r[11])*m,t[9]=v*i+b*l+_*p+w*y,t[10]=v*a+b*u+_*f+w*g,t[11]=v*s+b*c+_*d+w*x,t[12]=(v=r[12])*n+(b=r[13])*o+(_=r[14])*h+(w=r[15])*m,t[13]=v*i+b*l+_*p+w*y,t[14]=v*a+b*u+_*f+w*g,t[15]=v*s+b*c+_*d+w*x,t}function s(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=n+n,l=i+i,u=a+a,c=n*o,h=n*l,p=n*u,f=i*l,d=i*u,m=a*u,y=s*o,g=s*l,x=s*u;return t[0]=1-(f+m),t[1]=h+x,t[2]=p-g,t[3]=0,t[4]=h-x,t[5]=1-(c+m),t[6]=d+y,t[7]=0,t[8]=p+g,t[9]=d-y,t[10]=1-(c+f),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function o(t,e){var r=e[4],n=e[5],i=e[6],a=e[8],s=e[9],o=e[10];return t[0]=Math.hypot(e[0],e[1],e[2]),t[1]=Math.hypot(r,n,i),t[2]=Math.hypot(a,s,o),t}function l(t,e,r,n,i){var a,s=1/Math.tan(e/2);return t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=i&&i!==1/0?(t[10]=(i+n)*(a=1/(n-i)),t[14]=2*i*n*a):(t[10]=-1,t[14]=-2*n),t}function u(t,e,r,n,i,a,s){var o=1/(e-r),l=1/(n-i),u=1/(a-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*o,t[13]=(i+n)*l,t[14]=(s+a)*u,t[15]=1,t}function c(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}return y.perspective=l,y.ortho=u,y.mul=i,y.sub=c,y}var x,v={},b={};function _(){if(x)return b;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}x=1,Object.defineProperty(b,\"__esModule\",{value:!0}),b.create=n,b.clone=function(t){var r=new e.ARRAY_TYPE(3);return r[0]=t[0],r[1]=t[1],r[2]=t[2],r},b.length=i,b.fromValues=function(t,r,n){var i=new e.ARRAY_TYPE(3);return i[0]=t,i[1]=r,i[2]=n,i},b.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t},b.set=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t},b.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t},b.subtract=s,b.multiply=o,b.divide=l,b.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t},b.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t},b.min=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t},b.max=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t},b.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t},b.scale=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t},b.scaleAndAdd=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t},b.distance=u,b.squaredDistance=c,b.squaredLength=h,b.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t},b.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t},b.normalize=function(t,e){var r=e[0],n=e[1],i=e[2],a=r*r+n*n+i*i;return a>0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},b.dot=p,b.cross=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=r[0],o=r[1],l=r[2];return t[0]=i*l-a*o,t[1]=a*s-n*l,t[2]=n*o-i*s,t},b.lerp=function(t,e,r,n){var i=e[0],a=e[1],s=e[2];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=s+n*(r[2]-s),t},b.hermite=function(t,e,r,n,i,a){var s=a*a,o=s*(2*a-3)+1,l=s*(a-2)+a,u=s*(a-1),c=s*(3-2*a);return t[0]=e[0]*o+r[0]*l+n[0]*u+i[0]*c,t[1]=e[1]*o+r[1]*l+n[1]*u+i[1]*c,t[2]=e[2]*o+r[2]*l+n[2]*u+i[2]*c,t},b.bezier=function(t,e,r,n,i,a){var s=1-a,o=s*s,l=a*a,u=o*s,c=3*a*o,h=3*l*s,p=l*a;return t[0]=e[0]*u+r[0]*c+n[0]*h+i[0]*p,t[1]=e[1]*u+r[1]*c+n[1]*h+i[1]*p,t[2]=e[2]*u+r[2]*c+n[2]*h+i[2]*p,t},b.random=function(t,r){r=r||1;var n=2*e.RANDOM()*Math.PI,i=2*e.RANDOM()-1,a=Math.sqrt(1-i*i)*r;return t[0]=Math.cos(n)*a,t[1]=Math.sin(n)*a,t[2]=i*r,t},b.transformMat4=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=r[3]*n+r[7]*i+r[11]*a+r[15];return t[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/(s=s||1),t[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/s,t[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/s,t},b.transformMat3=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t},b.transformQuat=function(t,e,r){var n=r[0],i=r[1],a=r[2],s=e[0],o=e[1],l=e[2],u=i*l-a*o,c=a*s-n*l,h=n*o-i*s,p=i*h-a*c,f=a*u-n*h,d=n*c-i*u,m=2*r[3];return c*=m,h*=m,f*=2,d*=2,t[0]=s+(u*=m)+(p*=2),t[1]=o+c+f,t[2]=l+h+d,t},b.rotateX=function(t,e,r,n){var i=[],a=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t},b.rotateY=function(t,e,r,n){var i=[],a=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],a[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),a[1]=i[1],a[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t},b.rotateZ=function(t,e,r,n){var i=[],a=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],a[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),a[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),a[2]=i[2],t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t},b.angle=function(t,e){var r=t[0],n=t[1],i=t[2],a=e[0],s=e[1],o=e[2],l=Math.sqrt(r*r+n*n+i*i)*Math.sqrt(a*a+s*s+o*o),u=l&&p(t,e)/l;return Math.acos(Math.min(Math.max(u,-1),1))},b.zero=function(t){return t[0]=0,t[1]=0,t[2]=0,t},b.str=function(t){return \"vec3(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\")\"},b.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},b.equals=function(t,r){var n=t[0],i=t[1],a=t[2],s=r[0],o=r[1],l=r[2];return Math.abs(n-s)<=e.EPSILON*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-o)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(o))&&Math.abs(a-l)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(l))},b.forEach=b.sqrLen=b.len=b.sqrDist=b.dist=b.div=b.mul=b.sub=void 0;var e=function(e,n){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var i=r(void 0);if(i&&i.has(e))return i.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(\"default\"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=s?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(a,o,l):a[o]=e[o];}return a.default=e,i&&i.set(e,a),a}(a());function r(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return (r=function(t){return t?n:e})(t)}function n(){var t=new e.ARRAY_TYPE(3);return e.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function i(t){return Math.hypot(t[0],t[1],t[2])}function s(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function o(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function l(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function u(t,e){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])}function c(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}function h(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function p(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}b.sub=s,b.mul=o,b.div=l,b.dist=u,b.sqrDist=c,b.len=i,b.sqrLen=h;var f,d=(f=n(),function(t,e,r,n,i,a){var s,o;for(e||(e=3),r||(r=0),o=n?Math.min(n*e+r,t.length):t.length,s=r;s<o;s+=e)f[0]=t[s],f[1]=t[s+1],f[2]=t[s+2],i(f,f,a),t[s]=f[0],t[s+1]=f[1],t[s+2]=f[2];return t});return b.forEach=d,b}var w,M,A={};function S(){if(w)return A;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}w=1,Object.defineProperty(A,\"__esModule\",{value:!0}),A.create=n,A.clone=function(t){var r=new e.ARRAY_TYPE(4);return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r},A.fromValues=function(t,r,n,i){var a=new e.ARRAY_TYPE(4);return a[0]=t,a[1]=r,a[2]=n,a[3]=i,a},A.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},A.set=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t},A.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t},A.subtract=i,A.multiply=s,A.divide=o,A.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t[3]=Math.ceil(e[3]),t},A.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t[3]=Math.floor(e[3]),t},A.min=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t},A.max=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t},A.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t[3]=Math.round(e[3]),t},A.scale=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t},A.scaleAndAdd=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t},A.distance=l,A.squaredDistance=u,A.length=c,A.squaredLength=h,A.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},A.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t},A.normalize=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=r*r+n*n+i*i+a*a;return s>0&&(s=1/Math.sqrt(s)),t[0]=r*s,t[1]=n*s,t[2]=i*s,t[3]=a*s,t},A.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},A.cross=function(t,e,r,n){var i=r[0]*n[1]-r[1]*n[0],a=r[0]*n[2]-r[2]*n[0],s=r[0]*n[3]-r[3]*n[0],o=r[1]*n[2]-r[2]*n[1],l=r[1]*n[3]-r[3]*n[1],u=r[2]*n[3]-r[3]*n[2],c=e[0],h=e[1],p=e[2],f=e[3];return t[0]=h*u-p*l+f*o,t[1]=-c*u+p*s-f*a,t[2]=c*l-h*s+f*i,t[3]=-c*o+h*a-p*i,t},A.lerp=function(t,e,r,n){var i=e[0],a=e[1],s=e[2],o=e[3];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=s+n*(r[2]-s),t[3]=o+n*(r[3]-o),t},A.random=function(t,r){var n,i,a,s,o,l;r=r||1;do{o=(n=2*e.RANDOM()-1)*n+(i=2*e.RANDOM()-1)*i;}while(o>=1);do{l=(a=2*e.RANDOM()-1)*a+(s=2*e.RANDOM()-1)*s;}while(l>=1);var u=Math.sqrt((1-o)/l);return t[0]=r*n,t[1]=r*i,t[2]=r*a*u,t[3]=r*s*u,t},A.transformMat4=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*s,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*s,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*s,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*s,t},A.transformQuat=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=r[0],o=r[1],l=r[2],u=r[3],c=u*n+o*a-l*i,h=u*i+l*n-s*a,p=u*a+s*i-o*n,f=-s*n-o*i-l*a;return t[0]=c*u+f*-s+h*-l-p*-o,t[1]=h*u+f*-o+p*-s-c*-l,t[2]=p*u+f*-l+c*-o-h*-s,t[3]=e[3],t},A.zero=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t},A.str=function(t){return \"vec4(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\", \"+t[3]+\")\"},A.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]},A.equals=function(t,r){var n=t[0],i=t[1],a=t[2],s=t[3],o=r[0],l=r[1],u=r[2],c=r[3];return Math.abs(n-o)<=e.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-l)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(a-u)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(u))&&Math.abs(s-c)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(c))},A.forEach=A.sqrLen=A.len=A.sqrDist=A.dist=A.div=A.mul=A.sub=void 0;var e=function(e,n){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var i=r(void 0);if(i&&i.has(e))return i.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(\"default\"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=s?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(a,o,l):a[o]=e[o];}return a.default=e,i&&i.set(e,a),a}(a());function r(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return (r=function(t){return t?n:e})(t)}function n(){var t=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function i(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}function s(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}function o(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}function l(t,e){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2],e[3]-t[3])}function u(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return r*r+n*n+i*i+a*a}function c(t){return Math.hypot(t[0],t[1],t[2],t[3])}function h(t){var e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}A.sub=i,A.mul=s,A.div=o,A.dist=l,A.sqrDist=u,A.len=c,A.sqrLen=h;var p,f=(p=n(),function(t,e,r,n,i,a){var s,o;for(e||(e=4),r||(r=0),o=n?Math.min(n*e+r,t.length):t.length,s=r;s<o;s+=e)p[0]=t[s],p[1]=t[s+1],p[2]=t[s+2],p[3]=t[s+3],i(p,p,a),t[s]=p[0],t[s+1]=p[1],t[s+2]=p[2],t[s+3]=p[3];return t});return A.forEach=f,A}function I(){if(M)return v;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}M=1,Object.defineProperty(v,\"__esModule\",{value:!0}),v.create=l,v.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t},v.setAxisAngle=u,v.getAxisAngle=function(t,r){var n=2*Math.acos(r[3]),i=Math.sin(n/2);return i>e.EPSILON?(t[0]=r[0]/i,t[1]=r[1]/i,t[2]=r[2]/i):(t[0]=1,t[1]=0,t[2]=0),n},v.getAngle=function(t,e){var r=g(t,e);return Math.acos(2*r*r-1)},v.multiply=c,v.rotateX=function(t,e,r){r*=.5;var n=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l+s*o,t[1]=i*l+a*o,t[2]=a*l-i*o,t[3]=s*l-n*o,t},v.rotateY=function(t,e,r){r*=.5;var n=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l-a*o,t[1]=i*l+s*o,t[2]=a*l+n*o,t[3]=s*l-i*o,t},v.rotateZ=function(t,e,r){r*=.5;var n=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(r),l=Math.cos(r);return t[0]=n*l+i*o,t[1]=i*l-n*o,t[2]=a*l+s*o,t[3]=s*l-a*o,t},v.calculateW=function(t,e){var r=e[0],n=e[1],i=e[2];return t[0]=r,t[1]=n,t[2]=i,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-i*i)),t},v.exp=h,v.ln=p,v.pow=function(t,e,r){return p(t,e),y(t,t,r),h(t,t),t},v.slerp=f,v.random=function(t){var r=e.RANDOM(),n=e.RANDOM(),i=e.RANDOM(),a=Math.sqrt(1-r),s=Math.sqrt(r);return t[0]=a*Math.sin(2*Math.PI*n),t[1]=a*Math.cos(2*Math.PI*n),t[2]=s*Math.sin(2*Math.PI*i),t[3]=s*Math.cos(2*Math.PI*i),t},v.invert=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=r*r+n*n+i*i+a*a,o=s?1/s:0;return t[0]=-r*o,t[1]=-n*o,t[2]=-i*o,t[3]=a*o,t},v.conjugate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t},v.fromMat3=m,v.fromEuler=function(t,e,r,n){var i=.5*Math.PI/180;e*=i,r*=i,n*=i;var a=Math.sin(e),s=Math.cos(e),o=Math.sin(r),l=Math.cos(r),u=Math.sin(n),c=Math.cos(n);return t[0]=a*l*c-s*o*u,t[1]=s*o*c+a*l*u,t[2]=s*l*u-a*o*c,t[3]=s*l*c+a*o*u,t},v.str=function(t){return \"quat(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\", \"+t[3]+\")\"},v.setAxes=v.sqlerp=v.rotationTo=v.equals=v.exactEquals=v.normalize=v.sqrLen=v.squaredLength=v.len=v.length=v.lerp=v.dot=v.scale=v.mul=v.add=v.set=v.copy=v.fromValues=v.clone=void 0;var e=o(a()),r=o(d()),n=o(_()),i=o(S());function s(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,r=new WeakMap;return (s=function(t){return t?r:e})(t)}function o(e,r){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var n=s(r);if(n&&n.has(e))return n.get(e);var i={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(\"default\"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(i,o,l):i[o]=e[o];}return i.default=e,n&&n.set(e,i),i}function l(){var t=new e.ARRAY_TYPE(4);return e.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function u(t,e,r){r*=.5;var n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function c(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=r[0],l=r[1],u=r[2],c=r[3];return t[0]=n*c+s*o+i*u-a*l,t[1]=i*c+s*l+a*o-n*u,t[2]=a*c+s*u+n*l-i*o,t[3]=s*c-n*o-i*l-a*u,t}function h(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=Math.sqrt(r*r+n*n+i*i),o=Math.exp(a),l=s>0?o*Math.sin(s)/s:0;return t[0]=r*l,t[1]=n*l,t[2]=i*l,t[3]=o*Math.cos(s),t}function p(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=Math.sqrt(r*r+n*n+i*i),o=s>0?Math.atan2(s,a)/s:0;return t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=.5*Math.log(r*r+n*n+i*i+a*a),t}function f(t,r,n,i){var a,s,o,l,u,c=r[0],h=r[1],p=r[2],f=r[3],d=n[0],m=n[1],y=n[2],g=n[3];return (s=c*d+h*m+p*y+f*g)<0&&(s=-s,d=-d,m=-m,y=-y,g=-g),1-s>e.EPSILON?(a=Math.acos(s),o=Math.sin(a),l=Math.sin((1-i)*a)/o,u=Math.sin(i*a)/o):(l=1-i,u=i),t[0]=l*c+u*d,t[1]=l*h+u*m,t[2]=l*p+u*y,t[3]=l*f+u*g,t}function m(t,e){var r,n=e[0]+e[4]+e[8];if(n>0)r=Math.sqrt(n+1),t[3]=.5*r,t[0]=(e[5]-e[7])*(r=.5/r),t[1]=(e[6]-e[2])*r,t[2]=(e[1]-e[3])*r;else {var i=0;e[4]>e[0]&&(i=1),e[8]>e[3*i+i]&&(i=2);var a=(i+1)%3,s=(i+2)%3;r=Math.sqrt(e[3*i+i]-e[3*a+a]-e[3*s+s]+1),t[i]=.5*r,t[3]=(e[3*a+s]-e[3*s+a])*(r=.5/r),t[a]=(e[3*a+i]+e[3*i+a])*r,t[s]=(e[3*s+i]+e[3*i+s])*r;}return t}v.clone=i.clone,v.fromValues=i.fromValues,v.copy=i.copy,v.set=i.set,v.add=i.add,v.mul=c;var y=i.scale;v.scale=y;var g=i.dot;v.dot=g,v.lerp=i.lerp;var x=i.length;v.length=x,v.len=x;var b=i.squaredLength;v.squaredLength=b,v.sqrLen=b;var w=i.normalize;v.normalize=w,v.exactEquals=i.exactEquals,v.equals=i.equals;var A,I,P,z=(A=n.create(),I=n.fromValues(1,0,0),P=n.fromValues(0,1,0),function(t,e,r){var i=n.dot(e,r);return i<-.999999?(n.cross(A,I,e),n.len(A)<1e-6&&n.cross(A,P,e),n.normalize(A,A),u(t,A,Math.PI),t):i>.999999?(t[0]=0,t[1]=0,t[2]=0,t[3]=1,t):(n.cross(A,e,r),t[0]=A[0],t[1]=A[1],t[2]=A[2],t[3]=1+i,w(t,t))});v.rotationTo=z;var E,k,T=(E=l(),k=l(),function(t,e,r,n,i,a){return f(E,e,i,a),f(k,r,n,a),f(t,E,k,2*a*(1-a)),t});v.sqlerp=T;var B,V=(B=r.create(),function(t,e,r,n){return B[0]=r[0],B[3]=r[1],B[6]=r[2],B[1]=n[0],B[4]=n[1],B[7]=n[2],B[2]=-e[0],B[5]=-e[1],B[8]=-e[2],w(t,m(t,B))});return v.setAxes=V,v}var P,z={};function E(){if(P)return z;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}P=1,Object.defineProperty(z,\"__esModule\",{value:!0}),z.create=function(){var t=new e.ARRAY_TYPE(8);return e.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0),t[3]=1,t},z.clone=function(t){var r=new e.ARRAY_TYPE(8);return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r[4]=t[4],r[5]=t[5],r[6]=t[6],r[7]=t[7],r},z.fromValues=function(t,r,n,i,a,s,o,l){var u=new e.ARRAY_TYPE(8);return u[0]=t,u[1]=r,u[2]=n,u[3]=i,u[4]=a,u[5]=s,u[6]=o,u[7]=l,u},z.fromRotationTranslationValues=function(t,r,n,i,a,s,o){var l=new e.ARRAY_TYPE(8);l[0]=t,l[1]=r,l[2]=n,l[3]=i;var u=.5*a,c=.5*s,h=.5*o;return l[4]=u*i+c*n-h*r,l[5]=c*i+h*t-u*n,l[6]=h*i+u*r-c*t,l[7]=-u*t-c*r-h*n,l},z.fromRotationTranslation=o,z.fromTranslation=function(t,e){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=.5*e[0],t[5]=.5*e[1],t[6]=.5*e[2],t[7]=0,t},z.fromRotation=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},z.fromMat4=function(t,i){var a=r.create();n.getRotation(a,i);var s=new e.ARRAY_TYPE(3);return n.getTranslation(s,i),o(t,a,s),t},z.copy=l,z.identity=function(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t},z.set=function(t,e,r,n,i,a,s,o,l){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=a,t[5]=s,t[6]=o,t[7]=l,t},z.getDual=function(t,e){return t[0]=e[4],t[1]=e[5],t[2]=e[6],t[3]=e[7],t},z.setDual=function(t,e){return t[4]=e[0],t[5]=e[1],t[6]=e[2],t[7]=e[3],t},z.getTranslation=function(t,e){var r=e[4],n=e[5],i=e[6],a=e[7],s=-e[0],o=-e[1],l=-e[2],u=e[3];return t[0]=2*(r*u+a*s+n*l-i*o),t[1]=2*(n*u+a*o+i*s-r*l),t[2]=2*(i*u+a*l+r*o-n*s),t},z.translate=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=.5*r[0],l=.5*r[1],u=.5*r[2],c=e[4],h=e[5],p=e[6],f=e[7];return t[0]=n,t[1]=i,t[2]=a,t[3]=s,t[4]=s*o+i*u-a*l+c,t[5]=s*l+a*o-n*u+h,t[6]=s*u+n*l-i*o+p,t[7]=-n*o-i*l-a*u+f,t},z.rotateX=function(t,e,n){var i=-e[0],a=-e[1],s=-e[2],o=e[3],l=e[4],u=e[5],c=e[6],h=e[7],p=l*o+h*i+u*s-c*a,f=u*o+h*a+c*i-l*s,d=c*o+h*s+l*a-u*i,m=h*o-l*i-u*a-c*s;return r.rotateX(t,e,n),t[4]=p*(o=t[3])+m*(i=t[0])+f*(s=t[2])-d*(a=t[1]),t[5]=f*o+m*a+d*i-p*s,t[6]=d*o+m*s+p*a-f*i,t[7]=m*o-p*i-f*a-d*s,t},z.rotateY=function(t,e,n){var i=-e[0],a=-e[1],s=-e[2],o=e[3],l=e[4],u=e[5],c=e[6],h=e[7],p=l*o+h*i+u*s-c*a,f=u*o+h*a+c*i-l*s,d=c*o+h*s+l*a-u*i,m=h*o-l*i-u*a-c*s;return r.rotateY(t,e,n),t[4]=p*(o=t[3])+m*(i=t[0])+f*(s=t[2])-d*(a=t[1]),t[5]=f*o+m*a+d*i-p*s,t[6]=d*o+m*s+p*a-f*i,t[7]=m*o-p*i-f*a-d*s,t},z.rotateZ=function(t,e,n){var i=-e[0],a=-e[1],s=-e[2],o=e[3],l=e[4],u=e[5],c=e[6],h=e[7],p=l*o+h*i+u*s-c*a,f=u*o+h*a+c*i-l*s,d=c*o+h*s+l*a-u*i,m=h*o-l*i-u*a-c*s;return r.rotateZ(t,e,n),t[4]=p*(o=t[3])+m*(i=t[0])+f*(s=t[2])-d*(a=t[1]),t[5]=f*o+m*a+d*i-p*s,t[6]=d*o+m*s+p*a-f*i,t[7]=m*o-p*i-f*a-d*s,t},z.rotateByQuatAppend=function(t,e,r){var n=r[0],i=r[1],a=r[2],s=r[3],o=e[0],l=e[1],u=e[2],c=e[3];return t[0]=o*s+c*n+l*a-u*i,t[1]=l*s+c*i+u*n-o*a,t[2]=u*s+c*a+o*i-l*n,t[3]=c*s-o*n-l*i-u*a,t[4]=(o=e[4])*s+(c=e[7])*n+(l=e[5])*a-(u=e[6])*i,t[5]=l*s+c*i+u*n-o*a,t[6]=u*s+c*a+o*i-l*n,t[7]=c*s-o*n-l*i-u*a,t},z.rotateByQuatPrepend=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=r[0],l=r[1],u=r[2],c=r[3];return t[0]=n*c+s*o+i*u-a*l,t[1]=i*c+s*l+a*o-n*u,t[2]=a*c+s*u+n*l-i*o,t[3]=s*c-n*o-i*l-a*u,t[4]=n*(c=r[7])+s*(o=r[4])+i*(u=r[6])-a*(l=r[5]),t[5]=i*c+s*l+a*o-n*u,t[6]=a*c+s*u+n*l-i*o,t[7]=s*c-n*o-i*l-a*u,t},z.rotateAroundAxis=function(t,r,n,i){if(Math.abs(i)<e.EPSILON)return l(t,r);var a=Math.hypot(n[0],n[1],n[2]);i*=.5;var s=Math.sin(i),o=s*n[0]/a,u=s*n[1]/a,c=s*n[2]/a,h=Math.cos(i),p=r[0],f=r[1],d=r[2],m=r[3];t[0]=p*h+m*o+f*c-d*u,t[1]=f*h+m*u+d*o-p*c,t[2]=d*h+m*c+p*u-f*o,t[3]=m*h-p*o-f*u-d*c;var y=r[4],g=r[5],x=r[6],v=r[7];return t[4]=y*h+v*o+g*c-x*u,t[5]=g*h+v*u+x*o-y*c,t[6]=x*h+v*c+y*u-g*o,t[7]=v*h-y*o-g*u-x*c,t},z.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t},z.multiply=u,z.scale=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t},z.lerp=function(t,e,r,n){var i=1-n;return c(e,r)<0&&(n=-n),t[0]=e[0]*i+r[0]*n,t[1]=e[1]*i+r[1]*n,t[2]=e[2]*i+r[2]*n,t[3]=e[3]*i+r[3]*n,t[4]=e[4]*i+r[4]*n,t[5]=e[5]*i+r[5]*n,t[6]=e[6]*i+r[6]*n,t[7]=e[7]*i+r[7]*n,t},z.invert=function(t,e){var r=p(e);return t[0]=-e[0]/r,t[1]=-e[1]/r,t[2]=-e[2]/r,t[3]=e[3]/r,t[4]=-e[4]/r,t[5]=-e[5]/r,t[6]=-e[6]/r,t[7]=e[7]/r,t},z.conjugate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=e[7],t},z.normalize=function(t,e){var r=p(e);if(r>0){r=Math.sqrt(r);var n=e[0]/r,i=e[1]/r,a=e[2]/r,s=e[3]/r,o=e[4],l=e[5],u=e[6],c=e[7],h=n*o+i*l+a*u+s*c;t[0]=n,t[1]=i,t[2]=a,t[3]=s,t[4]=(o-n*h)/r,t[5]=(l-i*h)/r,t[6]=(u-a*h)/r,t[7]=(c-s*h)/r;}return t},z.str=function(t){return \"quat2(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\", \"+t[3]+\", \"+t[4]+\", \"+t[5]+\", \"+t[6]+\", \"+t[7]+\")\"},z.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]},z.equals=function(t,r){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],l=t[5],u=t[6],c=t[7],h=r[0],p=r[1],f=r[2],d=r[3],m=r[4],y=r[5],g=r[6],x=r[7];return Math.abs(n-h)<=e.EPSILON*Math.max(1,Math.abs(n),Math.abs(h))&&Math.abs(i-p)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(p))&&Math.abs(a-f)<=e.EPSILON*Math.max(1,Math.abs(a),Math.abs(f))&&Math.abs(s-d)<=e.EPSILON*Math.max(1,Math.abs(s),Math.abs(d))&&Math.abs(o-m)<=e.EPSILON*Math.max(1,Math.abs(o),Math.abs(m))&&Math.abs(l-y)<=e.EPSILON*Math.max(1,Math.abs(l),Math.abs(y))&&Math.abs(u-g)<=e.EPSILON*Math.max(1,Math.abs(u),Math.abs(g))&&Math.abs(c-x)<=e.EPSILON*Math.max(1,Math.abs(c),Math.abs(x))},z.sqrLen=z.squaredLength=z.len=z.length=z.dot=z.mul=z.setReal=z.getReal=void 0;var e=s(a()),r=s(I()),n=s(g());function i(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,r=new WeakMap;return (i=function(t){return t?r:e})(t)}function s(e,r){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var n=i(r);if(n&&n.has(e))return n.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(\"default\"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=s?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(a,o,l):a[o]=e[o];}return a.default=e,n&&n.set(e,a),a}function o(t,e,r){var n=.5*r[0],i=.5*r[1],a=.5*r[2],s=e[0],o=e[1],l=e[2],u=e[3];return t[0]=s,t[1]=o,t[2]=l,t[3]=u,t[4]=n*u+i*l-a*o,t[5]=i*u+a*s-n*l,t[6]=a*u+n*o-i*s,t[7]=-n*s-i*o-a*l,t}function l(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t}function u(t,e,r){var n=e[0],i=e[1],a=e[2],s=e[3],o=r[4],l=r[5],u=r[6],c=r[7],h=e[4],p=e[5],f=e[6],d=e[7],m=r[0],y=r[1],g=r[2],x=r[3];return t[0]=n*x+s*m+i*g-a*y,t[1]=i*x+s*y+a*m-n*g,t[2]=a*x+s*g+n*y-i*m,t[3]=s*x-n*m-i*y-a*g,t[4]=n*c+s*o+i*u-a*l+h*x+d*m+p*g-f*y,t[5]=i*c+s*l+a*o-n*u+p*x+d*y+f*m-h*g,t[6]=a*c+s*u+n*l-i*o+f*x+d*g+h*y-p*m,t[7]=s*c-n*o-i*l-a*u+d*x-h*m-p*y-f*g,t}z.getReal=r.copy,z.setReal=r.copy,z.mul=u;var c=r.dot;z.dot=c;var h=r.length;z.length=h,z.len=h;var p=r.squaredLength;return z.squaredLength=p,z.sqrLen=p,z}var k,T,B={};function V(){if(k)return B;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}k=1,Object.defineProperty(B,\"__esModule\",{value:!0}),B.create=n,B.clone=function(t){var r=new e.ARRAY_TYPE(2);return r[0]=t[0],r[1]=t[1],r},B.fromValues=function(t,r){var n=new e.ARRAY_TYPE(2);return n[0]=t,n[1]=r,n},B.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t},B.set=function(t,e,r){return t[0]=e,t[1]=r,t},B.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t},B.subtract=i,B.multiply=s,B.divide=o,B.ceil=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t},B.floor=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t},B.min=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t},B.max=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t},B.round=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t},B.scale=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t},B.scaleAndAdd=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t},B.distance=l,B.squaredDistance=u,B.length=c,B.squaredLength=h,B.negate=function(t,e){return t[0]=-e[0],t[1]=-e[1],t},B.inverse=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t},B.normalize=function(t,e){var r=e[0],n=e[1],i=r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),t[0]=e[0]*i,t[1]=e[1]*i,t},B.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]},B.cross=function(t,e,r){var n=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=n,t},B.lerp=function(t,e,r,n){var i=e[0],a=e[1];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t},B.random=function(t,r){r=r||1;var n=2*e.RANDOM()*Math.PI;return t[0]=Math.cos(n)*r,t[1]=Math.sin(n)*r,t},B.transformMat2=function(t,e,r){var n=e[0],i=e[1];return t[0]=r[0]*n+r[2]*i,t[1]=r[1]*n+r[3]*i,t},B.transformMat2d=function(t,e,r){var n=e[0],i=e[1];return t[0]=r[0]*n+r[2]*i+r[4],t[1]=r[1]*n+r[3]*i+r[5],t},B.transformMat3=function(t,e,r){var n=e[0],i=e[1];return t[0]=r[0]*n+r[3]*i+r[6],t[1]=r[1]*n+r[4]*i+r[7],t},B.transformMat4=function(t,e,r){var n=e[0],i=e[1];return t[0]=r[0]*n+r[4]*i+r[12],t[1]=r[1]*n+r[5]*i+r[13],t},B.rotate=function(t,e,r,n){var i=e[0]-r[0],a=e[1]-r[1],s=Math.sin(n),o=Math.cos(n);return t[0]=i*o-a*s+r[0],t[1]=i*s+a*o+r[1],t},B.angle=function(t,e){var r=t[0],n=t[1],i=e[0],a=e[1],s=Math.sqrt(r*r+n*n)*Math.sqrt(i*i+a*a);return Math.acos(Math.min(Math.max(s&&(r*i+n*a)/s,-1),1))},B.zero=function(t){return t[0]=0,t[1]=0,t},B.str=function(t){return \"vec2(\"+t[0]+\", \"+t[1]+\")\"},B.exactEquals=function(t,e){return t[0]===e[0]&&t[1]===e[1]},B.equals=function(t,r){var n=t[0],i=t[1],a=r[0],s=r[1];return Math.abs(n-a)<=e.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-s)<=e.EPSILON*Math.max(1,Math.abs(i),Math.abs(s))},B.forEach=B.sqrLen=B.sqrDist=B.dist=B.div=B.mul=B.sub=B.len=void 0;var e=function(e,n){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var i=r(void 0);if(i&&i.has(e))return i.get(e);var a={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(\"default\"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var l=s?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(a,o,l):a[o]=e[o];}return a.default=e,i&&i.set(e,a),a}(a());function r(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,n=new WeakMap;return (r=function(t){return t?n:e})(t)}function n(){var t=new e.ARRAY_TYPE(2);return e.ARRAY_TYPE!=Float32Array&&(t[0]=0,t[1]=0),t}function i(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function s(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function o(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function l(t,e){return Math.hypot(e[0]-t[0],e[1]-t[1])}function u(t,e){var r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n}function c(t){return Math.hypot(t[0],t[1])}function h(t){var e=t[0],r=t[1];return e*e+r*r}B.len=c,B.sub=i,B.mul=s,B.div=o,B.dist=l,B.sqrDist=u,B.sqrLen=h;var p,f=(p=n(),function(t,e,r,n,i,a){var s,o;for(e||(e=2),r||(r=0),o=n?Math.min(n*e+r,t.length):t.length,s=r;s<o;s+=e)p[0]=t[s],p[1]=t[s+1],i(p,p,a),t[s]=p[0],t[s+1]=p[1];return t});return B.forEach=f,B}function C(){if(T)return n;function t(e){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},t(e)}T=1,Object.defineProperty(n,\"__esModule\",{value:!0}),n.vec4=n.vec3=n.vec2=n.quat2=n.quat=n.mat4=n.mat3=n.mat2d=n.mat2=n.glMatrix=void 0;var e=x(a());n.glMatrix=e;var r=x(l());n.mat2=r;var i=x(h());n.mat2d=i;var s=x(d());n.mat3=s;var o=x(g());n.mat4=o;var u=x(I());n.quat=u;var c=x(E());n.quat2=c;var p=x(V());n.vec2=p;var f=x(_());n.vec3=f;var m=x(S());function y(t){if(\"function\"!=typeof WeakMap)return null;var e=new WeakMap,r=new WeakMap;return (y=function(t){return t?r:e})(t)}function x(e,r){if(e&&e.__esModule)return e;if(null===e||\"object\"!==t(e)&&\"function\"!=typeof e)return {default:e};var n=y(r);if(n&&n.has(e))return n.get(e);var i={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if(\"default\"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var o=a?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(i,s,o):i[s]=e[s];}return i.default=e,n&&n.set(e,i),i}return n.vec4=m,n}var D,L,R,F,O=C(),N=function(){if(L)return D;function t(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=e,this.p2x=r,this.p2y=n;}return L=1,D=t,t.prototype={sampleCurveX:function(t){return ((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return ((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return (3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,e){if(void 0===e&&(e=1e-6),t<0)return 0;if(t>1)return 1;for(var r=t,n=0;n<8;n++){var i=this.sampleCurveX(r)-t;if(Math.abs(i)<e)return r;var a=this.sampleCurveDerivativeX(r);if(Math.abs(a)<1e-6)break;r-=i/a;}var s=0,o=1;for(r=t,n=0;n<20&&(i=this.sampleCurveX(r),!(Math.abs(i-t)<e));n++)t>i?s=r:o=r,r=.5*(o-s)+s;return r},solve:function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}},D}(),U=e(N);function j(){if(F)return R;function t(t,e){this.x=t,this.y=e;}return F=1,R=t,t.prototype={clone:function(){return new t(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=e,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=n,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-n*(this.y-e.y),this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},t.convert=function(e){return e instanceof t?e:Array.isArray(e)?new t(e[0],e[1]):e},R}var q=e(j());function $(t,e){if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return !1;for(let r=0;r<t.length;r++)if(!$(t[r],e[r]))return !1;return !0}if(\"object\"==typeof t&&null!==t&&null!==e){if(\"object\"!=typeof e)return !1;if(Object.keys(t).length!==Object.keys(e).length)return !1;for(const r in t)if(!$(t[r],e[r]))return !1;return !0}return t===e}const G=Math.PI/180,Y=180/Math.PI;function X(t){return t*G}function Z(t){return t*Y}const H=[[0,0],[1,0],[1,1],[0,1]];function W(t){if(t<=0)return 0;if(t>=1)return 1;const e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function K(t,e,r,n){const i=new U(t,e,r,n);return function(t){return i.solve(t)}}const J=K(.25,.1,.25,1);function Q(t,e,r){return Math.min(r,Math.max(e,t))}function tt(t,e,r){return (r=Q((r-t)/(e-t),0,1))*r*(3-2*r)}function et(t,e,r){const n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function rt(t,e,r){if(!t.length)return r(null,[]);let n=t.length;const i=new Array(t.length);let a=null;t.forEach(((t,s)=>{e(t,((t,e)=>{t&&(a=t),i[s]=e,0==--n&&r(a,i);}));}));}function nt(t,...e){for(const r of e)for(const e in r)t[e]=r[e];return t}let it=1;function at(){return it++}function st(t){return t<=1?1:Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function ot(t,e){t.forEach((t=>{e[t]&&(e[t]=e[t].bind(e));}));}function lt(t,e){return -1!==t.indexOf(e,t.length-e.length)}function ut(t,e,r){const n={};for(const r in t)n[r]=e.call(this,t[r],r,t);return n}function ct(t,e,r){const n={};for(const r in t)e.call(this,t[r],r,t)&&(n[r]=t[r]);return n}function ht(t){return Array.isArray(t)?t.map(ht):\"object\"==typeof t&&t?ut(t,ht):t}const pt={};function ft(t){pt[t]||(\"undefined\"!=typeof console&&console.warn(t),pt[t]=!0);}function dt(t,e,r){return (r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function mt(t){let e=0;for(let r,n,i=0,a=t.length,s=a-1;i<a;s=i++)r=t[i],n=t[s],e+=(n.x-r.x)*(r.y+n.y);return e}function yt([t,e,r]){const n=X(e+90),i=X(r);return {x:t*Math.cos(n)*Math.sin(i),y:t*Math.sin(n)*Math.sin(i),z:t*Math.cos(i),azimuthal:e,polar:r}}function gt(){return \"undefined\"!=typeof WorkerGlobalScope&&\"undefined\"!=typeof self&&self instanceof WorkerGlobalScope}function xt(t){const e={};if(t.replace(/(?:^|(?:\\s*\\,\\s*))([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g,((t,r,n,i)=>{const a=n||i;return e[r]=!a||a.toLowerCase(),\"\"})),e[\"max-age\"]){const t=parseInt(e[\"max-age\"],10);isNaN(t)?delete e[\"max-age\"]:e[\"max-age\"]=t;}return e}let vt=null;function bt(t,e){return [t[4*e],t[4*e+1],t[4*e+2],t[4*e+3]]}function _t(t,e,r,n){for(;e<r;){const i=e+r>>1;t[i]<n?e=i+1:r=i;}return e}function wt(t,e,r,n){for(;e<r;){const i=e+r>>1;t[i]<=n?e=i+1:r=i;}return e}function Mt(t){return t>0?1/(1.001-t):1+t}function At(t){return t>0?1-1/(1.001-t):-t}const St={API_URL:\"https://api.mapbox.com\",get API_URL_REGEX(){return /^((https?:)?\\/\\/)?([^\\/]+\\.)?mapbox\\.c(n|om)(\\/|\\?|$)/i},get API_TILEJSON_REGEX(){return /^((https?:)?\\/\\/)?([^\\/]+\\.)?mapbox\\.c(n|om)(\\/v[0-9]*\\/.*\\.json.*$)/i},get API_SPRITE_REGEX(){return /^((https?:)?\\/\\/)?([^\\/]+\\.)?mapbox\\.c(n|om)(\\/styles\\/v[0-9]*\\/)(.*\\/sprite.*\\..*$)/i},get API_FONTS_REGEX(){return /^((https?:)?\\/\\/)?([^\\/]+\\.)?mapbox\\.c(n|om)(\\/fonts\\/v[0-9]*\\/)(.*\\.pbf.*$)/i},get API_STYLE_REGEX(){return /^((https?:)?\\/\\/)?([^\\/]+\\.)?mapbox\\.c(n|om)(\\/styles\\/v[0-9]*\\/)(.*$)/i},get API_CDN_URL_REGEX(){return /^((https?:)?\\/\\/)?api\\.mapbox\\.c(n|om)(\\/mapbox-gl-js\\/)(.*$)/i},get EVENTS_URL(){if(!St.API_URL)return null;try{const t=new URL(St.API_URL);return \"api.mapbox.cn\"===t.hostname?\"https://events.mapbox.cn/events/v2\":\"api.mapbox.com\"===t.hostname?\"https://events.mapbox.com/events/v2\":null}catch(t){return null}},SESSION_PATH:\"/map-sessions/v1\",FEEDBACK_URL:\"https://apps.mapbox.com/feedback\",TILE_URL_VERSION:\"v4\",RASTER_URL_PREFIX:\"raster/v1\",RASTERARRAYS_URL_PREFIX:\"rasterarrays/v1\",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,DEFAULT_STYLE:\"mapbox://styles/mapbox/standard\",MAX_PARALLEL_IMAGE_REQUESTS:16,DRACO_URL:\"https://api.mapbox.com/mapbox-gl-js/draco_decoder_gltf_v1.5.6.wasm\",MESHOPT_URL:\"https://api.mapbox.com/mapbox-gl-js/meshopt_base_v0.20.wasm\",MESHOPT_SIMD_URL:\"https://api.mapbox.com/mapbox-gl-js/meshopt_simd_v0.20.wasm\",GLYPHS_URL:\"mapbox://fonts/mapbox/{fontstack}/{range}.pbf\",TILES3D_URL_PREFIX:\"3dtiles/v1\"};function It(t){return St.API_URL_REGEX.test(t)}function Pt(t){return St.API_SPRITE_REGEX.test(t)}let zt,Et,kt,Tt,Bt,Vt;function Ct(){return null==zt&&(zt=self.OffscreenCanvas&&new OffscreenCanvas(1,1).getContext(\"2d\")&&\"function\"==typeof self.createImageBitmap),zt}const Dt={now:()=>void 0!==Tt?Tt:performance.now(),setNow(t){Tt=t;},restoreNow(){Tt=void 0;},frame(t){const e=requestAnimationFrame(t);return {cancel:()=>cancelAnimationFrame(e)}},getImageData(t,e=0){const{width:r,height:n}=t;Bt||(Bt=document.createElement(\"canvas\"));const i=Bt.getContext(\"2d\",{willReadFrequently:!0});if(!i)throw new Error(\"failed to create canvas 2d context\");return (r>Bt.width||n>Bt.height)&&(Bt.width=r,Bt.height=n),i.clearRect(-e,-e,r+2*e,n+2*e),i.drawImage(t,0,0,r,n),i.getImageData(-e,-e,r+2*e,n+2*e)},resolveURL:t=>(Et||(Et=document.createElement(\"a\")),Et.href=t,Et.href),get devicePixelRatio(){return window.devicePixelRatio},get prefersReducedMotion(){return !!window.matchMedia&&(null==kt&&(kt=window.matchMedia(\"(prefers-reduced-motion: reduce)\")),kt.matches)},hasCanvasFingerprintNoise(){if(void 0!==Vt)return Vt;if(!Ct())return Vt=!1,!1;const t=new OffscreenCanvas(85,1),e=t.getContext(\"2d\",{willReadFrequently:!0});let r=0;for(let n=0;n<t.width;++n)e.fillStyle=`rgba(${r++},${r++},${r++}, 255)`,e.fillRect(n,0,1,1);const n=e.getImageData(0,0,t.width,t.height);r=0;for(let t=0;t<n.data.length;++t)if(t%4!=3&&r++!==n.data[t])return Vt=!0,!0;return Vt=!1,!1}};function Lt(t,e){const r=t.indexOf(\"?\");if(r<0)return `${t}?${new URLSearchParams(e).toString()}`;const n=new URLSearchParams(t.slice(r));for(const t in e)n.set(t,e[t]);return `${t.slice(0,r)}?${n.toString()}`}function Rt(t,e={persistentParams:[]}){const r=t.indexOf(\"?\");if(r<0)return t;const n=new URLSearchParams,i=new URLSearchParams(t.slice(r));for(const t of e.persistentParams){const e=i.get(t);e&&n.set(t,e);}const a=n.toString();return `${t.slice(0,r)}${a.length>0?`?${a}`:\"\"}`}const Ft=\"mapbox-tiles\";let Ot=500,Nt=50;const Ut=[\"language\",\"worldview\",\"jobid\"];let jt,qt;function $t(){try{return caches}catch(t){}}function Gt(){const t=$t();t&&null==jt&&(jt=t.open(Ft));}let Yt=1/0;const Xt={supported:!1,testSupport:function(t){!Wt&&Ht&&(Kt?Qt(t):Zt=t);}};let Zt,Ht,Wt=!1,Kt=!1;const Jt=\"undefined\"!=typeof self?self:{};function Qt(t){const e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,Ht),t.isContextLost())return;Xt.supported=!0;}catch(t){}t.deleteTexture(e),Wt=!0;}Jt.document&&(Ht=Jt.document.createElement(\"img\"),Ht.onload=function(){Zt&&Qt(Zt),Zt=null,Kt=!0;},Ht.onerror=function(){Wt=!0,Zt=null;},Ht.src=\"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\");const te={Unknown:\"Unknown\",Style:\"Style\",Source:\"Source\",Tile:\"Tile\",Glyphs:\"Glyphs\",SpriteImage:\"SpriteImage\",SpriteJSON:\"SpriteJSON\",Iconset:\"Iconset\",Image:\"Image\",Model:\"Model\"};\"function\"==typeof Object.freeze&&Object.freeze(te);class ee extends Error{constructor(t,e,r){401===e&&It(r)&&(t+=\": you may have provided an invalid Mapbox access token. See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes\"),super(t),this.status=e,this.url=r;}toString(){return `${this.name}: ${this.message} (${this.status}): ${this.url}`}}const re=gt()?()=>self.worker&&self.worker.referrer:()=>(\"blob:\"===location.protocol?parent:self).location.href;const ne=function(t,e){if(!(/^file:/.test(r=t.url)||/^file:/.test(re())&&!/^\\w+:/.test(r))){if(self.fetch&&self.Request&&self.AbortController&&Request.prototype.hasOwnProperty(\"signal\"))return function(t,e){const r=new AbortController,n=new Request(t.url,{method:t.method||\"GET\",body:t.body,credentials:t.credentials,headers:t.headers,referrer:re(),referrerPolicy:t.referrerPolicy,signal:r.signal});let i=!1,a=!1;const s=(o=n.url).indexOf(\"sku=\")>0&&It(o);var o;\"json\"===t.type&&n.headers.set(\"Accept\",\"application/json\");const l=(r,i,o)=>{if(a)return;if(r&&\"SecurityError\"!==r.message&&ft(r.toString()),i&&o)return u(i);const l=Date.now();fetch(n).then((r=>{if(r.ok){const t=s?r.clone():null;return u(r,t,l)}return e(new ee(r.statusText,r.status,t.url))})).catch((r=>{\"AbortError\"!==r.name&&e(new Error(`${r.message} ${t.url}`));}));},u=(r,s,o)=>{(\"arrayBuffer\"===t.type?r.arrayBuffer():\"json\"===t.type?r.json():r.text()).then((t=>{a||(s&&o&&function(t,e,r){if(Gt(),null==jt)return;const n=xt(e.headers.get(\"Cache-Control\")||\"\");if(n[\"no-store\"])return;const i={status:e.status,statusText:e.statusText,headers:new Headers};e.headers.forEach(((t,e)=>i.headers.set(e,t))),n[\"max-age\"]&&i.headers.set(\"Expires\",new Date(r+1e3*n[\"max-age\"]).toUTCString());const a=i.headers.get(\"Expires\");if(!a)return;if(new Date(a).getTime()-r<42e4)return;let s=Rt(t.url,{persistentParams:Ut});if(206===e.status){const e=t.headers.get(\"Range\");if(!e)return;i.status=200,s=Lt(s,{range:e});}!function(t,e){if(void 0===qt)try{new Response(new ReadableStream),qt=!0;}catch(t){qt=!1;}qt?e(t.body):t.blob().then(e);}(e,(t=>{const r=new Response(200!==(n=e.status)&&404!==n&&[101,103,204,205,304].includes(n)?null:t,i);var n;Gt(),null!=jt&&jt.then((t=>t.put(s,r))).catch((t=>ft(t.message)));}));}(n,s,o),i=!0,e(null,t,r.headers.get(\"Cache-Control\"),r.headers.get(\"Expires\")));})).catch((t=>{a||e(new Error(t.message));}));};return s?function(t,e){if(Gt(),null==jt)return e(null);jt.then((r=>{let n=Rt(t.url,{persistentParams:Ut});const i=t.headers.get(\"Range\");i&&(n=Lt(n,{range:i})),r.match(n).then((t=>{const i=function(t){if(!t)return !1;const e=new Date(t.headers.get(\"Expires\")||0),r=xt(t.headers.get(\"Cache-Control\")||\"\");return e>Date.now()&&!r[\"no-cache\"]}(t);r.delete(n),i&&r.put(n,t.clone()),e(null,t,i);})).catch(e);})).catch(e);}(n,l):l(null,null),{cancel:()=>{a=!0,i||r.abort();}}}(t,e);if(gt()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",t,e,void 0,!0)}var r;return function(t,e){const r=new XMLHttpRequest;r.open(t.method||\"GET\",t.url,!0),\"arrayBuffer\"===t.type&&(r.responseType=\"arraybuffer\");for(const e in t.headers)r.setRequestHeader(e,t.headers[e]);return \"json\"===t.type&&(r.responseType=\"text\",r.setRequestHeader(\"Accept\",\"application/json\")),r.withCredentials=\"include\"===t.credentials,r.onerror=()=>{e(new Error(r.statusText));},r.onload=()=>{if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){let n=r.response;if(\"json\"===t.type)try{n=JSON.parse(r.response);}catch(t){return e(t)}e(null,n,r.getResponseHeader(\"Cache-Control\"),r.getResponseHeader(\"Expires\"));}else e(new ee(r.statusText,r.status,t.url));},r.send(t.body),{cancel:()=>r.abort()}}(t,e)},ie=function(t,e){return ne(nt(t,{type:\"arrayBuffer\"}),e)};function ae(t){const e=document.createElement(\"a\");return e.href=t,e.protocol===location.protocol&&e.host===location.host}const se=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\";let oe,le;oe=[],le=0;const ue=function(t,e){if(Xt.supported&&(t.headers||(t.headers={}),t.headers.accept=\"image/webp,*/*\"),le>=St.MAX_PARALLEL_IMAGE_REQUESTS){const r={requestParameters:t,callback:e,cancelled:!1,cancel(){this.cancelled=!0;}};return oe.push(r),r}le++;let r=!1;const n=()=>{if(!r)for(r=!0,le--;oe.length&&le<St.MAX_PARALLEL_IMAGE_REQUESTS;){const t=oe.shift(),{requestParameters:e,callback:r,cancelled:n}=t;n||(t.cancel=ue(e,r).cancel);}},i=ie(t,((t,r,i,a)=>{n(),t?e(t):r&&(self.createImageBitmap?function(t,e){const r=new Blob([new Uint8Array(t)],{type:\"image/png\"});createImageBitmap(r).then((t=>{e(null,t);})).catch((t=>{e(new Error(`Could not load image because of ${t.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));}));}(r,((t,r)=>e(t,r,i,a))):function(t,e){const r=new Image;r.onload=()=>{e(null,r),URL.revokeObjectURL(r.src),r.onload=null,requestAnimationFrame((()=>{r.src=se;}));},r.onerror=()=>e(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));const n=new Blob([new Uint8Array(t)],{type:\"image/png\"});r.src=t.byteLength?URL.createObjectURL(n):se;}(r,((t,r)=>e(t,r,i,a))));}));return {cancel:()=>{i.cancel(),n();}}};var ce,he,pe,fe={exports:{}},de={exports:{}},me={exports:{}},ye=function(){if(pe)return fe.exports;pe=1;var t=(ce||(ce=1,de.exports=function(t,e){var r,n,i,a,s,o,l,u;for(n=t.length-(r=3&t.length),i=e,s=3432918353,o=461845907,u=0;u<n;)l=255&t.charCodeAt(u)|(255&t.charCodeAt(++u))<<8|(255&t.charCodeAt(++u))<<16|(255&t.charCodeAt(++u))<<24,++u,i=27492+(65535&(a=5*(65535&(i=(i^=l=(65535&(l=(l=(65535&l)*s+(((l>>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(u)))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295;}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0}),de.exports),e=(he||(he=1,me.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16);}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}),me.exports);return fe.exports=t,fe.exports.murmur3=t,fe.exports.murmur2=e,fe.exports}(),ge=e(ye);class xe{constructor(t,...e){nt(this,e[0]||{}),this.type=t;}}class ve extends xe{constructor(t,e={}){super(\"error\",nt({error:t},e));}}function be(t,e,r){r[t]&&-1!==r[t].indexOf(e)||(r[t]=r[t]||[],r[t].push(e));}function _e(t,e,r){if(r&&r[t]){const n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1);}}class we{on(t,e){return this._listeners=this._listeners||{},be(t,e,this._listeners),this}off(t,e){return _e(t,e,this._listeners),_e(t,e,this._oneTimeListeners),this}once(t,e){return e?(this._oneTimeListeners=this._oneTimeListeners||{},be(t,e,this._oneTimeListeners),this):new Promise((e=>this.once(t,e)))}fire(t,e){const r=\"string\"==typeof t?new xe(t,e):t,n=r.type;if(this.listens(n)){r.target=this;const t=this._listeners&&this._listeners[n]?this._listeners[n].slice():[];for(const e of t)e.call(this,r);const e=this._oneTimeListeners&&this._oneTimeListeners[n]?this._oneTimeListeners[n].slice():[];for(const t of e)_e(n,t,this._oneTimeListeners),t.call(this,r);const i=this._eventedParent;i&&(nt(r,\"function\"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),i.fire(r));}else r instanceof ve&&console.error(r.error);return this}listens(t){return !!(this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t))}setEventedParent(t,e){return this._eventedParent=t,this._eventedParentData=e,this}}var Me,Ae={},Se=function(){if(Me)return Ae;Me=1;var t={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function e(t){return (t=Math.round(t))<0?0:t>255?255:t}function r(t){return e(\"%\"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function n(t){return (e=\"%\"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))<0?0:e>1?1:e;var e;}function i(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{Ae.parseCSSColor=function(a){var s,o=a.replace(/ /g,\"\").toLowerCase();if(o in t)return t[o].slice();if(\"#\"===o[0])return 4===o.length?(s=parseInt(o.substr(1),16))>=0&&s<=4095?[(3840&s)>>4|(3840&s)>>8,240&s|(240&s)>>4,15&s|(15&s)<<4,1]:null:7===o.length&&(s=parseInt(o.substr(1),16))>=0&&s<=16777215?[(16711680&s)>>16,(65280&s)>>8,255&s,1]:null;var l=o.indexOf(\"(\"),u=o.indexOf(\")\");if(-1!==l&&u+1===o.length){var c=o.substr(0,l),h=o.substr(l+1,u-(l+1)).split(\",\"),p=1;switch(c){case\"rgba\":if(4!==h.length)return null;p=n(h.pop());case\"rgb\":return 3!==h.length?null:[r(h[0]),r(h[1]),r(h[2]),p];case\"hsla\":if(4!==h.length)return null;p=n(h.pop());case\"hsl\":if(3!==h.length)return null;var f=(parseFloat(h[0])%360+360)%360/360,d=n(h[1]),m=n(h[2]),y=m<=.5?m*(d+1):m+d-m*d,g=2*m-y;return [e(255*i(g,y,f+1/3)),e(255*i(g,y,f)),e(255*i(g,y,f-1/3)),p];default:return null}}return null};}catch(t){}return Ae}();class Ie{constructor(t,e,r,n=1){this.r=t,this.g=e,this.b=r,this.a=n;}static parse(t){if(!t)return;if(t instanceof Ie)return t;if(\"string\"!=typeof t)return;const e=Se.parseCSSColor(t);return e?new Ie(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3]):void 0}toStringPremultipliedAlpha(){const[t,e,r,n]=0===this.a?[0,0,0,0]:[255*this.r/this.a,255*this.g/this.a,255*this.b/this.a,this.a];return `rgba(${Math.round(t)},${Math.round(e)},${Math.round(r)},${n})`}toString(){const[t,e,r,n]=[this.r,this.g,this.b,this.a];return `rgba(${Math.round(255*t)},${Math.round(255*e)},${Math.round(255*r)},${n})`}toRenderColor(t){const{r:e,g:r,b:n,a:i}=this;return new Pe(t,e,r,n,i)}clone(){return new Ie(this.r,this.g,this.b,this.a)}}class Pe{constructor(t,e,r,n,i){if(t){const a=t.image.height,s=a*a;e=0===i?0:e/i*(a-1),r=0===i?0:r/i*(a-1),n=0===i?0:n/i*(a-1);const o=Math.floor(e),l=Math.floor(r),u=Math.floor(n),c=Math.ceil(e),h=Math.ceil(r),p=Math.ceil(n),f=e-o,d=r-l,m=n-u,y=t.image.data,g=4*(o+l*s+u*a),x=4*(o+l*s+p*a),v=4*(o+h*s+u*a),b=4*(o+h*s+p*a),_=4*(c+l*s+u*a),w=4*(c+l*s+p*a),M=4*(c+h*s+u*a),A=4*(c+h*s+p*a);if(g<0||A>=y.length)throw new Error(\"out of range\");this.r=ze(ze(ze(y[g],y[x],m),ze(y[v],y[b],m),d),ze(ze(y[_],y[w],m),ze(y[M],y[A],m),d),f)/255*i,this.g=ze(ze(ze(y[g+1],y[x+1],m),ze(y[v+1],y[b+1],m),d),ze(ze(y[_+1],y[w+1],m),ze(y[M+1],y[A+1],m),d),f)/255*i,this.b=ze(ze(ze(y[g+2],y[x+2],m),ze(y[v+2],y[b+2],m),d),ze(ze(y[_+2],y[w+2],m),ze(y[M+2],y[A+2],m),d),f)/255*i,this.a=i;}else this.r=e,this.g=r,this.b=n,this.a=i;}toArray(){const{r:t,g:e,b:r,a:n}=this;return 0===n?[0,0,0,0]:[255*t/n,255*e/n,255*r/n,n]}toHslaArray(){if(0===this.a)return [0,0,0,0];const{r:t,g:e,b:r,a:n}=this,i=Math.min(Math.max(t/n,0),1),a=Math.min(Math.max(e/n,0),1),s=Math.min(Math.max(r/n,0),1),o=Math.min(i,a,s),l=Math.max(i,a,s),u=(o+l)/2;if(o===l)return [0,0,100*u,n];const c=l-o,h=u>.5?c/(2-l-o):c/(l+o);let p=0;return l===i?p=(a-s)/c+(a<s?6:0):l===a?p=(s-i)/c+2:l===s&&(p=(i-a)/c+4),p*=60,[Math.min(Math.max(p,0),360),Math.min(Math.max(100*h,0),100),Math.min(Math.max(100*u,0),100),n]}toArray01(){const{r:t,g:e,b:r,a:n}=this;return 0===n?[0,0,0,0]:[t/n,e/n,r/n,n]}toArray01Scaled(t){const{r:e,g:r,b:n,a:i}=this;return 0===i?[0,0,0]:[e/i*t,r/i*t,n/i*t]}toArray01PremultipliedAlpha(){const{r:t,g:e,b:r,a:n}=this;return [t,e,r,n]}toArray01Linear(){const{r:t,g:e,b:r,a:n}=this;return 0===n?[0,0,0,0]:[Math.pow(t/n,2.2),Math.pow(e/n,2.2),Math.pow(r/n,2.2),n]}}function ze(t,e,r){return t*(1-r)+e*r}function Ee(t,e,r){return t.map(((t,n)=>ze(t,e[n],r)))}Ie.black=new Ie(0,0,0,1),Ie.white=new Ie(1,1,1,1),Ie.transparent=new Ie(0,0,0,0),Ie.red=new Ie(1,0,0,1),Ie.blue=new Ie(0,0,1,1);var ke=Object.freeze({__proto__:null,array:Ee,color:function(t,e,r){return new Ie(ze(t.r,e.r,r),ze(t.g,e.g,r),ze(t.b,e.b,r),ze(t.a,e.a,r))},number:ze});function Te(t,...e){for(const r of e)for(const e in r)t[e]=r[e];return t}class Be extends Error{constructor(t,e){super(e),this.message=e,this.key=t;}}class Ve{constructor(t,e=[]){this.parent=t,this.bindings={};for(const[t,r]of e)this.bindings[t]=r;}concat(t){return new Ve(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(`${t} not found in scope.`)}has(t){return !!this.bindings[t]||!!this.parent&&this.parent.has(t)}}const Ce={kind:\"null\"},De={kind:\"number\"},Le={kind:\"string\"},Re={kind:\"boolean\"},Fe={kind:\"color\"},Oe={kind:\"object\"},Ne={kind:\"value\"},Ue={kind:\"collator\"},je={kind:\"formatted\"},qe={kind:\"resolvedImage\"};function $e(t,e){return {kind:\"array\",itemType:t,N:e}}function Ge(t){if(\"array\"===t.kind){const e=Ge(t.itemType);return \"number\"==typeof t.N?`array<${e}, ${t.N}>`:\"value\"===t.itemType.kind?\"array\":`array<${e}>`}return t.kind}const Ye=[Ce,De,Le,Re,Fe,je,Oe,$e(Ne),qe];function Xe(t,e){if(\"error\"===e.kind)return null;if(\"array\"===t.kind){if(\"array\"===e.kind&&(0===e.N&&\"value\"===e.itemType.kind||!Xe(t.itemType,e.itemType))&&(\"number\"!=typeof t.N||t.N===e.N))return null}else {if(t.kind===e.kind)return null;if(\"value\"===t.kind)for(const t of Ye)if(!Xe(t,e))return null}return `Expected ${Ge(t)} but found ${Ge(e)} instead.`}function Ze(t,e){return e.some((e=>e.kind===t.kind))}function He(t,e){return e.some((e=>\"null\"===e?null===t:\"array\"===e?Array.isArray(t):\"object\"===e?t&&!Array.isArray(t)&&\"object\"==typeof t:e===typeof t))}class We{constructor(t,e,r){this.sensitivity=t?e?\"variant\":\"case\":e?\"accent\":\"base\",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:\"search\"});}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Ke{constructor(t,e,r,n,i){this.text=t.normalize?t.normalize():t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i;}}class Je{constructor(t){this.sections=t;}static fromString(t){return new Je([new Ke(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some((t=>0!==t.text.length||t.image&&t.image.namePrimary))}static factory(t){return t instanceof Je?t:Je.fromString(t)}toString(){return 0===this.sections.length?\"\":this.sections.map((t=>t.text)).join(\"\")}serialize(){const t=[\"format\"];for(const e of this.sections){if(e.image){t.push([\"image\",e.image.namePrimary]);continue}t.push(e.text);const r={};e.fontStack&&(r[\"text-font\"]=[\"literal\",e.fontStack.split(\",\")]),e.scale&&(r[\"font-scale\"]=e.scale),e.textColor&&(r[\"text-color\"]=[\"rgba\"].concat(e.textColor.toRenderColor(null).toArray())),t.push(r);}return t}}class Qe{constructor(t,e){if(this.id=t,this.options=e||{params:{}},this.options.transform){const{a:t,b:e,c:r,d:n,e:i,f:a}=this.options.transform;this.options.transform=new DOMMatrix([t,e,r,n,i,a]);}else this.options.transform=new DOMMatrix([1,0,0,1,0,0]);}static deserializeId(t){return JSON.parse(t).id}static deserializeFromString(t){const e=JSON.parse(t),{a:r,b:n,c:i,d:a,e:s,f:o}=e.options.transform;return new DOMMatrix([r,n,i,a,s,o]),new Qe(e.id,e.options)}scaleSelf(t){return this.options.transform=this.options.transform.scale(t),this}serialize(){const t={id:this.id};this.options&&(t.options=this.options);const{a:e,b:r,c:n,d:i,e:a,f:s}=this.options.transform;return t.options.transform={a:e,b:r,c:n,d:i,e:a,f:s},JSON.stringify(t)}}class tr{constructor(t){this.namePrimary=t.namePrimary,t.nameSecondary&&(this.nameSecondary=t.nameSecondary),t.optionsPrimary&&(this.optionsPrimary=t.optionsPrimary),t.optionsSecondary&&(this.optionsSecondary=t.optionsSecondary),this.available=t.available;}toString(){return this.namePrimary&&this.nameSecondary?`[${this.namePrimary},${this.nameSecondary}]`:this.namePrimary}getPrimary(){return new Qe(this.namePrimary,{params:this.optionsPrimary&&this.optionsPrimary.params||{}})}getSerializedPrimary(){return this.getPrimary().serialize()}getSecondary(){return this.nameSecondary?new Qe(this.nameSecondary,{params:this.optionsSecondary&&this.optionsSecondary.params||{}}):null}static from(t){return \"string\"==typeof t?tr.build(t):t}static build(t,e,r,n){return t?new tr({namePrimary:t,nameSecondary:e,optionsPrimary:r,optionsSecondary:n,available:!1}):null}}function er(t,e,r,n){return \"number\"==typeof t&&t>=0&&t<=255&&\"number\"==typeof e&&e>=0&&e<=255&&\"number\"==typeof r&&r>=0&&r<=255?void 0===n||\"number\"==typeof n&&n>=0&&n<=1?null:`Invalid rgba value [${[t,e,r,n].join(\", \")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(\"number\"==typeof n?[t,e,r,n]:[t,e,r]).join(\", \")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function rr(t){if(null===t)return !0;if(\"string\"==typeof t)return !0;if(\"boolean\"==typeof t)return !0;if(\"number\"==typeof t)return !0;if(t instanceof Ie)return !0;if(t instanceof We)return !0;if(t instanceof Je)return !0;if(t instanceof tr)return !0;if(Array.isArray(t)){for(const e of t)if(!rr(e))return !1;return !0}if(\"object\"==typeof t){for(const e in t)if(!rr(t[e]))return !1;return !0}return !1}function nr(t){if(null===t)return Ce;if(\"string\"==typeof t)return Le;if(\"boolean\"==typeof t)return Re;if(\"number\"==typeof t)return De;if(t instanceof Ie)return Fe;if(t instanceof We)return Ue;if(t instanceof Je)return je;if(t instanceof tr)return qe;if(Array.isArray(t)){const e=t.length;let r;for(const e of t){const t=nr(e);if(r){if(r===t)continue;r=Ne;break}r=t;}return $e(r||Ne,e)}return Oe}function ir(t){const e=typeof t;return null===t?\"\":\"string\"===e||\"number\"===e||\"boolean\"===e?String(t):t instanceof Ie?t.toStringPremultipliedAlpha():t instanceof Je||t instanceof tr?t.toString():JSON.stringify(t)}class ar{constructor(t,e){this.type=t,this.value=e;}static parse(t,e){if(2!==t.length)return e.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!rr(t[1]))return e.error(\"invalid value\");const r=t[1];let n=nr(r);const i=e.expectedType;return \"array\"!==n.kind||0!==n.N||!i||\"array\"!==i.kind||\"number\"==typeof i.N&&0!==i.N||(n=i),new ar(n,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return !0}serialize(){return \"array\"===this.type.kind||\"object\"===this.type.kind?[\"literal\",this.value]:this.value instanceof Ie?[\"rgba\"].concat(this.value.toRenderColor(null).toArray()):this.value instanceof Je?this.value.serialize():this.value}}class sr{constructor(t){this.name=\"ExpressionEvaluationError\",this.message=t;}toJSON(){return this.message}}const or={string:Le,number:De,boolean:Re,object:Oe};class lr{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error(\"Expected at least one argument.\");let r,n=1;const i=t[0];if(\"array\"===i){let i,a;if(t.length>2){const r=t[1];if(\"string\"!=typeof r||!(r in or)||\"object\"===r)return e.error('The item type argument of \"array\" must be one of string, number, boolean',1);i=or[r],n++;}else i=Ne;if(t.length>3){if(null!==t[2]&&(\"number\"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to \"array\" must be a positive integer literal',2);a=t[2],n++;}r=$e(i,a);}else r=or[i];const a=[];for(;n<t.length;n++){const r=e.parse(t[n],n,Ne);if(!r)return null;a.push(r);}return new lr(r,a)}evaluate(t){for(let e=0;e<this.args.length;e++){const r=this.args[e].evaluate(t);if(!Xe(this.type,nr(r)))return r;if(e===this.args.length-1)throw new sr(`The expression ${JSON.stringify(this.args[e].serialize())} evaluated to ${Ge(nr(r))} but was expected to be of type ${Ge(this.type)}.`)}return null}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}serialize(){const t=this.type,e=[t.kind];if(\"array\"===t.kind){const r=t.itemType;if(\"string\"===r.kind||\"number\"===r.kind||\"boolean\"===r.kind){e.push(r.kind);const n=t.N;(\"number\"==typeof n||this.args.length>1)&&e.push(n);}}return e.concat(this.args.map((t=>t.serialize())))}}class ur{constructor(t){this.type=je,this.sections=t;}static parse(t,e){if(t.length<2)return e.error(\"Expected at least one argument.\");const r=t[1];if(!Array.isArray(r)&&\"object\"==typeof r)return e.error(\"First argument must be an image or text section.\");const n=[];let i=!1;for(let r=1;r<=t.length-1;++r){const a=t[r];if(i&&\"object\"==typeof a&&!Array.isArray(a)){i=!1;let t=null;if(a[\"font-scale\"]&&(t=e.parseObjectValue(a[\"font-scale\"],r,\"font-scale\",De),!t))return null;let s=null;if(a[\"text-font\"]&&(s=e.parseObjectValue(a[\"text-font\"],r,\"text-font\",$e(Le)),!s))return null;let o=null;if(a[\"text-color\"]&&(o=e.parseObjectValue(a[\"text-color\"],r,\"text-color\",Fe),!o))return null;const l=n[n.length-1];l.scale=t,l.font=s,l.textColor=o;}else {const a=e.parse(t[r],r,Ne);if(!a)return null;const s=a.type.kind;if(\"string\"!==s&&\"value\"!==s&&\"null\"!==s&&\"resolvedImage\"!==s)return e.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");i=!0,n.push({content:a,scale:null,font:null,textColor:null});}}return new ur(n)}evaluate(t){return new Je(this.sections.map((e=>{const r=e.content.evaluate(t);return nr(r)===qe?new Ke(\"\",r,null,null,null):new Ke(ir(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(\",\"):null,e.textColor?e.textColor.evaluate(t):null)})))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor);}outputDefined(){return !1}serialize(){const t=[\"format\"];for(const e of this.sections){t.push(e.content.serialize());const r={};e.scale&&(r[\"font-scale\"]=e.scale.serialize()),e.font&&(r[\"text-font\"]=e.font.serialize()),e.textColor&&(r[\"text-color\"]=e.textColor.serialize()),t.push(r);}return t}}class cr{constructor(t,e,r,n){this._imageWarnHistory={},this.type=qe,this.inputPrimary=t,this.inputSecondary=e,this.inputPrimaryParams=r,this.inputSecondaryParams=n;}static parse(t,e){if(t.length<2)return e.error(\"Expected two or more arguments.\");let r=1;const n=[];function i(){if(r<t.length){const i=e.parse(t[r],r++,Le);return i?(n.push({image:i,options:void 0}),!0):(e.error(n.length?\"Secondary image variant is not a string.\":\"No image name provided.\"),!1)}return !0}function a(){if(r<t.length){if(null===(i=t[r])||\"object\"!=typeof i||Array.isArray(i))return !0;const a=t[r].params,s=e.concat(r);if(!a)return r++,!0;if(\"object\"!=typeof a||a.constructor!==Object)return s.error('Image options \"params\" should be an object'),!1;const o={},l=s.concat(void 0,\"params\");for(const t in a){if(!t)return l.error(\"Image parameter name should be non-empty\"),!1;const e=l.concat(void 0,t).parse(a[t],void 0,Fe,void 0,{typeAnnotation:\"coerce\"});if(!e)return !1;o[t]=e;}return n[n.length-1].options=o,r++,!0}var i;return !0}for(let t=0;t<2;t++)if(!i()||!a())return;return new cr(n[0].image,n[1]?n[1].image:void 0,n[0].options,n[1]?n[1].options:void 0)}evaluateParams(t,e){const r={};if(e){for(const n in e)if(e[n])try{const i=e[n].evaluate(t),a=`Ignoring image parameter \"${n}\" with semi-transparent color ${i.toString()}`;if(1!==i.a){this._imageWarnHistory[a]||(console.warn(a),this._imageWarnHistory[a]=!0);continue}r[n]=i;}catch(t){continue}if(0!==Object.keys(r).length)return {params:r}}}evaluate(t){const e=tr.build(this.inputPrimary.evaluate(t),this.inputSecondary?this.inputSecondary.evaluate(t):void 0,this.inputPrimaryParams?this.evaluateParams(t,this.inputPrimaryParams):void 0,this.inputSecondaryParams?this.evaluateParams(t,this.inputSecondaryParams):void 0);return e&&t.availableImages&&(e.available=t.availableImages.indexOf(e.namePrimary)>-1,e.nameSecondary&&e.available&&t.availableImages&&(e.available=t.availableImages.indexOf(e.nameSecondary)>-1)),e}eachChild(t){if(t(this.inputPrimary),this.inputPrimaryParams)for(const e in this.inputPrimaryParams)this.inputPrimaryParams[e]&&t(this.inputPrimaryParams[e]);if(this.inputSecondary&&(t(this.inputSecondary),this.inputSecondaryParams))for(const e in this.inputSecondaryParams)this.inputSecondaryParams[e]&&t(this.inputSecondaryParams[e]);}outputDefined(){return !1}serializeParams(t){const e={};if(t){for(const r in t)t[r]&&(e[r]=t[r].serialize());return {params:e}}}serialize(){const t=[\"image\",this.inputPrimary.serialize()];return this.inputPrimaryParams&&t.push(this.serializeParams(this.inputPrimaryParams)),this.inputSecondary&&(t.push(this.inputSecondary.serialize()),this.inputSecondaryParams&&t.push(this.serializeParams(this.inputSecondaryParams))),t}}function hr(t){return t instanceof Number?\"number\":t instanceof String?\"string\":t instanceof Boolean?\"boolean\":Array.isArray(t)?\"array\":null===t?\"null\":typeof t}const pr={\"to-boolean\":Re,\"to-color\":Fe,\"to-number\":De,\"to-string\":Le};class fr{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error(\"Expected at least one argument.\");const r=t[0],n=[];let i=Ce;if(\"to-array\"===r){if(!Array.isArray(t[1]))return null;const r=t[1].length;if(e.expectedType){if(\"array\"!==e.expectedType.kind)return e.error(`Expected ${e.expectedType.kind} but found array.`);i=$e(e.expectedType.itemType,r);}else {if(!(r>0&&rr(t[1][0])))return null;i=$e(nr(t[1][0]),r);}for(let a=0;a<r;a++){const r=t[1][a];let s;if(\"array\"===hr(r))s=e.parse(r,void 0,i.itemType);else {const t=hr(r);if(t!==i.itemType.kind)return e.error(`Expected ${i.itemType.kind} but found ${t}.`);s=e.registry.literal.parse([\"literal\",void 0===r?null:r],e);}if(!s)return null;n.push(s);}}else {if((\"to-boolean\"===r||\"to-string\"===r)&&2!==t.length)return e.error(\"Expected one argument.\");i=pr[r];for(let r=1;r<t.length;r++){const i=e.parse(t[r],r,Ne);if(!i)return null;n.push(i);}}return new fr(i,n)}evaluate(t){if(\"boolean\"===this.type.kind)return Boolean(this.args[0].evaluate(t));if(\"color\"===this.type.kind){let e,r;for(const n of this.args){if(e=n.evaluate(t),r=null,e instanceof Ie)return e;if(\"string\"==typeof e){const r=t.parseColor(e);if(r)return r}else if(Array.isArray(e)&&(r=e.length<3||e.length>4?`Invalid rbga value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:er(e[0],e[1],e[2],e[3]),!r))return new Ie(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new sr(r||`Could not parse color from value '${\"string\"==typeof e?e:String(JSON.stringify(e))}'`)}if(\"number\"===this.type.kind){let e=null;for(const r of this.args){if(e=r.evaluate(t),null===e)return 0;const n=Number(e);if(!isNaN(n))return n}throw new sr(`Could not convert ${JSON.stringify(e)} to number.`)}return \"formatted\"===this.type.kind?Je.fromString(ir(this.args[0].evaluate(t))):\"resolvedImage\"===this.type.kind?tr.build(ir(this.args[0].evaluate(t))):\"array\"===this.type.kind?this.args.map((e=>e.evaluate(t))):ir(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}serialize(){if(\"formatted\"===this.type.kind)return new ur([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(\"resolvedImage\"===this.type.kind)return new cr(this.args[0]).serialize();const t=\"array\"===this.type.kind?[]:[`to-${this.type.kind}`];return this.eachChild((e=>{t.push(e.serialize());})),t}}const dr=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"];class mr{constructor(t,e){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null,this.scope=t,this.options=e;}id(){return this.feature&&void 0!==this.feature.id?this.feature.id:null}geometryType(){return this.feature?\"number\"==typeof this.feature.type?dr[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&\"geometry\"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}measureLight(t){return this.globals.brightness||0}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const t=this.featureDistanceData.center,e=this.featureDistanceData.scale,{x:r,y:n}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(r*e-t[0])+this.featureDistanceData.bearing[1]*(n*e-t[1])}return 0}parseColor(t){let e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=Ie.parse(t)),e}getConfig(t){return this.options?this.options.get(t):null}}class yr{constructor(t,e,r,n,i){this.name=t,this.type=e,this._evaluate=r,this.args=n,this._overloadIndex=i;}evaluate(t){if(!this._evaluate){const t=yr.definitions[this.name];this._evaluate=Array.isArray(t)?t[2]:t.overloads[this._overloadIndex][1];}return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t);}outputDefined(){return !1}serialize(){return [this.name].concat(this.args.map((t=>t.serialize())))}static parse(t,e){const r=t[0],n=yr.definitions[r];if(!n)return e.error(`Unknown expression \"${r}\". If you wanted a literal array, use [\"literal\", [...]].`,0);const i=Array.isArray(n)?n[0]:n.type,a=Array.isArray(n)?[[n[1],n[2]]]:n.overloads,s=[];let o=null,l=-1;for(const[n,u]of a){if(Array.isArray(n)&&n.length!==t.length-1)continue;s.push(n),l++,o=new Rn(e.registry,e.path,null,e.scope,void 0,e._scope,e.options);const a=[];let c=!1;for(let e=1;e<t.length;e++){const r=t[e],i=Array.isArray(n)?n[e-1]:n.type,s=o.parse(r,1+a.length,i);if(!s){c=!0;break}a.push(s);}if(!c)if(Array.isArray(n)&&n.length!==a.length)o.error(`Expected ${n.length} arguments, but found ${a.length} instead.`);else {for(let t=0;t<a.length;t++){const e=Array.isArray(n)?n[t]:n.type,r=a[t];o.concat(t+1).checkSubtype(e,r.type);}if(0===o.errors.length)return new yr(r,i,u,a,l)}}if(1===s.length)e.errors.push(...o.errors);else {const r=(s.length?s:a.map((([t])=>t))).map(gr).join(\" | \"),n=[];for(let r=1;r<t.length;r++){const i=e.parse(t[r],1+n.length);if(!i)return null;n.push(Ge(i.type));}e.error(`Expected arguments of type ${r}, but found (${n.join(\", \")}) instead.`);}return null}static register(t,e){yr.definitions=e;for(const r in e)t[r]=yr;}}function gr(t){return Array.isArray(t)?`(${t.map(Ge).join(\", \")})`:`(${Ge(t.type)}...)`}class xr{constructor(t,e,r){this.type=Ue,this.locale=r,this.caseSensitive=t,this.diacriticSensitive=e;}static parse(t,e){if(2!==t.length)return e.error(\"Expected one argument.\");const r=t[1];if(\"object\"!=typeof r||Array.isArray(r))return e.error(\"Collator options argument must be an object.\");const n=void 0===r[\"case-sensitive\"]?e.parse(!1,1,Re):e.parseObjectValue(r[\"case-sensitive\"],1,\"case-sensitive\",Re);if(!n)return null;const i=void 0===r[\"diacritic-sensitive\"]?e.parse(!1,1,Re):e.parseObjectValue(r[\"diacritic-sensitive\"],1,\"diacritic-sensitive\",Re);if(!i)return null;let a=null;return r.locale&&(a=e.parseObjectValue(r.locale,1,\"locale\",Le),!a)?null:new xr(n,i,a)}evaluate(t){return new We(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale);}outputDefined(){return !1}serialize(){const t={};return t[\"case-sensitive\"]=this.caseSensitive.serialize(),t[\"diacritic-sensitive\"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),[\"collator\",t]}}function vr(t,e,r=0,n=t.length-1,i=_r){for(;n>r;){if(n-r>600){const a=n-r+1,s=e-r+1,o=Math.log(a),l=.5*Math.exp(2*o/3),u=.5*Math.sqrt(o*l*(a-l)/a)*(s-a/2<0?-1:1);vr(t,e,Math.max(r,Math.floor(e-s*l/a+u)),Math.min(n,Math.floor(e+(a-s)*l/a+u)),i);}const a=t[e];let s=r,o=n;for(br(t,r,e),i(t[n],a)>0&&br(t,r,n);s<o;){for(br(t,s,o),s++,o--;i(t[s],a)<0;)s++;for(;i(t[o],a)>0;)o--;}0===i(t[r],a)?br(t,r,o):(o++,br(t,o,n)),o<=e&&(r=o+1),e<=o&&(n=o-1);}}function br(t,e,r){const n=t[e];t[e]=t[r],t[r]=n;}function _r(t,e){return t<e?-1:t>e?1:0}function wr(t){let e=0;for(let r,n,i=0,a=t.length,s=a-1;i<a;s=i++)r=t[i],n=t[s],e+=(n.x-r.x)*(r.y+n.y);return e}function Mr(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[0]),t[3]=Math.max(t[3],e[1]);}function Ar(t,e){return !(t[0]<=e[0]||t[2]>=e[2]||t[1]<=e[1]||t[3]>=e[3])}function Sr(t,e,r){const n=t[0]-e[0],i=t[1]-e[1],a=t[0]-r[0],s=t[1]-r[1];return n*s-a*i==0&&n*a<=0&&i*s<=0}function Ir(t,e,r=!1){let n=!1;for(let o=0,l=e.length;o<l;o++){const l=e[o];for(let e=0,o=l.length,u=o-1;e<o;u=e++){const o=l[u],c=l[e];if(Sr(t,o,c))return r;(a=o)[1]>(i=t)[1]!=(s=c)[1]>i[1]&&i[0]<(s[0]-a[0])*(i[1]-a[1])/(s[1]-a[1])+a[0]&&(n=!n);}}var i,a,s;return n}function Pr(t,e,r,n){const i=n[0]-r[0],a=n[1]-r[1],s=(t[0]-r[0])*a-i*(t[1]-r[1]),o=(e[0]-r[0])*a-i*(e[1]-r[1]);return s>0&&o<0||s<0&&o>0}function zr(t,e,r,n){return 0!=(i=[n[0]-r[0],n[1]-r[1]])[0]*(a=[e[0]-t[0],e[1]-t[1]])[1]-i[1]*a[0]&&!(!Pr(t,e,r,n)||!Pr(r,n,t,e));var i,a;}const Er=8192;function kr(t,e){const r=(180+t[0])/360,n=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,e.z);return [Math.round(r*i*Er),Math.round(n*i*Er)]}function Tr(t,e){for(let r=0;r<e.length;r++)if(Ir(t,e[r]))return !0;return !1}function Br(t,e,r){for(const n of r)for(let r=0,i=n.length,a=i-1;r<i;a=r++)if(zr(t,e,n[a],n[r]))return !0;return !1}function Vr(t,e){for(let r=0;r<t.length;++r)if(!Ir(t[r],e))return !1;for(let r=0;r<t.length-1;++r)if(Br(t[r],t[r+1],e))return !1;return !0}function Cr(t,e){for(let r=0;r<e.length;r++)if(Vr(t,e[r]))return !0;return !1}function Dr(t,e,r){const n=[];for(let i=0;i<t.length;i++){const a=[];for(let n=0;n<t[i].length;n++){const s=kr(t[i][n],r);Mr(e,s),a.push(s);}n.push(a);}return n}function Lr(t,e,r){const n=[];for(let i=0;i<t.length;i++){const a=Dr(t[i],e,r);n.push(a);}return n}function Rr(t,e,r,n){if(t[0]<r[0]||t[0]>r[2]){const e=.5*n;let i=t[0]-r[0]>e?-n:r[0]-t[0]>e?n:0;0===i&&(i=t[0]-r[2]>e?-n:r[2]-t[0]>e?n:0),t[0]+=i;}Mr(e,t);}function Fr(t,e,r,n){const i=Math.pow(2,n.z)*Er,a=[n.x*Er,n.y*Er],s=[];if(!t)return s;for(const n of t)for(const t of n){const n=[t.x+a[0],t.y+a[1]];Rr(n,e,r,i),s.push(n);}return s}function Or(t,e,r,n){const i=Math.pow(2,n.z)*Er,a=[n.x*Er,n.y*Er],s=[];if(!t)return s;for(const r of t){const t=[];for(const n of r){const r=[n.x+a[0],n.y+a[1]];Mr(e,r),t.push(r);}s.push(t);}if(e[2]-e[0]<=i/2){(o=e)[0]=o[1]=1/0,o[2]=o[3]=-1/0;for(const t of s)for(const n of t)Rr(n,e,r,i);}var o;return s}class Nr{constructor(t,e){this.type=Re,this.geojson=t,this.geometries=e;}static parse(t,e){if(2!==t.length)return e.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(rr(t[1])){const e=t[1];if(\"FeatureCollection\"===e.type)for(let t=0;t<e.features.length;++t){const r=e.features[t].geometry.type;if(\"Polygon\"===r||\"MultiPolygon\"===r)return new Nr(e,e.features[t].geometry)}else if(\"Feature\"===e.type){const t=e.geometry.type;if(\"Polygon\"===t||\"MultiPolygon\"===t)return new Nr(e,e.geometry)}else if(\"Polygon\"===e.type||\"MultiPolygon\"===e.type)return new Nr(e,e)}return e.error(\"'within' expression requires valid geojson object that contains polygon geometry type.\")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if(\"Point\"===t.geometryType())return function(t,e){const r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return !1;if(\"Polygon\"===e.type){const a=Dr(e.coordinates,n,i),s=Fr(t.geometry(),r,n,i);if(!Ar(r,n))return !1;for(const t of s)if(!Ir(t,a))return !1}if(\"MultiPolygon\"===e.type){const a=Lr(e.coordinates,n,i),s=Fr(t.geometry(),r,n,i);if(!Ar(r,n))return !1;for(const t of s)if(!Tr(t,a))return !1}return !0}(t,this.geometries);if(\"LineString\"===t.geometryType())return function(t,e){const r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return !1;if(\"Polygon\"===e.type){const a=Dr(e.coordinates,n,i),s=Or(t.geometry(),r,n,i);if(!Ar(r,n))return !1;for(const t of s)if(!Vr(t,a))return !1}if(\"MultiPolygon\"===e.type){const a=Lr(e.coordinates,n,i),s=Or(t.geometry(),r,n,i);if(!Ar(r,n))return !1;for(const t of s)if(!Cr(t,a))return !1}return !0}(t,this.geometries)}return !1}eachChild(){}outputDefined(){return !0}serialize(){return [\"within\",this.geojson]}}const Ur={kilometers:1,miles:1e3/1609.344,nauticalmiles:1e3/1852,meters:1e3,metres:1e3,yards:1e3/.9144,feet:1e3/.3048,inches:1e3/.0254},jr=1/298.257223563,qr=jr*(2-jr),$r=Math.PI/180;class Gr{static fromTile(t,e,r){const n=Math.PI*(1-2*(t+.5)/Math.pow(2,e)),i=Math.atan(.5*(Math.exp(n)-Math.exp(-n)))/$r;return new Gr(i,r)}static get units(){return Ur}constructor(t,e){if(void 0===t)throw new Error(\"No latitude given.\");if(e&&!Ur[e])throw new Error(`Unknown unit ${e}. Use one of: ${Object.keys(Ur).join(\", \")}`);const r=6378.137*$r*(e?Ur[e]:1),n=Math.cos(t*$r),i=1/(1-qr*(1-n*n)),a=Math.sqrt(i);this.kx=r*a*n,this.ky=r*a*i*(1-qr);}distance(t,e){const r=Zr(t[0]-e[0])*this.kx,n=(t[1]-e[1])*this.ky;return Math.sqrt(r*r+n*n)}bearing(t,e){const r=Zr(e[0]-t[0])*this.kx;return Math.atan2(r,(e[1]-t[1])*this.ky)/$r}destination(t,e,r){const n=r*$r;return this.offset(t,Math.sin(n)*e,Math.cos(n)*e)}offset(t,e,r){return [t[0]+e/this.kx,t[1]+r/this.ky]}lineDistance(t){let e=0;for(let r=0;r<t.length-1;r++)e+=this.distance(t[r],t[r+1]);return e}area(t){let e=0;for(let r=0;r<t.length;r++){const n=t[r];for(let t=0,i=n.length,a=i-1;t<i;a=t++)e+=Zr(n[t][0]-n[a][0])*(n[t][1]+n[a][1])*(r?-1:1);}return Math.abs(e)/2*this.kx*this.ky}along(t,e){let r=0;if(e<=0)return t[0];for(let n=0;n<t.length-1;n++){const i=t[n],a=t[n+1],s=this.distance(i,a);if(r+=s,r>e)return Xr(i,a,(e-(r-s))/s)}return t[t.length-1]}pointToSegmentDistance(t,e,r){let[n,i]=e,a=Zr(r[0]-n)*this.kx,s=(r[1]-i)*this.ky;if(0!==a||0!==s){const e=(Zr(t[0]-n)*this.kx*a+(t[1]-i)*this.ky*s)/(a*a+s*s);e>1?(n=r[0],i=r[1]):e>0&&(n+=a/this.kx*e,i+=s/this.ky*e);}return a=Zr(t[0]-n)*this.kx,s=(t[1]-i)*this.ky,Math.sqrt(a*a+s*s)}pointOnLine(t,e){let r=1/0,n=t[0][0],i=t[0][1],a=0,s=0;for(let o=0;o<t.length-1;o++){let l=t[o][0],u=t[o][1],c=Zr(t[o+1][0]-l)*this.kx,h=(t[o+1][1]-u)*this.ky,p=0;0===c&&0===h||(p=(Zr(e[0]-l)*this.kx*c+(e[1]-u)*this.ky*h)/(c*c+h*h),p>1?(l=t[o+1][0],u=t[o+1][1]):p>0&&(l+=c/this.kx*p,u+=h/this.ky*p)),c=Zr(e[0]-l)*this.kx,h=(e[1]-u)*this.ky;const f=c*c+h*h;f<r&&(r=f,n=l,i=u,a=o,s=p);}return {point:[n,i],index:a,t:Math.max(0,Math.min(1,s))}}lineSlice(t,e,r){let n=this.pointOnLine(r,t),i=this.pointOnLine(r,e);if(n.index>i.index||n.index===i.index&&n.t>i.t){const t=n;n=i,i=t;}const a=[n.point],s=n.index+1,o=i.index;!Yr(r[s],a[0])&&s<=o&&a.push(r[s]);for(let t=s+1;t<=o;t++)a.push(r[t]);return Yr(r[o],i.point)||a.push(i.point),a}lineSliceAlong(t,e,r){let n=0;const i=[];for(let a=0;a<r.length-1;a++){const s=r[a],o=r[a+1],l=this.distance(s,o);if(n+=l,n>t&&0===i.length&&i.push(Xr(s,o,(t-(n-l))/l)),n>=e)return i.push(Xr(s,o,(e-(n-l))/l)),i;n>t&&i.push(o);}return i}bufferPoint(t,e){const r=e/this.ky,n=e/this.kx;return [t[0]-n,t[1]-r,t[0]+n,t[1]+r]}bufferBBox(t,e){const r=e/this.ky,n=e/this.kx;return [t[0]-n,t[1]-r,t[2]+n,t[3]+r]}insideBBox(t,e){return Zr(t[0]-e[0])>=0&&Zr(t[0]-e[2])<=0&&t[1]>=e[1]&&t[1]<=e[3]}}function Yr(t,e){return t[0]===e[0]&&t[1]===e[1]}function Xr(t,e,r){const n=Zr(e[0]-t[0]);return [t[0]+n*r,t[1]+(e[1]-t[1])*r]}function Zr(t){for(;t<-180;)t+=360;for(;t>180;)t-=360;return t}class Hr{constructor(t=[],e=((t,e)=>t<e?-1:t>e?1:0)){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let t=(this.length>>1)-1;t>=0;t--)this._down(t);}push(t){this.data.push(t),this._up(this.length++);}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return --this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:r}=this,n=e[t];for(;t>0;){const i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i;}e[t]=n;}_down(t){const{data:e,compare:r}=this,n=this.length>>1,i=e[t];for(;t<n;){let n=1+(t<<1);const a=n+1;if(a<this.length&&r(e[a],e[n])<0&&(n=a),r(e[n],i)>=0)break;e[t]=e[n],t=n;}e[t]=i;}}var Wr=8192;function Kr(t,e){return e.dist-t.dist}const Jr=100,Qr=50;function tn(t){const e=[1/0,1/0,-1/0,-1/0];if(e.length!==t.length)return !1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return !1;return !0}function en(t){return t[1]-t[0]+1}function rn(t,e){const r=t[1]>=t[0]&&t[1]<e;return r||console.warn(\"Distance Expression: Index is out of range\"),r}function nn(t,e){if(t[0]>t[1])return [null,null];const r=en(t);if(e){if(2===r)return [t,null];const e=Math.floor(r/2);return [[t[0],t[0]+e],[t[0]+e,t[1]]]}{if(1===r)return [t,null];const e=Math.floor(r/2)-1;return [[t[0],t[0]+e],[t[0]+e+1,t[1]]]}}function an(t,e){const r=[1/0,1/0,-1/0,-1/0];if(!rn(e,t.length))return r;for(let n=e[0];n<=e[1];++n)Mr(r,t[n]);return r}function sn(t){const e=[1/0,1/0,-1/0,-1/0];for(let r=0;r<t.length;++r)for(let n=0;n<t[r].length;++n)Mr(e,t[r][n]);return e}function on(t,e,r){if(tn(t)||tn(e))return NaN;let n=0,i=0;return t[2]<e[0]&&(n=e[0]-t[2]),t[0]>e[2]&&(n=t[0]-e[2]),t[1]>e[3]&&(i=t[1]-e[3]),t[3]<e[1]&&(i=e[1]-t[3]),r.distance([0,0],[n,i])}function ln(t){return 360*t-180}function un(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}function cn(t,e){const r=Math.pow(2,e.z),n=(t.y/Wr+e.y)/r;return [ln((t.x/Wr+e.x)/r),un(n)]}function hn(t,e){const r=[];for(let n=0;n<t.length;++n)r.push(cn(t[n],e));return r}function pn(t,e,r){const n=r.pointOnLine(e,t).point;return r.distance(t,n)}function fn(t,e,r,n,i){const a=r.slice(n[0],n[1]+1);let s=1/0;for(let r=e[0];r<=e[1];++r)if(0===(s=Math.min(s,pn(t[r],a,i))))return 0;return s}function dn(t,e,r,n,i){const a=Math.min(i.pointToSegmentDistance(t,r,n),i.pointToSegmentDistance(e,r,n)),s=Math.min(i.pointToSegmentDistance(r,t,e),i.pointToSegmentDistance(n,t,e));return Math.min(a,s)}function mn(t,e,r,n,i){if(!rn(e,t.length)||!rn(n,r.length))return NaN;let a=1/0;for(let s=e[0];s<e[1];++s)for(let e=n[0];e<n[1];++e){if(zr(t[s],t[s+1],r[e],r[e+1]))return 0;a=Math.min(a,dn(t[s],t[s+1],r[e],r[e+1],i));}return a}function yn(t,e,r,n,i){if(!rn(e,t.length)||!rn(n,r.length))return NaN;let a=1/0;for(let s=e[0];s<=e[1];++s)for(let e=n[0];e<=n[1];++e)if(0===(a=Math.min(a,i.distance(t[s],r[e]))))return a;return a}function gn(t,e,r){if(Ir(t,e,!0))return 0;let n=1/0;for(const i of e){const e=i.length;if(e<2)return console.warn(\"Distance Expression: Invalid polygon!\"),NaN;if(i[0]!==i[e-1]&&0===(n=Math.min(n,r.pointToSegmentDistance(t,i[e-1],i[0]))))return n;if(0===(n=Math.min(n,pn(t,i,r))))return n}return n}function xn(t,e,r,n){if(!rn(e,t.length))return NaN;for(let n=e[0];n<=e[1];++n)if(Ir(t[n],r,!0))return 0;let i=1/0;for(let a=e[0];a<e[1];++a)for(const e of r)for(let r=0,s=e.length,o=s-1;r<s;o=r++){if(zr(t[a],t[a+1],e[o],e[r]))return 0;i=Math.min(i,dn(t[a],t[a+1],e[o],e[r],n));}return i}function vn(t,e){for(const r of t)for(let t=0;t<=r.length-1;++t)if(Ir(r[t],e,!0))return !0;return !1}function bn(t,e,r,n=1/0){const i=sn(t),a=sn(e);if(n!==1/0&&on(i,a,r)>=n)return n;if(Ar(i,a)){if(vn(t,e))return 0}else if(vn(e,t))return 0;let s=n;for(const n of t)for(let t=0,i=n.length,a=i-1;t<i;a=t++)for(const i of e)for(let e=0,o=i.length,l=o-1;e<o;l=e++){if(zr(n[a],n[t],i[l],i[e]))return 0;s=Math.min(s,dn(n[a],n[t],i[l],i[e],r));}return s}function _n(t,e,r,n,i,a,s){if(null===a||null===s)return;const o=on(an(n,a),an(i,s),r);o<e&&t.push({dist:o,range1:a,range2:s});}function wn(t,e,r,n,i=1/0){let a=Math.min(n.distance(t[0],r[0][0]),i);if(0===a)return a;const s=new Hr([{dist:0,range1:[0,t.length-1],range2:[0,0]}],Kr),o=e?Qr:Jr,l=sn(r);for(;s.length;){const i=s.pop();if(i.dist>=a)continue;const u=i.range1;if(en(u)<=o){if(!rn(u,t.length))return NaN;if(e){const e=xn(t,u,r,n);if(0===(a=Math.min(a,e)))return a}else for(let e=u[0];e<=u[1];++e){const i=gn(t[e],r,n);if(0===(a=Math.min(a,i)))return a}}else {const r=nn(u,e);if(null!==r[0]){const e=on(an(t,r[0]),l,n);e<a&&s.push({dist:e,range1:r[0],range2:[0,0]});}if(null!==r[1]){const e=on(an(t,r[1]),l,n);e<a&&s.push({dist:e,range1:r[1],range2:[0,0]});}}}return a}function Mn(t,e,r,n,i,a=1/0){let s=Math.min(a,i.distance(t[0],r[0]));if(0===s)return s;const o=new Hr([{dist:0,range1:[0,t.length-1],range2:[0,r.length-1]}],Kr),l=e?Qr:Jr,u=n?Qr:Jr;for(;o.length;){const a=o.pop();if(a.dist>=s)continue;const c=a.range1,h=a.range2;if(en(c)<=l&&en(h)<=u){if(!rn(c,t.length)||!rn(h,r.length))return NaN;if(e&&n?s=Math.min(s,mn(t,c,r,h,i)):e||n?e&&!n?s=Math.min(s,fn(r,h,t,c,i)):!e&&n&&(s=Math.min(s,fn(t,c,r,h,i))):s=Math.min(s,yn(t,c,r,h,i)),0===s)return s}else {const a=nn(c,e),l=nn(h,n);_n(o,s,i,t,r,a[0],l[0]),_n(o,s,i,t,r,a[0],l[1]),_n(o,s,i,t,r,a[1],l[0]),_n(o,s,i,t,r,a[1],l[1]);}}return s}function An(t,e,r,n,i=1/0){let a=i;const s=an(t,[0,t.length-1]);for(const i of r)if(!(a!==1/0&&on(s,an(i,[0,i.length-1]),n)>=a)&&(a=Math.min(a,Mn(t,e,i,!0,n,a)),0===a))return a;return a}function Sn(t,e,r,n,i=1/0){let a=i;const s=an(t,[0,t.length-1]);for(const i of r){if(a!==1/0&&on(s,sn(i),n)>=a)continue;const r=wn(t,e,i,n,a);if(isNaN(r))return r;if(0===(a=Math.min(a,r)))return a}return a}function In(t){return \"Point\"===t||\"MultiPoint\"===t||\"LineString\"===t||\"MultiLineString\"===t||\"Polygon\"===t||\"MultiPolygon\"===t}class Pn{constructor(t,e){this.type=De,this.geojson=t,this.geometries=e;}static parse(t,e){if(2!==t.length)return e.error(`'distance' expression requires either one argument, but found ' ${t.length-1} instead.`);if(rr(t[1])){const e=t[1];if(\"FeatureCollection\"===e.type){for(let t=0;t<e.features.length;++t)if(In(e.features[t].geometry.type))return new Pn(e,e.features[t].geometry)}else if(\"Feature\"===e.type){if(In(e.geometry.type))return new Pn(e,e.geometry)}else if(In(e.type))return new Pn(e,e)}return e.error(\"'distance' expression needs to be an array with format ['Distance', GeoJSONObj].\")}evaluate(t){const e=t.geometry(),r=t.canonicalID();if(null!=e&&null!=r){if(\"Point\"===t.geometryType())return function(t,e,r){const n=[];for(const r of t)for(const t of r)n.push(cn(t,e));const i=new Gr(n[0][1],\"meters\");return \"Point\"===r.type||\"MultiPoint\"===r.type||\"LineString\"===r.type?Mn(n,!1,\"Point\"===r.type?[r.coordinates]:r.coordinates,\"LineString\"===r.type,i):\"MultiLineString\"===r.type?An(n,!1,r.coordinates,i):\"Polygon\"===r.type||\"MultiPolygon\"===r.type?Sn(n,!1,\"Polygon\"===r.type?[r.coordinates]:r.coordinates,i):null}(e,r,this.geometries);if(\"LineString\"===t.geometryType())return function(t,e,r){const n=[];for(const r of t){const t=[];for(const n of r)t.push(cn(n,e));n.push(t);}const i=new Gr(n[0][0][1],\"meters\");if(\"Point\"===r.type||\"MultiPoint\"===r.type||\"LineString\"===r.type)return An(\"Point\"===r.type?[r.coordinates]:r.coordinates,\"LineString\"===r.type,n,i);if(\"MultiLineString\"===r.type){let t=1/0;for(let e=0;e<r.coordinates.length;e++){const a=An(r.coordinates[e],!0,n,i,t);if(isNaN(a))return a;if(0===(t=Math.min(t,a)))return t}return t}if(\"Polygon\"===r.type||\"MultiPolygon\"===r.type){let t=1/0;for(let e=0;e<n.length;e++){const a=Sn(n[e],!0,\"Polygon\"===r.type?[r.coordinates]:r.coordinates,i,t);if(isNaN(a))return a;if(0===(t=Math.min(t,a)))return t}return t}return null}(e,r,this.geometries);if(\"Polygon\"===t.geometryType())return function(t,e,r){const n=[];for(const r of function(t,e){const r=t.length;if(r<=1)return [t];const n=[];let i,a;for(let e=0;e<r;e++){const r=wr(t[e]);0!==r&&(t[e].area=Math.abs(r),void 0===a&&(a=r<0),a===r<0?(i&&n.push(i),i=[t[e]]):i.push(t[e]));}return i&&n.push(i),n}(t)){const t=[];for(let n=0;n<r.length;++n)t.push(hn(r[n],e));n.push(t);}const i=new Gr(n[0][0][0][1],\"meters\");if(\"Point\"===r.type||\"MultiPoint\"===r.type||\"LineString\"===r.type)return Sn(\"Point\"===r.type?[r.coordinates]:r.coordinates,\"LineString\"===r.type,n,i);if(\"MultiLineString\"===r.type){let t=1/0;for(let e=0;e<r.coordinates.length;e++){const a=Sn(r.coordinates[e],!0,n,i,t);if(isNaN(a))return a;if(0===(t=Math.min(t,a)))return t}return t}return \"Polygon\"===r.type||\"MultiPolygon\"===r.type?function(t,e,r){let n=1/0;for(const i of t)for(const t of e){const e=bn(i,t,r,n);if(isNaN(e))return e;if(0===(n=Math.min(n,e)))return n}return n}(\"Polygon\"===r.type?[r.coordinates]:r.coordinates,n,i):null}(e,r,this.geometries);console.warn(\"Distance Expression: currently only evaluates valid Point/LineString/Polygon geometries.\");}else console.warn(\"Distance Expression: requirs valid feature and canonical information.\");return null}eachChild(){}outputDefined(){return !0}serialize(){return [\"distance\",this.geojson]}}function zn(t,e){switch(t){case\"string\":return ir(e);case\"number\":return +e;case\"boolean\":return !!e;case\"color\":return Ie.parse(e);case\"formatted\":return Je.fromString(ir(e));case\"resolvedImage\":return tr.build(ir(e))}return e}function En(t,e,r,n){return void 0!==n&&(t=n*Math.round(t/n)),void 0!==e&&t<e&&(t=e),void 0!==r&&t>r&&(t=r),t}class kn{constructor(t,e,r){this.type=t,this.key=e,this.scope=r;}static parse(t,e){let r=e.expectedType;if(null==r&&(r=Ne),t.length<2||t.length>3)return e.error(\"Invalid number of arguments for 'config' expression.\");const n=e.parse(t[1],1);if(!(n instanceof ar))return e.error(\"Key name of 'config' expression must be a string literal.\");if(t.length>=3){const i=e.parse(t[2],2);return i instanceof ar?new kn(r,ir(n.value),ir(i.value)):e.error(\"Scope of 'config' expression must be a string literal.\")}return new kn(r,ir(n.value))}evaluate(t){const e=[this.key,this.scope,t.scope].filter(Boolean).join(\"\u001f\"),r=t.getConfig(e);if(!r)return null;const{type:n,value:i,values:a,minValue:s,maxValue:o,stepValue:l}=r,u=r.default.evaluate(t);let c=u;if(i){const e=t.scope;t.scope=(e||\"\").split(\"\u001f\").slice(1).join(\"\u001f\"),c=i.evaluate(t),t.scope=e;}return n&&(c=zn(n,c)),void 0===c||void 0===s&&void 0===o&&void 0===l||(\"number\"==typeof c?c=En(c,s,o,l):Array.isArray(c)&&(c=c.map((t=>\"number\"==typeof t?En(t,s,o,l):t)))),void 0!==i&&void 0!==c&&a&&!a.includes(c)&&(c=u,n&&(c=zn(n,c))),(n&&n!==this.type||void 0!==c&&nr(c)!==this.type)&&(c=zn(this.type.kind,c)),c}eachChild(){}outputDefined(){return !1}serialize(){const t=[\"config\",this.key];return this.scope&&t.concat(this.key),t}}function Tn(t){if(t instanceof yr){if(\"get\"===t.name&&1===t.args.length)return !1;if(\"feature-state\"===t.name)return !1;if(\"has\"===t.name&&1===t.args.length)return !1;if(\"properties\"===t.name||\"geometry-type\"===t.name||\"id\"===t.name)return !1;if(/^filter-/.test(t.name))return !1}if(t instanceof Nr)return !1;if(t instanceof Pn)return !1;let e=!0;return t.eachChild((t=>{e&&!Tn(t)&&(e=!1);})),e}function Bn(t){if(t instanceof yr&&\"feature-state\"===t.name)return !1;let e=!0;return t.eachChild((t=>{e&&!Bn(t)&&(e=!1);})),e}function Vn(t){if(t instanceof kn)return new Set([t.key]);let e=new Set;return t.eachChild((t=>{e=new Set([...e,...Vn(t)]);})),e}function Cn(t,e){if(t instanceof yr&&e.indexOf(t.name)>=0)return !1;let r=!0;return t.eachChild((t=>{r&&!Cn(t,e)&&(r=!1);})),r}class Dn{constructor(t,e){this.type=e.type,this.name=t,this.boundExpression=e;}static parse(t,e){if(2!==t.length||\"string\"!=typeof t[1])return e.error(\"'var' expression requires exactly one string literal argument.\");const r=t[1];return e.scope.has(r)?new Dn(r,e.scope.get(r)):e.error(`Unknown variable \"${r}\". Make sure \"${r}\" has been bound in an enclosing \"let\" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return !1}serialize(){return [\"var\",this.name]}}class Ln{constructor(t,e=[],r,n=new Ve,i=[],a,s){this.registry=t,this.path=e,this.key=e.map((t=>\"string\"==typeof t?`['${t}']`:`[${t}]`)).join(\"\"),this.scope=n,this.errors=i,this.expectedType=r,this._scope=a,this.options=s;}parse(t,e,r,n,i={}){return e||r?this.concat(e,null,r,n)._parse(t,i):this._parse(t,i)}parseObjectValue(t,e,r,n,i,a={}){return this.concat(e,r,n,i)._parse(t,a)}_parse(t,e){function r(t,e,r){return \"assert\"===r?new lr(e,[t]):\"coerce\"===r?new fr(e,[t]):t}if(null!==t&&\"string\"!=typeof t&&\"boolean\"!=typeof t&&\"number\"!=typeof t||(t=[\"literal\",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');const n=\"string\"==typeof t[0]?this.registry[t[0]]:void 0;if(n){let i=n.parse(t,this);if(!i)return null;if(this.expectedType){const t=this.expectedType,n=i.type;if(\"string\"!==t.kind&&\"number\"!==t.kind&&\"boolean\"!==t.kind&&\"object\"!==t.kind&&\"array\"!==t.kind||\"value\"!==n.kind)if(\"color\"!==t.kind&&\"formatted\"!==t.kind&&\"resolvedImage\"!==t.kind||\"value\"!==n.kind&&\"string\"!==n.kind){if(this.checkSubtype(t,n))return null}else i=r(i,t,e.typeAnnotation||\"coerce\");else i=r(i,t,e.typeAnnotation||\"assert\");}if(!(i instanceof ar)&&\"resolvedImage\"!==i.type.kind&&Fn(i)){const t=new mr(this._scope,this.options);try{i=new ar(i.type,i.evaluate(t));}catch(t){return this.error(t.message),null}}return i}return fr.parse([\"to-array\",t],this)}return this.error(void 0===t?\"'undefined' value invalid. Use null instead.\":\"object\"==typeof t?'Bare objects invalid. Use [\"literal\", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,e,r,n){let i=\"number\"==typeof t?this.path.concat(t):this.path;i=\"string\"==typeof e?i.concat(e):i;const a=n?this.scope.concat(n):this.scope;return new Ln(this.registry,i,r||null,a,this.errors,this._scope,this.options)}error(t,...e){const r=`${this.key}${e.map((t=>`[${t}]`)).join(\"\")}`;this.errors.push(new Be(r,t));}checkSubtype(t,e){const r=Xe(t,e);return r&&this.error(r),r}}var Rn=Ln;function Fn(t){if(t instanceof Dn)return Fn(t.boundExpression);if(t instanceof yr&&\"error\"===t.name)return !1;if(t instanceof xr)return !1;if(t instanceof Nr)return !1;if(t instanceof Pn)return !1;if(t instanceof kn)return !1;const e=t instanceof fr||t instanceof lr;let r=!0;return t.eachChild((t=>{r=e?r&&Fn(t):r&&t instanceof ar;})),!!r&&Tn(t)&&Cn(t,[\"zoom\",\"heatmap-density\",\"line-progress\",\"raster-value\",\"sky-radial-progress\",\"accumulated\",\"is-supported-script\",\"pitch\",\"distance-from-center\",\"measure-light\",\"raster-particle-speed\"])}function On(t,e){const r=t.length-1;let n,i,a=0,s=r,o=0;for(;a<=s;)if(o=Math.floor((a+s)/2),n=t[o],i=t[o+1],n<=e){if(o===r||e<i)return o;a=o+1;}else {if(!(n>e))throw new sr(\"Input is not a number.\");s=o-1;}return 0}class Nn{constructor(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[t,e]of r)this.labels.push(t),this.outputs.push(e);}static parse(t,e){if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error(\"Expected an even number of arguments.\");const r=e.parse(t[1],1,De);if(!r)return null;const n=[];let i=null;e.expectedType&&\"value\"!==e.expectedType.kind&&(i=e.expectedType);for(let r=1;r<t.length;r+=2){const a=1===r?-1/0:t[r],s=t[r+1],o=r,l=r+1;if(\"number\"!=typeof a)return e.error('Input/output pairs for \"step\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',o);if(n.length&&n[n.length-1][0]>=a)return e.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.',o);const u=e.parse(s,l,i);if(!u)return null;i=i||u.type,n.push([a,u]);}return new Nn(i,r,n)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[On(e,n)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}serialize(){const t=[\"step\",this.input.serialize()];for(let e=0;e<this.labels.length;e++)e>0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t}}const Un=.95047,jn=1.08883,qn=4/29,$n=6/29,Gn=3*$n*$n,Yn=$n*$n*$n,Xn=Math.PI/180,Zn=180/Math.PI;function Hn(t){return t>Yn?Math.pow(t,1/3):t/Gn+qn}function Wn(t){return t>$n?t*t*t:Gn*(t-qn)}function Kn(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Jn(t){return (t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Qn(t){const e=Jn(t.r),r=Jn(t.g),n=Jn(t.b),i=Hn((.4124564*e+.3575761*r+.1804375*n)/Un),a=Hn((.2126729*e+.7151522*r+.072175*n)/1);return {l:116*a-16,a:500*(i-a),b:200*(a-Hn((.0193339*e+.119192*r+.9503041*n)/jn)),alpha:t.a}}function ti(t){let e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*Wn(e),r=Un*Wn(r),n=jn*Wn(n),new Ie(Kn(3.2404542*r-1.5371385*e-.4985314*n),Kn(-.969266*r+1.8760108*e+.041556*n),Kn(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function ei(t,e,r){const n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}const ri={forward:Qn,reverse:ti,interpolate:function(t,e,r){return {l:ze(t.l,e.l,r),a:ze(t.a,e.a,r),b:ze(t.b,e.b,r),alpha:ze(t.alpha,e.alpha,r)}}},ni={forward:function(t){const{l:e,a:r,b:n}=Qn(t),i=Math.atan2(n,r)*Zn;return {h:i<0?i+360:i,c:Math.sqrt(r*r+n*n),l:e,alpha:t.a}},reverse:function(t){const e=t.h*Xn,r=t.c;return ti({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return {h:ei(t.h,e.h,r),c:ze(t.c,e.c,r),l:ze(t.l,e.l,r),alpha:ze(t.alpha,e.alpha,r)}}};var ii=Object.freeze({__proto__:null,hcl:ni,lab:ri});class ai{constructor(t,e,r,n,i,a){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.dynamicStops=i,this.labels=[],this.outputs=[];for(const[t,e]of a)this.labels.push(t),this.outputs.push(e);}static interpolationFactor(t,e,r,n){let i=0;if(\"exponential\"===t.name)i=si(e,t.base,r,n);else if(\"linear\"===t.name)i=si(e,1,r,n);else if(\"cubic-bezier\"===t.name){const a=t.controlPoints;i=new U(a[0],a[1],a[2],a[3]).solve(si(e,1,r,n));}return i}static parse(t,e){let[r,n,i,...a]=t;if(!Array.isArray(n)||0===n.length)return e.error(\"Expected an interpolation type expression.\",1);if(\"linear\"===n[0])n={name:\"linear\"};else if(\"exponential\"===n[0]){const t=n[1];if(\"number\"!=typeof t)return e.error(\"Exponential interpolation requires a numeric base.\",1,1);n={name:\"exponential\",base:t};}else {if(\"cubic-bezier\"!==n[0])return e.error(`Unknown interpolation type ${String(n[0])}`,1,0);{const t=n.slice(1);if(4!==t.length||t.some((t=>\"number\"!=typeof t||t<0||t>1)))return e.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\",1);n={name:\"cubic-bezier\",controlPoints:t};}}if(t.length-1<3)return e.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length-1>3&&(t.length-1)%2!=0)return e.error(\"Expected an even number of arguments.\");if(i=e.parse(i,2,De),!i)return null;const s=[];let o=null;if(\"interpolate-hcl\"===r||\"interpolate-lab\"===r?o=Fe:e.expectedType&&\"value\"!==e.expectedType.kind&&(o=e.expectedType),t.length-1==3){const t=e.parse(a[0],3,Ne);return t?new ai(o,r,n,i,t,s):null}for(let t=0;t<a.length;t+=2){const r=a[t],n=a[t+1],i=t+3,l=t+4;if(\"number\"!=typeof r)return e.error('Input/output pairs for \"interpolate\" expressions must be defined using literal numeric values (not computed expressions) for the input values.',i);if(s.length&&s[s.length-1][0]>=r)return e.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.',i);const u=e.parse(n,l,o);if(!u)return null;o=o||u.type,s.push([r,u]);}return \"number\"===o.kind||\"color\"===o.kind||\"array\"===o.kind&&\"number\"===o.itemType.kind&&\"number\"==typeof o.N?new ai(o,r,n,i,null,s):e.error(`Type ${Ge(o)} is not interpolatable.`)}evaluate(t){let e=this.labels,r=this.outputs;if(this.dynamicStops){const n=this.dynamicStops.evaluate(t);if(n.length%2!=0)throw new sr(\"Expected an even number of arguments.\");e=[],r=[];for(let t=0;t<n.length;t+=2){const i=n[t],a=new ar(De,n[t+1]);if(\"number\"!=typeof i)throw new sr('Input/output pairs for \"interpolate\" expressions must be defined using literal numeric values (not computed expressions) for the input values.');if(e.length&&e[e.length-1]>=i)throw new sr('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.');e.push(i),r.push(a);}if(0===e.length)throw new sr(\"Expected at least one input/output pair.\")}if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);const a=On(e,n),s=ai.interpolationFactor(this.interpolation,n,e[a],e[a+1]),o=r[a].evaluate(t),l=r[a+1].evaluate(t);return \"interpolate\"===this.operator?ke[this.type.kind.toLowerCase()](o,l,s):\"interpolate-hcl\"===this.operator?ni.reverse(ni.interpolate(ni.forward(o),ni.forward(l),s)):ri.reverse(ri.interpolate(ri.forward(o),ri.forward(l),s))}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}serialize(){let t;t=\"linear\"===this.interpolation.name?[\"linear\"]:\"exponential\"===this.interpolation.name?1===this.interpolation.base?[\"linear\"]:[\"exponential\",this.interpolation.base]:[\"cubic-bezier\"].concat(this.interpolation.controlPoints);const e=[this.operator,t,this.input.serialize()];if(this.dynamicStops)e.push(this.dynamicStops.serialize());else for(let t=0;t<this.labels.length;t++)e.push(this.labels[t],this.outputs[t].serialize());return e}}function si(t,e,r,n){const i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}class oi{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error(\"Expectected at least one argument.\");let r=null;const n=e.expectedType;n&&\"value\"!==n.kind&&(r=n);const i=[];for(const n of t.slice(1)){const t=e.parse(n,1+i.length,r,void 0,{typeAnnotation:\"omit\"});if(!t)return null;r=r||t.type,i.push(t);}const a=n&&i.some((t=>Xe(n,t.type)));return new oi(a?Ne:r,i)}evaluate(t){let e,r=null,n=0;for(const i of this.args){if(n++,r=i.evaluate(t),r&&r instanceof tr&&!r.available&&(e||(e=r),r=null,n===this.args.length))return e;if(null!==r)break}return r}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}serialize(){const t=[\"coalesce\"];return this.eachChild((e=>{t.push(e.serialize());})),t}}class li{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e;}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result);}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const r=[];for(let n=1;n<t.length-1;n+=2){const i=t[n];if(\"string\"!=typeof i)return e.error(`Expected string, but found ${typeof i} instead.`,n);if(/[^a-zA-Z0-9_]/.test(i))return e.error(\"Variable names must contain only alphanumeric characters or '_'.\",n);const a=e.parse(t[n+1],n+1);if(!a)return null;r.push([i,a]);}const n=e.parse(t[t.length-1],t.length-1,e.expectedType,r);return n?new li(r,n):null}outputDefined(){return this.result.outputDefined()}serialize(){const t=[\"let\"];for(const[e,r]of this.bindings)t.push(e,r.serialize());return t.push(this.result.serialize()),t}}class ui{constructor(t,e,r){this.type=t,this.index=e,this.input=r;}static parse(t,e){if(3!==t.length)return e.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,De),n=e.parse(t[2],2,$e(e.expectedType||Ne));return r&&n?new ui(n.type.itemType,r,n):null}evaluate(t){const e=this.index.evaluate(t),r=this.input.evaluate(t);if(e<0)throw new sr(`Array index out of bounds: ${e} < 0.`);if(e>r.length-1)throw new sr(`Array index out of bounds: ${e} > ${r.length-1}.`);if(e===Math.floor(e))return r[e];const n=Math.floor(e),i=Math.ceil(e),a=r[n],s=r[i];if(\"number\"!=typeof a||\"number\"!=typeof s)throw new sr(`Cannot interpolate between non-number values at index ${e}.`);const o=e-n;return a*(1-o)+s*o}eachChild(t){t(this.index),t(this.input);}outputDefined(){return !1}serialize(){return [\"at\",this.index.serialize(),this.input.serialize()]}}class ci{constructor(t,e){this.type=Re,this.needle=t,this.haystack=e;}static parse(t,e){if(3!==t.length)return e.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,Ne),n=e.parse(t[2],2,Ne);return r&&n?Ze(r.type,[Re,Le,De,Ce,Ne])?new ci(r,n):e.error(`Expected first argument to be of type boolean, string, number or null, but found ${Ge(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(null==r)return !1;if(!He(e,[\"boolean\",\"string\",\"number\",\"null\"]))throw new sr(`Expected first argument to be of type boolean, string, number or null, but found ${Ge(nr(e))} instead.`);if(!He(r,[\"string\",\"array\"]))throw new sr(`Expected second argument to be of type array or string, but found ${Ge(nr(r))} instead.`);return r.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack);}outputDefined(){return !0}serialize(){return [\"in\",this.needle.serialize(),this.haystack.serialize()]}}class hi{constructor(t,e,r){this.type=De,this.needle=t,this.haystack=e,this.fromIndex=r;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,Ne),n=e.parse(t[2],2,Ne);if(!r||!n)return null;if(!Ze(r.type,[Re,Le,De,Ce,Ne]))return e.error(`Expected first argument to be of type boolean, string, number or null, but found ${Ge(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,De);return i?new hi(r,n,i):null}return new hi(r,n)}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!He(e,[\"boolean\",\"string\",\"number\",\"null\"]))throw new sr(`Expected first argument to be of type boolean, string, number or null, but found ${Ge(nr(e))} instead.`);if(!He(r,[\"string\",\"array\"]))throw new sr(`Expected second argument to be of type array or string, but found ${Ge(nr(r))} instead.`);if(this.fromIndex){const n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex);}outputDefined(){return !1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const t=this.fromIndex.serialize();return [\"index-of\",this.needle.serialize(),this.haystack.serialize(),t]}return [\"index-of\",this.needle.serialize(),this.haystack.serialize()]}}class pi{constructor(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a;}static parse(t,e){if(t.length<5)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return e.error(\"Expected an even number of arguments.\");let r,n;e.expectedType&&\"value\"!==e.expectedType.kind&&(n=e.expectedType);const i={},a=[];for(let s=2;s<t.length-1;s+=2){let o=t[s];const l=t[s+1];Array.isArray(o)||(o=[o]);const u=e.concat(s);if(0===o.length)return u.error(\"Expected at least one branch label.\");for(const t of o){if(\"number\"!=typeof t&&\"string\"!=typeof t)return u.error(\"Branch labels must be numbers or strings.\");if(\"number\"==typeof t&&Math.abs(t)>Number.MAX_SAFE_INTEGER)return u.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(\"number\"==typeof t&&Math.floor(t)!==t)return u.error(\"Numeric branch labels must be integer values.\");if(r){if(u.checkSubtype(r,nr(t)))return null}else r=nr(t);if(void 0!==i[String(t)])return u.error(\"Branch labels must be unique.\");i[String(t)]=a.length;}const c=e.parse(l,s,n);if(!c)return null;n=n||c.type,a.push(c);}const s=e.parse(t[1],1,Ne);if(!s)return null;const o=e.parse(t[t.length-1],t.length-1,n);return o?\"value\"!==s.type.kind&&e.concat(1).checkSubtype(r,s.type)?null:new pi(r,n,s,i,a,o):null}evaluate(t){const e=this.input.evaluate(t);return (nr(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))&&this.otherwise.outputDefined()}serialize(){const t=[\"match\",this.input.serialize()],e=Object.keys(this.cases).sort(),r=[],n={};for(const t of e){const e=n[this.cases[t]];void 0===e?(n[this.cases[t]]=r.length,r.push([this.cases[t],[t]])):r[e][1].push(t);}const i=t=>\"number\"===this.inputType.kind?Number(t):t;for(const[e,n]of r)t.push(1===n.length?i(n[0]):n.map(i)),t.push(this.outputs[e].serialize());return t.push(this.otherwise.serialize()),t}}class fi{constructor(t,e,r){this.type=t,this.branches=e,this.otherwise=r;}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return e.error(\"Expected an odd number of arguments.\");let r;e.expectedType&&\"value\"!==e.expectedType.kind&&(r=e.expectedType);const n=[];for(let i=1;i<t.length-1;i+=2){const a=e.parse(t[i],i,Re);if(!a)return null;const s=e.parse(t[i+1],i+1,r);if(!s)return null;n.push([a,s]),r=r||s.type;}const i=e.parse(t[t.length-1],t.length-1,r);return i?new fi(r,n,i):null}evaluate(t){for(const[e,r]of this.branches)if(e.evaluate(t))return r.evaluate(t);return this.otherwise.evaluate(t)}eachChild(t){for(const[e,r]of this.branches)t(e),t(r);t(this.otherwise);}outputDefined(){return this.branches.every((([t,e])=>e.outputDefined()))&&this.otherwise.outputDefined()}serialize(){const t=[\"case\"];return this.eachChild((e=>{t.push(e.serialize());})),t}}class di{constructor(t,e,r,n){this.type=t,this.input=e,this.beginIndex=r,this.endIndex=n;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,Ne),n=e.parse(t[2],2,De);if(!r||!n)return null;if(!Ze(r.type,[$e(Ne),Le,Ne]))return e.error(`Expected first argument to be of type array or string, but found ${Ge(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,De);return i?new di(r.type,r,n,i):null}return new di(r.type,r,n)}evaluate(t){const e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!He(e,[\"string\",\"array\"]))throw new sr(`Expected first argument to be of type array or string, but found ${Ge(nr(e))} instead.`);if(this.endIndex){const n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex);}outputDefined(){return !1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const t=this.endIndex.serialize();return [\"slice\",this.input.serialize(),this.beginIndex.serialize(),t]}return [\"slice\",this.input.serialize(),this.beginIndex.serialize()]}}function mi(t,e){return \"==\"===t||\"!=\"===t?\"boolean\"===e.kind||\"string\"===e.kind||\"number\"===e.kind||\"null\"===e.kind||\"value\"===e.kind:\"string\"===e.kind||\"number\"===e.kind||\"value\"===e.kind}function yi(t,e,r,n){return 0===n.compare(e,r)}function gi(t,e,r){const n=\"==\"!==t&&\"!=\"!==t;return class i{constructor(t,e,r){this.type=Re,this.lhs=t,this.rhs=e,this.collator=r,this.hasUntypedArgument=\"value\"===t.type.kind||\"value\"===e.type.kind;}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error(\"Expected two or three arguments.\");const r=t[0];let a=e.parse(t[1],1,Ne);if(!a)return null;if(!mi(r,a.type))return e.concat(1).error(`\"${r}\" comparisons are not supported for type '${Ge(a.type)}'.`);let s=e.parse(t[2],2,Ne);if(!s)return null;if(!mi(r,s.type))return e.concat(2).error(`\"${r}\" comparisons are not supported for type '${Ge(s.type)}'.`);if(a.type.kind!==s.type.kind&&\"value\"!==a.type.kind&&\"value\"!==s.type.kind)return e.error(`Cannot compare types '${Ge(a.type)}' and '${Ge(s.type)}'.`);n&&(\"value\"===a.type.kind&&\"value\"!==s.type.kind?a=new lr(s.type,[a]):\"value\"!==a.type.kind&&\"value\"===s.type.kind&&(s=new lr(a.type,[s])));let o=null;if(4===t.length){if(\"string\"!==a.type.kind&&\"string\"!==s.type.kind&&\"value\"!==a.type.kind&&\"value\"!==s.type.kind)return e.error(\"Cannot use collator to compare non-string types.\");if(o=e.parse(t[3],3,Ue),!o)return null}return new i(a,s,o)}evaluate(i){const a=this.lhs.evaluate(i),s=this.rhs.evaluate(i);if(n&&this.hasUntypedArgument){const e=nr(a),r=nr(s);if(e.kind!==r.kind||\"string\"!==e.kind&&\"number\"!==e.kind)throw new sr(`Expected arguments for \"${t}\" to be (string, string) or (number, number), but found (${e.kind}, ${r.kind}) instead.`)}if(this.collator&&!n&&this.hasUntypedArgument){const t=nr(a),r=nr(s);if(\"string\"!==t.kind||\"string\"!==r.kind)return e(i,a,s)}return this.collator?r(i,a,s,this.collator.evaluate(i)):e(i,a,s)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator);}outputDefined(){return !0}serialize(){const e=[t];return this.eachChild((t=>{e.push(t.serialize());})),e}}}const xi=gi(\"==\",(function(t,e,r){return e===r}),yi),vi=gi(\"!=\",(function(t,e,r){return e!==r}),(function(t,e,r,n){return !yi(0,e,r,n)})),bi=gi(\"<\",(function(t,e,r){return e<r}),(function(t,e,r,n){return n.compare(e,r)<0})),_i=gi(\">\",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),wi=gi(\"<=\",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),Mi=gi(\">=\",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0}));class Ai{constructor(t,e,r,n,i,a){this.type=Le,this.number=t,this.locale=e,this.currency=r,this.unit=n,this.minFractionDigits=i,this.maxFractionDigits=a;}static parse(t,e){if(3!==t.length)return e.error(\"Expected two arguments.\");const r=e.parse(t[1],1,De);if(!r)return null;const n=t[2];if(\"object\"!=typeof n||Array.isArray(n))return e.error(\"NumberFormat options argument must be an object.\");let i=null;if(n.locale&&(i=e.parseObjectValue(n.locale,2,\"locale\",Le),!i))return null;let a=null;if(n.currency&&(a=e.parseObjectValue(n.currency,2,\"currency\",Le),!a))return null;let s=null;if(n.unit&&(s=e.parseObjectValue(n.unit,2,\"unit\",Le),!s))return null;let o=null;if(n[\"min-fraction-digits\"]&&(o=e.parseObjectValue(n[\"min-fraction-digits\"],2,\"min-fraction-digits\",De),!o))return null;let l=null;return n[\"max-fraction-digits\"]&&(l=e.parseObjectValue(n[\"max-fraction-digits\"],2,\"max-fraction-digits\",De),!l)?null:new Ai(r,i,a,s,o,l)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:(this.currency?\"currency\":this.unit&&\"unit\")||\"decimal\",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits);}outputDefined(){return !1}serialize(){const t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.unit&&(t.unit=this.unit.serialize()),this.minFractionDigits&&(t[\"min-fraction-digits\"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t[\"max-fraction-digits\"]=this.maxFractionDigits.serialize()),[\"number-format\",this.number.serialize(),t]}}class Si{constructor(t){this.type=De,this.input=t;}static parse(t,e){if(2!==t.length)return e.error(`Expected 1 argument, but found ${t.length-1} instead.`);const r=e.parse(t[1],1);return r?\"array\"!==r.type.kind&&\"string\"!==r.type.kind&&\"value\"!==r.type.kind?e.error(`Expected argument of type string or array, but found ${Ge(r.type)} instead.`):new Si(r):null}evaluate(t){const e=this.input.evaluate(t);if(\"string\"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new sr(`Expected value to be of type string or array, but found ${Ge(nr(e))} instead.`)}eachChild(t){t(this.input);}outputDefined(){return !1}serialize(){const t=[\"length\"];return this.eachChild((e=>{t.push(e.serialize());})),t}}function Ii(t){return function(){t=1831565813+(t|=0)|0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}const Pi={\"==\":xi,\"!=\":vi,\">\":_i,\"<\":bi,\">=\":Mi,\"<=\":wi,array:lr,at:ui,boolean:lr,case:fi,coalesce:oi,collator:xr,format:ur,image:cr,in:ci,\"index-of\":hi,interpolate:ai,\"interpolate-hcl\":ai,\"interpolate-lab\":ai,length:Si,let:li,literal:ar,match:pi,number:lr,\"number-format\":Ai,object:lr,slice:di,step:Nn,string:lr,\"to-boolean\":fr,\"to-color\":fr,\"to-number\":fr,\"to-string\":fr,var:Dn,within:Nr,distance:Pn,config:kn};function zi(t,[e,r,n,i]){e=e.evaluate(t),r=r.evaluate(t),n=n.evaluate(t);const a=i?i.evaluate(t):1,s=er(e,r,n,a);if(s)throw new sr(s);return new Ie(e/255*a,r/255*a,n/255*a,a)}function Ei(t,[e,r,n,i]){e=e.evaluate(t),r=r.evaluate(t),n=n.evaluate(t);const a=i?i.evaluate(t):1,s=function(t,e,r,n){return \"number\"==typeof t&&t>=0&&t<=360?\"number\"==typeof e&&e>=0&&e<=100&&\"number\"==typeof r&&r>=0&&r<=100?void 0===n||\"number\"==typeof n&&n>=0&&n<=1?null:`Invalid hsla value [${[t,e,r,n].join(\", \")}]: 'a' must be between 0 and 1.`:`Invalid hsla value [${(\"number\"==typeof n?[t,e,r,n]:[t,e,r]).join(\", \")}]: 's', and 'l' must be between 0 and 100.`:`Invalid hsla value [${(\"number\"==typeof n?[t,e,r,n]:[t,e,r]).join(\", \")}]: 'h' must be between 0 and 360.`}(e,r,n,a);if(s)throw new sr(s);const o=`hsla(${e}, ${r}%, ${n}%, ${a})`,l=Ie.parse(o);if(!l)throw new sr(`Failed to parse HSLA color: ${o}`);return l}function ki(t,e){return t in e}function Ti(t,e){const r=e[t];return void 0===r?null:r}function Bi(t){return {type:t}}function Vi(t){return {result:\"success\",value:t}}function Ci(t){return {result:\"error\",value:t}}function Di(t,e){return !!t&&!!t.parameters&&t.parameters.indexOf(e)>-1}function Li(t){return \"data-driven\"===t[\"property-type\"]}function Ri(t){return Di(t.expression,\"measure-light\")}function Fi(t){return Di(t.expression,\"zoom\")}function Oi(t){return !!t.expression&&t.expression.interpolated}function Ni(t){return \"object\"==typeof t&&null!==t&&!Array.isArray(t)}function Ui(t){return t}function ji(t,e){const r=\"color\"===e.type,n=t.stops&&\"object\"==typeof t.stops[0][0],i=n||!(n||void 0!==t.property),a=t.type||(Oi(e)?\"exponential\":\"interval\");if(r&&((t=Te({},t)).stops&&(t.stops=t.stops.map((t=>[t[0],Ie.parse(t[1])]))),t.default=Ie.parse(t.default?t.default:e.default)),t.colorSpace&&\"rgb\"!==t.colorSpace&&!ii[t.colorSpace])throw new Error(`Unknown color space: ${t.colorSpace}`);let s,o,l;if(\"exponential\"===a)s=Yi;else if(\"interval\"===a)s=Gi;else if(\"categorical\"===a){s=$i,o=Object.create(null);for(const e of t.stops)o[e[0]]=e[1];l=typeof t.stops[0][0];}else {if(\"identity\"!==a)throw new Error(`Unknown function type \"${a}\"`);s=Xi;}if(n){const r={},n=[];for(let e=0;e<t.stops.length;e++){const i=t.stops[e],a=i[0].zoom;void 0===r[a]&&(r[a]={zoom:a,type:t.type,property:t.property,default:t.default,stops:[]},n.push(a)),r[a].stops.push([i[0].value,i[1]]);}const i=[];for(const t of n)i.push([r[t].zoom,ji(r[t],e)]);const a={name:\"linear\"};return {kind:\"composite\",interpolationType:a,interpolationFactor:ai.interpolationFactor.bind(void 0,a),zoomStops:i.map((t=>t[0])),evaluate:({zoom:r},n)=>Yi({stops:i,base:t.base},e,r).evaluate(r,n)}}if(i){const r=\"exponential\"===a?{name:\"exponential\",base:void 0!==t.base?t.base:1}:null;return {kind:\"camera\",interpolationType:r,interpolationFactor:ai.interpolationFactor.bind(void 0,r),zoomStops:t.stops.map((t=>t[0])),evaluate:({zoom:r})=>s(t,e,r,o,l)}}return {kind:\"source\",evaluate(r,n){const i=n&&n.properties?n.properties[t.property]:void 0;return void 0===i?qi(t.default,e.default):s(t,e,i,o,l)}}}function qi(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function $i(t,e,r,n,i){return qi(typeof r===i?n[r]:void 0,t.default,e.default)}function Gi(t,e,r){if(\"number\"!==hr(r))return qi(t.default,e.default);const n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];const i=On(t.stops.map((t=>t[0])),r);return t.stops[i][1]}function Yi(t,e,r){const n=void 0!==t.base?t.base:1;if(\"number\"!==hr(r))return qi(t.default,e.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];const a=On(t.stops.map((t=>t[0])),r),s=function(t,e,r,n){const i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),o=t.stops[a][1],l=t.stops[a+1][1];let u=ke[e.type]||Ui;if(t.colorSpace&&\"rgb\"!==t.colorSpace){const e=ii[t.colorSpace];u=(t,r)=>e.reverse(e.interpolate(e.forward(t),e.forward(r),s));}return \"function\"==typeof o.evaluate?{evaluate(...t){const e=o.evaluate.apply(void 0,t),r=l.evaluate.apply(void 0,t);if(void 0!==e&&void 0!==r)return u(e,r,s)}}:u(o,l,s)}function Xi(t,e,r){return \"color\"===e.type?r=Ie.parse(r):\"formatted\"===e.type?r=Je.fromString(r.toString()):\"resolvedImage\"===e.type?r=tr.build(r.toString()):hr(r)===e.type||\"enum\"===e.type&&e.values[r]||(r=void 0),qi(r,t.default,e.default)}yr.register(Pi,{error:[{kind:\"error\"},[Le],(t,[e])=>{throw new sr(e.evaluate(t))}],typeof:[Le,[Ne],(t,[e])=>Ge(nr(e.evaluate(t)))],\"to-rgba\":[$e(De,4),[Fe],(t,[e])=>e.evaluate(t).toRenderColor(null).toArray()],\"to-hsla\":[$e(De,4),[Fe],(t,[e])=>e.evaluate(t).toRenderColor(null).toHslaArray()],rgb:[Fe,[De,De,De],zi],rgba:[Fe,[De,De,De,De],zi],hsl:[Fe,[De,De,De],Ei],hsla:[Fe,[De,De,De,De],Ei],has:{type:Re,overloads:[[[Le],(t,[e])=>ki(e.evaluate(t),t.properties())],[[Le,Oe],(t,[e,r])=>ki(e.evaluate(t),r.evaluate(t))]]},get:{type:Ne,overloads:[[[Le],(t,[e])=>Ti(e.evaluate(t),t.properties())],[[Le,Oe],(t,[e,r])=>Ti(e.evaluate(t),r.evaluate(t))]]},\"feature-state\":[Ne,[Le],(t,[e])=>Ti(e.evaluate(t),t.featureState||{})],properties:[Oe,[],t=>t.properties()],\"geometry-type\":[Le,[],t=>t.geometryType()],id:[Ne,[],t=>t.id()],zoom:[De,[],t=>t.globals.zoom],pitch:[De,[],t=>t.globals.pitch||0],\"distance-from-center\":[De,[],t=>t.distanceFromCenter()],\"measure-light\":[De,[Le],(t,[e])=>t.measureLight(e.evaluate(t))],\"heatmap-density\":[De,[],t=>t.globals.heatmapDensity||0],\"line-progress\":[De,[],t=>t.globals.lineProgress||0],\"raster-value\":[De,[],t=>t.globals.rasterValue||0],\"raster-particle-speed\":[De,[],t=>t.globals.rasterParticleSpeed||0],\"sky-radial-progress\":[De,[],t=>t.globals.skyRadialProgress||0],accumulated:[Ne,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],\"+\":[De,Bi(De),(t,e)=>{let r=0;for(const n of e)r+=n.evaluate(t);return r}],\"*\":[De,Bi(De),(t,e)=>{let r=1;for(const n of e)r*=n.evaluate(t);return r}],\"-\":{type:De,overloads:[[[De,De],(t,[e,r])=>e.evaluate(t)-r.evaluate(t)],[[De],(t,[e])=>-e.evaluate(t)]]},\"/\":[De,[De,De],(t,[e,r])=>e.evaluate(t)/r.evaluate(t)],\"%\":[De,[De,De],(t,[e,r])=>e.evaluate(t)%r.evaluate(t)],ln2:[De,[],()=>Math.LN2],pi:[De,[],()=>Math.PI],e:[De,[],()=>Math.E],\"^\":[De,[De,De],(t,[e,r])=>Math.pow(e.evaluate(t),r.evaluate(t))],sqrt:[De,[De],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[De,[De],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[De,[De],(t,[e])=>Math.log(e.evaluate(t))],log2:[De,[De],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[De,[De],(t,[e])=>Math.sin(e.evaluate(t))],cos:[De,[De],(t,[e])=>Math.cos(e.evaluate(t))],tan:[De,[De],(t,[e])=>Math.tan(e.evaluate(t))],asin:[De,[De],(t,[e])=>Math.asin(e.evaluate(t))],acos:[De,[De],(t,[e])=>Math.acos(e.evaluate(t))],atan:[De,[De],(t,[e])=>Math.atan(e.evaluate(t))],min:[De,Bi(De),(t,e)=>Math.min(...e.map((e=>e.evaluate(t))))],max:[De,Bi(De),(t,e)=>Math.max(...e.map((e=>e.evaluate(t))))],abs:[De,[De],(t,[e])=>Math.abs(e.evaluate(t))],round:[De,[De],(t,[e])=>{const r=e.evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[De,[De],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[De,[De],(t,[e])=>Math.ceil(e.evaluate(t))],\"filter-==\":[Re,[Le,Ne],(t,[e,r])=>t.properties()[e.value]===r.value],\"filter-id-==\":[Re,[Ne],(t,[e])=>t.id()===e.value],\"filter-type-==\":[Re,[Le],(t,[e])=>t.geometryType()===e.value],\"filter-<\":[Re,[Le,Ne],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n<i}],\"filter-id-<\":[Re,[Ne],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r<n}],\"filter->\":[Re,[Le,Ne],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>i}],\"filter-id->\":[Re,[Ne],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>n}],\"filter-<=\":[Re,[Le,Ne],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n<=i}],\"filter-id-<=\":[Re,[Ne],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r<=n}],\"filter->=\":[Re,[Le,Ne],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>=i}],\"filter-id->=\":[Re,[Ne],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>=n}],\"filter-has\":[Re,[Ne],(t,[e])=>e.value in t.properties()],\"filter-has-id\":[Re,[],t=>null!==t.id()&&void 0!==t.id()],\"filter-type-in\":[Re,[$e(Le)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],\"filter-id-in\":[Re,[$e(Ne)],(t,[e])=>e.value.indexOf(t.id())>=0],\"filter-in-small\":[Re,[Le,$e(Ne)],(t,[e,r])=>r.value.indexOf(t.properties()[e.value])>=0],\"filter-in-large\":[Re,[Le,$e(Ne)],(t,[e,r])=>function(t,e,r,n){for(;r<=n;){const i=r+n>>1;if(e[i]===t)return !0;e[i]>t?n=i-1:r=i+1;}return !1}(t.properties()[e.value],r.value,0,r.value.length-1)],all:{type:Re,overloads:[[[Re,Re],(t,[e,r])=>e.evaluate(t)&&r.evaluate(t)],[Bi(Re),(t,e)=>{for(const r of e)if(!r.evaluate(t))return !1;return !0}]]},any:{type:Re,overloads:[[[Re,Re],(t,[e,r])=>e.evaluate(t)||r.evaluate(t)],[Bi(Re),(t,e)=>{for(const r of e)if(r.evaluate(t))return !0;return !1}]]},\"!\":[Re,[Re],(t,[e])=>!e.evaluate(t)],\"is-supported-script\":[Re,[Le],(t,[e])=>{const r=t.globals&&t.globals.isSupportedScript;return !r||r(e.evaluate(t))}],upcase:[Le,[Le],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[Le,[Le],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[Le,Bi(Ne),(t,e)=>e.map((e=>ir(e.evaluate(t)))).join(\"\")],\"resolved-locale\":[Le,[Ue],(t,[e])=>e.evaluate(t).resolvedLocale()],random:[De,[De,De,Ne],(t,e)=>{const[r,n,i]=e.map((e=>e.evaluate(t)));if(r>n)return r;if(r===n)return r;let a;if(\"string\"==typeof i)a=function(t){let e=0;if(0===t.length)return e;for(let r=0;r<t.length;r++)e=(e<<5)-e+t.charCodeAt(r),e|=0;return e}(i);else {if(\"number\"!=typeof i)throw new sr(`Invalid seed input: ${i}`);a=i;}return r+Ii(a)()*(n-r)}]});class Zi{constructor(t,e,r,n){this.expression=t,this._warningHistory={},this._evaluator=new mr(r,n),this._defaultValue=e?function(t){return \"color\"===t.type&&(Ni(t.default)||Array.isArray(t.default))?new Ie(0,0,0,0):\"color\"===t.type?Ie.parse(t.default)||null:void 0===t.default?null:t.default}(e):null,this._enumValues=e&&\"enum\"===e.type?e.values:null,this.configDependencies=Vn(t);}evaluateWithoutErrorHandling(t,e,r,n,i,a,s,o){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n||null,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this._evaluator.featureTileCoord=s||null,this._evaluator.featureDistanceData=o||null,this.expression.evaluate(this._evaluator)}evaluate(t,e,r,n,i,a,s,o){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n||null,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null,this._evaluator.featureTileCoord=s||null,this._evaluator.featureDistanceData=o||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||\"number\"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new sr(`Expected value to be one of ${Object.keys(this._enumValues).map((t=>JSON.stringify(t))).join(\", \")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,\"undefined\"!=typeof console&&console.warn(`Failed to evaluate expression \"${JSON.stringify(this.expression.serialize())}\". ${t.message}`)),this._defaultValue}}}function Hi(t){return Array.isArray(t)&&t.length>0&&\"string\"==typeof t[0]&&t[0]in Pi}function Wi(t,e,r,n){const i=new Rn(Pi,[],e?function(t){const e={color:Fe,string:Le,number:De,enum:Le,boolean:Re,formatted:je,resolvedImage:qe};return \"array\"===t.type?$e(e[t.value]||Ne,t.length):e[t.type]}(e):void 0,void 0,void 0,r,n),a=i.parse(t,void 0,void 0,void 0,e&&\"string\"===e.type?{typeAnnotation:\"coerce\"}:void 0);return a?Vi(new Zi(a,e,r,n)):Ci(i.errors)}class Ki{constructor(t,e,r,n){this.kind=t,this._styleExpression=e,this.isLightConstant=r,this.isLineProgressConstant=n,this.isStateDependent=\"constant\"!==t&&!Bn(e.expression),this.configDependencies=Vn(e.expression);}evaluateWithoutErrorHandling(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)}evaluate(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)}}class Ji{constructor(t,e,r,n,i,a){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent=\"camera\"!==t&&!Bn(e.expression),this.isLightConstant=i,this.isLineProgressConstant=a,this.configDependencies=Vn(e.expression),this.interpolationType=n;}evaluateWithoutErrorHandling(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)}evaluate(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)}interpolationFactor(t,e,r){return this.interpolationType?ai.interpolationFactor(this.interpolationType,t,e,r):0}}function Qi(t,e,r,n){if(\"error\"===(t=Wi(t,e,r,n)).result)return t;const i=t.value.expression,a=Tn(i);if(!a&&!Li(e))return Ci([new Be(\"\",\"data expressions not supported\")]);const s=Cn(i,[\"zoom\",\"pitch\",\"distance-from-center\"]);if(!s&&!Fi(e))return Ci([new Be(\"\",\"zoom expressions not supported\")]);const o=Cn(i,[\"measure-light\"]);if(!o&&!Ri(e))return Ci([new Be(\"\",\"measure-light expression not supported\")]);const l=Cn(i,[\"line-progress\"]);if(!l&&!function(t){return Di(t.expression,\"line-progress\")}(e))return Ci([new Be(\"\",\"line-progress expression not supported\")]);const u=e.expression&&e.expression.relaxZoomRestriction,c=ea(i);return c||s||u?c instanceof Be?Ci([c]):c instanceof ai&&!Oi(e)?Ci([new Be(\"\",'\"interpolate\" expressions cannot be used with this property')]):Vi(c?new Ji(a&&l?\"camera\":\"composite\",t.value,c.labels,c instanceof ai?c.interpolation:void 0,o,l):new Ki(a&&l?\"constant\":\"source\",t.value,o,l)):Ci([new Be(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression, or in the properties of atmosphere.')])}class ta{constructor(t,e){this._parameters=t,this._specification=e,Te(this,ji(this._parameters,this._specification));}static deserialize(t){return new ta(t._parameters,t._specification)}static serialize(t){return {_parameters:t._parameters,_specification:t._specification}}}function ea(t){let e=null;if(t instanceof li)e=ea(t.result);else if(t instanceof oi){for(const r of t.args)if(e=ea(r),e)break}else (t instanceof Nn||t instanceof ai)&&t.input instanceof yr&&\"zoom\"===t.input.name&&(e=t);return e instanceof Be||t.eachChild((t=>{const r=ea(t);r instanceof Be?e=r:e&&r&&e!==r&&(e=new Be(\"\",'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'));})),e}var ra,na,ia=function(){if(na)return ra;na=1,ra=e;var t=3;function e(e,r,n){var i=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;var a=new Int32Array(this.arrayBuffer);e=a[0],this.d=(r=a[1])+2*(n=a[2]);for(var s=0;s<this.d*this.d;s++){var o=a[t+s],l=a[t+s+1];i.push(o===l?null:a.subarray(o,l));}var u=a[t+i.length+1];this.keys=a.subarray(a[t+i.length],u),this.bboxes=a.subarray(u),this.insert=this._insertReadonly;}else {this.d=r+2*n;for(var c=0;c<this.d*this.d;c++)i.push([]);this.keys=[],this.bboxes=[];}this.n=r,this.extent=e,this.padding=n,this.scale=r/e,this.uid=0;var h=n/r*e;this.min=-h,this.max=e+h;}return e.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertCell,this.uid++),this.keys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i);},e.prototype._insertReadonly=function(){throw \"Cannot insert into a GridIndex created from an ArrayBuffer.\"},e.prototype._insertCell=function(t,e,r,n,i,a){this.cells[i].push(a);},e.prototype.query=function(t,e,r,n,i){var a=this.min,s=this.max;if(t<=a&&e<=a&&s<=r&&s<=n&&!i)return Array.prototype.slice.call(this.keys);var o=[];return this._forEachCell(t,e,r,n,this._queryCell,o,{},i),o},e.prototype._queryCell=function(t,e,r,n,i,a,s,o){var l=this.cells[i];if(null!==l)for(var u=this.keys,c=this.bboxes,h=0;h<l.length;h++){var p=l[h];if(void 0===s[p]){var f=4*p;(o?o(c[f+0],c[f+1],c[f+2],c[f+3]):t<=c[f+2]&&e<=c[f+3]&&r>=c[f+0]&&n>=c[f+1])?(s[p]=!0,a.push(u[p])):s[p]=!1;}}},e.prototype._forEachCell=function(t,e,r,n,i,a,s,o){for(var l=this._convertToCellCoord(t),u=this._convertToCellCoord(e),c=this._convertToCellCoord(r),h=this._convertToCellCoord(n),p=l;p<=c;p++)for(var f=u;f<=h;f++){var d=this.d*f+p;if((!o||o(this._convertFromCellCoord(p),this._convertFromCellCoord(f),this._convertFromCellCoord(p+1),this._convertFromCellCoord(f+1)))&&i.call(this,t,e,r,n,d,a,s,o))return}},e.prototype._convertFromCellCoord=function(t){return (t-this.padding)/this.scale},e.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},e.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var e=this.cells,r=t+this.cells.length+1+1,n=0,i=0;i<this.cells.length;i++)n+=this.cells[i].length;var a=new Int32Array(r+n+this.keys.length+this.bboxes.length);a[0]=this.extent,a[1]=this.n,a[2]=this.padding;for(var s=r,o=0;o<e.length;o++){var l=e[o];a[t+o]=s,a.set(l,s),s+=l.length;}return a[t+e.length]=s,a.set(this.keys,s),a[t+e.length+1]=s+=this.keys.length,a.set(this.bboxes,s),s+=this.bboxes.length,a.buffer},ra}(),aa=e(ia);const sa={};function oa(t,e,r={}){Object.defineProperty(t,\"_classRegistryKey\",{value:e,writable:!1}),sa[e]={klass:t,omit:r.omit||[]};}oa(Object,\"Object\"),aa.serialize=function(t,e){const r=t.toArrayBuffer();return e&&e.add(r),{buffer:r}},aa.deserialize=function(t){return new aa(t.buffer)},Object.defineProperty(aa,\"name\",{value:\"Grid\"}),oa(aa,\"Grid\"),\"undefined\"!=typeof DOMMatrix&&oa(DOMMatrix,\"DOMMatrix\"),oa(Ie,\"Color\"),oa(Error,\"Error\"),oa(Je,\"Formatted\"),oa(Ke,\"FormattedSection\"),oa(ee,\"AJAXError\"),oa(tr,\"ResolvedImage\"),oa(ta,\"StylePropertyFunction\"),oa(Zi,\"StyleExpression\",{omit:[\"_evaluator\"]}),oa(Qe,\"ImageIdWithOptions\"),oa(Ji,\"ZoomDependentExpression\"),oa(Ki,\"ZoomConstantExpression\"),oa(yr,\"CompoundExpression\",{omit:[\"_evaluate\"]});for(const t in Pi)sa[Pi[t]._classRegistryKey]||oa(Pi[t],`Expression${t}`);function la(t){return t&&\"undefined\"!=typeof ArrayBuffer&&(t instanceof ArrayBuffer||t.constructor&&\"ArrayBuffer\"===t.constructor.name)}function ua(t){return self.ImageBitmap&&t instanceof ImageBitmap}function ca(t,e){if(null==t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp)return t;if(la(t)||ua(t))return e&&e.add(t),t;if(ArrayBuffer.isView(t))return e&&e.add(t.buffer),t;if(t instanceof ImageData)return e&&e.add(t.data.buffer),t;if(Array.isArray(t)){const r=[];for(const n of t)r.push(ca(n,e));return r}if(t instanceof Map){const e={$name:\"Map\"};for(const[r,n]of t.entries())e[r]=ca(n);return e}if(t instanceof Set){const e={$name:\"Set\"};let r=0;for(const n of t.values())e[++r]=ca(n);return e}if(\"object\"==typeof t){const r=t.constructor,n=r._classRegistryKey;if(!n)throw new Error(`Can't serialize object of unregistered class \"${n}\".`);const i=r.serialize?r.serialize(t,e):{};if(!r.serialize){for(const r in t)t.hasOwnProperty(r)&&(sa[n].omit.indexOf(r)>=0||(i[r]=ca(t[r],e)));t instanceof Error&&(i.message=t.message);}if(i.$name)throw new Error(\"$name property is reserved for worker serialization logic.\");return \"Object\"!==n&&(i.$name=n),i}throw new Error(\"can't serialize object of type \"+typeof t)}function ha(t){if(null==t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||la(t)||ua(t)||ArrayBuffer.isView(t)||t instanceof ImageData)return t;if(Array.isArray(t))return t.map(ha);if(\"object\"==typeof t){const e=t.$name||\"Object\";if(\"Map\"===e){const e=new Map;for(const r of Object.keys(t))\"$name\"!==r&&e.set(r,ha(t[r]));return e}if(\"Set\"===e){const e=new Set;for(const r of Object.keys(t))\"$name\"!==r&&e.add(ha(t[r]));return e}const{klass:r}=sa[e];if(!r)throw new Error(`Can't deserialize unregistered class \"${e}\".`);if(r.deserialize)return r.deserialize(t);const n=Object.create(r.prototype);for(const e of Object.keys(t))\"$name\"!==e&&(n[e]=ha(t[e]));return n}throw new Error(\"can't deserialize object of type \"+typeof t)}const pa={\"Latin-1 Supplement\":t=>t>=128&&t<=255,Arabic:t=>t>=1536&&t<=1791,\"Arabic Supplement\":t=>t>=1872&&t<=1919,\"Arabic Extended-A\":t=>t>=2208&&t<=2303,\"Hangul Jamo\":t=>t>=4352&&t<=4607,\"Unified Canadian Aboriginal Syllabics\":t=>t>=5120&&t<=5759,Khmer:t=>t>=6016&&t<=6143,\"Unified Canadian Aboriginal Syllabics Extended\":t=>t>=6320&&t<=6399,\"General Punctuation\":t=>t>=8192&&t<=8303,\"Letterlike Symbols\":t=>t>=8448&&t<=8527,\"Number Forms\":t=>t>=8528&&t<=8591,\"Miscellaneous Technical\":t=>t>=8960&&t<=9215,\"Control Pictures\":t=>t>=9216&&t<=9279,\"Optical Character Recognition\":t=>t>=9280&&t<=9311,\"Enclosed Alphanumerics\":t=>t>=9312&&t<=9471,\"Geometric Shapes\":t=>t>=9632&&t<=9727,\"Miscellaneous Symbols\":t=>t>=9728&&t<=9983,\"Miscellaneous Symbols and Arrows\":t=>t>=11008&&t<=11263,\"CJK Radicals Supplement\":t=>t>=11904&&t<=12031,\"Kangxi Radicals\":t=>t>=12032&&t<=12255,\"Ideographic Description Characters\":t=>t>=12272&&t<=12287,\"CJK Symbols and Punctuation\":t=>t>=12288&&t<=12351,Hiragana:t=>t>=12352&&t<=12447,Katakana:t=>t>=12448&&t<=12543,Bopomofo:t=>t>=12544&&t<=12591,\"Hangul Compatibility Jamo\":t=>t>=12592&&t<=12687,Kanbun:t=>t>=12688&&t<=12703,\"Bopomofo Extended\":t=>t>=12704&&t<=12735,\"CJK Strokes\":t=>t>=12736&&t<=12783,\"Katakana Phonetic Extensions\":t=>t>=12784&&t<=12799,\"Enclosed CJK Letters and Months\":t=>t>=12800&&t<=13055,\"CJK Compatibility\":t=>t>=13056&&t<=13311,\"CJK Unified Ideographs Extension A\":t=>t>=13312&&t<=19903,\"Yijing Hexagram Symbols\":t=>t>=19904&&t<=19967,\"CJK Unified Ideographs\":t=>t>=19968&&t<=40959,\"Yi Syllables\":t=>t>=40960&&t<=42127,\"Yi Radicals\":t=>t>=42128&&t<=42191,\"Hangul Jamo Extended-A\":t=>t>=43360&&t<=43391,\"Hangul Syllables\":t=>t>=44032&&t<=55215,\"Hangul Jamo Extended-B\":t=>t>=55216&&t<=55295,\"Private Use Area\":t=>t>=57344&&t<=63743,\"CJK Compatibility Ideographs\":t=>t>=63744&&t<=64255,\"Arabic Presentation Forms-A\":t=>t>=64336&&t<=65023,\"Vertical Forms\":t=>t>=65040&&t<=65055,\"CJK Compatibility Forms\":t=>t>=65072&&t<=65103,\"Small Form Variants\":t=>t>=65104&&t<=65135,\"Arabic Presentation Forms-B\":t=>t>=65136&&t<=65279,\"Halfwidth and Fullwidth Forms\":t=>t>=65280&&t<=65519,Osage:t=>t>=66736&&t<=66815,\"CJK Unified Ideographs Extension B\":t=>t>=131072&&t<=173791};function fa(t){for(const e of t)if(ya(e.charCodeAt(0)))return !0;return !1}function da(t){for(const e of t)if(!ma(e.charCodeAt(0)))return !1;return !0}function ma(t){return !(pa.Arabic(t)||pa[\"Arabic Supplement\"](t)||pa[\"Arabic Extended-A\"](t)||pa[\"Arabic Presentation Forms-A\"](t)||pa[\"Arabic Presentation Forms-B\"](t))}function ya(t){return !(746!==t&&747!==t&&(t<4352||!(pa[\"Bopomofo Extended\"](t)||pa.Bopomofo(t)||pa[\"CJK Compatibility Forms\"](t)&&!(t>=65097&&t<=65103)||pa[\"CJK Compatibility Ideographs\"](t)||pa[\"CJK Compatibility\"](t)||pa[\"CJK Radicals Supplement\"](t)||pa[\"CJK Strokes\"](t)||!(!pa[\"CJK Symbols and Punctuation\"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||pa[\"CJK Unified Ideographs Extension A\"](t)||pa[\"CJK Unified Ideographs\"](t)||pa[\"Enclosed CJK Letters and Months\"](t)||pa[\"Hangul Compatibility Jamo\"](t)||pa[\"Hangul Jamo Extended-A\"](t)||pa[\"Hangul Jamo Extended-B\"](t)||pa[\"Hangul Jamo\"](t)||pa[\"Hangul Syllables\"](t)||pa.Hiragana(t)||pa[\"Ideographic Description Characters\"](t)||pa.Kanbun(t)||pa[\"Kangxi Radicals\"](t)||pa[\"Katakana Phonetic Extensions\"](t)||pa.Katakana(t)&&12540!==t||!(!pa[\"Halfwidth and Fullwidth Forms\"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!pa[\"Small Form Variants\"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||pa[\"Unified Canadian Aboriginal Syllabics\"](t)||pa[\"Unified Canadian Aboriginal Syllabics Extended\"](t)||pa[\"Vertical Forms\"](t)||pa[\"Yijing Hexagram Symbols\"](t)||pa[\"Yi Syllables\"](t)||pa[\"Yi Radicals\"](t))))}function ga(t){return !(ya(t)||function(t){return !!(pa[\"Latin-1 Supplement\"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||pa[\"General Punctuation\"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||pa[\"Letterlike Symbols\"](t)||pa[\"Number Forms\"](t)||pa[\"Miscellaneous Technical\"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||pa[\"Control Pictures\"](t)&&9251!==t||pa[\"Optical Character Recognition\"](t)||pa[\"Enclosed Alphanumerics\"](t)||pa[\"Geometric Shapes\"](t)||pa[\"Miscellaneous Symbols\"](t)&&!(t>=9754&&t<=9759)||pa[\"Miscellaneous Symbols and Arrows\"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||pa[\"CJK Symbols and Punctuation\"](t)||pa.Katakana(t)||pa[\"Private Use Area\"](t)||pa[\"CJK Compatibility Forms\"](t)||pa[\"Small Form Variants\"](t)||pa[\"Halfwidth and Fullwidth Forms\"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function xa(t){return t>=1424&&t<=2303||pa[\"Arabic Presentation Forms-A\"](t)||pa[\"Arabic Presentation Forms-B\"](t)}function va(t,e){return !(!e&&xa(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||pa.Khmer(t))}function ba(t){for(const e of t)if(xa(e.charCodeAt(0)))return !0;return !1}const _a=\"deferred\",wa=\"loading\",Ma=\"loaded\";let Aa=null,Sa=\"unavailable\",Ia=null;const Pa=function(t){t&&\"string\"==typeof t&&t.indexOf(\"NetworkError\")>-1&&(Sa=\"error\"),Aa&&Aa(t);};function za(){Ea.fire(new xe(\"pluginStateChange\",{pluginStatus:Sa,pluginURL:Ia}));}const Ea=new we,ka=function(){return Sa},Ta=function(){if(Sa!==_a||!Ia)throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");Sa=wa,za(),Ia&&ie({url:Ia},(t=>{t?Pa(t):(Sa=Ma,za());}));},Ba={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>Sa===Ma||null!=Ba.applyArabicShaping,isLoading:()=>Sa===wa,setState(t){Sa=t.pluginStatus,Ia=t.pluginURL;},isParsed:()=>null!=Ba.applyArabicShaping&&null!=Ba.processBidirectionalText&&null!=Ba.processStyledBidirectionalText,getPluginURL:()=>Ia};class Va{constructor(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.transition=e.transition,this.pitch=e.pitch,this.brightness=e.brightness):(this.now=0,this.fadeDuration=0,this.transition={},this.pitch=0,this.brightness=0);}isSupportedScript(t){return function(t,e){for(const r of t)if(!va(r.charCodeAt(0),e))return !1;return !0}(t,Ba.isLoaded())}}class Ca{constructor(t,e,r,n){this.property=t,this.value=e,this.expression=function(t,e,r,n){if(Ni(t))return new ta(t,e);if(Hi(t)||Array.isArray(t)&&t.length>0){const i=Qi(t,e,r,n);if(\"error\"===i.result)throw new Error(i.value.map((t=>`${t.key}: ${t.message}`)).join(\", \"));return i.value}{let r=t;return \"string\"==typeof t&&\"color\"===e.type&&(r=Ie.parse(t)),{kind:\"constant\",configDependencies:new Set,evaluate:()=>r}}}(void 0===e?t.specification.default:e,t.specification,r,n);}isDataDriven(){return \"source\"===this.expression.kind||\"composite\"===this.expression.kind}possiblyEvaluate(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)}}class Da{constructor(t,e,r){this.property=t,this.value=new Ca(t,void 0,e,r);}transitioned(t,e){return new Ra(this.property,this.value,e,nt({},t.transition,this.transition),t.now)}untransitioned(){return new Ra(this.property,this.value,null,{},0)}}class La{constructor(t,e,r){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues),this._scope=e,this._options=r,this.configDependencies=new Set;}getValue(t){return ht(this._values[t].value.value)}setValue(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Da(this._values[t].property,this._scope,this._options)),this._values[t].value=new Ca(this._values[t].property,null===e?void 0:ht(e),this._scope,this._options),this._values[t].value.expression.configDependencies&&(this.configDependencies=new Set([...this.configDependencies,...this._values[t].value.expression.configDependencies]));}setTransitionOrValue(t,e){e&&(this._options=e);const r=this._properties.properties;if(t)for(const e in t){const n=t[e];if(lt(e,\"-transition\")){const t=e.slice(0,-11);r[t]&&this.setTransition(t,n);}else r.hasOwnProperty(e)&&this.setValue(e,n);}}getTransition(t){return ht(this._values[t].transition)}setTransition(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new Da(this._values[t].property)),this._values[t].transition=ht(e)||void 0;}serialize(){const t={};for(const e of Object.keys(this._values)){const r=this.getValue(e);void 0!==r&&(t[e]=r);const n=this.getTransition(e);void 0!==n&&(t[`${e}-transition`]=n);}return t}transitioned(t,e){const r=new Fa(this._properties);for(const n of Object.keys(this._values))r._values[n]=this._values[n].transitioned(t,e._values[n]);return r}untransitioned(){const t=new Fa(this._properties);for(const e of Object.keys(this._values))t._values[e]=this._values[e].untransitioned();return t}}class Ra{constructor(t,e,r,n,i){const a=n.delay||0,s=n.duration||0;i=i||0,this.property=t,this.value=e,this.begin=i+a,this.end=this.begin+s,t.specification.transition&&(n.delay||n.duration)&&(this.prior=r);}possiblyEvaluate(t,e,r){const n=t.now||0,i=this.value.possiblyEvaluate(t,e,r),a=this.prior;if(a){if(n>this.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n<this.begin)return a.possiblyEvaluate(t,e,r);{const s=(n-this.begin)/(this.end-this.begin);return this.property.interpolate(a.possiblyEvaluate(t,e,r),i,W(s))}}return i}}class Fa{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues);}possiblyEvaluate(t,e,r){const n=new Ua(this._properties);for(const i of Object.keys(this._values))n._values[i]=this._values[i].possiblyEvaluate(t,e,r);return n}hasTransition(){for(const t of Object.keys(this._values))if(this._values[t].prior)return !0;return !1}}class Oa{constructor(t,e,r){this._properties=t,this._values=Object.create(t.defaultPropertyValues),this._scope=e,this._options=r,this.configDependencies=new Set;}getValue(t){return ht(this._values[t].value)}setValue(t,e){this._values[t]=new Ca(this._values[t].property,null===e?void 0:ht(e),this._scope,this._options),this._values[t].expression.configDependencies&&(this.configDependencies=new Set([...this.configDependencies,...this._values[t].expression.configDependencies]));}serialize(){const t={};for(const e of Object.keys(this._values)){const r=this.getValue(e);void 0!==r&&(t[e]=r);}return t}possiblyEvaluate(t,e,r){const n=new Ua(this._properties);for(const i of Object.keys(this._values))n._values[i]=this._values[i].possiblyEvaluate(t,e,r);return n}}class Na{constructor(t,e,r){this.property=t,this.value=e,this.parameters=r;}isConstant(){return \"constant\"===this.value.kind}constantOr(t){return \"constant\"===this.value.kind?this.value.value:t}evaluate(t,e,r,n){return this.property.evaluate(this.value,this.parameters,t,e,r,n)}}class Ua{constructor(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues);}get(t){return this._values[t]}}class ja{constructor(t){this.specification=t;}possiblyEvaluate(t,e){return t.expression.evaluate(e)}interpolate(t,e,r){const n=ke[this.specification.type];return n?n(t,e,r):t}}class qa{constructor(t,e){this.specification=t,this.overrides=e;}possiblyEvaluate(t,e,r,n){return new Na(this,\"constant\"===t.expression.kind||\"camera\"===t.expression.kind?{kind:\"constant\",value:t.expression.evaluate(e,null,{},r,n)}:t.expression,e)}interpolate(t,e,r){if(\"constant\"!==t.value.kind||\"constant\"!==e.value.kind)return t;if(void 0===t.value.value||void 0===e.value.value)return new Na(this,{kind:\"constant\",value:void 0},t.parameters);const n=ke[this.specification.type];return n?new Na(this,{kind:\"constant\",value:n(t.value.value,e.value.value,r)},t.parameters):t}evaluate(t,e,r,n,i,a){return \"constant\"===t.kind?t.value:t.evaluate(e,r,n,i,a)}}class $a{constructor(t){this.specification=t;}possiblyEvaluate(t,e,r,n){return !!t.expression.evaluate(e,null,{},r,n)}interpolate(){return !1}}class Ga{constructor(t){this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];const e=new Va(0,{});for(const r in t){const n=t[r];n.specification.overridable&&this.overridableProperties.push(r);const i=this.defaultPropertyValues[r]=new Ca(n,void 0),a=this.defaultTransitionablePropertyValues[r]=new Da(n);this.defaultTransitioningPropertyValues[r]=a.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=i.possiblyEvaluate(e);}}}oa(qa,\"DataDrivenProperty\"),oa(ja,\"DataConstantProperty\"),oa($a,\"ColorRampProperty\");var Ya=JSON.parse('{\"$version\":8,\"$root\":{\"version\":{\"required\":true,\"type\":\"enum\",\"values\":[8]},\"fragment\":{\"type\":\"boolean\"},\"name\":{\"type\":\"string\"},\"metadata\":{\"type\":\"*\"},\"center\":{\"type\":\"array\",\"value\":\"number\"},\"zoom\":{\"type\":\"number\"},\"bearing\":{\"type\":\"number\",\"default\":0,\"period\":360},\"pitch\":{\"type\":\"number\",\"default\":0},\"light\":{\"type\":\"light\"},\"lights\":{\"required\":false,\"type\":\"array\",\"value\":\"light-3d\"},\"terrain\":{\"type\":\"terrain\",\"optional\":true},\"fog\":{\"type\":\"fog\"},\"snow\":{\"type\":\"snow\",\"experimental\":true},\"rain\":{\"type\":\"rain\",\"experimental\":true},\"camera\":{\"type\":\"camera\"},\"color-theme\":{\"type\":\"colorTheme\"},\"indoor\":{\"type\":\"indoor\",\"experimental\":true},\"imports\":{\"type\":\"array\",\"value\":\"import\"},\"schema\":{\"type\":\"schema\"},\"sources\":{\"required\":true,\"type\":\"sources\"},\"sprite\":{\"type\":\"string\"},\"glyphs\":{\"type\":\"string\",\"default\":\"mapbox://fonts/mapbox/{fontstack}/{range}.pbf\"},\"transition\":{\"type\":\"transition\"},\"projection\":{\"type\":\"projection\"},\"layers\":{\"required\":true,\"type\":\"array\",\"value\":\"layer\"},\"models\":{\"type\":\"models\"},\"featuresets\":{\"experimental\":true,\"type\":\"featuresets\"}},\"featuresets\":{\"experimental\":true,\"*\":{\"type\":\"featureset\"}},\"featureset\":{\"experimental\":true,\"metadata\":{\"type\":\"*\"},\"selectors\":{\"type\":\"array\",\"value\":\"selector\"}},\"selector\":{\"experimental\":true,\"layer\":{\"type\":\"string\",\"required\":true},\"properties\":{\"type\":\"selectorProperty\",\"required\":false},\"featureNamespace\":{\"type\":\"string\",\"required\":false}},\"selectorProperty\":{\"experimental\":true,\"*\":{\"type\":\"*\"}},\"model\":{\"type\":\"string\",\"required\":true},\"import\":{\"id\":{\"type\":\"string\",\"required\":true},\"url\":{\"type\":\"string\",\"required\":true},\"config\":{\"type\":\"config\"},\"data\":{\"type\":\"$root\"},\"color-theme\":{\"type\":\"colorTheme\",\"optional\":true}},\"config\":{\"*\":{\"type\":\"*\"}},\"schema\":{\"*\":{\"type\":\"option\"}},\"option\":{\"default\":{\"type\":\"*\",\"property-type\":\"data-constant\",\"expression\":{},\"required\":true},\"type\":{\"type\":\"enum\",\"values\":{\"string\":1,\"number\":1,\"boolean\":1,\"color\":1}},\"array\":{\"type\":\"boolean\"},\"minValue\":{\"type\":\"number\"},\"maxValue\":{\"type\":\"number\"},\"stepValue\":{\"type\":\"number\"},\"values\":{\"type\":\"array\",\"value\":\"*\"},\"metadata\":{\"type\":\"*\"}},\"models\":{\"*\":{\"type\":\"model\"}},\"light-3d\":{\"id\":{\"type\":\"string\",\"required\":true},\"properties\":{\"type\":\"properties\"},\"type\":{\"type\":\"enum\",\"values\":{\"ambient\":{},\"directional\":{},\"flat\":{}}}},\"properties\":[\"properties_light_directional\",\"properties_light_ambient\",\"properties_light_flat\"],\"properties_light_directional\":{\"direction\":{\"type\":\"array\",\"default\":[210,30],\"minimum\":[0,0],\"maximum\":[360,90],\"length\":2,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]}},\"color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":\"#ffffff\",\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true},\"intensity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":0.5,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true},\"cast-shadows\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-constant\"},\"shadow-quality\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":1,\"minimum\":0,\"maximum\":1,\"expression\":{\"parameters\":[\"zoom\"]},\"experimental\":true},\"shadow-intensity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":1,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true}},\"properties_light_ambient\":{\"color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":\"#ffffff\",\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true},\"intensity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":0.5,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true}},\"properties_light_flat\":{\"anchor\":{\"type\":\"enum\",\"default\":\"viewport\",\"values\":{\"map\":1,\"viewport\":1},\"property-type\":\"data-constant\",\"expression\":{\"parameters\":[\"zoom\"]}},\"position\":{\"type\":\"array\",\"default\":[1.15,210,30],\"length\":3,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]}},\"color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":\"#ffffff\",\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true},\"intensity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":0.5,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true}},\"sources\":{\"*\":{\"type\":\"source\"}},\"source\":[\"source_vector\",\"source_raster\",\"source_raster_dem\",\"source_raster_array\",\"source_geojson\",\"source_video\",\"source_image\",\"source_model\"],\"source_vector\":{\"type\":{\"required\":true,\"type\":\"enum\",\"values\":{\"vector\":1}},\"url\":{\"type\":\"string\"},\"tiles\":{\"type\":\"array\",\"value\":\"string\"},\"bounds\":{\"type\":\"array\",\"value\":\"number\",\"length\":4,\"default\":[-180,-85.051129,180,85.051129]},\"scheme\":{\"type\":\"enum\",\"values\":{\"xyz\":1,\"tms\":1},\"default\":\"xyz\"},\"minzoom\":{\"type\":\"number\",\"default\":0},\"maxzoom\":{\"type\":\"number\",\"default\":22},\"attribution\":{\"type\":\"string\"},\"promoteId\":{\"type\":\"promoteId\"},\"volatile\":{\"type\":\"boolean\",\"default\":false},\"*\":{\"type\":\"*\"}},\"source_raster\":{\"type\":{\"required\":true,\"type\":\"enum\",\"values\":{\"raster\":1}},\"url\":{\"type\":\"string\"},\"tiles\":{\"type\":\"array\",\"value\":\"string\"},\"bounds\":{\"type\":\"array\",\"value\":\"number\",\"length\":4,\"default\":[-180,-85.051129,180,85.051129]},\"minzoom\":{\"type\":\"number\",\"default\":0},\"maxzoom\":{\"type\":\"number\",\"default\":22},\"tileSize\":{\"type\":\"number\",\"default\":512},\"scheme\":{\"type\":\"enum\",\"values\":{\"xyz\":1,\"tms\":1},\"default\":\"xyz\"},\"attribution\":{\"type\":\"string\"},\"volatile\":{\"type\":\"boolean\",\"default\":false},\"*\":{\"type\":\"*\"}},\"source_raster_dem\":{\"type\":{\"required\":true,\"type\":\"enum\",\"values\":{\"raster-dem\":1}},\"url\":{\"type\":\"string\"},\"tiles\":{\"type\":\"array\",\"value\":\"string\"},\"bounds\":{\"type\":\"array\",\"value\":\"number\",\"length\":4,\"default\":[-180,-85.051129,180,85.051129]},\"minzoom\":{\"type\":\"number\",\"default\":0},\"maxzoom\":{\"type\":\"number\",\"default\":22},\"tileSize\":{\"type\":\"number\",\"default\":512},\"attribution\":{\"type\":\"string\"},\"encoding\":{\"type\":\"enum\",\"values\":{\"terrarium\":1,\"mapbox\":1},\"default\":\"mapbox\"},\"volatile\":{\"type\":\"boolean\",\"default\":false},\"*\":{\"type\":\"*\"}},\"source_raster_array\":{\"experimental\":true,\"type\":{\"required\":true,\"type\":\"enum\",\"values\":{\"raster-array\":1}},\"url\":{\"type\":\"string\"},\"tiles\":{\"type\":\"array\",\"value\":\"string\"},\"bounds\":{\"type\":\"array\",\"value\":\"number\",\"length\":4,\"default\":[-180,-85.051129,180,85.051129]},\"minzoom\":{\"type\":\"number\",\"default\":0},\"maxzoom\":{\"type\":\"number\",\"default\":22},\"tileSize\":{\"type\":\"number\",\"default\":512},\"attribution\":{\"type\":\"string\"},\"rasterLayers\":{\"type\":\"*\"},\"volatile\":{\"type\":\"boolean\",\"default\":false},\"*\":{\"type\":\"*\"}},\"source_geojson\":{\"type\":{\"required\":true,\"type\":\"enum\",\"values\":{\"geojson\":1}},\"data\":{\"type\":\"*\"},\"maxzoom\":{\"type\":\"number\",\"default\":18},\"minzoom\":{\"type\":\"number\",\"default\":0},\"attribution\":{\"type\":\"string\"},\"buffer\":{\"type\":\"number\",\"default\":128,\"maximum\":512,\"minimum\":0},\"filter\":{\"type\":\"*\"},\"tolerance\":{\"type\":\"number\",\"default\":0.375},\"cluster\":{\"type\":\"boolean\",\"default\":false},\"clusterRadius\":{\"type\":\"number\",\"default\":50,\"minimum\":0},\"clusterMaxZoom\":{\"type\":\"number\"},\"clusterMinPoints\":{\"type\":\"number\"},\"clusterProperties\":{\"type\":\"*\"},\"lineMetrics\":{\"type\":\"boolean\",\"default\":false},\"generateId\":{\"type\":\"boolean\",\"default\":false},\"promoteId\":{\"type\":\"promoteId\"},\"dynamic\":{\"type\":\"boolean\",\"default\":false}},\"source_video\":{\"type\":{\"required\":true,\"type\":\"enum\",\"values\":{\"video\":1}},\"urls\":{\"required\":true,\"type\":\"array\",\"value\":\"string\"},\"coordinates\":{\"required\":true,\"type\":\"array\",\"length\":4,\"value\":{\"type\":\"array\",\"length\":2,\"value\":\"number\"}}},\"source_image\":{\"type\":{\"required\":true,\"type\":\"enum\",\"values\":{\"image\":1}},\"url\":{\"required\":false,\"type\":\"string\"},\"coordinates\":{\"required\":true,\"type\":\"array\",\"length\":4,\"value\":{\"type\":\"array\",\"length\":2,\"value\":\"number\"}}},\"source_model\":{\"type\":{\"required\":true,\"type\":\"enum\",\"values\":{\"model\":1,\"batched-model\":1}},\"maxzoom\":{\"type\":\"number\",\"default\":18},\"minzoom\":{\"type\":\"number\",\"default\":0},\"tiles\":{\"type\":\"array\",\"value\":\"string\"}},\"layer\":{\"id\":{\"type\":\"string\",\"required\":true},\"type\":{\"type\":\"enum\",\"values\":{\"fill\":{},\"line\":{},\"symbol\":{},\"circle\":{},\"heatmap\":{},\"fill-extrusion\":{},\"raster\":{},\"raster-particle\":{\"experimental\":true},\"hillshade\":{},\"model\":{\"experimental\":true},\"background\":{},\"sky\":{},\"slot\":{},\"clip\":{}},\"required\":true},\"metadata\":{\"type\":\"*\"},\"source\":{\"type\":\"string\"},\"source-layer\":{\"type\":\"string\"},\"slot\":{\"type\":\"string\"},\"minzoom\":{\"type\":\"number\",\"minimum\":0,\"maximum\":24},\"maxzoom\":{\"type\":\"number\",\"minimum\":0,\"maximum\":24},\"filter\":{\"type\":\"filter\"},\"layout\":{\"type\":\"layout\"},\"paint\":{\"type\":\"paint\"}},\"layout\":[\"layout_clip\",\"layout_fill\",\"layout_line\",\"layout_circle\",\"layout_heatmap\",\"layout_fill-extrusion\",\"layout_symbol\",\"layout_raster\",\"layout_raster-particle\",\"layout_hillshade\",\"layout_background\",\"layout_sky\",\"layout_model\"],\"layout_background\":{\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"}},\"layout_sky\":{\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"}},\"layout_model\":{\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"},\"model-id\":{\"type\":\"string\",\"default\":\"\",\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}}},\"layout_clip\":{\"clip-layer-types\":{\"type\":\"array\",\"value\":\"enum\",\"values\":{\"model\":1,\"symbol\":1},\"default\":[],\"expression\":{},\"property-type\":\"data-constant\"},\"clip-layer-scope\":{\"type\":\"array\",\"value\":\"string\",\"default\":[],\"expression\":{},\"property-type\":\"data-constant\"}},\"layout_fill\":{\"fill-sort-key\":{\"type\":\"number\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"},\"fill-elevation-reference\":{\"type\":\"enum\",\"values\":{\"none\":1,\"hd-road-base\":1,\"hd-road-markup\":1},\"default\":\"none\",\"experimental\":true,\"private\":true,\"expression\":{},\"property-type\":\"data-constant\"}},\"layout_circle\":{\"circle-sort-key\":{\"type\":\"number\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"}},\"layout_heatmap\":{\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"}},\"layout_fill-extrusion\":{\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"},\"fill-extrusion-edge-radius\":{\"type\":\"number\",\"experimental\":true,\"default\":0,\"minimum\":0,\"maximum\":1,\"expression\":{},\"property-type\":\"constant\"}},\"layout_line\":{\"line-cap\":{\"type\":\"enum\",\"values\":{\"butt\":1,\"round\":1,\"square\":1},\"default\":\"butt\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-join\":{\"type\":\"enum\",\"values\":{\"bevel\":1,\"round\":1,\"miter\":1,\"none\":1},\"default\":\"miter\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-miter-limit\":{\"type\":\"number\",\"default\":2,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-round-limit\":{\"type\":\"number\",\"default\":1.05,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-sort-key\":{\"type\":\"number\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-z-offset\":{\"type\":\"number\",\"experimental\":true,\"default\":0,\"expression\":{\"parameters\":[\"zoom\",\"feature\",\"line-progress\"]},\"property-type\":\"data-driven\"},\"line-elevation-reference\":{\"type\":\"enum\",\"values\":{\"none\":1,\"sea\":1,\"ground\":1,\"hd-road-markup\":1},\"default\":\"none\",\"experimental\":true,\"expression\":{},\"property-type\":\"data-constant\"},\"line-cross-slope\":{\"type\":\"number\",\"experimental\":true,\"expression\":{},\"property-type\":\"constant\"},\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"},\"line-width-unit\":{\"type\":\"enum\",\"values\":{\"pixels\":1,\"meters\":1},\"default\":\"pixels\",\"experimental\":true,\"private\":true,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"}},\"layout_symbol\":{\"symbol-placement\":{\"type\":\"enum\",\"values\":{\"point\":1,\"line\":1,\"line-center\":1},\"default\":\"point\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-spacing\":{\"type\":\"number\",\"default\":250,\"minimum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-avoid-edges\":{\"type\":\"boolean\",\"default\":false,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-sort-key\":{\"type\":\"number\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"symbol-z-order\":{\"type\":\"enum\",\"values\":{\"auto\":1,\"viewport-y\":1,\"source\":1},\"default\":\"auto\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-z-elevate\":{\"type\":\"boolean\",\"default\":false,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-elevation-reference\":{\"type\":\"enum\",\"values\":{\"sea\":1,\"ground\":1,\"hd-road-markup\":1},\"default\":\"ground\",\"experimental\":true,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-allow-overlap\":{\"type\":\"boolean\",\"default\":false,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-ignore-placement\":{\"type\":\"boolean\",\"default\":false,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-optional\":{\"type\":\"boolean\",\"default\":false,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-rotation-alignment\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1,\"auto\":1},\"default\":\"auto\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-size\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-size-scale-range\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0.8,2],\"minimum\":0.1,\"maximum\":10,\"experimental\":true,\"private\":true,\"expression\":{},\"property-type\":\"data-constant\"},\"icon-text-fit\":{\"type\":\"enum\",\"values\":{\"none\":1,\"width\":1,\"height\":1,\"both\":1},\"default\":\"none\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-text-fit-padding\":{\"type\":\"array\",\"value\":\"number\",\"length\":4,\"default\":[0,0,0,0],\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-image\":{\"type\":\"resolvedImage\",\"tokens\":true,\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-rotate\":{\"type\":\"number\",\"default\":0,\"period\":360,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-padding\":{\"type\":\"number\",\"default\":2,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-keep-upright\":{\"type\":\"boolean\",\"default\":false,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-offset\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0,0],\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-anchor\":{\"type\":\"enum\",\"values\":{\"center\":1,\"left\":1,\"right\":1,\"top\":1,\"bottom\":1,\"top-left\":1,\"top-right\":1,\"bottom-left\":1,\"bottom-right\":1},\"default\":\"center\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-pitch-alignment\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1,\"auto\":1},\"default\":\"auto\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-pitch-alignment\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1,\"auto\":1},\"default\":\"auto\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotation-alignment\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1,\"auto\":1},\"default\":\"auto\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-field\":{\"type\":\"formatted\",\"default\":\"\",\"tokens\":true,\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-font\":{\"type\":\"array\",\"value\":\"string\",\"default\":[\"Open Sans Regular\",\"Arial Unicode MS Regular\"],\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-size\":{\"type\":\"number\",\"default\":16,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-size-scale-range\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0.8,2],\"minimum\":0.1,\"maximum\":10,\"experimental\":true,\"private\":true,\"expression\":{},\"property-type\":\"data-constant\"},\"text-max-width\":{\"type\":\"number\",\"default\":10,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-line-height\":{\"type\":\"number\",\"default\":1.2,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-letter-spacing\":{\"type\":\"number\",\"default\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-justify\":{\"type\":\"enum\",\"values\":{\"auto\":1,\"left\":1,\"center\":1,\"right\":1},\"default\":\"center\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-radial-offset\":{\"type\":\"number\",\"default\":0,\"property-type\":\"data-driven\",\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]}},\"text-variable-anchor\":{\"type\":\"array\",\"value\":\"enum\",\"values\":{\"center\":1,\"left\":1,\"right\":1,\"top\":1,\"bottom\":1,\"top-left\":1,\"top-right\":1,\"bottom-left\":1,\"bottom-right\":1},\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-anchor\":{\"type\":\"enum\",\"values\":{\"center\":1,\"left\":1,\"right\":1,\"top\":1,\"bottom\":1,\"top-left\":1,\"top-right\":1,\"bottom-left\":1,\"bottom-right\":1},\"default\":\"center\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-angle\":{\"type\":\"number\",\"default\":45,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-writing-mode\":{\"type\":\"array\",\"value\":\"enum\",\"values\":{\"horizontal\":1,\"vertical\":1},\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotate\":{\"type\":\"number\",\"default\":0,\"period\":360,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-padding\":{\"type\":\"number\",\"default\":2,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-keep-upright\":{\"type\":\"boolean\",\"default\":true,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-transform\":{\"type\":\"enum\",\"values\":{\"none\":1,\"uppercase\":1,\"lowercase\":1},\"default\":\"none\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-offset\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0,0],\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-allow-overlap\":{\"type\":\"boolean\",\"default\":false,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-ignore-placement\":{\"type\":\"boolean\",\"default\":false,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-optional\":{\"type\":\"boolean\",\"default\":false,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"}},\"layout_raster\":{\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"}},\"layout_raster-particle\":{\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"}},\"layout_hillshade\":{\"visibility\":{\"type\":\"enum\",\"values\":{\"visible\":1,\"none\":1},\"default\":\"visible\",\"expression\":{},\"property-type\":\"constant\"}},\"filter\":{\"type\":\"array\",\"value\":\"*\"},\"filter_symbol\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\",\"pitch\",\"distance-from-center\"]}},\"filter_fill\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_hillshade\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_raster\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_raster-particle\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_clip\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_model\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_line\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_circle\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_fill-extrusion\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_heatmap\":{\"type\":\"boolean\",\"default\":false,\"property-type\":\"data-driven\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]}},\"filter_operator\":{\"type\":\"enum\",\"values\":{\"==\":1,\"!=\":1,\">\":1,\">=\":1,\"<\":1,\"<=\":1,\"in\":1,\"!in\":1,\"all\":1,\"any\":1,\"none\":1,\"has\":1,\"!has\":1}},\"geometry_type\":{\"type\":\"enum\",\"values\":{\"Point\":1,\"LineString\":1,\"Polygon\":1}},\"function\":{\"expression\":{\"type\":\"expression\"},\"stops\":{\"type\":\"array\",\"value\":\"function_stop\"},\"base\":{\"type\":\"number\",\"default\":1,\"minimum\":0},\"property\":{\"type\":\"string\",\"default\":\"$zoom\"},\"type\":{\"type\":\"enum\",\"values\":{\"identity\":1,\"exponential\":1,\"interval\":1,\"categorical\":1},\"default\":\"exponential\"},\"colorSpace\":{\"type\":\"enum\",\"values\":{\"rgb\":1,\"lab\":1,\"hcl\":1},\"default\":\"rgb\"},\"default\":{\"type\":\"*\",\"required\":false}},\"function_stop\":{\"type\":\"array\",\"minimum\":0,\"maximum\":24,\"value\":[\"number\",\"color\"],\"length\":2},\"expression\":{\"type\":\"array\",\"value\":\"*\",\"minimum\":1},\"fog\":{\"range\":{\"type\":\"array\",\"default\":[0.5,10],\"minimum\":-20,\"maximum\":20,\"length\":2,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true}},\"color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":\"#ffffff\",\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"high-color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":\"#245cdf\",\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"space-color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"zoom\"],4,\"#010b19\",7,\"#367ab9\"],\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"horizon-blend\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"zoom\"],4,0.2,7,0.1],\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"star-intensity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"zoom\"],5,0.35,6,0],\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"vertical-range\":{\"type\":\"array\",\"default\":[0,0],\"minimum\":0,\"length\":2,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true}}},\"snow\":{\"density\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"zoom\"],11,0,13,0.85],\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"intensity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":1,\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":\"#ffffff\",\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"opacity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":1,\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"vignette\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"zoom\"],11,0,13,0.3],\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"vignette-color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":\"#ffffff\",\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"center-thinning\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":0.4,\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"direction\":{\"type\":\"array\",\"default\":[0,50],\"minimum\":0,\"maximum\":360,\"length\":2,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true}},\"flake-size\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":0.71,\"minimum\":0,\"maximum\":5,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true}},\"rain\":{\"density\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"zoom\"],11,0,13,0.5],\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"intensity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":1,\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"measure-light\",\"brightness\"],0,\"#03113d\",0.3,\"#a8adbc\"],\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"opacity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"measure-light\",\"brightness\"],0,0.88,1,0.7],\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"vignette\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"zoom\"],11,0,13,1],\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"vignette-color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":[\"interpolate\",[\"linear\"],[\"measure-light\",\"brightness\"],0,\"#001736\",0.3,\"#464646\"],\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"center-thinning\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":0.57,\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true},\"direction\":{\"type\":\"array\",\"default\":[0,80],\"minimum\":0,\"maximum\":360,\"length\":2,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true}},\"droplet-size\":{\"type\":\"array\",\"default\":[2.6,18.2],\"minimum\":0,\"maximum\":50,\"length\":2,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true}},\"distortion-strength\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":0.7,\"minimum\":0,\"maximum\":1,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"],\"relaxZoomRestriction\":true},\"transition\":true}},\"camera\":{\"camera-projection\":{\"type\":\"enum\",\"values\":{\"perspective\":1,\"orthographic\":1},\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"default\":\"perspective\",\"property-type\":\"data-constant\"}},\"colorTheme\":{\"data\":{\"type\":\"string\",\"property-type\":\"data-constant\",\"expression\":{}}},\"indoor\":{\"floorplanFeaturesetId\":{\"type\":\"string\",\"experimental\":true,\"property-type\":\"data-constant\",\"expression\":{}},\"buildingFeaturesetId\":{\"type\":\"string\",\"experimental\":true,\"property-type\":\"data-constant\",\"expression\":{}}},\"light\":{\"anchor\":{\"type\":\"enum\",\"default\":\"viewport\",\"values\":{\"map\":1,\"viewport\":1},\"property-type\":\"data-constant\",\"expression\":{\"parameters\":[\"zoom\"]}},\"position\":{\"type\":\"array\",\"default\":[1.15,210,30],\"length\":3,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]}},\"color\":{\"type\":\"color\",\"property-type\":\"data-constant\",\"default\":\"#ffffff\",\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true},\"intensity\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":0.5,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true}},\"projection\":{\"name\":{\"type\":\"enum\",\"values\":{\"albers\":1,\"equalEarth\":1,\"equirectangular\":1,\"lambertConformalConic\":1,\"mercator\":1,\"naturalEarth\":1,\"winkelTripel\":1,\"globe\":1},\"default\":\"mercator\",\"required\":true},\"center\":{\"type\":\"array\",\"length\":2,\"value\":\"number\",\"property-type\":\"data-constant\",\"minimum\":[-180,-90],\"maximum\":[180,90]},\"parallels\":{\"type\":\"array\",\"length\":2,\"value\":\"number\",\"property-type\":\"data-constant\",\"minimum\":[-90,-90],\"maximum\":[90,90]}},\"terrain\":{\"source\":{\"type\":\"string\",\"required\":true},\"exaggeration\":{\"type\":\"number\",\"property-type\":\"data-constant\",\"default\":1,\"minimum\":0,\"maximum\":1000,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true}},\"paint\":[\"paint_fill\",\"paint_line\",\"paint_circle\",\"paint_heatmap\",\"paint_fill-extrusion\",\"paint_symbol\",\"paint_raster\",\"paint_raster-particle\",\"paint_hillshade\",\"paint_background\",\"paint_sky\",\"paint_model\"],\"paint_fill\":{\"fill-antialias\":{\"type\":\"boolean\",\"default\":true,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"fill-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"fill-outline-color\":{\"type\":\"color\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"fill-translate\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0,0],\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-translate-anchor\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"map\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-pattern\":{\"type\":\"resolvedImage\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"fill-emissive-strength\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"},\"fill-z-offset\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"}},\"paint_fill-extrusion\":{\"fill-extrusion-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-translate\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0,0],\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-translate-anchor\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"map\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-pattern\":{\"type\":\"resolvedImage\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-height\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-base\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-height-alignment\":{\"type\":\"enum\",\"experimental\":true,\"values\":{\"terrain\":1,\"flat\":1},\"default\":\"flat\",\"property-type\":\"data-constant\"},\"fill-extrusion-base-alignment\":{\"type\":\"enum\",\"experimental\":true,\"values\":{\"terrain\":1,\"flat\":1},\"default\":\"terrain\",\"property-type\":\"data-constant\"},\"fill-extrusion-vertical-gradient\":{\"type\":\"boolean\",\"default\":true,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-ambient-occlusion-intensity\":{\"property-type\":\"data-constant\",\"type\":\"number\",\"default\":0,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true},\"fill-extrusion-ambient-occlusion-radius\":{\"property-type\":\"data-constant\",\"type\":\"number\",\"default\":3,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true},\"fill-extrusion-ambient-occlusion-wall-radius\":{\"property-type\":\"data-constant\",\"type\":\"number\",\"experimental\":true,\"default\":3,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true},\"fill-extrusion-ambient-occlusion-ground-radius\":{\"property-type\":\"data-constant\",\"type\":\"number\",\"experimental\":true,\"default\":3,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true},\"fill-extrusion-ambient-occlusion-ground-attenuation\":{\"property-type\":\"data-constant\",\"type\":\"number\",\"experimental\":true,\"default\":0.69,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]}},\"fill-extrusion-flood-light-color\":{\"property-type\":\"data-constant\",\"type\":\"color\",\"experimental\":true,\"default\":\"#ffffff\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]}},\"fill-extrusion-flood-light-intensity\":{\"property-type\":\"data-constant\",\"type\":\"number\",\"experimental\":true,\"default\":0,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]}},\"fill-extrusion-flood-light-wall-radius\":{\"property-type\":\"data-driven\",\"type\":\"number\",\"experimental\":true,\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\"]}},\"fill-extrusion-flood-light-ground-radius\":{\"property-type\":\"data-driven\",\"type\":\"number\",\"experimental\":true,\"default\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\"]}},\"fill-extrusion-flood-light-ground-attenuation\":{\"property-type\":\"data-constant\",\"type\":\"number\",\"experimental\":true,\"default\":0.69,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]}},\"fill-extrusion-vertical-scale\":{\"property-type\":\"data-constant\",\"type\":\"number\",\"experimental\":true,\"default\":1,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]}},\"fill-extrusion-rounded-roof\":{\"property-type\":\"data-constant\",\"type\":\"boolean\",\"default\":true,\"experimental\":true,\"expression\":{\"parameters\":[\"zoom\"]}},\"fill-extrusion-cutoff-fade-range\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"maximum\":1,\"expression\":{},\"property-type\":\"data-constant\"},\"fill-extrusion-emissive-strength\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-line-width\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-cast-shadows\":{\"type\":\"boolean\",\"default\":true,\"property-type\":\"data-constant\"}},\"paint_line\":{\"line-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"line-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"line-translate\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0,0],\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-translate-anchor\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"map\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-width\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\",\"line-progress\"]},\"property-type\":\"data-driven\"},\"line-gap-width\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"line-offset\":{\"type\":\"number\",\"default\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"line-blur\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"line-dasharray\":{\"type\":\"array\",\"value\":\"number\",\"minimum\":0,\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-pattern\":{\"type\":\"resolvedImage\",\"expression\":{\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-gradient\":{\"type\":\"color\",\"expression\":{\"interpolated\":true,\"parameters\":[\"line-progress\"]},\"property-type\":\"color-ramp\"},\"line-trim-offset\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0,0],\"minimum\":[0,0],\"maximum\":[1,1],\"property-type\":\"constant\"},\"line-trim-fade-range\":{\"type\":\"array\",\"value\":\"number\",\"experimental\":true,\"length\":2,\"default\":[0,0],\"minimum\":[0,0],\"maximum\":[1,1],\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"},\"line-trim-color\":{\"type\":\"color\",\"experimental\":true,\"default\":\"transparent\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"},\"line-emissive-strength\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"},\"line-border-width\":{\"type\":\"number\",\"private\":true,\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-border-color\":{\"type\":\"color\",\"private\":true,\"default\":\"rgba(0, 0, 0, 0)\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-occlusion-opacity\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"transition\":true,\"property-type\":\"data-constant\"}},\"paint_circle\":{\"circle-radius\":{\"type\":\"number\",\"default\":5,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"circle-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"circle-blur\":{\"type\":\"number\",\"default\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"circle-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"circle-translate\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0,0],\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-translate-anchor\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"map\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-scale\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"map\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-alignment\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"viewport\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-stroke-width\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"circle-stroke-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"circle-stroke-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"circle-emissive-strength\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"}},\"paint_heatmap\":{\"heatmap-radius\":{\"type\":\"number\",\"default\":30,\"minimum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"heatmap-weight\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"heatmap-intensity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"heatmap-color\":{\"type\":\"color\",\"default\":[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,\"rgba(0, 0, 255, 0)\",0.1,\"royalblue\",0.3,\"cyan\",0.5,\"lime\",0.7,\"yellow\",1,\"red\"],\"expression\":{\"interpolated\":true,\"parameters\":[\"heatmap-density\"]},\"property-type\":\"color-ramp\"},\"heatmap-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"}},\"paint_symbol\":{\"icon-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"icon-occlusion-opacity\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1,\"default\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"icon-emissive-strength\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-emissive-strength\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"icon-halo-color\":{\"type\":\"color\",\"default\":\"rgba(0, 0, 0, 0)\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"icon-halo-width\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"icon-halo-blur\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"icon-translate\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0,0],\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-translate-anchor\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"map\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-image-cross-fade\":{\"type\":\"number\",\"property-type\":\"data-driven\",\"default\":0,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"transition\":true},\"text-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"text-occlusion-opacity\":{\"type\":\"number\",\"minimum\":0,\"maximum\":1,\"default\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"text-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"overridable\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"text-halo-color\":{\"type\":\"color\",\"default\":\"rgba(0, 0, 0, 0)\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"text-halo-width\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"text-halo-blur\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\",\"feature-state\",\"measure-light\"]},\"property-type\":\"data-driven\"},\"text-translate\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"default\":[0,0],\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-translate-anchor\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"map\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-color-saturation\":{\"type\":\"number\",\"default\":0,\"minimum\":-1,\"maximum\":1,\"expression\":{},\"property-type\":\"data-constant\"},\"icon-color-contrast\":{\"type\":\"number\",\"default\":0,\"minimum\":-1,\"maximum\":1,\"expression\":{},\"property-type\":\"data-constant\"},\"icon-color-brightness-min\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"maximum\":1,\"expression\":{},\"property-type\":\"data-constant\"},\"icon-color-brightness-max\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"expression\":{},\"property-type\":\"data-constant\"},\"symbol-z-offset\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"}},\"paint_raster\":{\"raster-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-color\":{\"type\":\"color\",\"expression\":{\"interpolated\":true,\"parameters\":[\"raster-value\"]},\"property-type\":\"color-ramp\"},\"raster-color-mix\":{\"type\":\"array\",\"default\":[0.2126,0.7152,0.0722,0],\"length\":4,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]}},\"raster-color-range\":{\"type\":\"array\",\"length\":2,\"value\":\"number\",\"property-type\":\"data-constant\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]}},\"raster-hue-rotate\":{\"type\":\"number\",\"default\":0,\"period\":360,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-min\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-max\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-saturation\":{\"type\":\"number\",\"default\":0,\"minimum\":-1,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-contrast\":{\"type\":\"number\",\"default\":0,\"minimum\":-1,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-resampling\":{\"type\":\"enum\",\"values\":{\"linear\":1,\"nearest\":1},\"default\":\"linear\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-fade-duration\":{\"type\":\"number\",\"default\":300,\"minimum\":0,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-emissive-strength\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"},\"raster-array-band\":{\"type\":\"string\",\"required\":false,\"experimental\":true,\"property-type\":\"data-constant\"},\"raster-elevation\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"experimental\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"}},\"paint_raster-particle\":{\"raster-particle-array-band\":{\"type\":\"string\",\"required\":false,\"property-type\":\"data-constant\"},\"raster-particle-count\":{\"type\":\"number\",\"default\":512,\"minimum\":1,\"property-type\":\"data-constant\"},\"raster-particle-color\":{\"type\":\"color\",\"expression\":{\"interpolated\":true,\"parameters\":[\"raster-particle-speed\"]},\"property-type\":\"color-ramp\"},\"raster-particle-max-speed\":{\"type\":\"number\",\"default\":1,\"minimum\":1,\"property-type\":\"data-constant\"},\"raster-particle-speed-factor\":{\"type\":\"number\",\"default\":0.2,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-particle-fade-opacity-factor\":{\"type\":\"number\",\"default\":0.98,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-particle-reset-rate-factor\":{\"type\":\"number\",\"default\":0.8,\"minimum\":0,\"maximum\":1,\"property-type\":\"data-constant\"},\"raster-particle-elevation\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"}},\"paint_hillshade\":{\"hillshade-illumination-direction\":{\"type\":\"number\",\"default\":335,\"minimum\":0,\"maximum\":359,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-illumination-anchor\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"viewport\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-exaggeration\":{\"type\":\"number\",\"default\":0.5,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-shadow-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"},\"hillshade-highlight-color\":{\"type\":\"color\",\"default\":\"#FFFFFF\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"},\"hillshade-accent-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"},\"hillshade-emissive-strength\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"}},\"paint_background\":{\"background-pitch-alignment\":{\"type\":\"enum\",\"values\":{\"map\":1,\"viewport\":1},\"default\":\"map\",\"expression\":{\"parameters\":[]},\"experimental\":true,\"property-type\":\"data-constant\"},\"background-color\":{\"type\":\"color\",\"default\":\"#000000\",\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"background-pattern\":{\"type\":\"resolvedImage\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"background-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"background-emissive-strength\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\",\"measure-light\"]},\"property-type\":\"data-constant\"}},\"paint_sky\":{\"sky-type\":{\"type\":\"enum\",\"values\":{\"gradient\":1,\"atmosphere\":1},\"default\":\"atmosphere\",\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"sky-atmosphere-sun\":{\"type\":\"array\",\"value\":\"number\",\"length\":2,\"minimum\":[0,0],\"maximum\":[360,180],\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"sky-atmosphere-sun-intensity\":{\"type\":\"number\",\"default\":10,\"minimum\":0,\"maximum\":100,\"property-type\":\"data-constant\"},\"sky-gradient-center\":{\"type\":\"array\",\"value\":\"number\",\"default\":[0,0],\"length\":2,\"minimum\":[0,0],\"maximum\":[360,180],\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"sky-gradient-radius\":{\"type\":\"number\",\"default\":90,\"minimum\":0,\"maximum\":180,\"expression\":{\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"},\"sky-gradient\":{\"type\":\"color\",\"default\":[\"interpolate\",[\"linear\"],[\"sky-radial-progress\"],0.8,\"#87ceeb\",1,\"white\"],\"expression\":{\"interpolated\":true,\"parameters\":[\"sky-radial-progress\"]},\"property-type\":\"color-ramp\"},\"sky-atmosphere-halo-color\":{\"type\":\"color\",\"default\":\"white\",\"property-type\":\"data-constant\"},\"sky-atmosphere-color\":{\"type\":\"color\",\"default\":\"white\",\"property-type\":\"data-constant\"},\"sky-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\"}},\"paint_model\":{\"model-opacity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"transition\":true,\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\",\"zoom\"]},\"property-type\":\"data-driven\"},\"model-rotation\":{\"type\":\"array\",\"value\":\"number\",\"length\":3,\"default\":[0,0,0],\"period\":360,\"property-type\":\"data-driven\",\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\",\"zoom\"]},\"transition\":true},\"model-scale\":{\"type\":\"array\",\"value\":\"number\",\"length\":3,\"default\":[1,1,1],\"property-type\":\"data-driven\",\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\",\"zoom\"]},\"transition\":true},\"model-translation\":{\"type\":\"array\",\"value\":\"number\",\"length\":3,\"default\":[0,0,0],\"property-type\":\"data-driven\",\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\",\"zoom\"]},\"transition\":true},\"model-color\":{\"type\":\"color\",\"default\":\"#ffffff\",\"property-type\":\"data-driven\",\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\",\"measure-light\",\"zoom\"]},\"transition\":true},\"model-color-mix-intensity\":{\"type\":\"number\",\"property-type\":\"data-driven\",\"default\":0,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\",\"measure-light\"]},\"transition\":true},\"model-type\":{\"type\":\"enum\",\"values\":{\"common-3d\":1,\"location-indicator\":1},\"default\":\"common-3d\",\"property-type\":\"data-constant\"},\"model-cast-shadows\":{\"type\":\"boolean\",\"default\":true,\"property-type\":\"data-constant\"},\"model-receive-shadows\":{\"type\":\"boolean\",\"default\":true,\"property-type\":\"data-constant\"},\"model-ambient-occlusion-intensity\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"property-type\":\"data-constant\",\"transition\":true},\"model-emissive-strength\":{\"type\":\"number\",\"property-type\":\"data-driven\",\"default\":0,\"minimum\":0,\"maximum\":5,\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\",\"measure-light\"]},\"transition\":true},\"model-roughness\":{\"type\":\"number\",\"default\":1,\"minimum\":0,\"maximum\":1,\"property-type\":\"data-driven\",\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\"]},\"transition\":true},\"model-height-based-emissive-strength-multiplier\":{\"type\":\"array\",\"default\":[1,1,1,1,0],\"length\":5,\"value\":\"number\",\"property-type\":\"data-driven\",\"expression\":{\"interpolated\":true,\"parameters\":[\"feature\",\"feature-state\",\"measure-light\"]},\"transition\":true},\"model-cutoff-fade-range\":{\"type\":\"number\",\"default\":0,\"minimum\":0,\"maximum\":1,\"expression\":{},\"property-type\":\"data-constant\"},\"model-front-cutoff\":{\"type\":\"array\",\"private\":true,\"value\":\"number\",\"property-type\":\"data-constant\",\"expression\":{\"interpolated\":true,\"parameters\":[\"zoom\"]},\"length\":3,\"default\":[0,0,1],\"minimum\":[0,0,0],\"maximum\":[1,1,1]}},\"transition\":{\"duration\":{\"type\":\"number\",\"default\":300,\"minimum\":0},\"delay\":{\"type\":\"number\",\"default\":0,\"minimum\":0}},\"property-type\":{\"data-driven\":{\"type\":\"property-type\"},\"color-ramp\":{\"type\":\"property-type\"},\"data-constant\":{\"type\":\"property-type\"},\"constant\":{\"type\":\"property-type\"}},\"promoteId\":{\"*\":{\"type\":\"string\"}}}');function Xa(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}function Za(t){if(Array.isArray(t))return t.map(Za);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const e={};for(const r in t)e[r]=Za(t[r]);return e}return Xa(t)}function Ha(t){if(!0===t||!1===t)return !0;if(!Array.isArray(t)||0===t.length)return !1;switch(t[0]){case\"has\":return t.length>=2&&\"$id\"!==t[1]&&\"$type\"!==t[1];case\"in\":return t.length>=3&&(\"string\"!=typeof t[1]||Array.isArray(t[2]));case\"!in\":case\"!has\":case\"none\":return !1;case\"==\":case\"!=\":case\">\":case\">=\":case\"<\":case\"<=\":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case\"any\":case\"all\":for(const e of t.slice(1))if(!Ha(e)&&\"boolean\"!=typeof e)return !1;return !0;default:return !0}}function Wa(t,e=\"\",r=null,n=\"fill\"){if(null==t)return {filter:()=>!0,needGeometry:!1,needFeature:!1};Ha(t)||(t=ns(t));const i=t;let a=!0;try{a=function(t){if(!Qa(t))return t;let e=Za(t);return Ja(e),e=Ka(e),e}(i);}catch(t){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\\nand paste the contents of this message in the report.\\nThank you!\\nFilter Expression:\\n${JSON.stringify(i,null,2)}\\n `);}let s=null,o=null;if(\"background\"!==n&&\"sky\"!==n&&\"slot\"!==n){o=Ya[`filter_${n}`];const t=Wi(a,o,e,r);if(\"error\"===t.result)throw new Error(t.value.map((t=>`${t.key}: ${t.message}`)).join(\", \"));s=(e,r,n)=>t.value.evaluate(e,r,{},n);}let l=null,u=null;if(a!==i){const t=Wi(i,o,e,r);if(\"error\"===t.result)throw new Error(t.value.map((t=>`${t.key}: ${t.message}`)).join(\", \"));l=(e,r,n,i,a)=>t.value.evaluate(e,r,{},n,void 0,void 0,i,a),u=!Tn(t.value.expression);}return {filter:s,dynamicFilter:l||void 0,needGeometry:rs(a),needFeature:!!u}}function Ka(t){if(!Array.isArray(t))return t;const e=function(t){if(ts.has(t[0]))for(let e=1;e<t.length;e++)if(Qa(t[e]))return !0;return t}(t);return !0===e?e:e.map((t=>Ka(t)))}function Ja(t){let e=!1;const r=[];if(\"case\"===t[0]){for(let n=1;n<t.length-1;n+=2)e=e||Qa(t[n]),r.push(t[n+1]);r.push(t[t.length-1]);}else if(\"match\"===t[0]){e=e||Qa(t[1]);for(let e=2;e<t.length-1;e+=2)r.push(t[e+1]);r.push(t[t.length-1]);}else if(\"step\"===t[0]){e=e||Qa(t[1]);for(let e=1;e<t.length-1;e+=2)r.push(t[e+1]);}e&&(t.length=0,t.push(\"any\",...r));for(let e=1;e<t.length;e++)Ja(t[e]);}function Qa(t){if(!Array.isArray(t))return !1;if(\"pitch\"===(e=t[0])||\"distance-from-center\"===e)return !0;var e;for(let e=1;e<t.length;e++)if(Qa(t[e]))return !0;return !1}const ts=new Set([\"in\",\"==\",\"!=\",\">\",\">=\",\"<\",\"<=\",\"to-boolean\"]);function es(t,e){return t<e?-1:t>e?1:0}function rs(t){if(!Array.isArray(t))return !1;if(\"within\"===t[0]||\"distance\"===t[0])return !0;for(let e=1;e<t.length;e++)if(rs(t[e]))return !0;return !1}function ns(t){if(!t)return !0;const e=t[0];return t.length<=1?\"any\"!==e:\"==\"===e?is(t[1],t[2],\"==\"):\"!=\"===e?os(is(t[1],t[2],\"==\")):\"<\"===e||\">\"===e||\"<=\"===e||\">=\"===e?is(t[1],t[2],e):\"any\"===e?(r=t.slice(1),[\"any\"].concat(r.map(ns))):\"all\"===e?[\"all\"].concat(t.slice(1).map(ns)):\"none\"===e?[\"all\"].concat(t.slice(1).map(ns).map(os)):\"in\"===e?as(t[1],t.slice(2)):\"!in\"===e?os(as(t[1],t.slice(2))):\"has\"===e?ss(t[1]):\"!has\"!==e||os(ss(t[1]));var r;}function is(t,e,r){switch(t){case\"$type\":return [`filter-type-${r}`,e];case\"$id\":return [`filter-id-${r}`,e];default:return [`filter-${r}`,t,e]}}function as(t,e){if(0===e.length)return !1;switch(t){case\"$type\":return [\"filter-type-in\",[\"literal\",e]];case\"$id\":return [\"filter-id-in\",[\"literal\",e]];default:return e.length>200&&!e.some((t=>typeof t!=typeof e[0]))?[\"filter-in-large\",t,[\"literal\",e.sort(es)]]:[\"filter-in-small\",t,[\"literal\",e]]}}function ss(t){switch(t){case\"$type\":return !0;case\"$id\":return [\"filter-has-id\"];default:return [\"filter-has\",t]}}function os(t){return [\"!\",t]}const ls=\"\u001f\";function us(t,e){return e?`${t}${ls}${e}`:t}const cs=\"-transition\",hs=new Set([\"fill\",\"line\",\"background\",\"hillshade\",\"raster\"]);class ps extends we{constructor(t,e,r,n,i){if(super(),this.id=t.id,this.fqid=us(this.id,r),this.type=t.type,this.scope=r,this.lut=n,this.options=i,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,this.configDependencies=new Set,\"custom\"!==t.type){if(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,t.type&&\"background\"!==t.type&&\"sky\"!==t.type&&\"slot\"!==t.type){this.source=t.source,this.sourceLayer=t[\"source-layer\"],this.filter=t.filter;const e=Wi(this.filter,Ya[`filter_${t.type}`]);\"error\"!==e.result&&(this.configDependencies=new Set([...this.configDependencies,...e.value.configDependencies]));}if(t.slot&&(this.slot=t.slot),e.layout&&(this._unevaluatedLayout=new Oa(e.layout,this.scope,i),this.configDependencies=new Set([...this.configDependencies,...this._unevaluatedLayout.configDependencies])),e.paint){this._transitionablePaint=new La(e.paint,this.scope,i);for(const e in t.paint)this.setPaintProperty(e,t.paint[e]);for(const e in t.layout)this.setLayoutProperty(e,t.layout[e]);this.configDependencies=new Set([...this.configDependencies,...this._transitionablePaint.configDependencies]),this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Ua(e.paint);}}}onAdd(t){}onRemove(t){}isDraped(t){return !this.is3D()&&hs.has(this.type)}getLayoutProperty(t){return \"visibility\"===t?this.visibility:this._unevaluatedLayout.getValue(t)}setLayoutProperty(t,e){if(\"custom\"===this.type&&\"visibility\"===t)return void(this.visibility=e);const r=this._unevaluatedLayout;r._properties.properties[t]&&(r.setValue(t,e),this.configDependencies=new Set([...this.configDependencies,...r.configDependencies]),\"visibility\"===t&&this.possiblyEvaluateVisibility());}possiblyEvaluateVisibility(){this._unevaluatedLayout._values.visibility&&(this.visibility=this._unevaluatedLayout._values.visibility.possiblyEvaluate({zoom:0}));}getPaintProperty(t){return lt(t,cs)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,e){const r=this._transitionablePaint,n=r._properties.properties;if(lt(t,cs)){const i=t.slice(0,-11);return n[i]&&r.setTransition(i,e||void 0),!1}if(!n[t])return !1;const i=r._values[t],a=i.value.isDataDriven(),s=i.value;r.setValue(t,e),this.configDependencies=new Set([...this.configDependencies,...r.configDependencies]),this._handleSpecialPaintPropertyUpdate(t);const o=r._values[t].value,l=o.isDataDriven(),u=lt(t,\"pattern\")||\"line-dasharray\"===t;return l||a||u||this._handleOverridablePaintPropertyUpdate(t,s,o)}_handleSpecialPaintPropertyUpdate(t){}getProgramIds(){return null}getDefaultProgramParams(t,e,r){return null}_handleOverridablePaintPropertyUpdate(t,e,r){return !1}isHidden(t){return !!(this.minzoom&&t<this.minzoom)||!!(this.maxzoom&&t>=this.maxzoom)||\"none\"===this.visibility}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint);}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,e){this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e);}serialize(){return ct({id:this.id,type:this.type,slot:this.slot,source:this.source,\"source-layer\":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()},((t,e)=>!(void 0===t||\"layout\"===e&&!Object.keys(t).length||\"paint\"===e&&!Object.keys(t).length)))}is3D(){return !1}isSky(){return !1}isTileClipped(){return !1}hasOffscreenPass(){return !1}hasShadowPass(){return !1}canCastShadows(){return !1}hasLightBeamPass(){return !1}cutoffRange(){return 0}tileCoverLift(){return 0}resize(){}isStateDependent(){for(const t in this.paint._values){const e=this.paint.get(t);if(e instanceof Na&&Li(e.property.specification)&&(\"source\"===e.value.kind||\"composite\"===e.value.kind)&&e.value.isStateDependent)return !0}return !1}compileFilter(t){this._filterCompiled||(this._featureFilter=Wa(this.filter,this.scope,t),this._filterCompiled=!0);}invalidateCompiledFilter(){this._filterCompiled=!1;}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}getLayerRenderingStats(){return this._stats}resetLayerRenderingStats(t){this._stats&&(\"shadow\"===t.renderPass?this._stats.numRenderedVerticesInShadowPass=0:this._stats.numRenderedVerticesInTransparentPass=0);}queryRadius(t){}queryIntersectsFeature(t,e,r,n,i,a,s,o,l){}}const fs={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class ds{constructor(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8;}}class ms{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0);}static serialize(t,e){return t._trim(),e&&(t.isTransferred=!0,e.add(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}}static deserialize(t){const e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());}clear(){this.length=0;}resize(t){this.reserve(t),this.length=t;}reserve(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const e=this.uint8;this._refreshViews(),e&&this.uint8.set(e);}}_refreshViews(){throw new Error(\"StructArray#_refreshViews() must be implemented by each concrete StructArray layout\")}emplace(...t){throw new Error(\"StructArray#emplace() must be implemented by each concrete StructArray layout\")}emplaceBack(...t){throw new Error(\"StructArray#emplaceBack() must be implemented by each concrete StructArray layout\")}destroy(){this.int8=this.uint8=this.int16=this.uint16=this.int32=this.uint32=this.float32=null,this.arrayBuffer=null;}}function ys(t,e=1){let r=0,n=0;return {members:t.map((t=>{const i=fs[t.type].BYTES_PER_ELEMENT,a=r=gs(r,Math.max(e,i)),s=t.components||1;return n=Math.max(n,i),r+=i*s,{name:t.name,type:t.type,components:s,offset:a}})),size:gs(r,Math.max(n,e)),alignment:e}}function gs(t,e){return Math.ceil(t/e)*e}class xs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t}}xs.prototype.bytesPerElement=4,oa(xs,\"StructArrayLayout2i4\");class vs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t}}vs.prototype.bytesPerElement=6,oa(vs,\"StructArrayLayout3i6\");class bs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t}}bs.prototype.bytesPerElement=8,oa(bs,\"StructArrayLayout4i8\");class _s extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)}emplace(t,e,r,n,i,a){const s=5*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,t}}_s.prototype.bytesPerElement=10,oa(_s,\"StructArrayLayout5i10\");class ws extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a,s)}emplace(t,e,r,n,i,a,s,o){const l=6*t,u=12*t,c=3*t;return this.int16[l+0]=e,this.int16[l+1]=r,this.uint8[u+4]=n,this.uint8[u+5]=i,this.uint8[u+6]=a,this.uint8[u+7]=s,this.float32[c+2]=o,t}}ws.prototype.bytesPerElement=12,oa(ws,\"StructArrayLayout2i4ub1f12\");class Ms extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t}}Ms.prototype.bytesPerElement=16,oa(Ms,\"StructArrayLayout4f16\");class As extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t}}As.prototype.bytesPerElement=12,oa(As,\"StructArrayLayout3f12\");class Ss extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)}emplace(t,e,r,n,i,a){const s=6*t,o=3*t;return this.uint16[s+0]=e,this.uint16[s+1]=r,this.uint16[s+2]=n,this.uint16[s+3]=i,this.float32[o+2]=a,t}}Ss.prototype.bytesPerElement=12,oa(Ss,\"StructArrayLayout4ui1f12\");class Is extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=4*t;return this.uint16[a+0]=e,this.uint16[a+1]=r,this.uint16[a+2]=n,this.uint16[a+3]=i,t}}Is.prototype.bytesPerElement=8,oa(Is,\"StructArrayLayout4ui8\");class Ps extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i,a)}emplace(t,e,r,n,i,a,s){const o=6*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.int16[o+3]=i,this.int16[o+4]=a,this.int16[o+5]=s,t}}Ps.prototype.bytesPerElement=12,oa(Ps,\"StructArrayLayout6i12\");class zs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h){const p=this.length;return this.resize(p+1),this.emplace(p,t,e,r,n,i,a,s,o,l,u,c,h)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p){const f=12*t;return this.int16[f+0]=e,this.int16[f+1]=r,this.int16[f+2]=n,this.int16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=s,this.uint16[f+6]=o,this.uint16[f+7]=l,this.int16[f+8]=u,this.int16[f+9]=c,this.int16[f+10]=h,this.int16[f+11]=p,t}}zs.prototype.bytesPerElement=24,oa(zs,\"StructArrayLayout4i4ui4i24\");class Es extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i,a)}emplace(t,e,r,n,i,a,s){const o=10*t,l=5*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.float32[l+2]=i,this.float32[l+3]=a,this.float32[l+4]=s,t}}Es.prototype.bytesPerElement=20,oa(Es,\"StructArrayLayout3i3f20\");class ks extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint32[1*t+0]=e,t}}ks.prototype.bytesPerElement=4,oa(ks,\"StructArrayLayout1ul4\");class Ts extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t}}Ts.prototype.bytesPerElement=4,oa(Ts,\"StructArrayLayout2ui4\");class Bs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h,p){const f=this.length;return this.resize(f+1),this.emplace(f,t,e,r,n,i,a,s,o,l,u,c,h,p)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p,f){const d=20*t,m=10*t;return this.int16[d+0]=e,this.int16[d+1]=r,this.int16[d+2]=n,this.int16[d+3]=i,this.int16[d+4]=a,this.float32[m+3]=s,this.float32[m+4]=o,this.float32[m+5]=l,this.float32[m+6]=u,this.int16[d+14]=c,this.uint32[m+8]=h,this.uint16[d+18]=p,this.uint16[d+19]=f,t}}Bs.prototype.bytesPerElement=40,oa(Bs,\"StructArrayLayout5i4f1i1ul2ui40\");class Vs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a,s)}emplace(t,e,r,n,i,a,s,o){const l=8*t;return this.int16[l+0]=e,this.int16[l+1]=r,this.int16[l+2]=n,this.int16[l+4]=i,this.int16[l+5]=a,this.int16[l+6]=s,this.int16[l+7]=o,t}}Vs.prototype.bytesPerElement=16,oa(Vs,\"StructArrayLayout3i2i2i16\");class Cs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)}emplace(t,e,r,n,i,a){const s=4*t,o=8*t;return this.float32[s+0]=e,this.float32[s+1]=r,this.float32[s+2]=n,this.int16[o+6]=i,this.int16[o+7]=a,t}}Cs.prototype.bytesPerElement=16,oa(Cs,\"StructArrayLayout2f1f2i16\");class Ds extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i,a)}emplace(t,e,r,n,i,a,s){const o=20*t,l=5*t;return this.uint8[o+0]=e,this.uint8[o+1]=r,this.float32[l+1]=n,this.float32[l+2]=i,this.float32[l+3]=a,this.float32[l+4]=s,t}}Ds.prototype.bytesPerElement=20,oa(Ds,\"StructArrayLayout2ub4f20\");class Ls extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t}}Ls.prototype.bytesPerElement=6,oa(Ls,\"StructArrayLayout3ui6\");class Rs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y,g,x,v,b){const _=this.length;return this.resize(_+1),this.emplace(_,t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y,g,x,v,b)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y,g,x,v,b,_){const w=30*t,M=15*t,A=60*t;return this.int16[w+0]=e,this.int16[w+1]=r,this.int16[w+2]=n,this.float32[M+2]=i,this.float32[M+3]=a,this.uint16[w+8]=s,this.uint16[w+9]=o,this.uint32[M+5]=l,this.uint32[M+6]=u,this.uint32[M+7]=c,this.uint16[w+16]=h,this.uint16[w+17]=p,this.uint16[w+18]=f,this.float32[M+10]=d,this.float32[M+11]=m,this.uint8[A+48]=y,this.uint8[A+49]=g,this.uint8[A+50]=x,this.uint32[M+13]=v,this.int16[w+28]=b,this.uint8[A+58]=_,t}}Rs.prototype.bytesPerElement=60,oa(Rs,\"StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60\");class Fs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y,g,x,v,b,_,w,M,A,S,I,P,z,E,k,T){const B=this.length;return this.resize(B+1),this.emplace(B,t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y,g,x,v,b,_,w,M,A,S,I,P,z,E,k,T)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y,g,x,v,b,_,w,M,A,S,I,P,z,E,k,T,B){const V=20*t,C=40*t,D=80*t;return this.float32[V+0]=e,this.float32[V+1]=r,this.int16[C+4]=n,this.int16[C+5]=i,this.int16[C+6]=a,this.int16[C+7]=s,this.int16[C+8]=o,this.int16[C+9]=l,this.int16[C+10]=u,this.int16[C+11]=c,this.int16[C+12]=h,this.uint16[C+13]=p,this.uint16[C+14]=f,this.uint16[C+15]=d,this.uint16[C+16]=m,this.uint16[C+17]=y,this.uint16[C+18]=g,this.uint16[C+19]=x,this.uint16[C+20]=v,this.uint16[C+21]=b,this.uint16[C+22]=_,this.uint16[C+23]=w,this.uint16[C+24]=M,this.uint16[C+25]=A,this.uint16[C+26]=S,this.uint16[C+27]=I,this.uint32[V+14]=P,this.float32[V+15]=z,this.float32[V+16]=E,this.float32[V+17]=k,this.float32[V+18]=T,this.uint8[D+76]=B,t}}Fs.prototype.bytesPerElement=80,oa(Fs,\"StructArrayLayout2f9i15ui1ul4f1ub80\");class Os extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.float32[1*t+0]=e,t}}Os.prototype.bytesPerElement=4,oa(Os,\"StructArrayLayout1f4\");class Ns extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)}emplace(t,e,r,n,i,a){const s=5*t;return this.float32[s+0]=e,this.float32[s+1]=r,this.float32[s+2]=n,this.float32[s+3]=i,this.float32[s+4]=a,t}}Ns.prototype.bytesPerElement=20,oa(Ns,\"StructArrayLayout5f20\");class Us extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a,s)}emplace(t,e,r,n,i,a,s,o){const l=7*t;return this.float32[l+0]=e,this.float32[l+1]=r,this.float32[l+2]=n,this.float32[l+3]=i,this.float32[l+4]=a,this.float32[l+5]=s,this.float32[l+6]=o,t}}Us.prototype.bytesPerElement=28,oa(Us,\"StructArrayLayout7f28\");class js extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c){const h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,s,o,l,u,c)}emplace(t,e,r,n,i,a,s,o,l,u,c,h){const p=11*t;return this.float32[p+0]=e,this.float32[p+1]=r,this.float32[p+2]=n,this.float32[p+3]=i,this.float32[p+4]=a,this.float32[p+5]=s,this.float32[p+6]=o,this.float32[p+7]=l,this.float32[p+8]=u,this.float32[p+9]=c,this.float32[p+10]=h,t}}js.prototype.bytesPerElement=44,oa(js,\"StructArrayLayout11f44\");class qs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l){const u=this.length;return this.resize(u+1),this.emplace(u,t,e,r,n,i,a,s,o,l)}emplace(t,e,r,n,i,a,s,o,l,u){const c=9*t;return this.float32[c+0]=e,this.float32[c+1]=r,this.float32[c+2]=n,this.float32[c+3]=i,this.float32[c+4]=a,this.float32[c+5]=s,this.float32[c+6]=o,this.float32[c+7]=l,this.float32[c+8]=u,t}}qs.prototype.bytesPerElement=36,oa(qs,\"StructArrayLayout9f36\");class $s extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t}}$s.prototype.bytesPerElement=8,oa($s,\"StructArrayLayout2f8\");class Gs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=6*t;return this.uint32[3*t+0]=e,this.uint16[a+2]=r,this.uint16[a+3]=n,this.uint16[a+4]=i,t}}Gs.prototype.bytesPerElement=12,oa(Gs,\"StructArrayLayout1ul3ui12\");class Ys extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint16[1*t+0]=e,t}}Ys.prototype.bytesPerElement=2,oa(Ys,\"StructArrayLayout1ui2\");class Xs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m){const y=this.length;return this.resize(y+1),this.emplace(y,t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y){const g=16*t;return this.float32[g+0]=e,this.float32[g+1]=r,this.float32[g+2]=n,this.float32[g+3]=i,this.float32[g+4]=a,this.float32[g+5]=s,this.float32[g+6]=o,this.float32[g+7]=l,this.float32[g+8]=u,this.float32[g+9]=c,this.float32[g+10]=h,this.float32[g+11]=p,this.float32[g+12]=f,this.float32[g+13]=d,this.float32[g+14]=m,this.float32[g+15]=y,t}}Xs.prototype.bytesPerElement=64,oa(Xs,\"StructArrayLayout16f64\");class Zs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s){const o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a,s)}emplace(t,e,r,n,i,a,s,o){const l=10*t,u=5*t;return this.uint16[l+0]=e,this.uint16[l+1]=r,this.uint16[l+2]=n,this.uint16[l+3]=i,this.float32[u+2]=a,this.float32[u+3]=s,this.float32[u+4]=o,t}}Zs.prototype.bytesPerElement=20,oa(Zs,\"StructArrayLayout4ui3f20\");class Hs extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.int16[1*t+0]=e,t}}Hs.prototype.bytesPerElement=2,oa(Hs,\"StructArrayLayout1i2\");class Ws extends ms{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint8[1*t+0]=e,t}}Ws.prototype.bytesPerElement=1,oa(Ws,\"StructArrayLayout1ub1\");class Ks extends ds{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.int16[this._pos2+3]}get tileAnchorY(){return this._structArray.int16[this._pos2+4]}get x1(){return this._structArray.float32[this._pos4+3]}get y1(){return this._structArray.float32[this._pos4+4]}get x2(){return this._structArray.float32[this._pos4+5]}get y2(){return this._structArray.float32[this._pos4+6]}get padding(){return this._structArray.int16[this._pos2+14]}get featureIndex(){return this._structArray.uint32[this._pos4+8]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+18]}get bucketIndex(){return this._structArray.uint16[this._pos2+19]}}Ks.prototype.size=40;class Js extends Bs{get(t){return new Ks(this,t)}}oa(Js,\"CollisionBoxArray\");class Qs extends ds{get projectedAnchorX(){return this._structArray.int16[this._pos2+0]}get projectedAnchorY(){return this._structArray.int16[this._pos2+1]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+2]}get tileAnchorX(){return this._structArray.float32[this._pos4+2]}get tileAnchorY(){return this._structArray.float32[this._pos4+3]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+8]}get numGlyphs(){return this._structArray.uint16[this._pos2+9]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+5]}get lineStartIndex(){return this._structArray.uint32[this._pos4+6]}get lineLength(){return this._structArray.uint32[this._pos4+7]}get segment(){return this._structArray.uint16[this._pos2+16]}get lowerSize(){return this._structArray.uint16[this._pos2+17]}get upperSize(){return this._structArray.uint16[this._pos2+18]}get lineOffsetX(){return this._structArray.float32[this._pos4+10]}get lineOffsetY(){return this._structArray.float32[this._pos4+11]}get writingMode(){return this._structArray.uint8[this._pos1+48]}get placedOrientation(){return this._structArray.uint8[this._pos1+49]}set placedOrientation(t){this._structArray.uint8[this._pos1+49]=t;}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(t){this._structArray.uint8[this._pos1+50]=t;}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(t){this._structArray.uint32[this._pos4+13]=t;}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(t){this._structArray.uint8[this._pos1+58]=t;}}Qs.prototype.size=60;class to extends Rs{get(t){return new Qs(this,t)}}oa(to,\"PlacedSymbolArray\");class eo extends ds{get tileAnchorX(){return this._structArray.float32[this._pos4+0]}get tileAnchorY(){return this._structArray.float32[this._pos4+1]}get projectedAnchorX(){return this._structArray.int16[this._pos2+4]}get projectedAnchorY(){return this._structArray.int16[this._pos2+5]}get projectedAnchorZ(){return this._structArray.int16[this._pos2+6]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+7]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+11]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get key(){return this._structArray.uint16[this._pos2+13]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+14]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+15]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+17]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+19]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+21]}get featureIndex(){return this._structArray.uint16[this._pos2+22]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+23]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numIconVertices(){return this._structArray.uint16[this._pos2+25]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+26]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+27]}get crossTileID(){return this._structArray.uint32[this._pos4+14]}set crossTileID(t){this._structArray.uint32[this._pos4+14]=t;}get textOffset0(){return this._structArray.float32[this._pos4+15]}get textOffset1(){return this._structArray.float32[this._pos4+16]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+17]}get zOffset(){return this._structArray.float32[this._pos4+18]}set zOffset(t){this._structArray.float32[this._pos4+18]=t;}get hasIconTextFit(){return this._structArray.uint8[this._pos1+76]}}eo.prototype.size=80;class ro extends Fs{get(t){return new eo(this,t)}}oa(ro,\"SymbolInstanceArray\");class no extends Os{getoffsetX(t){return this.float32[1*t+0]}}oa(no,\"GlyphOffsetArray\");class io extends xs{getx(t){return this.int16[2*t+0]}gety(t){return this.int16[2*t+1]}}oa(io,\"SymbolLineVertexArray\");class ao extends ds{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}get layoutVertexArrayOffset(){return this._structArray.uint16[this._pos2+4]}}ao.prototype.size=12;class so extends Gs{get(t){return new ao(this,t)}}oa(so,\"FeatureIndexArray\");class oo extends Ts{geta_centroid_pos0(t){return this.uint16[2*t+0]}geta_centroid_pos1(t){return this.uint16[2*t+1]}}oa(oo,\"FillExtrusionCentroidArray\");class lo extends ds{get a_join_normal_inside0(){return this._structArray.int16[this._pos2+0]}get a_join_normal_inside1(){return this._structArray.int16[this._pos2+1]}get a_join_normal_inside2(){return this._structArray.int16[this._pos2+2]}}lo.prototype.size=6;class uo extends vs{get(t){return new lo(this,t)}}oa(uo,\"FillExtrusionWallArray\");const co=ys([{name:\"a_pos\",components:2,type:\"Int16\"}],4),ho=ys([{name:\"a_pos_3\",components:3,type:\"Int16\"},{name:\"a_pos_normal_3\",components:3,type:\"Int16\"}]);class po{constructor(t=[]){this.segments=t;}_prepareSegment(t,e,r,n){let i=this.segments[this.segments.length-1];return t>po.MAX_VERTEX_ARRAY_LENGTH&&ft(`Max vertices per segment is ${po.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}`),(!i||i.vertexLength+t>po.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e,primitiveOffset:r,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i}prepareSegment(t,e,r,n){return this._prepareSegment(t,e.length,r.length,n)}get(){return this.segments}destroy(){for(const t of this.segments)for(const e in t.vaos)t.vaos[e].destroy();}static simpleSegment(t,e,r,n){return new po([{vertexOffset:t,primitiveOffset:e,vertexLength:r,primitiveLength:n,vaos:{},sortKey:0}])}}function fo(t,e){return 256*(t=Q(Math.floor(t),0,255))+Q(Math.floor(e),0,255)}po.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,oa(po,\"SegmentVector\");const mo=ys([{name:\"a_pattern\",components:4,type:\"Uint16\"},{name:\"a_pixel_ratio\",components:1,type:\"Float32\"}]),yo=ys([{name:\"a_dash\",components:4,type:\"Uint16\"}]);class go{constructor(){this.ids=[],this.uniqueIds=[],this.positions=[],this.indexed=!1;}add(t,e,r,n){this.ids.push(xo(t)),this.positions.push(e,r,n);}eachPosition(t,e){const r=xo(t);let n=0,i=this.ids.length-1;for(;n<i;){const t=n+i>>1;this.ids[t]>=r?i=t:n=t+1;}for(;this.ids[n]===r;)e(this.positions[3*n],this.positions[3*n+1],this.positions[3*n+2]),n++;}static serialize(t,e){const r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return vo(r,n,0,r.length-1),e&&(e.add(r.buffer),e.add(n.buffer)),{ids:r,positions:n}}static deserialize(t){const e=new go;let r;e.ids=t.ids,e.positions=t.positions;for(const t of e.ids)t!==r&&e.uniqueIds.push(t),r=t;return e.indexed=!0,e}}function xo(t){const e=+t;return !isNaN(e)&&Number.MIN_SAFE_INTEGER<=e&&e<=Number.MAX_SAFE_INTEGER?e:ge(String(t))}function vo(t,e,r,n){for(;r<n;){const i=t[r+n>>1];let a=r-1,s=n+1;for(;;){do{a++;}while(t[a]<i);do{s--;}while(t[s]>i);if(a>=s)break;bo(t,a,s),bo(e,3*a,3*s),bo(e,3*a+1,3*s+1),bo(e,3*a+2,3*s+2);}s-r<n-s?(vo(t,e,r,s),r=s+1):(vo(t,e,s+1,n),n=s);}}function bo(t,e,r){const n=t[e];t[e]=t[r],t[r]=n;}oa(go,\"FeaturePositionMap\");class _o{constructor(t){this.gl=t.gl,this.initialized=!1;}fetchUniformLocation(t,e){return this.location||this.initialized||(this.location=this.gl.getUniformLocation(t,e),this.initialized=!0),!!this.location}set(t,e,r){throw new Error(\"Uniform#set() must be implemented by each concrete Uniform\")}}class wo extends _o{constructor(t){super(t),this.current=0;}set(t,e,r){this.fetchUniformLocation(t,e)&&this.current!==r&&(this.current=r,this.gl.uniform1i(this.location,r));}}class Mo extends _o{constructor(t){super(t),this.current=0;}set(t,e,r){this.fetchUniformLocation(t,e)&&this.current!==r&&(this.current=r,this.gl.uniform1f(this.location,r));}}class Ao extends _o{constructor(t){super(t),this.current=[0,0];}set(t,e,r){this.fetchUniformLocation(t,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]||(this.current=r,this.gl.uniform2f(this.location,r[0],r[1])));}}class So extends _o{constructor(t){super(t),this.current=[0,0,0];}set(t,e,r){this.fetchUniformLocation(t,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]&&r[2]===this.current[2]||(this.current=r,this.gl.uniform3f(this.location,r[0],r[1],r[2])));}}class Io extends _o{constructor(t){super(t),this.current=[0,0,0,0];}set(t,e,r){this.fetchUniformLocation(t,e)&&(r[0]===this.current[0]&&r[1]===this.current[1]&&r[2]===this.current[2]&&r[3]===this.current[3]||(this.current=r,this.gl.uniform4f(this.location,r[0],r[1],r[2],r[3])));}}class Po extends _o{constructor(t){super(t),this.current=Ie.transparent.toRenderColor(null);}set(t,e,r){this.fetchUniformLocation(t,e)&&(r.r===this.current.r&&r.g===this.current.g&&r.b===this.current.b&&r.a===this.current.a||(this.current=r,this.gl.uniform4f(this.location,r.r,r.g,r.b,r.a)));}}const zo=new Float32Array(16);class Eo extends _o{constructor(t){super(t),this.current=zo;}set(t,e,r){if(this.fetchUniformLocation(t,e)){if(r[12]!==this.current[12]||r[0]!==this.current[0])return this.current=r,void this.gl.uniformMatrix4fv(this.location,!1,r);for(let t=1;t<16;t++)if(r[t]!==this.current[t]){this.current=r,this.gl.uniformMatrix4fv(this.location,!1,r);break}}}}const ko=new Float32Array(9),To=new Float32Array(4);class Bo extends _o{constructor(t){super(t),this.current=To;}set(t,e,r){if(this.fetchUniformLocation(t,e))for(let t=0;t<4;t++)if(r[t]!==this.current[t]){this.current=r,this.gl.uniformMatrix2fv(this.location,!1,r);break}}}function Vo(t){return [fo(255*t.r,255*t.g),fo(255*t.b,255*t.a)]}class Co{constructor(t,e,r,n){this.value=t,this.uniformNames=e.map((t=>`u_${t}`)),this.type=r,this.context=n;}setUniform(t,e,r,n,i){const a=n.constantOr(this.value);e.set(t,i,a instanceof Ie?a.toRenderColor(this.ignoreLut?null:this.context.lut):a);}getBinding(t,e){return \"color\"===this.type?new Po(t):new Mo(t)}}class Do{constructor(t,e){this.uniformNames=e.map((t=>`u_${t}`)),this.pattern=null,this.pixelRatio=1;}setConstantPatternPositions(t){this.pixelRatio=t.pixelRatio||1,this.pattern=t.tl.concat(t.br);}setUniform(t,e,r,n,i){const a=\"u_pattern\"===i||\"u_dash\"===i?this.pattern:\"u_pixel_ratio\"===i?this.pixelRatio:null;a&&e.set(t,i,a);}getBinding(t,e){return \"u_pattern\"===e||\"u_dash\"===e?new Io(t):new Mo(t)}}class Lo{constructor(t,e,r,n){this.expression=t,this.type=r,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:\"Float32\",components:\"color\"===r?2:1,offset:0}))),this.paintVertexArray=new n;}populatePaintArray(t,e,r,n,i,a,s){const o=this.paintVertexArray.length,l=this.expression.evaluate(new Va(0,{brightness:a}),e,{},i,n,s);this.paintVertexArray.resize(t),this._setPaintValue(o,t,l,this.context);}updatePaintArray(t,e,r,n,i,a,s){const o=this.expression.evaluate({zoom:0,brightness:s},r,n,void 0,i);this._setPaintValue(t,e,o,this.context);}_setPaintValue(t,e,r,n){if(\"color\"===this.type){const i=Vo(r.toRenderColor(this.ignoreLut?null:n.lut));for(let r=t;r<e;r++)this.paintVertexArray.emplace(r,i[0],i[1]);}else {for(let n=t;n<e;n++)this.paintVertexArray.emplace(n,r);this.maxValue=Math.max(this.maxValue,Math.abs(r));}}upload(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent||!this.expression.isLightConstant));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}}class Ro{constructor(t,e,r,n,i,a){this.expression=t,this.uniformNames=e.map((t=>`u_${t}_t`)),this.type=r,this.useIntegerZoom=n,this.context=i,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:\"Float32\",components:\"color\"===r?4:2,offset:0}))),this.paintVertexArray=new a;}populatePaintArray(t,e,r,n,i,a,s){const o=this.expression.evaluate(new Va(this.context.zoom,{brightness:a}),e,{},i,n,s),l=this.expression.evaluate(new Va(this.context.zoom+1,{brightness:a}),e,{},i,n,s),u=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(u,t,o,l,this.context);}updatePaintArray(t,e,r,n,i,a,s){const o=this.expression.evaluate({zoom:this.context.zoom,brightness:s},r,n,void 0,i),l=this.expression.evaluate({zoom:this.context.zoom+1,brightness:s},r,n,void 0,i);this._setPaintValue(t,e,o,l,this.context);}_setPaintValue(t,e,r,n,i){if(\"color\"===this.type){const n=Vo(r.toRenderColor(this.ignoreLut?null:i.lut)),a=Vo(r.toRenderColor(this.ignoreLut?null:i.lut));for(let r=t;r<e;r++)this.paintVertexArray.emplace(r,n[0],n[1],a[0],a[1]);}else {for(let i=t;i<e;i++)this.paintVertexArray.emplace(i,r,n);this.maxValue=Math.max(this.maxValue,Math.abs(r),Math.abs(n));}}upload(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent||!this.expression.isLightConstant));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}setUniform(t,e,r,n,i){const a=this.useIntegerZoom?Math.floor(r.zoom):r.zoom,s=Q(this.expression.interpolationFactor(a,this.context.zoom,this.context.zoom+1),0,1);e.set(t,i,s);}getBinding(t,e){return new Mo(t)}}class Fo{constructor(t,e,r,n,i){this.expression=t,this.layerId=i,this.paintVertexAttributes=(\"array\"===r?yo:mo).members;for(let t=0;t<e.length;++t);this.paintVertexArray=new n;}populatePaintArray(t,e,r,n){const i=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValues(i,t,e.patterns&&e.patterns[this.layerId],r);}updatePaintArray(t,e,r,n,i,a,s){this._setPaintValues(t,e,r.patterns&&r.patterns[this.layerId],a);}_setPaintValues(t,e,r,n){if(!n||!r)return;const i=n[r];if(!i)return;const{tl:a,br:s,pixelRatio:o}=i;for(let r=t;r<e;r++)this.paintVertexArray.emplace(r,a[0],a[1],s[0],s[1],o);}upload(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent||!this.expression.isLightConstant));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}}class Oo{constructor(t,e,r=(()=>!0)){this.binders={},this._buffers=[],this.context=e;const n=[];for(const i in t.paint._values){const a=t.paint.get(i),s=t.paint.get(`${i}-use-theme`);if(i.endsWith(\"-use-theme\"))continue;if(!r(i))continue;if(!(a instanceof Na&&Li(a.property.specification)))continue;const o=jo(i,t.type),l=a.value,u=a.property.specification.type,c=!!a.property.useIntegerZoom,h=\"line-dasharray\"===i||i.endsWith(\"pattern\"),p=\"line-dasharray\"===i&&\"constant\"!==t.layout.get(\"line-cap\").value.kind;if(\"constant\"!==l.kind||p)if(\"source\"===l.kind||p||h){const e=Go(i,u,\"source\");this.binders[i]=h?new Fo(l,o,u,e,t.id):new Lo(l,o,u,e),n.push(`/a_${i}`);}else {const t=Go(i,u,\"composite\");this.binders[i]=new Ro(l,o,u,c,e,t),n.push(`/z_${i}`);}else this.binders[i]=h?new Do(l.value,o):new Co(l.value,o,u,e),n.push(`/u_${i}`);s&&(this.binders[i].ignoreLut=\"none\"===s.constantOr(\"default\"),this.binders[i].checkUseTheme=!0);}this.cacheKey=n.sort().join(\"\");}getMaxValue(t){const e=this.binders[t];return e instanceof Lo||e instanceof Ro?e.maxValue:0}populatePaintArrays(t,e,r,n,i,a,s){for(const o in this.binders){const l=this.binders[o];l.context=this.context,(l instanceof Lo||l instanceof Ro||l instanceof Fo)&&l.populatePaintArray(t,e,r,n,i,a,s);}}setConstantPatternPositions(t){for(const e in this.binders){const r=this.binders[e];r instanceof Do&&r.setConstantPatternPositions(t);}}updatePaintArrays(t,e,r,n,i,a,s,o,l){let u=!1;const c=Object.keys(t),h=0!==c.length&&!o,p=h?c:e.uniqueIds;this.context.lut=i.lut;for(const o in this.binders){const c=this.binders[o];if(c.context=this.context,(c instanceof Lo||c instanceof Ro||c instanceof Fo)&&(!0===c.expression.isStateDependent||!1===c.expression.isLightConstant)){const f=i.paint.get(o);c.expression=f.value;for(const r of p){const i=t[r.toString()];e.eachPosition(r,((t,e,r)=>{const o=n.feature(t);c.updatePaintArray(e,r,o,i,a,s,l);}));}if(!h)for(const e of r.uniqueIds){const i=t[e.toString()];r.eachPosition(e,((t,e,r)=>{const o=n.feature(t);c.updatePaintArray(e,r,o,i,a,s,l);}));}u=!0;}}return u}defines(){const t=[];for(const e in this.binders){const r=this.binders[e];(r instanceof Co||r instanceof Do)&&t.push(...r.uniformNames.map((t=>`#define HAS_UNIFORM_${t}`)));}return t}getBinderAttributes(){const t=[];for(const e in this.binders){const r=this.binders[e];if(r instanceof Lo||r instanceof Ro||r instanceof Fo)for(let e=0;e<r.paintVertexAttributes.length;e++)t.push(r.paintVertexAttributes[e].name);}return t}getBinderUniforms(){const t=[];for(const e in this.binders){const r=this.binders[e];if(r instanceof Co||r instanceof Do||r instanceof Ro)for(const e of r.uniformNames)t.push(e);}return t}getPaintVertexBuffers(){return this._buffers}getUniforms(t){const e=[];for(const r in this.binders){const n=this.binders[r];if(n instanceof Co||n instanceof Do||n instanceof Ro)for(const i of n.uniformNames)e.push({name:i,property:r,binding:n.getBinding(t,i)});}return e}setUniforms(t,e,r,n,i){for(const{name:e,property:a,binding:s}of r){if(this.binders[a].checkUseTheme&&this.binders[a]instanceof Co){const t=n.get(`${a}-use-theme`);t.isConstant()&&(this.binders[a].ignoreLut=\"none\"===t.constantOr(\"default\"));}this.binders[a].setUniform(t,s,i,n.get(a),e);}}updatePaintBuffers(){this._buffers=[];for(const t in this.binders){const e=this.binders[t];(e instanceof Lo||e instanceof Ro||e instanceof Fo)&&e.paintVertexBuffer&&this._buffers.push(e.paintVertexBuffer);}}upload(t){for(const e in this.binders){const r=this.binders[e];(r instanceof Lo||r instanceof Ro||r instanceof Fo)&&r.upload(t);}this.updatePaintBuffers();}destroy(){for(const t in this.binders){const e=this.binders[t];(e instanceof Lo||e instanceof Ro||e instanceof Fo)&&e.destroy();}}}class No{constructor(t,e,r=(()=>!0)){this.programConfigurations={};for(const n of t)this.programConfigurations[n.id]=new Oo(n,e,r);this.needsUpload=!1,this._featureMap=new go,this._featureMapWithoutIds=new go,this._bufferOffset=0,this._idlessCounter=0;}populatePaintArrays(t,e,r,n,i,a,s,o){for(const r in this.programConfigurations)this.programConfigurations[r].populatePaintArrays(t,e,n,i,a,s,o);void 0!==e.id?this._featureMap.add(e.id,r,this._bufferOffset,t):(this._featureMapWithoutIds.add(this._idlessCounter,r,this._bufferOffset,t),this._idlessCounter+=1),this._bufferOffset=t,this.needsUpload=!0;}updatePaintArrays(t,e,r,n,i,a,s){for(const o of r)this.needsUpload=this.programConfigurations[o.id].updatePaintArrays(t,this._featureMap,this._featureMapWithoutIds,e,o,n,i,a,s||0)||this.needsUpload;}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const e in this.programConfigurations)this.programConfigurations[e].upload(t);this.needsUpload=!1;}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy();}}const Uo={\"text-opacity\":[\"opacity\"],\"icon-opacity\":[\"opacity\"],\"text-occlusion-opacity\":[\"occlusion_opacity\"],\"icon-occlusion-opacity\":[\"occlusion_opacity\"],\"text-color\":[\"fill_color\"],\"icon-color\":[\"fill_color\"],\"text-emissive-strength\":[\"emissive_strength\"],\"icon-emissive-strength\":[\"emissive_strength\"],\"text-halo-color\":[\"halo_color\"],\"icon-halo-color\":[\"halo_color\"],\"text-halo-blur\":[\"halo_blur\"],\"icon-halo-blur\":[\"halo_blur\"],\"text-halo-width\":[\"halo_width\"],\"icon-halo-width\":[\"halo_width\"],\"symbol-z-offset\":[\"z_offset\"],\"line-gap-width\":[\"gapwidth\"],\"line-pattern\":[\"pattern\",\"pixel_ratio\"],\"fill-pattern\":[\"pattern\",\"pixel_ratio\"],\"fill-extrusion-pattern\":[\"pattern\",\"pixel_ratio\"],\"line-dasharray\":[\"dash\"]};function jo(t,e){return Uo[t]||[t.replace(`${e}-`,\"\").replace(/-/g,\"_\")]}const qo={\"line-pattern\":{source:Ss,composite:Ss},\"fill-pattern\":{source:Ss,composite:Ss},\"fill-extrusion-pattern\":{source:Ss,composite:Ss},\"line-dasharray\":{source:Is,composite:Is}},$o={color:{source:$s,composite:Ms},number:{source:Os,composite:$s}};function Go(t,e,r){const n=qo[t];return n&&n[r]||$o[e][r]}oa(Co,\"ConstantBinder\"),oa(Do,\"PatternConstantBinder\"),oa(Lo,\"SourceExpressionBinder\"),oa(Fo,\"PatternCompositeBinder\"),oa(Ro,\"CompositeExpressionBinder\"),oa(Oo,\"ProgramConfiguration\",{omit:[\"_buffers\"]}),oa(No,\"ProgramConfigurationSet\");const Yo=Wr/Math.PI/2,Xo=5,Zo=6,Ho=16383,Wo=64,Ko=[Wo,32,16],Jo=-Yo,Qo=Yo;function tl(t,e,r,n=Yo){return r=X(r),[t*Math.sin(r)*n,-e*n,t*Math.cos(r)*n]}function el(t,e,r){return tl(Math.cos(X(t)),Math.sin(X(t)),e,r)}const rl=6371008.8,nl=2*Math.PI*rl;class il{constructor(t,e){if(isNaN(t)||isNaN(e))throw new Error(`Invalid LngLat object: (${t}, ${e})`);if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\")}wrap(){return new il(et(this.lng,-180,180),this.lat)}toArray(){return [this.lng,this.lat]}toString(){return `LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return rl*Math.acos(Math.min(i,1))}toBounds(t=0){const e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new al({lng:this.lng-r,lat:this.lat-e},{lng:this.lng+r,lat:this.lat+e})}toEcef(t){return el(this.lat,this.lng,Yo+t*Yo/rl)}static convert(t){if(t instanceof il)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new il(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&\"object\"==typeof t&&null!==t)return new il(Number(\"lng\"in t?t.lng:t.lon),Number(t.lat));throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]\")}}class al{constructor(t,e){if(t)if(e)this.setSouthWest(t).setNorthEast(e);else if(4===t.length){const e=t;this.setSouthWest([e[0],e[1]]).setNorthEast([e[2],e[3]]);}else {const e=t;this.setSouthWest(e[0]).setNorthEast(e[1]);}}setNorthEast(t){return this._ne=t instanceof il?new il(t.lng,t.lat):il.convert(t),this}setSouthWest(t){return this._sw=t instanceof il?new il(t.lng,t.lat):il.convert(t),this}extend(t){const e=this._sw,r=this._ne;let n,i;if(t instanceof il)n=t,i=t;else {if(!(t instanceof al))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(al.convert(t)):this.extend(il.convert(t)):\"object\"==typeof t&&null!==t&&t.hasOwnProperty(\"lat\")&&(t.hasOwnProperty(\"lon\")||t.hasOwnProperty(\"lng\"))?this.extend(il.convert(t)):this;if(n=t._sw,i=t._ne,!n||!i)return this}return e||r?(e.lng=Math.min(n.lng,e.lng),e.lat=Math.min(n.lat,e.lat),r.lng=Math.max(i.lng,r.lng),r.lat=Math.max(i.lat,r.lat)):(this._sw=new il(n.lng,n.lat),this._ne=new il(i.lng,i.lat)),this}getCenter(){return new il((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new il(this.getWest(),this.getNorth())}getSouthEast(){return new il(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return [this._sw.toArray(),this._ne.toArray()]}toString(){return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return !(this._sw&&this._ne)}contains(t){const{lng:e,lat:r}=il.convert(t);let n=this._sw.lng<=e&&e<=this._ne.lng;return this._sw.lng>this._ne.lng&&(n=this._sw.lng>=e&&e>=this._ne.lng),this._sw.lat<=r&&r<=this._ne.lat&&n}static convert(t){if(t)return t instanceof al?t:new al(t)}}const sl=0,ol=25.5;function ll(t){return nl*Math.cos(t*Math.PI/180)}function ul(t){return (180+t)/360}function cl(t){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function hl(t,e){return t/ll(e)}function pl(t){return 360*t-180}function fl(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}function dl(t,e){return t*ll(fl(e))}const ml=85.051129;function yl(t){return Math.cos(X(Q(t,-ml,ml)))}function gl(t,e){const r=Q(e,sl,ol),n=Math.pow(2,r);return yl(t)*nl/(512*n)}function xl(t){return 1/Math.cos(t*Math.PI/180)}function vl(t,e=0){const r=Math.exp(Math.PI*(1-(t.y+e/Wr)/(1<<t.z)*2));return 80150034*r/(r*r+1)/Wr/(1<<t.z)}class bl{constructor(t,e,r=0){this.x=+t,this.y=+e,this.z=+r;}static fromLngLat(t,e=0){const r=il.convert(t);return new bl(ul(r.lng),cl(r.lat),hl(e,r.lat))}toLngLat(){return new il(pl(this.x),fl(this.y))}toAltitude(){return dl(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/nl*xl(fl(this.y))}}function _l(t,e,r,n,i,a,s,o,l){const u=(e+n)/2,c=(r+i)/2,h=new q(u,c);o(h),function(t,e,r,n,i,a){const s=r-i,o=n-a;return Math.abs((n-e)*s-(r-t)*o)/Math.hypot(s,o)}(h.x,h.y,a.x,a.y,s.x,s.y)>=l?(_l(t,e,r,u,c,a,h,o,l),_l(t,u,c,n,i,h,s,o,l)):t.push(s);}function wl(t,e,r){let n=t[0],i=n.x,a=n.y;e(n);const s=[n];for(let o=1;o<t.length;o++){const l=t[o],{x:u,y:c}=l;e(l),_l(s,i,a,u,c,n,l,e,r),i=u,a=c,n=l;}return s}function Ml(t,e,r,n){if(n(e,r)){const i=e.add(r)._mult(.5);Ml(t,e,i,n),Ml(t,i,r,n);}else t.push(r);}function Al(t,e){let r=t[0];const n=[r];for(let i=1;i<t.length;i++){const a=t[i];Ml(n,r,a,e),r=a;}return n}const Sl=Math.pow(2,14)-1,Il=-Sl-1;function Pl(t,e){const r=Math.round(t.x*e),n=Math.round(t.y*e);return t.x=Q(r,Il,Sl),t.y=Q(n,Il,Sl),(r<t.x||r>t.x+1||n<t.y||n>t.y+1)&&ft(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\"),t}function zl(t,e,r){const n=t.loadGeometry(),i=t.extent,a=Wr/i;if(e&&r&&r.projection.isReprojectedInTileSpace){const a=1<<e.z,{scale:s,x:o,y:l,projection:u}=r,c=t=>{const r=pl((e.x+t.x/i)/a),n=fl((e.y+t.y/i)/a),c=u.project(r,n);t.x=(c.x*s-o)*i,t.y=(c.y*s-l)*i;};for(let e=0;e<n.length;e++)if(1!==t.type)n[e]=wl(n[e],c,1);else {const t=[];for(const r of n[e])r.x<0||r.x>=i||r.y<0||r.y>=i||(c(r),t.push(r));n[e]=t;}}for(const t of n)for(const e of t)Pl(e,a);return n}function El(t,e){return {type:t.type,id:t.id,properties:t.properties,geometry:e?zl(t):[]}}function kl(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2);}function Tl(t,e,r){const n=16384;t.emplaceBack(e.x,e.y,e.z,r[0]*n,r[1]*n,r[2]*n);}class Bl{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.fqid)),this.index=t.index,this.hasPattern=!1,this.projection=t.projection,this.layoutVertexArray=new xs,this.indexArray=new Ls,this.segments=new po,this.programConfigurations=new No(t.layers,{zoom:t.zoom,lut:t.lut}),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}updateFootprints(t,e){}populate(t,e,r,n){const i=this.layers[0],a=[];let s=null;\"circle\"===i.type&&(s=i.layout.get(\"circle-sort-key\"));for(const{feature:e,id:i,index:o,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=El(e,t);if(!this.layers[0]._featureFilter.filter(new Va(this.zoom),u,r))continue;const c=s?s.evaluate(u,{},r):void 0,h={id:i,properties:e.properties,type:e.type,sourceLayerIndex:l,index:o,geometry:t?u.geometry:zl(e,r,n),patterns:{},sortKey:c};a.push(h);}s&&a.sort(((t,e)=>t.sortKey-e.sortKey));let o=null;\"globe\"===n.projection.name&&(this.globeExtVertexArray=new Ps,o=n.projection);for(const n of a){const{geometry:i,index:a,sourceLayerIndex:s}=n,l=t[a].feature;this.addFeature(n,i,a,e.availableImages,r,o,e.brightness),e.featureIndex.insert(l,i,a,s,this.index);}}update(t,e,r,n,i,a,s){this.programConfigurations.updatePaintArrays(t,e,i,r,n,a,s);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,co.members),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.globeExtVertexArray&&(this.globeExtVertexBuffer=t.createVertexBuffer(this.globeExtVertexArray,ho.members))),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy());}addFeature(t,e,r,n,i,a,s){for(const r of e)for(const e of r){const r=e.x,n=e.y;if(r<0||r>=Wr||n<0||n>=Wr)continue;if(a){const t=a.projectTilePoint(r,n,i),e=a.upVector(i,r,n),s=this.globeExtVertexArray;Tl(s,t,e),Tl(s,t,e),Tl(s,t,e),Tl(s,t,e);}const s=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),o=s.vertexLength;kl(this.layoutVertexArray,r,n,-1,-1),kl(this.layoutVertexArray,r,n,1,-1),kl(this.layoutVertexArray,r,n,1,1),kl(this.layoutVertexArray,r,n,-1,1),this.indexArray.emplaceBack(o,o+1,o+2),this.indexArray.emplaceBack(o,o+2,o+3),s.vertexLength+=4,s.primitiveLength+=2;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n,i,s);}}function Vl(t,e){for(let r=0;r<t.length;r++)if(jl(e,t[r]))return !0;for(let r=0;r<e.length;r++)if(jl(t,e[r]))return !0;return !!Rl(t,e)}function Cl(t,e,r){return !!jl(t,e)||!!Ol(e,t,r)}function Dl(t,e){if(1===t.length)return Ul(e,t[0]);for(let r=0;r<e.length;r++){const n=e[r];for(let e=0;e<n.length;e++)if(jl(t,n[e]))return !0}for(let r=0;r<t.length;r++)if(Ul(e,t[r]))return !0;for(let r=0;r<e.length;r++)if(Rl(t,e[r]))return !0;return !1}function Ll(t,e,r){if(t.length>1){if(Rl(t,e))return !0;for(let n=0;n<e.length;n++)if(Ol(e[n],t,r))return !0}for(let n=0;n<t.length;n++)if(Ol(t[n],e,r))return !0;return !1}function Rl(t,e){if(0===t.length||0===e.length)return !1;for(let r=0;r<t.length-1;r++){const n=t[r],i=t[r+1];for(let t=0;t<e.length-1;t++)if(Fl(n,i,e[t],e[t+1]))return !0}return !1}function Fl(t,e,r,n){return dt(t,r,n)!==dt(e,r,n)&&dt(t,e,r)!==dt(t,e,n)}function Ol(t,e,r){const n=r*r;if(1===e.length)return t.distSqr(e[0])<n;for(let r=1;r<e.length;r++)if(Nl(t,e[r-1],e[r])<n)return !0;return !1}function Nl(t,e,r){const n=e.distSqr(r);if(0===n)return t.distSqr(e);const i=((t.x-e.x)*(r.x-e.x)+(t.y-e.y)*(r.y-e.y))/n;return t.distSqr(i<0?e:i>1?r:r.sub(e)._mult(i)._add(e))}function Ul(t,e){let r,n,i,a=!1;for(let s=0;s<t.length;s++){r=t[s];for(let t=0,s=r.length-1;t<r.length;s=t++)n=r[t],i=r[s],n.y>e.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);}return a}function jl(t,e){let r=!1;for(let n=0,i=t.length-1;n<t.length;i=n++){const a=t[n],s=t[i];a.y>e.y!=s.y>e.y&&e.x<(s.x-a.x)*(e.y-a.y)/(s.y-a.y)+a.x&&(r=!r);}return r}function ql(t,e,r,n,i){for(const a of t)if(e<=a.x&&r<=a.y&&n>=a.x&&i>=a.y)return !0;const a=[new q(e,r),new q(e,i),new q(n,i),new q(n,r)];if(t.length>2)for(const e of a)if(jl(t,e))return !0;for(let e=0;e<t.length-1;e++)if($l(t[e],t[e+1],a))return !0;return !1}function $l(t,e,r){const n=r[0],i=r[2];if(t.x<n.x&&e.x<n.x||t.x>i.x&&e.x>i.x||t.y<n.y&&e.y<n.y||t.y>i.y&&e.y>i.y)return !1;const a=dt(t,e,r[0]);return a!==dt(t,e,r[1])||a!==dt(t,e,r[2])||a!==dt(t,e,r[3])}function Gl(t,e,r,n,i,a){let s=e.y-t.y,o=t.x-e.x;if(a=a||0){const t=s*s+o*o;if(0===t)return !0;const e=Math.sqrt(t);s/=e,o/=e;}return !((r.x-t.x)*s+(r.y-t.y)*o-a<0||(n.x-t.x)*s+(n.y-t.y)*o-a<0||(i.x-t.x)*s+(i.y-t.y)*o-a<0)}function Yl(t,e,r,n,i,a,s){return !(Gl(t,e,n,i,a,s)||Gl(e,r,n,i,a,s)||Gl(r,t,n,i,a,s)||Gl(n,i,t,e,r,s)||Gl(i,a,t,e,r,s)||Gl(a,n,t,e,r,s))}function Xl(t,e,r){const n=e.paint.get(t).value;return \"constant\"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Zl(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Hl(t,e,r,n,i){if(!e[0]&&!e[1])return t;const a=q.convert(e)._mult(i);\"viewport\"===r&&a._rotate(-n);const s=[];for(let e=0;e<t.length;e++)s.push(t[e].sub(a));return s}function Wl(t,e,r,n){const i=q.convert(t)._mult(n);return \"viewport\"===e&&i._rotate(-r),i}let Kl,Jl;oa(Bl,\"CircleBucket\",{omit:[\"layers\"]});var Ql,tu={exports:{}},eu=(Ql||(Ql=1,function(t,e){!function(t){function e(t,e,n){var i=r(256*t,256*(e=Math.pow(2,n)-e-1),n),a=r(256*(t+1),256*(e+1),n);return i[0]+\",\"+i[1]+\",\"+a[0]+\",\"+a[1]}function r(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return [t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}t.getURL=function(t,r,n,i,a,s){return s=s||{},t+\"?\"+[\"bbox=\"+e(n,i,a),\"format=\"+(s.format||\"image/png\"),\"service=\"+(s.service||\"WMS\"),\"version=\"+(s.version||\"1.1.1\"),\"request=\"+(s.request||\"GetMap\"),\"srs=\"+(s.srs||\"EPSG:3857\"),\"width=\"+(s.width||256),\"height=\"+(s.height||256),\"layers=\"+r].join(\"&\")},t.getTileBBox=e,t.getMercCoords=r,Object.defineProperty(t,\"__esModule\",{value:!0});}(e);}(0,tu.exports)),tu.exports);class ru{constructor(t,e,r){this.z=t,this.x=e,this.y=r,this.key=au(0,t,t,e,r);}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,e){const r=eu.getTileBBox(this.x,this.y,this.z),n=function(t,e,r){let n,i=\"\";for(let a=t;a>0;a--)n=1<<a-1,i+=(e&n?1:0)+(r&n?2:0);return i}(this.z,this.x,this.y);return t[(this.x+this.y)%t.length].replace(\"{prefix}\",(this.x%16).toString(16)+(this.y%16).toString(16)).replace(/{z}/g,String(this.z)).replace(/{x}/g,String(this.x)).replace(/{y}/g,String(\"tms\"===e?Math.pow(2,this.z)-this.y-1:this.y)).replace(\"{quadkey}\",n).replace(\"{bbox-epsg-3857}\",r)}toString(){return `${this.z}/${this.x}/${this.y}`}}class nu{constructor(t,e){this.wrap=t,this.canonical=e,this.key=au(t,e.z,e.z,e.x,e.y);}}class iu{constructor(t,e,r,n,i){this.overscaledZ=t,this.wrap=e,this.canonical=new ru(r,+n,+i),this.key=0===e&&t===r?this.canonical.key:au(e,t,r,n,i);}equals(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)}scaledTo(t){const e=this.canonical.z-t;return t>this.canonical.z?new iu(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new iu(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)}calculateScaledKey(t,e=!0){if(this.overscaledZ===t&&e)return this.key;if(t>this.canonical.z)return au(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y);{const r=this.canonical.z-t;return au(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)}}isChildOf(t){if(t.wrap!==this.wrap)return !1;const e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ<this.overscaledZ&&t.canonical.z<this.canonical.z&&t.canonical.x===this.canonical.x>>e&&t.canonical.y===this.canonical.y>>e}children(t){if(this.overscaledZ>=t)return [new iu(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return [new iu(e,this.wrap,e,r,n),new iu(e,this.wrap,e,r+1,n),new iu(e,this.wrap,e,r,n+1),new iu(e,this.wrap,e,r+1,n+1)]}isLessThan(t){return this.wrap<t.wrap||!(this.wrap>t.wrap)&&(this.overscaledZ<t.overscaledZ||!(this.overscaledZ>t.overscaledZ)&&(this.canonical.x<t.canonical.x||!(this.canonical.x>t.canonical.x)&&this.canonical.y<t.canonical.y))}wrapped(){return new iu(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(t){return new iu(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return Math.pow(2,this.overscaledZ-this.canonical.z)}toUnwrapped(){return new nu(this.wrap,this.canonical)}toString(){return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}}function au(t,e,r,n,i){const a=1<<Math.min(r,22);let s=a*(i%a)+n%a;return t&&r<22&&(s+=a*a*((t<0?-2*t-1:2*t)%(1<<2*(22-r)))),16*(32*s+r)+(e-r)}const su=[t=>{let e=t.canonical.x-1,r=t.wrap;return e<0&&(e=(1<<t.canonical.z)-1,r--),new iu(t.overscaledZ,r,t.canonical.z,e,t.canonical.y)},t=>{let e=t.canonical.x+1,r=t.wrap;return e===1<<t.canonical.z&&(e=0,r++),new iu(t.overscaledZ,r,t.canonical.z,e,t.canonical.y)},t=>new iu(t.overscaledZ,t.wrap,t.canonical.z,t.canonical.x,(0===t.canonical.y?1<<t.canonical.z:t.canonical.y)-1),t=>new iu(t.overscaledZ,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y===(1<<t.canonical.z)-1?0:t.canonical.y+1)];oa(ru,\"CanonicalTileID\"),oa(iu,\"OverscaledTileID\",{omit:[\"projMatrix\",\"expandedProjMatrix\"]});const ou=ys([{type:\"Float32\",name:\"a_globe_pos\",components:3},{type:\"Float32\",name:\"a_uv\",components:2}]),{members:lu}=ou,uu=ys([{name:\"a_pos_3\",components:3,type:\"Int16\"}]);var cu=ys([{name:\"a_pos\",type:\"Int16\",components:2}]);class hu{constructor(t,e){this.pos=t,this.dir=e;}intersectsPlane(t,e,r){const n=O.vec3.dot(e,this.dir);if(Math.abs(n)<1e-6)return !1;const i=((t[0]-this.pos[0])*e[0]+(t[1]-this.pos[1])*e[1]+(t[2]-this.pos[2])*e[2])/n;return r[0]=this.pos[0]+this.dir[0]*i,r[1]=this.pos[1]+this.dir[1]*i,r[2]=this.pos[2]+this.dir[2]*i,!0}closestPointOnSphere(t,e,r){if(O.vec3.equals(this.pos,t)||0===e)return r[0]=r[1]=r[2]=0,!1;const[n,i,a]=this.dir,s=this.pos[0]-t[0],o=this.pos[1]-t[1],l=this.pos[2]-t[2],u=n*n+i*i+a*a,c=2*(s*n+o*i+l*a),h=c*c-4*u*(s*s+o*o+l*l-e*e);if(h<0){const t=Math.max(-c/2,0),u=s+n*t,h=o+i*t,p=l+a*t,f=Math.hypot(u,h,p);return r[0]=u*e/f,r[1]=h*e/f,r[2]=p*e/f,!1}{const t=(-c-Math.sqrt(h))/(2*u);if(t<0){const t=Math.hypot(s,o,l);return r[0]=s*e/t,r[1]=o*e/t,r[2]=l*e/t,!1}return r[0]=s+n*t,r[1]=o+i*t,r[2]=l+a*t,!0}}}class pu{constructor(t,e,r,n,i){this.TL=t,this.TR=e,this.BR=r,this.BL=n,this.horizon=i;}static fromInvProjectionMatrix(t,e,r){const n=[-1,1,1],i=[1,1,1],a=[1,-1,1],s=[-1,-1,1],o=O.vec3.transformMat4(n,n,t),l=O.vec3.transformMat4(i,i,t),u=O.vec3.transformMat4(a,a,t),c=O.vec3.transformMat4(s,s,t);return new pu(o,l,u,c,e/r)}}function fu(t,e,r){let n=1/0,i=-1/0;const a=[];for(const s of t){O.vec3.sub(a,s,e);const t=O.vec3.dot(a,r);n=Math.min(n,t),i=Math.max(i,t);}return [n,i]}function du(t,e){let r=!0;for(let n=0;n<t.planes.length;n++){const i=t.planes[n];let a=0;for(let t=0;t<e.length;t++)a+=O.vec3.dot(i,e[t])+i[3]>=0;if(0===a)return 0;a!==e.length&&(r=!1);}return r?2:1}function mu(t,e){for(const r of t.projections){const n=fu(e,t.points[0],r.axis);if(r.projection[1]<n[0]||r.projection[0]>n[1])return 0}return 1}function yu(t,e){let r=0;const n=[0,0,0,0];for(let i=0;i<t.length;i++)n[0]=t[i][0],n[1]=t[i][1],n[2]=t[i][2],n[3]=1,O.vec4.dot(n,e)>=0&&r++;return r}class gu{constructor(t,e){this.points=t||new Array(8).fill([0,0,0]),this.planes=e||new Array(6).fill([0,0,0,0]),this.bounds=xu.fromPoints(this.points),this.projections=[],this.frustumEdges=[O.vec3.sub([],this.points[2],this.points[3]),O.vec3.sub([],this.points[0],this.points[3]),O.vec3.sub([],this.points[4],this.points[0]),O.vec3.sub([],this.points[5],this.points[1]),O.vec3.sub([],this.points[6],this.points[2]),O.vec3.sub([],this.points[7],this.points[3])];for(const t of this.frustumEdges){const e=[0,-t[2],t[1]],r=[t[2],0,-t[0]];this.projections.push({axis:e,projection:fu(this.points,this.points[0],e)}),this.projections.push({axis:r,projection:fu(this.points,this.points[0],r)});}}static fromInvProjectionMatrix(t,e,r,n){const i=Math.pow(2,r),a=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((r=>{const a=O.vec4.transformMat4([],r,t),s=1/a[3]/e*i;return O.vec4.mul(a,a,[s,s,n?1/a[3]:s,s])})),s=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((t=>{const e=O.vec3.sub([],a[t[0]],a[t[1]]),r=O.vec3.sub([],a[t[2]],a[t[1]]),n=O.vec3.normalize([],O.vec3.cross([],e,r)),i=-O.vec3.dot(n,a[t[1]]);return n.concat(i)})),o=[];for(let t=0;t<a.length;t++)o.push([a[t][0],a[t][1],a[t][2]]);return new gu(o,s)}intersectsPrecise(t,e,r){for(let r=0;r<e.length;r++)if(!yu(t,e[r]))return 0;for(let e=0;e<this.planes.length;e++)if(!yu(t,this.planes[e]))return 0;for(const e of r)for(const r of this.frustumEdges){const n=O.vec3.cross([],e,r),i=O.vec3.length(n);if(0===i)continue;O.vec3.scale(n,n,1/i);const a=fu(this.points,this.points[0],n),s=fu(t,this.points[0],n);if(a[0]>s[1]||s[0]>a[1])return 0}return 1}containsPoint(t){for(const e of this.planes){const r=e[3];if(O.vec3.dot([e[0],e[1],e[2]],t)+r<0)return !1}return !0}}class xu{static fromPoints(t){const e=[1/0,1/0,1/0],r=[-1/0,-1/0,-1/0];for(const n of t)O.vec3.min(e,e,n),O.vec3.max(r,r,n);return new xu(e,r)}static fromTileIdAndHeight(t,e,r){const n=1<<t.canonical.z,i=t.canonical.x,a=t.canonical.y;return new xu([i/n,a/n,e],[(i+1)/n,(a+1)/n,r])}static applyTransform(t,e){const r=t.getCorners();for(let t=0;t<r.length;++t)O.vec3.transformMat4(r[t],r[t],e);return xu.fromPoints(r)}static applyTransformFast(t,e){const r=[e[12],e[13],e[14]],n=[...r];for(let i=0;i<3;i++)for(let a=0;a<3;a++){const s=e[4*a+i],o=s*t.min[a],l=s*t.max[a];r[i]+=Math.min(o,l),n[i]+=Math.max(o,l);}return new xu(r,n)}static projectAabbCorners(t,e){const r=t.getCorners();for(let t=0;t<r.length;++t)O.vec3.transformMat4(r[t],r[t],e);return r}constructor(t,e){this.min=t,this.max=e,this.center=O.vec3.scale([],O.vec3.add([],this.min,this.max),.5);}quadrant(t){const e=[t%2==0,t<2],r=O.vec3.clone(this.min),n=O.vec3.clone(this.max);for(let t=0;t<e.length;t++)r[t]=e[t]?this.min[t]:this.center[t],n[t]=e[t]?this.center[t]:this.max[t];return n[2]=this.max[2],new xu(r,n)}distanceX(t){return Math.max(Math.min(this.max[0],t[0]),this.min[0])-t[0]}distanceY(t){return Math.max(Math.min(this.max[1],t[1]),this.min[1])-t[1]}distanceZ(t){return Math.max(Math.min(this.max[2],t[2]),this.min[2])-t[2]}getCorners(){const t=this.min,e=this.max;return [[t[0],t[1],t[2]],[e[0],t[1],t[2]],[e[0],e[1],t[2]],[t[0],e[1],t[2]],[t[0],t[1],e[2]],[e[0],t[1],e[2]],[e[0],e[1],e[2]],[t[0],e[1],e[2]]]}intersects(t){return this.intersectsAabb(t.bounds)?du(t,this.getCorners()):0}intersectsFlat(t){return this.intersectsAabb(t.bounds)?du(t,[[this.min[0],this.min[1],0],[this.max[0],this.min[1],0],[this.max[0],this.max[1],0],[this.min[0],this.max[1],0]]):0}intersectsPrecise(t,e){return e||this.intersects(t)?mu(t,this.getCorners()):0}intersectsPreciseFlat(t,e){return e||this.intersectsFlat(t)?mu(t,[[this.min[0],this.min[1],0],[this.max[0],this.min[1],0],[this.max[0],this.max[1],0],[this.min[0],this.max[1],0]]):0}intersectsAabb(t){for(let e=0;e<3;++e)if(this.min[e]>t.max[e]||t.min[e]>this.max[e])return !1;return !0}intersectsAabbXY(t){return !(this.min[0]>t.max[0]||t.min[0]>this.max[0]||this.min[1]>t.max[1]||t.min[1]>this.max[1])}encapsulate(t){for(let e=0;e<3;e++)this.min[e]=Math.min(this.min[e],t.min[e]),this.max[e]=Math.max(this.max[e],t.max[e]);}encapsulatePoint(t){for(let e=0;e<3;e++)this.min[e]=Math.min(this.min[e],t[e]),this.max[e]=Math.max(this.max[e],t[e]);}closestPoint(t){return [Math.max(Math.min(this.max[0],t[0]),this.min[0]),Math.max(Math.min(this.max[1],t[1]),this.min[1]),Math.max(Math.min(this.max[2],t[2]),this.min[2])]}}function vu(t){return t*Yo/rl}oa(xu,\"Aabb\");const bu=[new xu([Jo,Jo,Jo],[Qo,Qo,Qo]),new xu([Jo,Jo,Jo],[0,0,Qo]),new xu([0,Jo,Jo],[Qo,0,Qo]),new xu([Jo,0,Jo],[0,Qo,Qo]),new xu([0,0,Jo],[Qo,Qo,Qo])];function _u(t,e,r,n=!0){const i=O.vec3.scale([],t._camera.position,t.worldSize),a=[e,r,1,1];O.vec4.transformMat4(a,a,t.pixelMatrixInverse),O.vec4.scale(a,a,1/a[3]);const s=O.vec3.sub([],a,i),o=O.vec3.normalize([],s),l=t.globeMatrix,u=[l[12],l[13],l[14]],c=O.vec3.sub([],u,i),h=O.vec3.length(c),p=O.vec3.normalize([],c),f=t.worldSize/(2*Math.PI),d=O.vec3.dot(p,o),m=Math.asin(f/h);if(m<Math.acos(d)){if(!n)return null;const t=[],e=[];O.vec3.scale(t,o,h/d),O.vec3.normalize(e,O.vec3.sub(e,t,c)),O.vec3.normalize(o,O.vec3.add(o,c,O.vec3.scale(o,e,Math.tan(m)*h)));}const y=[];new hu(i,o).closestPointOnSphere(u,f,y);const g=O.vec3.normalize([],bt(l,0)),x=O.vec3.normalize([],bt(l,1)),v=O.vec3.normalize([],bt(l,2)),b=O.vec3.dot(g,y),_=O.vec3.dot(x,y),w=O.vec3.dot(v,y),M=Z(Math.asin(-_/f));let A=Z(Math.atan2(b,w));A=t.center.lng+function(t,e){const r=(e-t+180)%360-180;return r<-180?r+360:r}(t.center.lng,A);const S=ul(A),I=Q(cl(M),0,1);return new bl(S,I)}class wu{constructor(t,e,r){this.a=O.vec3.sub([],t,r),this.b=O.vec3.sub([],e,r),this.center=r;const n=O.vec3.normalize([],this.a),i=O.vec3.normalize([],this.b);this.angle=Math.acos(O.vec3.dot(n,i));}}function Mu(t,e){if(0===t.angle)return null;let r;return r=0===t.a[e]?1/t.angle*.5*Math.PI:1/t.angle*Math.atan(t.b[e]/t.a[e]/Math.sin(t.angle)-1/Math.tan(t.angle)),r<0||r>1?null:function(t,e,r,n){const i=Math.sin(r);return t*(Math.sin((1-n)*r)/i)+e*(Math.sin(n*r)/i)}(t.a[e],t.b[e],t.angle,Q(r,0,1))+t.center[e]}function Au(t){if(t.z<=1)return bu[t.z+2*t.y+t.x];const e=Eu(zu(t));return xu.fromPoints(e)}function Su(t,e,r){return O.vec3.scale(t,t,1-r),O.vec3.scaleAndAdd(t,t,e,r)}function Iu(t,e,r){for(const n of t)O.vec3.transformMat4(n,n,e),O.vec3.scale(n,n,r);}function Pu(t,e,r,n){const i=e/t.worldSize,a=t.globeMatrix;if(r.z<=1){const t=Au(r).getCorners();return Iu(t,a,i),xu.fromPoints(t)}const s=zu(r,n),o=Eu(s,Yo+vu(t._tileCoverLift));Iu(o,a,i);const l=Number.MAX_VALUE,u=[-l,-l,-l],c=[l,l,l];if(s.contains(t.center)){for(const t of o)O.vec3.min(c,c,t),O.vec3.max(u,u,t);u[2]=0;const e=t.point,r=[e.x*i,e.y*i,0];return O.vec3.min(c,c,r),O.vec3.max(u,u,r),new xu(c,u)}if(t._tileCoverLift>0){for(const t of o)O.vec3.min(c,c,t),O.vec3.max(u,u,t);return new xu(c,u)}const h=[a[12]*i,a[13]*i,a[14]*i],p=s.getCenter(),f=Q(t.center.lat,-ml,ml),d=Q(p.lat,-ml,ml),m=ul(t.center.lng),y=cl(f);let g=m-ul(p.lng);const x=y-cl(d);g>.5?g-=1:g<-.5&&(g+=1);let v=0;if(Math.abs(g)>Math.abs(x))v=g>=0?1:3;else {v=x>=0?0:2;const t=[a[4]*i,a[5]*i,a[6]*i],e=-Math.sin(X(x>=0?s.getSouth():s.getNorth()))*Yo;O.vec3.scaleAndAdd(h,h,t,e);}const b=o[v],_=o[(v+1)%4],w=new wu(b,_,h),M=[Mu(w,0)||b[0],Mu(w,1)||b[1],Mu(w,2)||b[2]],A=Fu(t.zoom);if(A>0){const n=function({x:t,y:e,z:r},n,i,a,s){const o=1/(1<<r);let l=t*o,u=l+o,c=e*o,h=c+o,p=0;const f=(l+u)/2-a;return f>.5?p=-1:f<-.5&&(p=1),l=((l+p)*n-(a*=n))*i+a,u=((u+p)*n-a)*i+a,c=(c*n-(s*=n))*i+s,h=(h*n-s)*i+s,[[l,h,0],[u,h,0],[u,c,0],[l,c,0]]}(r,e,t._pixelsPerMercatorPixel,m,y);for(let t=0;t<o.length;t++)Su(o[t],n[t],A);const i=O.vec3.add([],n[v],n[(v+1)%4]);O.vec3.scale(i,i,.5),Su(M,i,A);}for(const t of o)O.vec3.min(c,c,t),O.vec3.max(u,u,t);return c[2]=Math.min(b[2],_[2]),O.vec3.min(c,c,M),O.vec3.max(u,u,M),new xu(c,u)}function zu({x:t,y:e,z:r},n=!1){const i=1/(1<<r),a=new il(pl(t*i),e===(1<<r)-1&&n?-90:fl((e+1)*i)),s=new il(pl((t+1)*i),0===e&&n?90:fl(e*i));return new al(a,s)}function Eu(t,e=Yo){const r=X(t.getNorth()),n=X(t.getSouth()),i=Math.cos(r),a=Math.cos(n),s=Math.sin(r),o=Math.sin(n),l=t.getWest(),u=t.getEast();return [tl(a,o,l,e),tl(a,o,u,e),tl(i,s,u,e),tl(i,s,l,e)]}function ku(t,e,r,n){const i=1<<r.z,a=(t/Wr+r.x)/i;return el(fl((e/Wr+r.y)/i),pl(a),n)}function Tu({min:t,max:e}){return Ho/Math.max(e[0]-t[0],e[1]-t[1],e[2]-t[2])}const Bu=new Float64Array(16);function Vu(t){const e=Tu(t),r=O.mat4.fromScaling(Bu,[e,e,e]);return O.mat4.translate(r,r,O.vec3.negate([],t.min))}function Cu(t){const e=O.mat4.fromTranslation(Bu,t.min),r=1/Tu(t);return O.mat4.scale(e,e,[r,r,r])}function Du(t){const e=Wr/(2*Math.PI);return t/(2*Math.PI)/e}function Lu(t,e){return Wr/(512*Math.pow(2,t))*Tu(Au(e))}function Ru(t,e,r,n,i){const a=Du(r),s=[t,e,-r/(2*Math.PI)],o=O.mat4.identity(new Float64Array(16));return O.mat4.translate(o,o,s),O.mat4.scale(o,o,[a,a,a]),O.mat4.rotateX(o,o,X(-i)),O.mat4.rotateY(o,o,X(-n)),o}function Fu(t){return tt(Xo,Zo,t)}function Ou(t,e){const r=el(e.lat,e.lng),n=function(t){const e=el(t._center.lat,t._center.lng),r=O.vec3.fromValues(0,1,0);let n=O.vec3.cross([],r,e);const i=O.mat4.fromRotation([],-t.angle,e);n=O.vec3.transformMat4(n,n,i),O.mat4.fromRotation(i,-t._pitch,n);const a=O.vec3.normalize([],e);return O.vec3.scale(a,a,vu(t.cameraToCenterDistance/t.pixelsPerMeter)),O.vec3.transformMat4(a,a,i),O.vec3.add([],e,a)}(t),i=O.vec3.subtract([],n,r);return O.vec3.angle(i,r)}function Nu(t,e){return Ou(t,e)>Math.PI/2*1.01}const Uu=X(85),ju=Math.cos(Uu),qu=Math.sin(Uu),$u=O.mat4.create(),Gu=t=>{const e=[];return \"map\"===t.paint.get(\"circle-pitch-alignment\")&&e.push(\"PITCH_WITH_MAP\"),\"map\"===t.paint.get(\"circle-pitch-scale\")&&e.push(\"SCALE_WITH_MAP\"),e};function Yu(t,e,r,n,i,a,s,o,l){if(a&&t.queryGeometry.isAboveHorizon)return !1;a&&(l*=t.pixelToTileUnitsFactor);const u=t.tileID.canonical,c=r.projection.upVectorScale(u,r.center.lat,r.worldSize).metersToTile;for(const h of e)for(const e of h){const h=e.add(o),p=i&&r.elevation?r.elevation.exaggeration()*i.getElevationAt(h.x,h.y,!0):0,f=r.projection.projectTilePoint(h.x,h.y,u);if(p>0){const t=r.projection.upVector(u,h.x,h.y);f.x+=t[0]*c*p,f.y+=t[1]*c*p,f.z+=t[2]*c*p;}const d=a?h:Xu(f.x,f.y,f.z,n),m=a?t.tilespaceRays.map((t=>Wu(t,p))):t.queryGeometry.screenGeometry,y=O.vec4.transformMat4([],[f.x,f.y,f.z,1],n);if(!s&&a?l*=y[3]/r.cameraToCenterDistance:s&&!a&&(l*=r.cameraToCenterDistance/y[3]),a){const t=fl((e.y/Wr+u.y)/(1<<u.z));l/=r.projection.pixelsPerMeter(t,1)/hl(1,t);}if(Cl(m,d,l))return !0}return !1}function Xu(t,e,r,n){const i=O.vec4.transformMat4([],[t,e,r,1],n);return new q(i[0]/i[3],i[1]/i[3])}const Zu=O.vec3.fromValues(0,0,0),Hu=O.vec3.fromValues(0,0,1);function Wu(t,e){const r=O.vec3.create();return Zu[2]=e,t.intersectsPlane(Zu,Hu,r),new q(r[0],r[1])}class Ku extends Bl{}let Ju,Qu,tc,ec;function rc(t,{width:e,height:r},n,i){if(i){if(i instanceof Uint8ClampedArray)i=new Uint8Array(i.buffer);else if(i.length!==e*r*n)throw new RangeError(\"mismatched image size\")}else i=new Uint8Array(e*r*n);return t.width=e,t.height=r,t.data=i,t}function nc(t,e,r){const{width:n,height:i}=e;n===t.width&&i===t.height||(ic(t,e,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,n),height:Math.min(t.height,i)},r,null),t.width=n,t.height=i,t.data=e.data);}function ic(t,e,r,n,i,a,s,o){if(0===i.width||0===i.height)return e;if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError(\"out of range source coordinates for image copy\");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError(\"out of range destination coordinates for image copy\");const l=t.data,u=e.data,c=4===a&&o;for(let o=0;o<i.height;o++){const h=((r.y+o)*t.width+r.x)*a,p=((n.y+o)*e.width+n.x)*a;if(c)for(let t=0;t<i.width;t++){const e=h+t*a+3,r=p+t*a;u[r+0]=255,u[r+1]=255,u[r+2]=255,u[r+3]=l[e];}else if(s)for(let t=0;t<i.width;t++){const e=h+t*a,r=p+t*a,n=l[e+3],i=new Ie(l[e+0]/255*n,l[e+1]/255*n,l[e+2]/255*n,n).toRenderColor(s).toArray();u[r+0]=i[0],u[r+1]=i[1],u[r+2]=i[2],u[r+3]=i[3];}else for(let t=0;t<i.width*a;t++)u[p+t]=l[h+t];}return e}oa(Ku,\"HeatmapBucket\",{omit:[\"layers\"]});class ac{constructor(t,e){rc(this,t,1,e);}resize(t){nc(this,new ac(t),1);}clone(){return new ac({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,e,r,n,i){ic(t,e,r,n,i,1,null);}}class sc{constructor(t,e){rc(this,t,4,e);}resize(t){nc(this,new sc(t),4);}replace(t,e){e?this.data.set(t):this.data=t instanceof Uint8ClampedArray?new Uint8Array(t.buffer):t;}clone(){return new sc({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,e,r,n,i,a,s){ic(t,e,r,n,i,4,a,s);}}class oc{constructor(t,e){this.width=t.width,this.height=t.height,this.data=e instanceof Uint8Array?new Float32Array(e.buffer):e;}}function lc(t){const e={},r=t.resolution||256,n=t.clips?t.clips.length:1,i=t.image||new sc({width:r,height:n}),a=(r,n,a)=>{e[t.evaluationKey]=a;const s=t.expression.evaluate(e);s&&(i.data[r+n+0]=Math.floor(255*s.r/s.a),i.data[r+n+1]=Math.floor(255*s.g/s.a),i.data[r+n+2]=Math.floor(255*s.b/s.a),i.data[r+n+3]=Math.floor(255*s.a));};if(t.clips)for(let e=0,i=0;e<n;++e,i+=4*r)for(let n=0,s=0;n<r;n++,s+=4){const o=n/(r-1),{start:l,end:u}=t.clips[e];a(i,s,l*(1-o)+u*o);}else for(let t=0,e=0;t<r;t++,e+=4)a(0,e,t/(r-1));return i}oa(ac,\"AlphaImage\"),oa(sc,\"RGBAImage\");const uc=ys([{name:\"a_pos\",components:2,type:\"Int16\"}],4),{members:cc}=uc;function hc(t,e,r=2){const n=e&&e.length,i=n?e[0]*r:t.length;let a=pc(t,0,i,r,!0);const s=[];if(!a||a.next===a.prev)return s;let o,l,u;if(n&&(a=function(t,e,r,n){const i=[];for(let r=0,a=e.length;r<a;r++){const s=pc(t,e[r]*n,r<a-1?e[r+1]*n:t.length,n,!1);s===s.next&&(s.steiner=!0),i.push(Mc(s));}i.sort(vc);for(let t=0;t<i.length;t++)r=bc(i[t],r);return r}(t,e,a,r)),t.length>80*r){o=1/0,l=1/0;let e=-1/0,n=-1/0;for(let a=r;a<i;a+=r){const r=t[a],i=t[a+1];r<o&&(o=r),i<l&&(l=i),r>e&&(e=r),i>n&&(n=i);}u=Math.max(e-o,n-l),u=0!==u?32767/u:0;}return dc(a,s,r,o,l,u,0),s}function pc(t,e,r,n,i){let a;if(i===function(t,e,r,n){let i=0;for(let a=e,s=r-n;a<r;a+=n)i+=(t[s]-t[a])*(t[a+1]+t[s+1]),s=a;return i}(t,e,r,n)>0)for(let i=e;i<r;i+=n)a=Vc(i/n|0,t[i],t[i+1],a);else for(let i=r-n;i>=e;i-=n)a=Vc(i/n|0,t[i],t[i+1],a);return a&&Pc(a,a.next)&&(Cc(a),a=a.next),a}function fc(t,e){if(!t)return t;e||(e=t);let r,n=t;do{if(r=!1,n.steiner||!Pc(n,n.next)&&0!==Ic(n.prev,n,n.next))n=n.next;else {if(Cc(n),n=e=n.prev,n===n.next)break;r=!0;}}while(r||n!==e);return e}function dc(t,e,r,n,i,a,s){if(!t)return;!s&&a&&function(t,e,r,n){let i=t;do{0===i.z&&(i.z=wc(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){let e,r=1;do{let n,i=t;t=null;let a=null;for(e=0;i;){e++;let s=i,o=0;for(let t=0;t<r&&(o++,s=s.nextZ,s);t++);let l=r;for(;o>0||l>0&&s;)0!==o&&(0===l||!s||i.z<=s.z)?(n=i,i=i.nextZ,o--):(n=s,s=s.nextZ,l--),a?a.nextZ=n:t=n,n.prevZ=a,a=n;i=s;}a.nextZ=null,r*=2;}while(e>1)}(i);}(t,n,i,a);let o=t;for(;t.prev!==t.next;){const l=t.prev,u=t.next;if(a?yc(t,n,i,a):mc(t))e.push(l.i,t.i,u.i),Cc(t),t=u.next,o=u.next;else if((t=u)===o){s?1===s?dc(t=gc(fc(t),e),e,r,n,i,a,2):2===s&&xc(t,e,r,n,i,a):dc(fc(t),e,r,n,i,a,1);break}}}function mc(t){const e=t.prev,r=t,n=t.next;if(Ic(e,r,n)>=0)return !1;const i=e.x,a=r.x,s=n.x,o=e.y,l=r.y,u=n.y,c=i<a?i<s?i:s:a<s?a:s,h=o<l?o<u?o:u:l<u?l:u,p=i>a?i>s?i:s:a>s?a:s,f=o>l?o>u?o:u:l>u?l:u;let d=n.next;for(;d!==e;){if(d.x>=c&&d.x<=p&&d.y>=h&&d.y<=f&&Ac(i,o,a,l,s,u,d.x,d.y)&&Ic(d.prev,d,d.next)>=0)return !1;d=d.next;}return !0}function yc(t,e,r,n){const i=t.prev,a=t,s=t.next;if(Ic(i,a,s)>=0)return !1;const o=i.x,l=a.x,u=s.x,c=i.y,h=a.y,p=s.y,f=o<l?o<u?o:u:l<u?l:u,d=c<h?c<p?c:p:h<p?h:p,m=o>l?o>u?o:u:l>u?l:u,y=c>h?c>p?c:p:h>p?h:p,g=wc(f,d,e,r,n),x=wc(m,y,e,r,n);let v=t.prevZ,b=t.nextZ;for(;v&&v.z>=g&&b&&b.z<=x;){if(v.x>=f&&v.x<=m&&v.y>=d&&v.y<=y&&v!==i&&v!==s&&Ac(o,c,l,h,u,p,v.x,v.y)&&Ic(v.prev,v,v.next)>=0)return !1;if(v=v.prevZ,b.x>=f&&b.x<=m&&b.y>=d&&b.y<=y&&b!==i&&b!==s&&Ac(o,c,l,h,u,p,b.x,b.y)&&Ic(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}for(;v&&v.z>=g;){if(v.x>=f&&v.x<=m&&v.y>=d&&v.y<=y&&v!==i&&v!==s&&Ac(o,c,l,h,u,p,v.x,v.y)&&Ic(v.prev,v,v.next)>=0)return !1;v=v.prevZ;}for(;b&&b.z<=x;){if(b.x>=f&&b.x<=m&&b.y>=d&&b.y<=y&&b!==i&&b!==s&&Ac(o,c,l,h,u,p,b.x,b.y)&&Ic(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}return !0}function gc(t,e){let r=t;do{const n=r.prev,i=r.next.next;!Pc(n,i)&&zc(n,r,r.next,i)&&Tc(n,i)&&Tc(i,n)&&(e.push(n.i,r.i,i.i),Cc(r),Cc(r.next),r=t=i),r=r.next;}while(r!==t);return fc(r)}function xc(t,e,r,n,i,a){let s=t;do{let t=s.next.next;for(;t!==s.prev;){if(s.i!==t.i&&Sc(s,t)){let o=Bc(s,t);return s=fc(s,s.next),o=fc(o,o.next),dc(s,e,r,n,i,a,0),void dc(o,e,r,n,i,a,0)}t=t.next;}s=s.next;}while(s!==t)}function vc(t,e){return t.x-e.x}function bc(t,e){const r=function(t,e){let r=e;const n=t.x,i=t.y;let a,s=-1/0;do{if(i<=r.y&&i>=r.next.y&&r.next.y!==r.y){const t=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(t<=n&&t>s&&(s=t,a=r.x<r.next.x?r:r.next,t===n))return a}r=r.next;}while(r!==e);if(!a)return null;const o=a,l=a.x,u=a.y;let c=1/0;r=a;do{if(n>=r.x&&r.x>=l&&n!==r.x&&Ac(i<u?n:s,i,l,u,i<u?s:n,i,r.x,r.y)){const e=Math.abs(i-r.y)/(n-r.x);Tc(r,t)&&(e<c||e===c&&(r.x>a.x||r.x===a.x&&_c(a,r)))&&(a=r,c=e);}r=r.next;}while(r!==o);return a}(t,e);if(!r)return e;const n=Bc(r,t);return fc(n,n.next),fc(r,r.next)}function _c(t,e){return Ic(t.prev,t,e.prev)<0&&Ic(e.next,t,t.next)<0}function wc(t,e,r,n,i){return (t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Mc(t){let e=t,r=t;do{(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;}while(e!==t);return r}function Ac(t,e,r,n,i,a,s,o){return (i-s)*(e-o)>=(t-s)*(a-o)&&(t-s)*(n-o)>=(r-s)*(e-o)&&(r-s)*(a-o)>=(i-s)*(n-o)}function Sc(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&zc(r,r.next,t,e))return !0;r=r.next;}while(r!==t);return !1}(t,e)&&(Tc(t,e)&&Tc(e,t)&&function(t,e){let r=t,n=!1;const i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;}while(r!==t);return n}(t,e)&&(Ic(t.prev,t,e.prev)||Ic(t,e.prev,e))||Pc(t,e)&&Ic(t.prev,t,t.next)>0&&Ic(e.prev,e,e.next)>0)}function Ic(t,e,r){return (e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Pc(t,e){return t.x===e.x&&t.y===e.y}function zc(t,e,r,n){const i=kc(Ic(t,e,r)),a=kc(Ic(t,e,n)),s=kc(Ic(r,n,t)),o=kc(Ic(r,n,e));return i!==a&&s!==o||!(0!==i||!Ec(t,r,e))||!(0!==a||!Ec(t,n,e))||!(0!==s||!Ec(r,t,n))||!(0!==o||!Ec(r,e,n))}function Ec(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function kc(t){return t>0?1:t<0?-1:0}function Tc(t,e){return Ic(t.prev,t,t.next)<0?Ic(t,e,t.next)>=0&&Ic(t,t.prev,e)>=0:Ic(t,e,t.prev)<0||Ic(t,t.next,e)<0}function Bc(t,e){const r=Dc(t.i,t.x,t.y),n=Dc(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function Vc(t,e,r,n){const i=Dc(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Cc(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ);}function Dc(t,e,r){return {i:t,x:e,y:r,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function Lc(t,e){const r=t.length;if(r<=1)return [t];const n=[];let i,a;for(let e=0;e<r;e++){const r=mt(t[e]);0!==r&&(t[e].area=Math.abs(r),void 0===a&&(a=r<0),a===r<0?(i&&n.push(i),i=[t[e]]):i.push(t[e]));}if(i&&n.push(i),e>1)for(let t=0;t<n.length;t++)n[t].length<=e||(vr(n[t],e,1,n[t].length-1,Rc),n[t]=n[t].slice(0,e));return n}function Rc(t,e){return e.area-t.area}function Fc(t,e){if(!t)return null;const r=\"string\"==typeof t?t:t.getPrimary().id;e[r]||(e[r]=[]);const n=tr.from(t).getPrimary();return e[r].push(n),n.serialize()}function Oc(t,e,r){const n=r.patternDependencies;let i=!1;for(const r of e){const e=r.paint.get(`${t}-pattern`);e.isConstant()||(i=!0),Fc(e.constantOr(null),n)&&(i=!0);}return i}function Nc(t,e,r,n,i){const a=i.patternDependencies;for(const s of e){const e=s.paint.get(`${t}-pattern`).value;if(\"constant\"!==e.kind){let t=e.evaluate({zoom:n},r,{},i.availableImages);t=t&&t.name?t.name:t;const o=Fc(t,a);o&&(r.patterns[s.id]=o);}}return r}class Uc{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.fqid)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new xs,this.indexArray=new Ls,this.indexArray2=new Ts,this.programConfigurations=new No(t.layers,{zoom:t.zoom,lut:t.lut}),this.segments=new po,this.segments2=new po,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.projection=t.projection;}updateFootprints(t,e){}populate(t,e,r,n){this.hasPattern=Oc(\"fill\",this.layers,e);const i=this.layers[0].layout.get(\"fill-sort-key\"),a=[];for(const{feature:s,id:o,index:l,sourceLayerIndex:u}of t){const t=this.layers[0]._featureFilter.needGeometry,c=El(s,t);if(!this.layers[0]._featureFilter.filter(new Va(this.zoom),c,r))continue;const h=i?i.evaluate(c,{},r,e.availableImages):void 0,p={id:o,properties:s.properties,type:s.type,sourceLayerIndex:u,index:l,geometry:t?c.geometry:zl(s,r,n),patterns:{},sortKey:h};a.push(p);}i&&a.sort(((t,e)=>t.sortKey-e.sortKey));for(const n of a){const{geometry:i,index:a,sourceLayerIndex:s}=n;if(this.hasPattern){const t=Nc(\"fill\",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,a,r,{},e.availableImages,e.brightness);e.featureIndex.insert(t[a].feature,i,a,s,this.index);}}update(t,e,r,n,i,a,s){this.programConfigurations.updatePaintArrays(t,e,i,r,n,a,s);}addFeatures(t,e,r,n,i,a){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r,n,a);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,cc),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());}addFeature(t,e,r,n,i,a=[],s){for(const t of Lc(e,500)){let e=0;for(const r of t)e+=r.length;const r=this.segments.prepareSegment(e,this.layoutVertexArray,this.indexArray),n=r.vertexLength,i=[],a=[];for(const e of t){if(0===e.length)continue;e!==t[0]&&a.push(i.length/2);const r=this.segments2.prepareSegment(e.length,this.layoutVertexArray,this.indexArray2),n=r.vertexLength;this.layoutVertexArray.emplaceBack(e[0].x,e[0].y),this.indexArray2.emplaceBack(n+e.length-1,n),i.push(e[0].x),i.push(e[0].y);for(let t=1;t<e.length;t++)this.layoutVertexArray.emplaceBack(e[t].x,e[t].y),this.indexArray2.emplaceBack(n+t-1,n+t),i.push(e[t].x),i.push(e[t].y);r.vertexLength+=e.length,r.primitiveLength+=e.length;}const s=hc(i,a);for(let t=0;t<s.length;t+=3)this.indexArray.emplaceBack(n+s[t],n+s[t+1],n+s[t+2]);r.vertexLength+=e,r.primitiveLength+=s.length/3;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,a,n,s);}}let jc,qc,$c,Gc;oa(Uc,\"FillBucket\",{omit:[\"layers\",\"patternFeatures\"]});class Yc{constructor(t,e,r,n){if(this.triangleCount=e.length/3,this.min=new q(0,0),this.max=new q(0,0),this.xScale=0,this.yScale=0,this.cellsX=0,this.cellsY=0,this.cells=[],this.payload=[],0===this.triangleCount||0===t.length)return;const[i,a]=[t[0].clone(),t[0].clone()];for(let e=1;e<t.length;++e){const r=t[e];i.x=Math.min(i.x,r.x),i.y=Math.min(i.y,r.y),a.x=Math.max(a.x,r.x),a.y=Math.max(a.y,r.y);}if(n){const t=Math.ceil(Math.max(a.x-i.x,a.y-i.y)/n);r=Math.max(r,t);}if(0===r)return;this.min=i,this.max=a;const s=this.max.sub(this.min);s.x=Math.max(s.x,1),s.y=Math.max(s.y,1);const o=Math.max(s.x,s.y)/r;this.cellsX=Math.max(1,Math.ceil(s.x/o)),this.cellsY=Math.max(1,Math.ceil(s.y/o)),this.xScale=1/o,this.yScale=1/o;const l=[];for(let r=0;r<this.triangleCount;r++){const n=t[e[3*r+0]].sub(this.min),i=t[e[3*r+1]].sub(this.min),a=t[e[3*r+2]].sub(this.min),s=Xc(Math.floor(Math.min(n.x,i.x,a.x)),this.xScale,this.cellsX),u=Xc(Math.floor(Math.max(n.x,i.x,a.x)),this.xScale,this.cellsX),c=Xc(Math.floor(Math.min(n.y,i.y,a.y)),this.yScale,this.cellsY),h=Xc(Math.floor(Math.max(n.y,i.y,a.y)),this.yScale,this.cellsY),p=new q(0,0),f=new q(0,0),d=new q(0,0),m=new q(0,0);for(let t=c;t<=h;++t){p.y=f.y=t*o,d.y=m.y=(t+1)*o;for(let e=s;e<=u;++e)p.x=d.x=e*o,f.x=m.x=(e+1)*o,(Yl(n,i,a,p,f,m)||Yl(n,i,a,p,m,d))&&l.push({cellIdx:t*this.cellsX+e,triIdx:r});}}if(0===l.length)return;l.sort(((t,e)=>t.cellIdx-e.cellIdx||t.triIdx-e.triIdx));let u=0;for(;u<l.length;){const t=l[u].cellIdx,e={start:this.payload.length,len:0};for(;u<l.length&&l[u].cellIdx===t;)++e.len,this.payload.push(l[u++].triIdx);this.cells[t]=e;}}_lazyInitLookup(){this.lookup||(this.lookup=new Uint8Array(Math.ceil(this.triangleCount/8))),this.lookup.fill(0);}queryPoint(t,e){if(0===this.triangleCount||0===this.cells.length)return;if(t.x>this.max.x||this.min.x>t.x||t.y>this.max.y||this.min.y>t.y)return;const r=Xc(t.x-this.min.x,this.xScale,this.cellsX),n=Xc(t.y-this.min.y,this.yScale,this.cellsY),i=this.cells[n*this.cellsX+r];if(i){this._lazyInitLookup();for(let t=0;t<i.len;t++){const r=this.payload[i.start+t],n=Math.floor(r/8),a=1<<r%8;if(!(this.lookup[n]&a)&&(this.lookup[n]|=a,e.push(r),e.length===this.triangleCount))return}}}query(t,e,r){if(0===this.triangleCount||0===this.cells.length)return;if(t.x>this.max.x||this.min.x>e.x)return;if(t.y>this.max.y||this.min.y>e.y)return;this._lazyInitLookup();const n=Xc(t.x-this.min.x,this.xScale,this.cellsX),i=Xc(e.x-this.min.x,this.xScale,this.cellsX),a=Xc(t.y-this.min.y,this.yScale,this.cellsY),s=Xc(e.y-this.min.y,this.yScale,this.cellsY);for(let t=a;t<=s;t++)for(let e=n;e<=i;e++){const n=this.cells[t*this.cellsX+e];if(n)for(let t=0;t<n.len;t++){const e=this.payload[n.start+t],i=Math.floor(e/8),a=1<<e%8;if(!(this.lookup[i]&a)&&(this.lookup[i]|=a,r.push(e),r.length===this.triangleCount))return}}}}function Xc(t,e,r){return Math.max(0,Math.min(r-1,Math.floor(t*e)))}oa(Yc,\"TriangleGridIndex\");class Zc{constructor(t){this.zoom=t.zoom,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.fqid)),this.index=t.index,this.hasPattern=!1,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.footprints=[];}updateFootprints(t,e){for(const r of this.footprints)e.push({footprint:r,id:t});}populate(t,e,r,n){const i=[];for(const{feature:e,id:a,index:s,sourceLayerIndex:o}of t){const t=this.layers[0]._featureFilter.needGeometry,l=El(e,t);if(!this.layers[0]._featureFilter.filter(new Va(this.zoom),l,r))continue;const u={id:a,properties:e.properties,type:e.type,sourceLayerIndex:o,index:s,geometry:t?l.geometry:zl(e,r,n),patterns:{}};i.push(u);}for(const n of i){const{geometry:i,index:a,sourceLayerIndex:s}=n;this.addFeature(n,i,a,r,{},e.availableImages,e.brightness),e.featureIndex.insert(t[a].feature,i,a,s,this.index);}}isEmpty(){return 0===this.footprints.length}uploadPending(){return !1}upload(t){}update(t,e,r,n,i,a,s){}destroy(){}addFeature(t,e,r,n,i,a=[],s){for(const t of Lc(e,2)){const e=[],r=[],n=[],i=new q(1/0,1/0),a=new q(-1/0,-1/0);for(const s of t)if(0!==s.length){s!==t[0]&&n.push(r.length/2);for(let t=0;t<s.length;t++)r.push(s[t].x),r.push(s[t].y),e.push(s[t]),i.x=Math.min(i.x,s[t].x),i.y=Math.min(i.y,s[t].y),a.x=Math.max(a.x,s[t].x),a.y=Math.max(a.y,s[t].y);}const s=hc(r,n),o=new Yc(e,s,8,256);this.footprints.push({vertices:e,indices:s,grid:o,min:i,max:a});}}}oa(Zc,\"ClipBucket\",{omit:[\"layers\"]});const Hc=ys([{name:\"a_pos_normal_ed\",components:4,type:\"Int16\"}]),Wc=ys([{name:\"a_pos_end\",components:4,type:\"Int16\"},{name:\"a_angular_offset_factor\",components:1,type:\"Int16\"}]),Kc=ys([{name:\"a_centroid_pos\",components:2,type:\"Uint16\"}]),Jc=ys([{name:\"a_join_normal_inside\",components:3,type:\"Int16\"}]),Qc=ys([{name:\"a_hidden_by_landmark\",components:1,type:\"Uint8\"}]),th=ys([{name:\"a_pos_3\",components:3,type:\"Int16\"},{name:\"a_pos_normal_3\",components:3,type:\"Int16\"}]),{members:eh}=Hc;var rh,nh,ih,ah,sh,oh,lh,uh={};function ch(){if(nh)return rh;nh=1;var t=j();function e(t,e,n,i,a){this.properties={},this.extent=n,this.type=0,this._pbf=t,this._geometry=-1,this._keys=i,this._values=a,t.readFields(r,this,e);}function r(t,e,r){1==t?e.id=r.readVarint():2==t?function(t,e){for(var r=t.readVarint()+t.pos;t.pos<r;){var n=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[n]=i;}}(r,e):3==t?e.type=r.readVarint():4==t&&(e._geometry=r.pos);}function n(t){for(var e,r,n=0,i=0,a=t.length,s=a-1;i<a;s=i++)n+=((r=t[s]).x-(e=t[i]).x)*(e.y+r.y);return n}return rh=e,e.types=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"],e.prototype.loadGeometry=function(){var e=this._pbf;e.pos=this._geometry;for(var r,n=e.readVarint()+e.pos,i=1,a=0,s=0,o=0,l=[];e.pos<n;){if(a<=0){var u=e.readVarint();i=7&u,a=u>>3;}if(a--,1===i||2===i)s+=e.readSVarint(),o+=e.readSVarint(),1===i&&(r&&l.push(r),r=[]),r.push(new t(s,o));else {if(7!==i)throw new Error(\"unknown command \"+i);r&&r.push(r[0].clone());}}return r&&l.push(r),l},e.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,s=1/0,o=-1/0,l=1/0,u=-1/0;t.pos<e;){if(n<=0){var c=t.readVarint();r=7&c,n=c>>3;}if(n--,1===r||2===r)(i+=t.readSVarint())<s&&(s=i),i>o&&(o=i),(a+=t.readSVarint())<l&&(l=a),a>u&&(u=a);else if(7!==r)throw new Error(\"unknown command \"+r)}return [s,l,o,u]},e.prototype.toGeoJSON=function(t,r,i){var a,s,o=this.extent*Math.pow(2,i),l=this.extent*t,u=this.extent*r,c=this.loadGeometry(),h=e.types[this.type];function p(t){for(var e=0;e<t.length;e++){var r=t[e];t[e]=[360*(r.x+l)/o-180,360/Math.PI*Math.atan(Math.exp((180-360*(r.y+u)/o)*Math.PI/180))-90];}}switch(this.type){case 1:var f=[];for(a=0;a<c.length;a++)f[a]=c[a][0];p(c=f);break;case 2:for(a=0;a<c.length;a++)p(c[a]);break;case 3:for(c=function(t){var e=t.length;if(e<=1)return [t];for(var r,i,a=[],s=0;s<e;s++){var o=n(t[s]);0!==o&&(void 0===i&&(i=o<0),i===o<0?(r&&a.push(r),r=[t[s]]):r.push(t[s]));}return r&&a.push(r),a}(c),a=0;a<c.length;a++)for(s=0;s<c[a].length;s++)p(c[a][s]);}1===c.length?c=c[0]:h=\"Multi\"+h;var d={type:\"Feature\",geometry:{type:h,coordinates:c},properties:this.properties};return \"id\"in this&&(d.id=this.id),d},rh}function hh(){if(ah)return ih;ah=1;var t=ch();function e(t,e){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(r,this,e),this.length=this._features.length;}function r(t,e,r){15===t?e.version=r.readVarint():1===t?e.name=r.readString():5===t?e.extent=r.readVarint():2===t?e._features.push(r.pos):3===t?e._keys.push(r.readString()):4===t&&e._values.push(function(t){for(var e=null,r=t.readVarint()+t.pos;t.pos<r;){var n=t.readVarint()>>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null;}return e}(r));}return ih=e,e.prototype.feature=function(e){if(e<0||e>=this._features.length)throw new Error(\"feature index out of bounds\");this._pbf.pos=this._features[e];var r=this._pbf.readVarint()+this._pbf.pos;return new t(this._pbf,r,this.extent,this._keys,this._values)},ih}function ph(){return lh||(lh=1,uh.VectorTile=function(){if(oh)return sh;oh=1;var t=hh();function e(e,r,n){if(3===e){var i=new t(n,n.readVarint()+n.pos);i.length&&(r[i.name]=i);}}return sh=function(t,r){this.layers=t.readFields(e,{},r);},sh}(),uh.VectorTileFeature=ch(),uh.VectorTileLayer=hh()),uh}var fh=ph();class dh extends q{constructor(t,e,r){super(t,e),this.z=r;}}class mh extends dh{constructor(t,e,r,n){super(t,e,r),this.w=n;}}function yh(t,e,r,n){const i=[],a=0===n?(t,e,r,n,i,a)=>{t.push(new q(a,r+(a-e)/(n-e)*(i-r)));}:(t,e,r,n,i,a)=>{t.push(new q(e+(a-r)/(i-r)*(n-e),a));};for(const s of t){const t=[];for(const i of s){if(i.length<=2)continue;const s=[];for(let t=0;t<i.length-1;t++){const o=i[t].x,l=i[t].y,u=i[t+1].x,c=i[t+1].y,h=0===n?o:l,p=0===n?u:c;h<e?p>e&&a(s,o,l,u,c,e):h>r?p<r&&a(s,o,l,u,c,r):s.push(i[t]),p<e&&h>=e&&a(s,o,l,u,c,e),p>r&&h<=r&&a(s,o,l,u,c,r);}let o=i[i.length-1];const l=0===n?o.x:o.y;l>=e&&l<=r&&s.push(o),s.length&&(o=s[s.length-1],s[0].x===o.x&&s[0].y===o.y||s.push(s[0]),t.push(s));}t.length&&i.push(t);}return i}function gh(t,e,r,n){const i=\"x\"===r?\"y\":\"x\",a=(n-t[r])/(e[r]-t[r]);t[i]=t[i]+(e[i]-t[i])*a,t[r]=n,t.hasOwnProperty(\"z\")&&(t.z=ze(t.z,e.z,a)),t.hasOwnProperty(\"w\")&&(t.w=ze(t.w,e.w,a));}function xh(t,e,r,n){const i=r,a=n;for(const r of [\"x\",\"y\"]){let n=t,s=e;n[r]>=s[r]&&(n=e,s=t),n[r]<i&&s[r]>i&&gh(n,s,r,i),n[r]<a&&s[r]>a&&gh(s,n,r,a);}}const vh=Number.MAX_SAFE_INTEGER;function bh(t,e,r,n){return t.order<e||t.order===vh||!(t.clipMask&r)||function(t,e){return 0!==e.length&&void 0===e.find((e=>e===t))}(n,t.clipScope)}function _h(t,e){return t.x-e.x||t.y-e.y}function wh(t,e){return 0===_h(t.min,e.min)&&0===_h(t.max,e.max)}function Mh(t,e){return !(t.min.x>e.max.x||t.max.x<e.min.x||t.min.y>e.max.y||t.max.y<e.min.y)}function Ah(t,e){if(t.length!==e.length)return !1;for(let r=0;r<t.length;r++)if(t[r].sourceId!==e[r].sourceId||!wh(t[r],e[r])||t[r].order!==e[r].order||t[r].clipMask!==e[r].clipMask||!$(t[r].clipScope,e[r].clipScope))return !1;return !0}function Sh(t,e,r){const n=1/Wr,i=1/(1<<r.canonical.z),a=(e.x*n+r.canonical.x)*i+r.wrap,s=(e.y*n+r.canonical.y)*i;return {min:new q((t.x*n+r.canonical.x)*i+r.wrap,(t.y*n+r.canonical.y)*i),max:new q(a,s)}}function Ih(t,e,r){const n=1<<r.canonical.z,i=((e.x-r.wrap)*n-r.canonical.x)*Wr,a=(e.y*n-r.canonical.y)*Wr;return {min:new q(((t.x-r.wrap)*n-r.canonical.x)*Wr,(t.y*n-r.canonical.y)*Wr),max:new q(i,a)}}function Ph(t,e,r,n,i,a,s){const o=t.indices,l=t.vertices,u=[];for(let c=n;c<n+i;c+=3){const n=e[r[c+0]+a],i=e[r[c+1]+a],h=e[r[c+2]+a],p=Math.min(n.x,i.x,h.x),f=Math.max(n.x,i.x,h.x),d=Math.min(n.y,i.y,h.y),m=Math.max(n.y,i.y,h.y);u.length=0,t.grid.query(new q(p,d),new q(f,m),u);for(let t=0;t<u.length;t++){const e=u[t];if(Yl(l[o[3*e+0]],l[o[3*e+1]],l[o[3*e+2]],n,i,h,s))return !0}}return !1}function zh(t,e,r,n){if(!t||!r)return !1;let i=t.vertices;if(!e.canonical.equals(n.canonical)||e.wrap!==n.wrap){if(r.vertices.length<t.vertices.length)return zh(r,n,t,e);const a=e.canonical,s=n.canonical,o=Math.pow(2,s.z-a.z);i=t.vertices.map((t=>new q((t.x+a.x*Wr)*o-s.x*Wr,(t.y+a.y*Wr)*o-s.y*Wr)));}return Ph(r,i,t.indices,0,t.indices.length,0,0)}function Eh(t,e,r,n){const i=Math.pow(2,n.z-r.z);return new q((t+r.x*Wr)*i-n.x*Wr,(e+r.y*Wr)*i-n.y*Wr)}function kh(t,e){const r=[];e.grid.queryPoint(t,r);const n=e.indices,i=e.vertices;for(let e=0;e<r.length;e++){const a=r[e];if(jl([i[n[3*a+0]],i[n[3*a+1]],i[n[3*a+2]]],t))return !0}return !1}const Th=[new q(0,0),new q(Wr,0),new q(Wr,Wr),new q(0,Wr)];function Bh(t,e){const r=[];let n=[];if(!e||t.length<2)return [t];if(2===t.length)return $l(t[0],t[1],Th)?[t]:[];for(let e=0;e<t.length+2;e++){const i=t[e%t.length],a=t[(e+1)%t.length],s=$l(0===e?t[t.length-1]:t[(e-1)%t.length],i,Th),o=$l(i,a,Th),l=s||o;l&&n.push(i),l&&o||n.length>0&&(n.length>1&&r.push(n),n=[]);}return n.length>1&&r.push(n),r}const Vh=fh.VectorTileFeature.types,Ch=[\"fill-extrusion-base\",\"fill-extrusion-height\",\"fill-extrusion-color\",\"fill-extrusion-pattern\",\"fill-extrusion-flood-light-wall-radius\",\"fill-extrusion-line-width\",\"fill-extrusion-emissive-strength\"],Dh=[\"fill-extrusion-flood-light-ground-radius\"],Lh=Math.pow(2,13),Rh=Math.pow(2,15)-1,Fh=new q(0,1),Oh=2147483648;function Nh(t,e,r,n,i,a,s,o){t.emplaceBack((e<<1)+s,(r<<1)+a,(Math.floor(n*Lh)<<1)+i,Math.round(o));}function Uh(t,e,r){t.emplaceBack(e.x*Wr,e.y*Wr,r?1:0);}function jh(t,e,r,n,i,a){t.emplaceBack(e.x,e.y,(r.x<<1)+n,(r.y<<1)+i,a);}function qh(t,e,r){const n=16384;t.emplaceBack(e.x,e.y,e.z,r[0]*n,r[1]*n,r[2]*n);}class $h{constructor(){this.vertexOffset=0,this.vertexCount=0,this.indexOffset=0,this.indexCount=0;}}class Gh{constructor(){this.centroidXY=new q(0,0),this.vertexArrayOffset=0,this.vertexCount=0,this.groundVertexArrayOffset=0,this.groundVertexCount=0,this.flags=0,this.footprintSegIdx=-1,this.footprintSegLen=0,this.polygonSegIdx=-1,this.polygonSegLen=0,this.min=new q(Number.MAX_VALUE,Number.MAX_VALUE),this.max=new q(-Number.MAX_VALUE,-Number.MAX_VALUE),this.height=0;}span(){return new q(this.max.x-this.min.x,this.max.y-this.min.y)}}class Yh{constructor(){this.acc=new q(0,0),this.accCount=0,this.centroidDataIndex=0;}startRing(t,e){t.min.x===Number.MAX_VALUE&&(t.min.x=t.max.x=e.x,t.min.y=t.max.y=e.y);}appendEdge(t,e,r){this.accCount++,this.acc._add(e);let n=!!this.borders;e.x<t.min.x?(t.min.x=e.x,n=!0):e.x>t.max.x&&(t.max.x=e.x,n=!0),e.y<t.min.y?(t.min.y=e.y,n=!0):e.y>t.max.y&&(t.max.y=e.y,n=!0),((0===e.x||e.x===Wr)&&e.x===r.x)!=((0===e.y||e.y===Wr)&&e.y===r.y)&&this.processBorderOverlap(e,r),n&&this.checkBorderIntersection(e,r);}checkBorderIntersection(t,e){e.x<0!=t.x<0&&this.addBorderIntersection(0,ze(e.y,t.y,(0-e.x)/(t.x-e.x))),e.x>Wr!=t.x>Wr&&this.addBorderIntersection(1,ze(e.y,t.y,(Wr-e.x)/(t.x-e.x))),e.y<0!=t.y<0&&this.addBorderIntersection(2,ze(e.x,t.x,(0-e.y)/(t.y-e.y))),e.y>Wr!=t.y>Wr&&this.addBorderIntersection(3,ze(e.x,t.x,(Wr-e.y)/(t.y-e.y)));}addBorderIntersection(t,e){this.borders||(this.borders=[[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE],[Number.MAX_VALUE,-Number.MAX_VALUE]]);const r=this.borders[t];e<r[0]&&(r[0]=e),e>r[1]&&(r[1]=e);}processBorderOverlap(t,e){if(t.x===e.x){if(t.y===e.y)return;const r=0===t.x?0:1;this.addBorderIntersection(r,e.y),this.addBorderIntersection(r,t.y);}else {const r=0===t.y?2:3;this.addBorderIntersection(r,e.x),this.addBorderIntersection(r,t.x);}}centroid(){return 0===this.accCount?new q(0,0):new q(Math.floor(Math.max(0,this.acc.x)/this.accCount),Math.floor(Math.max(0,this.acc.y)/this.accCount))}intersectsCount(){return this.borders?this.borders.reduce(((t,e)=>t+ +(e[0]!==Number.MAX_VALUE)),0):0}}function Xh(t,e){const r=t.add(e)._unit(),n=Q(t.x*r.x+t.y*r.y,-1,1);var i,a,s;return s=Math.acos(n),Math.min(4,Math.max(-4,Math.tan(s)))/4*Rh*((i=t).x*(a=e).y-i.y*a.x<0?-1:1)}const Zh=[t=>t.x<0,t=>t.x>Wr,t=>t.y<0,t=>t.y>Wr];function Hh(t,e,r,n){const i=[4];if(0===n)return i;r._mult(n);const a=t.sub(r),s=e.sub(r),o=[t,e,a,s];for(let t=0;t<4;t++)for(const e of o)if(Zh[t](e)){i.push(t);break}return i}class Wh{constructor(t){this.vertexArray=new _s,this.indexArray=new Ls,this.programConfigurations=new No(t.layers,{zoom:t.zoom,lut:t.lut},(t=>Dh.includes(t))),this._segments=new po,this.hiddenByLandmarkVertexArray=new Ws,this._segmentToGroundQuads={},this._segmentToGroundQuads[0]=[],this._segmentToRegionTriCounts={},this._segmentToRegionTriCounts[0]=[0,0,0,0,0],this.regionSegments={},this.regionSegments[4]=new po;}getDefaultSegment(){return this.regionSegments[4]}hasData(){return 0!==this.vertexArray.length}addData(t,e,r,n=!1){const i=t.length;if(i>2){let a=Math.max(0,this._segments.get().length-1);const s=this._segments._prepareSegment(4*i,this.vertexArray.length,2*this._segmentToGroundQuads[a].length);let o;a!==this._segments.get().length-1&&(a++,this._segmentToGroundQuads[a]=[],this._segmentToRegionTriCounts[a]=[0,0,0,0,0]);{const e=t[0],r=t[1];o=Xh(e.sub(t[i-1])._perp()._unit(),r.sub(e)._perp()._unit());}for(let l=0;l<i;l++){const u=l===i-1?0:l+1,c=t[l],h=t[u],p=t[u===i-1?0:u+1],f=h.sub(c)._perp()._unit(),d=Xh(f,p.sub(h)._perp()._unit()),m=o,y=d;if(ep(c,h,e)||n&&rp(c,e)&&rp(h,e)){o=d;continue}const g=s.vertexLength;jh(this.vertexArray,c,h,1,1,m),jh(this.vertexArray,c,h,1,0,m),jh(this.vertexArray,c,h,0,1,y),jh(this.vertexArray,c,h,0,0,y),s.vertexLength+=4;const x=Hh(c,h,f,r);for(const t of x)this._segmentToGroundQuads[a].push({id:g,region:t}),this._segmentToRegionTriCounts[a][t]+=2,s.primitiveLength+=2;o=d;}}}prepareBorderSegments(){if(!this.hasData())return;const t=this._segments.get(),e=t.length;for(let t=0;t<e;t++)this._segmentToGroundQuads[t].sort(((t,e)=>t.region-e.region));for(let r=0;r<e;r++){const e=this._segmentToGroundQuads[r],n=t[r],i=this._segmentToRegionTriCounts[r];i.reduce(((t,e)=>t+e),0);let a=0;for(let t=0;t<=4;t++){const e=i[t];if(0!==e){let r=this.regionSegments[t];r||(r=this.regionSegments[t]=new po);const i={vertexOffset:n.vertexOffset,primitiveOffset:n.primitiveOffset+a,vertexLength:n.vertexLength,primitiveLength:e};r.get().push(i);}a+=e;}for(let t=0;t<e.length;t++){const r=e[t].id;this.indexArray.emplaceBack(r,r+1,r+3),this.indexArray.emplaceBack(r,r+3,r+2);}}this._segmentToGroundQuads=null,this._segmentToRegionTriCounts=null,this._segments.destroy(),this._segments=null;}addPaintPropertiesData(t,e,r,n,i,a){this.hasData()&&this.programConfigurations.populatePaintArrays(this.vertexArray.length,t,e,r,n,i,a);}upload(t){this.hasData()&&(this.vertexBuffer=t.createVertexBuffer(this.vertexArray,Wc.members),this.indexBuffer=t.createIndexBuffer(this.indexArray));}uploadPaintProperties(t){this.hasData()&&this.programConfigurations.upload(t);}update(t,e,r,n,i,a,s){this.hasData()&&this.programConfigurations.updatePaintArrays(t,e,r,n,i,a,s);}updateHiddenByLandmark(t){if(!this.hasData())return;const e=t.groundVertexCount+t.groundVertexArrayOffset;if(0===t.groundVertexCount)return;const r=t.flags&Oh?1:0;for(let n=t.groundVertexArrayOffset;n<e;++n)this.hiddenByLandmarkVertexArray.emplace(n,r);this._needsHiddenByLandmarkUpdate=!0;}uploadHiddenByLandmark(t){this.hasData()&&this._needsHiddenByLandmarkUpdate&&(!this.hiddenByLandmarkVertexBuffer&&this.hiddenByLandmarkVertexArray.length>0?this.hiddenByLandmarkVertexBuffer=t.createVertexBuffer(this.hiddenByLandmarkVertexArray,Qc.members,!0):this.hiddenByLandmarkVertexBuffer&&this.hiddenByLandmarkVertexBuffer.updateData(this.hiddenByLandmarkVertexArray),this._needsHiddenByLandmarkUpdate=!1);}destroy(){if(this.vertexBuffer){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.hiddenByLandmarkVertexBuffer&&this.hiddenByLandmarkVertexBuffer.destroy(),this._segments&&this._segments.destroy(),this.programConfigurations.destroy();for(let t=0;t<=4;t++){const e=this.regionSegments[t];e&&e.destroy();}}}}class Kh{constructor(t){this.zoom=t.zoom,this.canonical=t.canonical,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.fqid)),this.index=t.index,this.hasPattern=!1,this.edgeRadius=0,this.projection=t.projection,this.activeReplacements=[],this.replacementUpdateTime=0,this.centroidData=[],this.footprintIndices=new Ls,this.footprintVertices=new xs,this.footprintSegments=[],this.layoutVertexArray=new bs,this.centroidVertexArray=new oo,this.wallVertexArray=new uo,this.indexArray=new Ls,this.programConfigurations=new No(t.layers,{zoom:t.zoom,lut:t.lut},(t=>Ch.includes(t))),this.segments=new po,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.groundEffect=new Wh(t),this.maxHeight=0,this.partLookup={},this.triangleSubSegments=[],this.polygonSegments=[];}updateFootprints(t,e){}populate(t,e,r,n){this.features=[],this.hasPattern=Oc(\"fill-extrusion\",this.layers,e),this.featuresOnBorder=[],this.borderFeatureIndices=[[],[],[],[]],this.borderDoneWithNeighborZ=[-1,-1,-1,-1],this.selfDEMTileTimestamp=Number.MAX_VALUE,this.borderDEMTileTimestamp=[Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE],this.tileToMeter=vl(r),this.edgeRadius=this.layers[0].layout.get(\"fill-extrusion-edge-radius\")/this.tileToMeter,this.wallMode=0!==this.layers[0].paint.get(\"fill-extrusion-line-width\").constantOr(1);for(const{feature:i,id:a,index:s,sourceLayerIndex:o}of t){const t=this.layers[0]._featureFilter.needGeometry,l=El(i,t);if(!this.layers[0]._featureFilter.filter(new Va(this.zoom),l,r))continue;const u={id:a,sourceLayerIndex:o,index:s,geometry:t?l.geometry:zl(i,r,n),properties:i.properties,type:i.type,patterns:{}},c=this.layoutVertexArray.length,h=\"Polygon\"===Vh[u.type];if(this.hasPattern)this.features.push(Nc(\"fill-extrusion\",this.layers,u,this.zoom,e));else if(this.wallMode)for(const t of u.geometry)for(const i of Bh(t,h))this.addFeature(u,[i],s,r,{},e.availableImages,n,e.brightness);else this.addFeature(u,u.geometry,s,r,{},e.availableImages,n,e.brightness);e.featureIndex.insert(i,u.geometry,s,o,this.index,c);}this.sortBorders(),\"mercator\"===this.projection.name&&this.splitToSubtiles(),this.groundEffect.prepareBorderSegments(),this.polygonSegments.length=0;}addFeatures(t,e,r,n,i,a){for(const t of this.features){const s=\"Polygon\"===Vh[t.type],{geometry:o}=t;if(this.wallMode)for(const l of o)for(const o of Bh(l,s))this.addFeature(t,[o],t.index,e,r,n,i,a);else this.addFeature(t,o,t.index,e,r,n,i,a);}this.sortBorders(),\"mercator\"===this.projection.name&&this.splitToSubtiles();}update(t,e,r,n,i,a,s){this.programConfigurations.updatePaintArrays(t,e,i,r,n,a,s),this.groundEffect.update(t,e,i,r,n,a,s);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload||this.groundEffect.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,eh),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.wallVertexBuffer=t.createVertexBuffer(this.wallVertexArray,Jc.members),this.layoutVertexExtArray&&(this.layoutVertexExtBuffer=t.createVertexBuffer(this.layoutVertexExtArray,th.members,!0)),this.groundEffect.upload(t)),this.groundEffect.uploadPaintProperties(t),this.programConfigurations.upload(t),this.uploaded=!0;}uploadCentroid(t){this.groundEffect.uploadHiddenByLandmark(t),this.needsCentroidUpdate&&(!this.centroidVertexBuffer&&this.centroidVertexArray.length>0?this.centroidVertexBuffer=t.createVertexBuffer(this.centroidVertexArray,Kc.members,!0):this.centroidVertexBuffer&&this.centroidVertexBuffer.updateData(this.centroidVertexArray),this.needsCentroidUpdate=!1);}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.centroidVertexBuffer&&this.centroidVertexBuffer.destroy(),this.layoutVertexExtBuffer&&this.layoutVertexExtBuffer.destroy(),this.groundEffect.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}addFeature(t,e,r,n,i,a,s,o){const l=this.layers[0].paint.get(\"fill-extrusion-flood-light-ground-radius\").evaluate(t,{})/this.tileToMeter,u=[new q(0,0),new q(Wr,Wr)],c=s.projection,h=\"globe\"===c.name,p=this.wallMode||\"Polygon\"===Vh[t.type],f=new Yh;f.centroidDataIndex=this.centroidData.length;const d=new Gh,m=this.layers[0].paint.get(\"fill-extrusion-base\").evaluate(t,{},n)<=0,y=this.layers[0].paint.get(\"fill-extrusion-height\").evaluate(t,{},n);let g;if(d.height=y,d.vertexArrayOffset=this.layoutVertexArray.length,d.groundVertexArrayOffset=this.groundEffect.vertexArray.length,h&&!this.layoutVertexExtArray&&(this.layoutVertexExtArray=new Ps),this.wallMode){if(h)return void ft(\"Non zero fill-extrusion-line-width is not yet supported on globe.\");if(1!==e.length)return;g=function(t){const e=t[0].x===t[t.length-1].x&&t[0].y===t[t.length-1].y,r=function(t){let e=0;const r=t.length;for(let n=0;n<r;n++)e+=(t[(n+1)%r].x-t[n].x)*(t[(n+1)%r].y+t[n].y);return e>=0}(t);r||(t=t.reverse());const n={geometry:[],joinNormals:[],indices:[]},i=[],a=[],s=[];let o=t.length;for(;o>=2&&t[o-1].equals(t[o-2]);)o--;if(o<(e?3:2))return n;let l,u,c,h,p,f=0;for(;f<o-1&&t[f].equals(t[f+1]);)f++;e&&(l=t[o-2],p=t[f].sub(l)._unit()._perp());for(let r=f;r<o;r++){if(c=r===o-1?e?t[f+1]:void 0:t[r+1],c&&t[r].equals(c))continue;p&&(h=p),l&&(u=l),l=t[r],p=c?c.sub(l)._unit()._perp():h,h=h||p;let n=h.add(p);0===n.x&&0===n.y||n._unit();const d=n.x*p.x+n.y*p.y,m=0!==d?1/d:1/0,y=h.x*p.y-h.y*p.x>0;let g=\"miter\";const x=2;\"miter\"===g&&m>x&&(g=\"bevel\"),\"bevel\"===g&&(m>100&&(g=\"flipbevel\"),m<x&&(g=\"miter\"));const v=(t,e,r,n)=>{const o=new q(t.x,t.y),l=new q(t.x,t.y);o.x+=e.x*n,o.y+=e.y*n,l.x-=e.x*Math.max(r,1),l.y-=e.y*Math.max(r,1),s.push(e),i.push(o),a.push(l);};if(\"miter\"===g)n._mult(m),v(l,n,0,0);else if(\"flipbevel\"===g)n=p.mult(-1),v(l,n,0,0),v(l,n.mult(-1),0,0);else {const t=-Math.sqrt(m*m-1),e=y?t:0,r=y?0:t;u&&v(l,h,e,r),c&&v(l,p,e,r);}}n.geometry=[...i,...a.reverse(),i[0]],n.joinNormals=[...s,...s.reverse(),s[s.length-1]];const d=n.geometry.length-1;for(let t=0;t<d/2;t++)if(t+1<d/2){let e=t,r=t+1,i=d-1-t,a=d-2-t;e=0===e?d-1:e-1,r=0===r?d-1:r-1,i=0===i?d-1:i-1,a=0===a?d-1:a-1,n.indices.push(i),n.indices.push(r),n.indices.push(e),n.indices.push(i),n.indices.push(a),n.indices.push(r);}return n}(e[0]),e=[g.geometry];}const x=(t,e)=>t<(e.length-1)/2||t===e.length-1,v=this.wallMode?[e]:Lc(e,500);for(let t=v.length-1;t>=0;t--){const e=v[t];(0===e.length||(b=e[0]).every((t=>t.x<=0))||b.every((t=>t.x>=Wr))||b.every((t=>t.y<=0))||b.every((t=>t.y>=Wr)))&&v.splice(t,1);}var b;let _;if(h)_=sp(v,u,n);else {_=[];for(const t of v)_.push({polygon:t,bounds:u});}const w=p?this.edgeRadius:0,M=w>0&&this.zoom<17,A=(t,e)=>{if(0===t.length)return !1;const r=t[t.length-1];return e.x===r.x&&e.y===r.y};for(const{polygon:t,bounds:e}of _){let r=0,i=0;for(const e of t)p&&!e[0].equals(e[e.length-1])&&e.push(e[0]),i+=p?e.length-1:e.length;const a=this.segments.prepareSegment((p?5:4)*i,this.layoutVertexArray,this.indexArray);d.footprintSegIdx<0&&(d.footprintSegIdx=this.footprintSegments.length),d.polygonSegIdx<0&&(d.polygonSegIdx=this.polygonSegments.length);const s={triangleArrayOffset:this.indexArray.length,triangleCount:0,triangleSegIdx:this.segments.segments.length-1},o=new $h;if(o.vertexOffset=this.footprintVertices.length,o.indexOffset=3*this.footprintIndices.length,o.ringIndices=[],p){const i=[],s=[];r=a.vertexLength;for(let r=0;r<t.length;r++){const u=t[r];u.length&&0!==r&&s.push(i.length/2);const p=[];let f,d;f=u[1].sub(u[0])._perp()._unit(),o.ringIndices.push(u.length-1);for(let t=1;t<u.length;t++){const e=u[t],r=u[t===u.length-1?1:t+1],s=e.clone();if(w){d=r.sub(e)._perp()._unit();const t=f.add(d)._unit(),n=w*Math.min(4,1/(f.x*t.x+f.y*t.y));s.x+=n*t.x,s.y+=n*t.y,s.x=Math.round(s.x),s.y=Math.round(s.y),f=d;}if(!m||0!==w&&!M||A(p,s)||p.push(s),Nh(this.layoutVertexArray,s.x,s.y,0,0,1,1,0),this.wallMode){const e=x(t,u);Uh(this.wallVertexArray,g.joinNormals[t],!e);}a.vertexLength++,this.footprintVertices.emplaceBack(e.x,e.y),i.push(e.x,e.y),h&&qh(this.layoutVertexExtArray,c.projectTilePoint(s.x,s.y,n),c.upVector(n,s.x,s.y));}m&&(0===w||M)&&(0!==p.length&&A(p,p[0])&&p.pop(),this.groundEffect.addData(p,e,l));}const u=this.wallMode?g.indices:hc(i,s);for(let t=0;t<u.length;t+=3)this.footprintIndices.emplaceBack(o.vertexOffset+u[t+0],o.vertexOffset+u[t+1],o.vertexOffset+u[t+2]),this.indexArray.emplaceBack(r+u[t],r+u[t+2],r+u[t+1]),a.primitiveLength++;o.indexCount+=u.length,o.vertexCount+=this.footprintVertices.length-o.vertexOffset;}for(let i=0;i<t.length;i++){const s=t[i];f.startRing(d,s[0]);let o=s.length>4&&np(s[s.length-2],s[0],s[1]),u=w?Qh(s[s.length-2],s[0],s[1],w):0;const y=[];let v,b,_;b=s[1].sub(s[0])._perp()._unit();let M=!0;for(let t=1,i=0;t<s.length;t++){let l=s[t-1],p=s[t];const S=s[t===s.length-1?1:t+1];if(f.appendEdge(d,p,l),ep(p,l,e)){w&&(b=S.sub(p)._perp()._unit(),M=!M);continue}const I=p.sub(l)._perp(),P=I.x/(Math.abs(I.x)+Math.abs(I.y)),z=I.y>0?1:0,E=l.dist(p);if(i+E>32768&&(i=0),w){_=S.sub(p)._perp()._unit();let t=tp(l,p,S,Jh(b,_),w);isNaN(t)&&(t=0);const e=p.sub(l)._unit();l=l.add(e.mult(u))._round(),p=p.add(e.mult(-t))._round(),u=t,b=_,m&&this.zoom>=17&&(A(y,l)||y.push(l),A(y,p)||y.push(p));}const k=a.vertexLength,T=s.length>4&&np(l,p,S);let B=ip(i,o,M);if(Nh(this.layoutVertexArray,l.x,l.y,P,z,0,0,B),Nh(this.layoutVertexArray,l.x,l.y,P,z,0,1,B),this.wallMode){const e=x(t-1,s),r=g.joinNormals[t-1];Uh(this.wallVertexArray,r,e),Uh(this.wallVertexArray,r,e);}if(i+=E,B=ip(i,T,!M),o=T,Nh(this.layoutVertexArray,p.x,p.y,P,z,0,0,B),Nh(this.layoutVertexArray,p.x,p.y,P,z,0,1,B),this.wallMode){const e=x(t,s),r=g.joinNormals[t];Uh(this.wallVertexArray,r,e),Uh(this.wallVertexArray,r,e);}if(a.vertexLength+=4,this.indexArray.emplaceBack(k+0,k+1,k+2),this.indexArray.emplaceBack(k+1,k+3,k+2),a.primitiveLength+=2,w){const n=r+(1===t?s.length-2:t-2),i=1===t?r:n+1;if(this.indexArray.emplaceBack(k+1,n,k+3),this.indexArray.emplaceBack(n,i,k+3),a.primitiveLength+=2,void 0===v&&(v=k),!ep(S,s[t],e)){const e=t===s.length-1?v:a.vertexLength;this.indexArray.emplaceBack(k+2,k+3,e),this.indexArray.emplaceBack(k+3,e+1,e),this.indexArray.emplaceBack(k+3,i,e+1),a.primitiveLength+=3;}M=!M;}if(h){const t=this.layoutVertexExtArray,e=c.projectTilePoint(l.x,l.y,n),r=c.projectTilePoint(p.x,p.y,n),i=c.upVector(n,l.x,l.y),a=c.upVector(n,p.x,p.y);qh(t,e,i),qh(t,e,i),qh(t,r,a),qh(t,r,a);}}p&&(r+=s.length-1),m&&w&&this.zoom>=17&&(0!==y.length&&A(y,y[0])&&y.pop(),this.groundEffect.addData(y,e,l,w>0));}this.footprintSegments.push(o),s.triangleCount=this.indexArray.length-s.triangleArrayOffset,this.polygonSegments.push(s),++d.footprintSegLen,++d.polygonSegLen;}if(d.vertexCount=this.layoutVertexArray.length-d.vertexArrayOffset,d.groundVertexCount=this.groundEffect.vertexArray.length-d.groundVertexArrayOffset,0!==d.vertexCount){if(d.centroidXY=f.borders?Fh:this.encodeCentroid(f,d),this.centroidData.push(d),f.borders){this.featuresOnBorder.push(f);const t=this.featuresOnBorder.length-1;for(let e=0;e<f.borders.length;e++)f.borders[e][0]!==Number.MAX_VALUE&&this.borderFeatureIndices[e].push(t);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,a,n,o),this.groundEffect.addPaintPropertiesData(t,r,i,a,n,o),this.maxHeight=Math.max(this.maxHeight,y);}}sortBorders(){for(let t=0;t<this.borderFeatureIndices.length;t++)this.borderFeatureIndices[t].sort(((e,r)=>this.featuresOnBorder[e].borders[t][0]-this.featuresOnBorder[r].borders[t][0]));}splitToSubtiles(){const t=[];for(let e=0;e<this.centroidData.length;e++){const r=this.centroidData[e],n=+(r.min.y+r.max.y>Wr),i=2*n+(+(r.min.x+r.max.x>Wr)^n);for(let n=0;n<r.polygonSegLen;n++){const a=r.polygonSegIdx+n;t.push({centroidIdx:e,subtile:i,polygonSegmentIdx:a,triangleSegmentIdx:this.polygonSegments[a].triangleSegIdx});}}const e=new Ls;t.sort(((t,e)=>t.triangleSegmentIdx===e.triangleSegmentIdx?t.subtile-e.subtile:t.triangleSegmentIdx-e.triangleSegmentIdx));let r=0,n=0,i=0;for(const e of t){if(e.triangleSegmentIdx!==r)break;i++;}const a=t.length;for(;n!==t.length;){r=t[n].triangleSegmentIdx;let s=0,o=n,l=n;for(let e=o;e<i&&t[e].subtile===s;e++)l++;for(;o!==i;){const n=t[o];s=n.subtile;const a=this.centroidData[n.centroidIdx].min.clone(),u=this.centroidData[n.centroidIdx].max.clone(),c={vertexOffset:this.segments.segments[r].vertexOffset,primitiveOffset:e.length,vertexLength:this.segments.segments[r].vertexLength,primitiveLength:0,sortKey:void 0,vaos:{}};for(let r=o;r<l;r++){const n=t[r],i=this.polygonSegments[n.polygonSegmentIdx],s=this.centroidData[n.centroidIdx].min,o=this.centroidData[n.centroidIdx].max,l=this.indexArray.uint16;for(let t=i.triangleArrayOffset;t<i.triangleArrayOffset+i.triangleCount;t++)e.emplaceBack(l[3*t],l[3*t+1],l[3*t+2]);c.primitiveLength+=i.triangleCount,a.x=Math.min(a.x,s.x),a.y=Math.min(a.y,s.y),u.x=Math.max(u.x,o.x),u.y=Math.max(u.y,o.y);}c.primitiveLength>0&&this.triangleSubSegments.push({segment:c,min:a,max:u}),o=l;for(let e=o;e<i&&t[e].subtile===t[o].subtile;e++)l++;}n=i;for(let e=n;e<a&&t[e].triangleSegmentIdx===t[n].triangleSegmentIdx;e++)i++;}e._trim(),this.indexArray=e;}getVisibleSegments(t,e,r){const n=new po;if(this.wallMode){for(const t of this.triangleSubSegments)n.segments.push(t.segment);return n}let i=0,a=0;const s=1<<t.canonical.z;if(e){const r=e.getMinMaxForTile(t);r&&(i=r.min,a=r.max);}a+=this.maxHeight;const o=t.toUnwrapped();let l;const u=[o.canonical.x/s+o.wrap,o.canonical.y/s],c=[(o.canonical.x+1)/s+o.wrap,(o.canonical.y+1)/s],h=(t,e,r)=>[t[0]*(1-r[0])+e[0]*r[0],t[1]*(1-r[1])+e[1]*r[1]],p=[],f=[];for(const t of this.triangleSubSegments){p[0]=t.min.x/Wr,p[1]=t.min.y/Wr,f[0]=t.max.x/Wr,f[1]=t.max.y/Wr;const e=h(u,c,p),s=h(u,c,f);if(0===new xu([e[0],e[1],i],[s[0],s[1],a]).intersectsPrecise(r)){l&&(n.segments.push(l),l=void 0);continue}const o=t.segment;l&&l.vertexOffset!==o.vertexOffset&&(n.segments.push(l),l=void 0),l?(l.vertexLength+=o.vertexLength,l.primitiveLength+=o.primitiveLength):l={vertexOffset:o.vertexOffset,primitiveLength:o.primitiveLength,vertexLength:o.vertexLength,primitiveOffset:o.primitiveOffset,sortKey:void 0,vaos:{}};}return l&&n.segments.push(l),n}encodeCentroid(t,e){const r=t.centroid(),n=e.span(),i=Math.min(7,Math.round(n.x*this.tileToMeter/10)),a=Math.min(7,Math.round(n.y*this.tileToMeter/10));return new q(Q(r.x,1,Wr-1)<<3|i,Q(r.y,1,Wr-1)<<3|a)}encodeBorderCentroid(t){if(!t.borders)return new q(0,0);const e=t.borders,r=Number.MAX_VALUE;if(e[0][0]!==r||e[1][0]!==r){const t=e[0][0]!==r?0:1;return new q(6|(e[0][0]!==r?0:65528),(e[t][0]+e[t][1])/2<<3|6)}{const t=e[2][0]!==r?2:3;return new q((e[t][0]+e[t][1])/2<<3|6,6|(e[2][0]!==r?0:65528))}}showCentroid(t){const e=this.centroidData[t.centroidDataIndex];e.flags&=Oh,e.centroidXY.x=0,e.centroidXY.y=0,this.writeCentroidToBuffer(e);}writeCentroidToBuffer(t){this.groundEffect.updateHiddenByLandmark(t);const e=t.vertexArrayOffset,r=t.vertexCount+t.vertexArrayOffset,n=t.flags&Oh?Fh:t.centroidXY,i=this.centroidVertexArray.geta_centroid_pos0(e);if(this.centroidVertexArray.geta_centroid_pos1(e)!==n.y||i!==n.x){for(let t=e;t<r;++t)this.centroidVertexArray.emplace(t,n.x,n.y);this.needsCentroidUpdate=!0;}}createCentroidsBuffer(){this.centroidVertexArray.resize(this.layoutVertexArray.length),this.groundEffect.hiddenByLandmarkVertexArray.resize(this.groundEffect.vertexArray.length);for(const t of this.centroidData)this.writeCentroidToBuffer(t);}updateReplacement(t,e,r){if(e.updateTime===this.replacementUpdateTime)return;this.replacementUpdateTime=e.updateTime;const n=e.getReplacementRegionsForTile(t.toUnwrapped());if(Ah(this.activeReplacements,n))return;if(this.activeReplacements=n,0===this.centroidVertexArray.length)this.createCentroidsBuffer();else for(const t of this.centroidData)t.flags&=2147483647;const i=[];for(const e of this.activeReplacements){if(e.order<r)continue;const n=Math.max(1,Math.pow(2,e.footprintTileId.canonical.z-t.canonical.z));for(const r of this.centroidData)if(!(r.flags&Oh||e.min.x>r.max.x||r.min.x>e.max.x||e.min.y>r.max.y||r.min.y>e.max.y))for(let a=0;a<r.footprintSegLen;a++){const s=this.footprintSegments[r.footprintSegIdx+a];if(i.length=0,op(this.footprintVertices,s.vertexOffset,s.vertexCount,e.footprintTileId.canonical,t.canonical,i),Ph(e.footprint,i,this.footprintIndices.uint16,s.indexOffset,s.indexCount,-s.vertexOffset,-n)){r.flags|=Oh;break}}}for(const t of this.centroidData)this.writeCentroidToBuffer(t);this.borderDoneWithNeighborZ=[-1,-1,-1,-1];}footprintContainsPoint(t,e,r){let n=!1;for(let i=0;i<r.footprintSegLen;i++){const a=this.footprintSegments[r.footprintSegIdx+i];let s=0;for(const r of a.ringIndices){for(let i=s,o=r+s-1;i<r+s;o=i++){const r=this.footprintVertices.int16[2*(i+a.vertexOffset)+0],s=this.footprintVertices.int16[2*(i+a.vertexOffset)+1],l=this.footprintVertices.int16[2*(o+a.vertexOffset)+1];s>e!=l>e&&t<(this.footprintVertices.int16[2*(o+a.vertexOffset)+0]-r)*(e-s)/(l-s)+r&&(n=!n);}s=r;}}return n}getHeightAtTileCoord(t,e){let r=Number.NEGATIVE_INFINITY,n=!0;const i=4*(t+Wr)*Wr+(e+Wr);if(this.partLookup.hasOwnProperty(i)){const t=this.partLookup[i];return t?{height:t.height,hidden:!!(t.flags&Oh)}:void 0}for(const a of this.centroidData)t>a.max.x||a.min.x>t||e>a.max.y||a.min.y>e||this.footprintContainsPoint(t,e,a)&&a&&a.height>r&&(r=a.height,this.partLookup[i]=a,n=!!(a.flags&Oh));if(r!==Number.NEGATIVE_INFINITY)return {height:r,hidden:n};this.partLookup[i]=void 0;}}function Jh(t,e){const r=t.add(e)._unit();return t.x*r.x+t.y*r.y}function Qh(t,e,r,n){const i=e.sub(t)._perp()._unit(),a=r.sub(e)._perp()._unit();return tp(t,e,r,Jh(i,a),n)}function tp(t,e,r,n,i){const a=Math.sqrt(1-n*n);return Math.min(t.dist(e)/3,e.dist(r)/3,i*a/n)}function ep(t,e,r){return t.x<r[0].x&&e.x<r[0].x||t.x>r[1].x&&e.x>r[1].x||t.y<r[0].y&&e.y<r[0].y||t.y>r[1].y&&e.y>r[1].y}function rp(t,e){return t.x<e[0].x||t.x>e[1].x||t.y<e[0].y||t.y>e[1].y}function np(t,e,r){if(t.x<0||t.x>=Wr||e.x<0||e.x>=Wr||r.x<0||r.x>=Wr)return !1;const n=r.sub(e),i=n.perp(),a=t.sub(e);return (n.x*a.x+n.y*a.y)/Math.sqrt((n.x*n.x+n.y*n.y)*(a.x*a.x+a.y*a.y))>-.866&&i.x*a.x+i.y*a.y<0}function ip(t,e,r){const n=e?2|t:-3&t;return r?1|n:-2&n}function ap(){const t=Math.PI/32,e=Math.tan(t),r=rl;return r*Math.sqrt(1+2*e*e)-r}function sp(t,e,r){const n=1<<r.z,i=pl(r.x/n),a=pl((r.x+1)/n),s=fl(r.y/n),o=fl((r.y+1)/n);return function(t,e,r,n,i=0,a){const s=[];if(!t.length||!r||!n)return s;const o=(t,e)=>{for(const r of t)s.push({polygon:r,bounds:e});},l=Math.ceil(Math.log2(r)),u=Math.ceil(Math.log2(n)),c=l-u,h=[];for(let t=0;t<Math.abs(c);t++)h.push(c>0?0:1);for(let t=0;t<Math.min(l,u);t++)h.push(0),h.push(1);let p=t;if(p=yh(p,e[0].y-i,e[1].y+i,1),p=yh(p,e[0].x-i,e[1].x+i,0),!p.length)return s;const f=[];for(h.length?f.push({polygons:p,bounds:e,depth:0}):o(p,e);f.length;){const t=f.pop(),e=t.depth,r=h[e],n=t.bounds[0],s=t.bounds[1],l=0===r?n.x:n.y,u=0===r?s.x:s.y,c=a?a(r,l,u):.5*(l+u),p=yh(t.polygons,l-i,c+i,r),d=yh(t.polygons,c-i,u+i,r);if(p.length){const t=[n,new q(0===r?c:s.x,1===r?c:s.y)];h.length>e+1?f.push({polygons:p,bounds:t,depth:e+1}):o(p,t);}if(d.length){const t=[new q(0===r?c:n.x,1===r?c:n.y),s];h.length>e+1?f.push({polygons:d,bounds:t,depth:e+1}):o(d,t);}}return s}(t,e,Math.ceil((a-i)/11.25),Math.ceil((s-o)/11.25),1,((t,e,i)=>{if(0===t)return .5*(e+i);{const t=fl((r.y+e/Wr)/n);return (cl(.5*(fl((r.y+i/Wr)/n)+t))*n-r.y)*Wr}}))}function op(t,e,r,n,i,a){const s=Math.pow(2,n.z-i.z);for(let o=0;o<r;o++){let r=t.int16[2*(o+e)+0],l=t.int16[2*(o+e)+1];r=(r+i.x*Wr)*s-n.x*Wr,l=(l+i.y*Wr)*s-n.y*Wr,a.push(new q(r,l));}}let lp,up;function cp(t,e){return t.x*e.x+t.y*e.y}function hp(t,e){if(1===t.length){let r=0;const n=e[r++];let i;for(;!i||n.equals(i);)if(i=e[r++],!i)return 1/0;for(;r<e.length;r++){const a=e[r],s=t[0],o=i.sub(n),l=a.sub(n),u=s.sub(n),c=cp(o,o),h=cp(o,l),p=cp(l,l),f=cp(u,o),d=cp(u,l),m=c*p-h*h,y=(p*f-h*d)/m,g=(c*d-h*f)/m,x=n.z*(1-y-g)+i.z*y+a.z*g;if(isFinite(x))return x}return 1/0}{let t=1/0;for(const r of e)t=Math.min(t,r.z);return t}}function pp(t,e,r,n,i,a,s,o){const l=s*i.getElevationAt(t,e,!0,!0),u=0!==a[0],c=u?0===a[1]?s*(a[0]/7-450):s*function(t,e,r){const n=Math.floor(e[0]/8),i=Math.floor(e[1]/8),a=10*(e[0]-8*n),s=10*(e[1]-8*i),o=t.getElevationAt(n,i,!0,!0),l=t.getMeterToDEM(r),u=Math.floor(.5*(a*l-1)),c=Math.floor(.5*(s*l-1)),h=t.tileCoordToPixel(n,i),p=2*u+1,f=2*c+1,d=function(t,e,r,n,i){return [t.getElevationAtPixel(e,r,!0),t.getElevationAtPixel(e+i,r,!0),t.getElevationAtPixel(e,r+i,!0),t.getElevationAtPixel(e+n,r+i,!0)]}(t,h.x-u,h.y-c,p,f),m=Math.abs(d[0]-d[1]),y=Math.abs(d[2]-d[3]),g=Math.abs(d[0]-d[2])+Math.abs(d[1]-d[3]),x=Math.min(.25,.5*l*(m+y)/p),v=Math.min(.25,.5*l*g/f);return o+Math.max(x*a,v*s)}(i,a,o):l;return {base:l+(0===r?-1:r),top:u?Math.max(c+n,l+r+2):l+n}}oa(Kh,\"FillExtrusionBucket\",{omit:[\"layers\",\"features\"]}),oa(Gh,\"PartData\"),oa($h,\"FootprintSegment\"),oa(Yh,\"BorderCentroidData\"),oa(Wh,\"GroundEffect\");const fp=ys([{name:\"a_pos_normal\",components:2,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint8\"},{name:\"a_linesofar\",components:1,type:\"Float32\"}],4),dp=ys([{name:\"a_z_offset_width\",components:2,type:\"Float32\"}],4),{members:mp}=fp,yp=ys([{name:\"a_packed\",components:4,type:\"Float32\"}]),{members:gp}=yp,xp=ys([{name:\"a_pattern_data\",components:3,type:\"Float32\"}]),{members:vp}=xp;class bp{constructor(t,e){this.width=t,this.height=e,this.nextRow=0,this.image=new ac({width:t,height:e}),this.positions={},this.uploaded=!1;}getDash(t,e){const r=this.getKey(t,e);return this.positions[r]}trim(){const t=this.width,e=this.height=st(this.nextRow);this.image.resize({width:t,height:e});}getKey(t,e){return t.join(\",\")+e}getDashRanges(t,e,r){const n=[];let i=t.length%2==1?-t[t.length-1]*r:0,a=t[0]*r,s=!0;n.push({left:i,right:a,isDash:s,zeroLength:0===t[0]});let o=t[0];for(let e=1;e<t.length;e++){s=!s;const l=t[e];i=o*r,o+=l,a=o*r,n.push({left:i,right:a,isDash:s,zeroLength:0===l});}return n}addRoundDash(t,e,r){const n=e/2;for(let e=-r;e<=r;e++){const i=this.width*(this.nextRow+r+e);let a=0,s=t[a];for(let o=0;o<this.width;o++){o/s.right>1&&(s=t[++a]);const l=Math.abs(o-s.left),u=Math.abs(o-s.right),c=Math.min(l,u);let h;const p=e/r*(n+1);if(s.isDash){const t=n-Math.abs(p);h=Math.sqrt(c*c+t*t);}else h=n-Math.sqrt(c*c+p*p);this.image.data[i+o]=Math.max(0,Math.min(255,h+128));}}}addRegularDash(t,e){for(let e=t.length-1;e>=0;--e){const r=t[e],n=t[e+1];r.zeroLength?t.splice(e,1):n&&n.isDash===r.isDash&&(n.left=r.left,t.splice(e,1));}const r=t[0],n=t[t.length-1];r.isDash===n.isDash&&(r.left=n.left-this.width,n.right=r.right+this.width);const i=this.width*this.nextRow;let a=0,s=t[a];for(let r=0;r<this.width;r++){r/s.right>1&&(s=t[++a]);const n=Math.abs(r-s.left),o=Math.abs(r-s.right),l=Math.min(n,o);this.image.data[i+r]=Math.max(0,Math.min(255,(s.isDash?l:-l)+e+128));}}addDash(t,e){const r=this.getKey(t,e);if(this.positions[r])return this.positions[r];const n=\"round\"===e,i=n?7:0,a=2*i+1;if(this.nextRow+a>this.height)return ft(\"LineAtlas out of space\"),null;0===t.length&&t.push(1);let s=0;for(let e=0;e<t.length;e++)t[e]<0&&(ft(\"Negative value is found in line dasharray, replacing values with 0\"),t[e]=0),s+=t[e];if(0!==s){const r=this.width/s,a=this.getDashRanges(t,this.width,r);n?this.addRoundDash(a,r,i):this.addRegularDash(a,\"square\"===e?.5*r:0);}const o=this.nextRow+i;this.nextRow+=a;const l={tl:[o,i],br:[s,0]};return this.positions[r]=l,l}}oa(bp,\"LineAtlas\");const _p=fh.VectorTileFeature.types,wp=Math.cos(Math.PI/180*37.5),Mp=Math.cos(Math.PI/180*5);class Ap{constructor(t){this.evaluationGlobals={zoom:0,lineProgress:void 0},this.zoom=t.zoom,this.evaluationGlobals.zoom=this.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.fqid)),this.index=t.index,this.projection=t.projection,this.hasPattern=!1,this.hasZOffset=!1,this.hasCrossSlope=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((t=>{this.gradients[t.id]={};})),this.layoutVertexArray=new ws,this.layoutVertexArray2=new Ms,this.patternVertexArray=new As,this.indexArray=new Ls,this.programConfigurations=new No(t.layers,{zoom:t.zoom,lut:t.lut}),this.segments=new po,this.maxLineLength=0,this.zOffsetVertexArray=new $s,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.tessellationStep=t.tessellationStep?t.tessellationStep:Wr/64;}updateFootprints(t,e){}populate(t,e,r,n){this.hasPattern=Oc(\"line\",this.layers,e);const i=this.layers[0].layout.get(\"line-sort-key\");this.tileToMeter=vl(r),this.hasZOffset=!this.layers[0].isDraped();const a=this.layers[0].layout.get(\"line-elevation-reference\");this.hasZOffset&&\"none\"===a&&ft(`line-elevation-reference: ground is used for the layer ${this.layerIds[0]} because non-zero line-z-offset value was found.`);const s=this.layers[0].layout.get(\"line-cross-slope\");this.hasCrossSlope=this.hasZOffset&&void 0!==s;const o=[];for(const{feature:e,id:a,index:s,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=El(e,t);if(!this.layers[0]._featureFilter.filter(new Va(this.zoom),u,r))continue;const c=i?i.evaluate(u,{},r):void 0,h={id:a,properties:e.properties,type:e.type,sourceLayerIndex:l,index:s,geometry:t?u.geometry:zl(e,r,n),patterns:{},sortKey:c};o.push(h);}i&&o.sort(((t,e)=>t.sortKey-e.sortKey));const{lineAtlas:l,featureIndex:u}=e,c=this.addConstantDashes(l);for(const n of o){const{geometry:i,index:a,sourceLayerIndex:s}=n;if(c&&this.addFeatureDashes(n,l),this.hasPattern){const t=Nc(\"line\",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,a,r,l.positions,e.availableImages,e.brightness);u.insert(t[a].feature,i,a,s,this.index);}}addConstantDashes(t){let e=!1;for(const r of this.layers){const n=r.paint.get(\"line-dasharray\").value,i=r.layout.get(\"line-cap\").value;if(\"constant\"!==n.kind||\"constant\"!==i.kind)e=!0;else {const e=i.value,r=n.value;if(!r)continue;t.addDash(r,e);}}return e}addFeatureDashes(t,e){const r=this.zoom;for(const n of this.layers){const i=n.paint.get(\"line-dasharray\").value,a=n.layout.get(\"line-cap\").value;if(\"constant\"===i.kind&&\"constant\"===a.kind)continue;let s,o;if(\"constant\"===i.kind){if(s=i.value,!s)continue}else s=i.evaluate({zoom:r},t);o=\"constant\"===a.kind?a.value:a.evaluate({zoom:r},t),e.addDash(s,o),t.patterns[n.id]=e.getKey(s,o);}}update(t,e,r,n,i,a,s){this.programConfigurations.updatePaintArrays(t,e,i,r,n,a,s);}addFeatures(t,e,r,n,i,a){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r,n,a);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,gp)),0!==this.patternVertexArray.length&&(this.patternVertexBuffer=t.createVertexBuffer(this.patternVertexArray,vp)),!this.zOffsetVertexBuffer&&this.zOffsetVertexArray.length>0&&(this.zOffsetVertexBuffer=t.createVertexBuffer(this.zOffsetVertexArray,dp.members,!0)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,mp),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.zOffsetVertexBuffer&&this.zOffsetVertexBuffer.destroy(),this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}lineFeatureClips(t){if(t.properties&&t.properties.hasOwnProperty(\"mapbox_clip_start\")&&t.properties.hasOwnProperty(\"mapbox_clip_end\"))return {start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,e,r,n,i,a,s){const o=this.layers[0].layout,l=o.get(\"line-join\").evaluate(t,{}),u=o.get(\"line-cap\").evaluate(t,{}),c=o.get(\"line-miter-limit\"),h=o.get(\"line-round-limit\");this.lineClips=this.lineFeatureClips(t),this.lineFeature=t,this.zOffsetValue=o.get(\"line-z-offset\").value;const p=this.layers[0].paint.get(\"line-width\").value;\"constant\"!==p.kind&&!1===p.isLineProgressConstant&&(this.variableWidthValue=p);for(const r of e)this.addLine(r,t,n,l,u,c,h);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,a,n,s);}addLine(t,e,r,n,i,a,s){this.distance=0,this.prevDistance=0,this.scaledDistance=0,this.totalDistance=0,this.totalFeatureLength=0,this.lineSoFar=0,this.currentVertex=void 0;const o=\"none\"===n;if(this.patternJoinNone=this.hasPattern&&o,this.segmentStart=0,this.segmentStartf32=0,this.segmentPoints=[],this.lineClips){this.lineClipsArray.push(this.lineClips);for(let e=0;e<t.length-1;e++)this.totalDistance+=t[e].dist(t[e+1]);this.totalFeatureLength=this.totalDistance/(this.lineClips.end-this.lineClips.start),this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance);}const l=\"Polygon\"===_p[e.type];let u=t.length;for(;u>=2&&t[u-1].equals(t[u-2]);)u--;let c=0;for(;c<u-1&&t[c].equals(t[c+1]);)c++;if(u<(l?3:2))return;\"bevel\"===n&&(a=1.05);const h=this.segments.prepareSegment(10*u,this.layoutVertexArray,this.indexArray);let p,f,d,m,y,g;this.e1=this.e2=-1,l&&(p=t[u-2],y=t[c].sub(p)._unit()._perp());for(let e=c;e<u;e++){if(d=e===u-1?l?t[c+1]:void 0:t[e+1],d&&t[e].equals(d))continue;y&&(m=y),p&&(f=p),p=t[e],g=this.evaluateLineProgressFeatures(f?f.dist(p):0),y=d?d.sub(p)._unit()._perp():m,m=m||y;const r=f&&d;let x=r?n:l||o?\"butt\":i;const v=m.x*y.x+m.y*y.y;if(o){const t=function(t){if(t.patternJoinNone){const e=t.segmentPoints.length/2,r=t.lineSoFar-t.segmentStart;for(let n=0;n<e;++n){const e=t.segmentPoints[2*n+1],i=Math.round(t.segmentPoints[2*n])+.5+.25*e;t.patternVertexArray.emplaceBack(i,r,t.segmentStart),t.patternVertexArray.emplaceBack(i,r,t.segmentStart);}t.segmentPoints.length=0;}t.e1=t.e2=-1;};if(r&&v<Mp){this.updateDistance(f,p),this.addCurrentVertex(p,m,1,1,h,g),t(this),this.addCurrentVertex(p,y,-1,-1,h,g);continue}if(f){if(!d){this.updateDistance(f,p),this.addCurrentVertex(p,m,1,1,h,g),t(this);continue}x=\"miter\";}}let b=m.add(y);0===b.x&&0===b.y||b._unit();const _=b.x*y.x+b.y*y.y,w=0!==_?1/_:1/0,M=2*Math.sqrt(2-2*_),A=_<wp&&f&&d,S=m.x*y.y-m.y*y.x>0,I=this.overscaling<=16?15*Wr/(512*this.overscaling):0;if(r&&\"round\"===x)if(w<s)x=\"miter\";else if(w<=2){const t=Sp(p,-10,Wr+10);x=this.hasZOffset&&(t||this.hasCrossSlope)?\"miter\":\"fakeround\";}if(\"miter\"===x&&w>a&&(x=\"bevel\"),\"bevel\"===x&&(w>2&&(x=\"flipbevel\"),w<a&&(x=\"miter\")),f&&!(\"miter\"===x&&A)&&this.updateDistance(f,p),\"miter\"===x)if(A){const t=p.dist(f);if(t>2*I){const e=p.sub(p.sub(f)._mult(I/t)._round());this.updateDistance(f,e),this.addCurrentVertex(e,m,0,0,h,g),f=e;}this.updateDistance(f,p),b._mult(w),this.addCurrentVertex(p,b,0,0,h,g);const e=p.dist(d);if(e>2*I){const t=p.add(d.sub(p)._mult(I/e)._round());this.updateDistance(p,t),this.addCurrentVertex(t,y,0,0,h,g),p=t;}}else b._mult(w),this.addCurrentVertex(p,b,0,0,h,g);else if(\"flipbevel\"===x){if(w>100)b=y.mult(-1);else {const t=w*m.add(y).mag()/m.sub(y).mag();b._perp()._mult(t*(S?-1:1));}this.addCurrentVertex(p,b,0,0,h,g),this.addCurrentVertex(p,b.mult(-1),0,0,h,g);}else if(\"bevel\"===x||\"fakeround\"===x){null!=g&&f&&this.addCurrentVertex(p,m,-1,-1,h,g);const t=p.dist(f)<=2*I&&\"bevel\"!==x,e=b.mult(S?1:-1);e._mult(w);const r=y.mult(S?-1:1),n=m.mult(S?-1:1),i=this.evaluateLineProgressFeatures(this.distance);if(null==g&&(this.addHalfVertex(p,e.x,e.y,!1,!S,0,h,i),t||this.addHalfVertex(p,e.x+2*n.x,e.y+2*n.y,!1,S,0,h,i)),\"fakeround\"===x){const t=Math.round(180*M/Math.PI/20);this.addHalfVertex(p,n.x,n.y,!1,S,0,h,i);for(let e=0;e<t;e++){let a=e/t;if(.5!==a){const t=a-.5;a+=a*t*(a-1)*((1.0904+v*(v*(3.55645-1.43519*v)-3.2452))*t*t+(.848013+v*(.215638*v-1.06021)));}const s=r.sub(n)._mult(a)._add(n)._unit();this.addHalfVertex(p,s.x,s.y,!1,S,0,h,i);}this.addHalfVertex(p,r.x,r.y,!1,S,0,h,i);}t||null!=g||this.addHalfVertex(p,e.x+2*r.x,e.y+2*r.y,!1,S,0,h,i),null!=g&&d&&this.addCurrentVertex(p,y,1,1,h,g);}else \"butt\"===x?this.addCurrentVertex(p,b,0,0,h,g):\"square\"===x?(f||this.addCurrentVertex(p,b,-1,-1,h,g),this.addCurrentVertex(p,b,0,0,h,g),f&&this.addCurrentVertex(p,b,1,1,h,g)):\"round\"===x&&(f&&(this.addCurrentVertex(p,m,0,0,h,g),this.addCurrentVertex(p,m,1,1,h,g,!0)),d&&(this.addCurrentVertex(p,y,-1,-1,h,g,!0),this.addCurrentVertex(p,y,0,0,h,g)));}}addVerticesTo(t,e,r,n,i,a,s,o,l,u){const c=(e.w-t.w)/this.tessellationStep|0;let h=0;const p=this.scaledDistance;if(c>1){this.lineSoFar=t.w;const p=(e.x-t.x)/c,f=(e.y-t.y)/c,d=(e.z-t.z)/c,m=(e.w-t.w)/c;for(let e=1;e<c;++e){t.x+=p,t.y+=f,t.z+=d,this.lineSoFar+=m,h+=m;const e=this.evaluateLineProgressFeatures(this.prevDistance+h);this.scaledDistance=(this.prevDistance+h)/this.totalDistance,this.addHalfVertex(t,r,n,u,!1,s,l,e),this.addHalfVertex(t,i,a,u,!0,-o,l,e);}}this.lineSoFar=e.w,this.scaledDistance=p;const f=this.evaluateLineProgressFeatures(this.distance);this.addHalfVertex(e,r,n,u,!1,s,l,f),this.addHalfVertex(e,i,a,u,!0,-o,l,f);}evaluateLineProgressFeatures(t){if(!this.variableWidthValue&&!this.hasZOffset)return null;this.evaluationGlobals.lineProgress=0,this.lineClips?this.evaluationGlobals.lineProgress=Math.min(1,(this.totalFeatureLength*this.lineClips.start+t)/this.totalFeatureLength):ft(`line-progress evaluation for ${this.layerIds[0]} requires enabling 'lineMetrics' for the source.`);let e=0;return this.variableWidthValue&&\"constant\"!==this.variableWidthValue.kind&&(e=this.variableWidthValue.evaluate(this.evaluationGlobals,this.lineFeature)||0),this.hasZOffset?\"constant\"===this.zOffsetValue.kind?{zOffset:this.zOffsetValue.value,variableWidth:e}:{zOffset:this.zOffsetValue.evaluate(this.evaluationGlobals,this.lineFeature)||0,variableWidth:e}:{zOffset:0,variableWidth:e}}addCurrentVertex(t,e,r,n,i,a,s=!1){const o=e.x+e.y*r,l=e.y-e.x*r,u=e.y*n-e.x,c=-e.y-e.x*n;if(null!=a){const e=this.hasZOffset,h=-10,p=Wr+10,f=a.zOffset,d=new mh(t.x,t.y,f,this.lineSoFar),m=!!e&&Sp(t,h,p),y=this.lineSoFar,g=this.distance;if(this.currentVertex)if(m){const e=this.currentVertexIsOutside,a=this.currentVertex,m=new mh(t.x,t.y,f,this.lineSoFar);if(xh(a,m,h,p),!Sp(m,h,p)){if(e){this.e1=this.e2=-1,this.distance-=a.dist(d),this.lineSoFar=a.w;const t=this.evaluateLineProgressFeatures(a.w-this.totalFeatureLength*(this.lineClips?this.lineClips.start:0));this.addHalfVertex(a,o,l,s,!1,r,i,t),this.addHalfVertex(a,u,c,s,!0,-n,i,t),this.prevDistance=this.distance;}this.distance=this.prevDistance+a.dist(m),this.scaledDistance=this.distance/this.totalDistance,this.addVerticesTo(a,m,o,l,u,c,r,n,i,s),this.distance=g,this.scaledDistance=this.distance/this.totalDistance;}}else {const t=this.currentVertex;if(this.currentVertexIsOutside){xh(t,d,h,p),this.e1=this.e2=-1,this.distance-=t.dist(d),this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=t.w;const e=this.evaluateLineProgressFeatures(t.w-this.totalFeatureLength*(this.lineClips?this.lineClips.start:0));this.addHalfVertex(t,o,l,s,!1,r,i,e),this.addHalfVertex(t,u,c,s,!0,-n,i,e),this.prevDistance=this.distance,this.distance=g,this.scaledDistance=this.distance/this.totalDistance;}this.addVerticesTo(t,d,o,l,u,c,r,n,i,s);}else m||(this.addHalfVertex(t,o,l,s,!1,r,i,a),this.addHalfVertex(t,u,c,s,!0,-n,i,a));this.currentVertex=d,this.currentVertexIsOutside=m,this.lineSoFar=y;}else this.addHalfVertex(t,o,l,s,!1,r,i,a),this.addHalfVertex(t,u,c,s,!0,-n,i,a);}addHalfVertex({x:t,y:e},r,n,i,a,s,o,l){this.patternJoinNone&&(0===this.segmentPoints.length&&(this.segmentStart=this.lineSoFar,this.segmentStartf32=Math.fround(this.lineSoFar)),a||this.segmentPoints.push(this.lineSoFar-this.segmentStart,s)),this.layoutVertexArray.emplaceBack((t<<1)+(i?1:0),(e<<1)+(a?1:0),Math.round(63*r)+128,Math.round(63*n)+128,1+(0===s?0:s<0?-1:1),0,this.lineSoFar-this.segmentStartf32),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineClips.start,this.lineClips.end);const u=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,u),o.primitiveLength++),a?this.e2=u:this.e1=u,null!=l&&this.zOffsetVertexArray.emplaceBack(l.zOffset,l.variableWidth);}updateScaledDistance(){this.lineClips?(this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=this.totalFeatureLength*this.lineClips.start+this.distance):this.lineSoFar=this.distance;}updateDistance(t,e){this.prevDistance=this.distance,this.distance+=t.dist(e),this.updateScaledDistance();}}function Sp(t,e,r){return t.x<e||t.x>r||t.y<e||t.y>r}let Ip,Pp;function zp(t,e,r){return e*(Wr/(t.tileSize*Math.pow(2,r-t.tileID.overscaledZ)))}oa(Ap,\"LineBucket\",{omit:[\"layers\",\"patternFeatures\",\"currentVertex\",\"currentVertexIsOutside\"]});const Ep=(t,e,r)=>(1-r)*t+r*e;function kp(t,e){return 1/zp(t,1,e.tileZoom)}function Tp(t,e,r,n){return t.translatePosMatrix(n||e.tileID.projMatrix,e,r.paint.get(\"line-translate\"),r.paint.get(\"line-translate-anchor\"))}const Bp=t=>{const e=[];Vp(t)&&e.push(\"RENDER_LINE_DASH\"),t.paint.get(\"line-gradient\")&&e.push(\"RENDER_LINE_GRADIENT\");const r=t.paint.get(\"line-trim-offset\");0===r[0]&&0===r[1]||e.push(\"RENDER_LINE_TRIM_OFFSET\"),0!==t.paint.get(\"line-border-width\").constantOr(1)&&e.push(\"RENDER_LINE_BORDER\");const n=\"none\"===t.layout.get(\"line-join\").constantOr(\"miter\"),i=!!t.paint.get(\"line-pattern\").constantOr(1);return n&&i&&e.push(\"LINE_JOIN_NONE\"),e};function Vp(t){const e=t.paint.get(\"line-dasharray\").value;return e.value||\"constant\"!==e.kind}let Cp;const Dp=()=>Cp||(Cp={layout:Ip||(Ip=new Ga({\"line-cap\":new qa(Ya.layout_line[\"line-cap\"]),\"line-join\":new qa(Ya.layout_line[\"line-join\"]),\"line-miter-limit\":new ja(Ya.layout_line[\"line-miter-limit\"]),\"line-round-limit\":new ja(Ya.layout_line[\"line-round-limit\"]),\"line-sort-key\":new qa(Ya.layout_line[\"line-sort-key\"]),\"line-z-offset\":new qa(Ya.layout_line[\"line-z-offset\"]),\"line-elevation-reference\":new ja(Ya.layout_line[\"line-elevation-reference\"]),\"line-cross-slope\":new ja(Ya.layout_line[\"line-cross-slope\"]),visibility:new ja(Ya.layout_line.visibility),\"line-width-unit\":new ja(Ya.layout_line[\"line-width-unit\"])})),paint:Pp||(Pp=new Ga({\"line-opacity\":new qa(Ya.paint_line[\"line-opacity\"]),\"line-color\":new qa(Ya.paint_line[\"line-color\"]),\"line-translate\":new ja(Ya.paint_line[\"line-translate\"]),\"line-translate-anchor\":new ja(Ya.paint_line[\"line-translate-anchor\"]),\"line-width\":new qa(Ya.paint_line[\"line-width\"]),\"line-gap-width\":new qa(Ya.paint_line[\"line-gap-width\"]),\"line-offset\":new qa(Ya.paint_line[\"line-offset\"]),\"line-blur\":new qa(Ya.paint_line[\"line-blur\"]),\"line-dasharray\":new qa(Ya.paint_line[\"line-dasharray\"]),\"line-pattern\":new qa(Ya.paint_line[\"line-pattern\"]),\"line-gradient\":new $a(Ya.paint_line[\"line-gradient\"]),\"line-trim-offset\":new ja(Ya.paint_line[\"line-trim-offset\"]),\"line-trim-fade-range\":new ja(Ya.paint_line[\"line-trim-fade-range\"]),\"line-trim-color\":new ja(Ya.paint_line[\"line-trim-color\"]),\"line-emissive-strength\":new ja(Ya.paint_line[\"line-emissive-strength\"]),\"line-border-width\":new qa(Ya.paint_line[\"line-border-width\"]),\"line-border-color\":new qa(Ya.paint_line[\"line-border-color\"]),\"line-occlusion-opacity\":new ja(Ya.paint_line[\"line-occlusion-opacity\"]),\"line-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"line-gradient-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"line-trim-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"line-border-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},Cp);class Lp extends qa{possiblyEvaluate(t,e){return e=new Va(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,transition:e.transition}),super.possiblyEvaluate(t,e)}evaluate(t,e,r,n){return e=nt({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(t,e,r,n)}}let Rp;function Fp(t,e){return e>0?e+2*t:t}const Op=ys([{name:\"a_pos_offset\",components:4,type:\"Int16\"},{name:\"a_tex_size\",components:4,type:\"Uint16\"},{name:\"a_pixeloffset\",components:4,type:\"Int16\"}],4),Np=ys([{name:\"a_globe_anchor\",components:3,type:\"Int16\"},{name:\"a_globe_normal\",components:3,type:\"Float32\"}],4),Up=ys([{name:\"a_projected_pos\",components:4,type:\"Float32\"}],4);ys([{name:\"a_fade_opacity\",components:1,type:\"Uint32\"}],4);const jp=ys([{name:\"a_auto_z_offset\",components:1,type:\"Float32\"}],4),qp=ys([{name:\"a_texb\",components:2,type:\"Uint16\"}]),$p=ys([{name:\"a_placed\",components:2,type:\"Uint8\"},{name:\"a_shift\",components:2,type:\"Float32\"},{name:\"a_elevation_from_sea\",components:2,type:\"Float32\"}]),Gp=ys([{name:\"a_size_scale\",components:1,type:\"Float32\"},{name:\"a_padding\",components:2,type:\"Float32\"},{name:\"a_auto_z_offset\",components:1,type:\"Float32\"}]);ys([{type:\"Int16\",name:\"projectedAnchorX\"},{type:\"Int16\",name:\"projectedAnchorY\"},{type:\"Int16\",name:\"projectedAnchorZ\"},{type:\"Int16\",name:\"tileAnchorX\"},{type:\"Int16\",name:\"tileAnchorY\"},{type:\"Float32\",name:\"x1\"},{type:\"Float32\",name:\"y1\"},{type:\"Float32\",name:\"x2\"},{type:\"Float32\",name:\"y2\"},{type:\"Int16\",name:\"padding\"},{type:\"Uint32\",name:\"featureIndex\"},{type:\"Uint16\",name:\"sourceLayerIndex\"},{type:\"Uint16\",name:\"bucketIndex\"}]);const Yp=ys([{name:\"a_pos\",components:3,type:\"Int16\"},{name:\"a_anchor_pos\",components:2,type:\"Int16\"},{name:\"a_extrude\",components:2,type:\"Int16\"}],4),Xp=ys([{name:\"a_pos_2f\",components:2,type:\"Float32\"},{name:\"a_radius\",components:1,type:\"Float32\"},{name:\"a_flags\",components:2,type:\"Int16\"}],4);ys([{name:\"triangle\",components:3,type:\"Uint16\"}]),ys([{type:\"Int16\",name:\"projectedAnchorX\"},{type:\"Int16\",name:\"projectedAnchorY\"},{type:\"Int16\",name:\"projectedAnchorZ\"},{type:\"Float32\",name:\"tileAnchorX\"},{type:\"Float32\",name:\"tileAnchorY\"},{type:\"Uint16\",name:\"glyphStartIndex\"},{type:\"Uint16\",name:\"numGlyphs\"},{type:\"Uint32\",name:\"vertexStartIndex\"},{type:\"Uint32\",name:\"lineStartIndex\"},{type:\"Uint32\",name:\"lineLength\"},{type:\"Uint16\",name:\"segment\"},{type:\"Uint16\",name:\"lowerSize\"},{type:\"Uint16\",name:\"upperSize\"},{type:\"Float32\",name:\"lineOffsetX\"},{type:\"Float32\",name:\"lineOffsetY\"},{type:\"Uint8\",name:\"writingMode\"},{type:\"Uint8\",name:\"placedOrientation\"},{type:\"Uint8\",name:\"hidden\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Int16\",name:\"associatedIconIndex\"},{type:\"Uint8\",name:\"flipState\"}]),ys([{type:\"Float32\",name:\"tileAnchorX\"},{type:\"Float32\",name:\"tileAnchorY\"},{type:\"Int16\",name:\"projectedAnchorX\"},{type:\"Int16\",name:\"projectedAnchorY\"},{type:\"Int16\",name:\"projectedAnchorZ\"},{type:\"Int16\",name:\"rightJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"centerJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"leftJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedTextSymbolIndex\"},{type:\"Int16\",name:\"placedIconSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedIconSymbolIndex\"},{type:\"Uint16\",name:\"key\"},{type:\"Uint16\",name:\"textBoxStartIndex\"},{type:\"Uint16\",name:\"textBoxEndIndex\"},{type:\"Uint16\",name:\"verticalTextBoxStartIndex\"},{type:\"Uint16\",name:\"verticalTextBoxEndIndex\"},{type:\"Uint16\",name:\"iconBoxStartIndex\"},{type:\"Uint16\",name:\"iconBoxEndIndex\"},{type:\"Uint16\",name:\"verticalIconBoxStartIndex\"},{type:\"Uint16\",name:\"verticalIconBoxEndIndex\"},{type:\"Uint16\",name:\"featureIndex\"},{type:\"Uint16\",name:\"numHorizontalGlyphVertices\"},{type:\"Uint16\",name:\"numVerticalGlyphVertices\"},{type:\"Uint16\",name:\"numIconVertices\"},{type:\"Uint16\",name:\"numVerticalIconVertices\"},{type:\"Uint16\",name:\"useRuntimeCollisionCircles\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Float32\",components:2,name:\"textOffset\"},{type:\"Float32\",name:\"collisionCircleDiameter\"},{type:\"Float32\",name:\"zOffset\"},{type:\"Uint8\",name:\"hasIconTextFit\"}]),ys([{type:\"Float32\",name:\"offsetX\"}]),ys([{type:\"Int16\",name:\"x\"},{type:\"Int16\",name:\"y\"}]);var Zp=24;const Hp=128;function Wp(t,e,r,n,i){if(\"camera\"===t.kind)return t.maxSize;if(\"composite\"===t.kind){const n=e.possiblyEvaluate(new Va(t.maxZoom),r).evaluate(i,{},r),a=e.possiblyEvaluate(new Va(t.minZoom),r).evaluate(i,{},r);return Math.max(n,a)}return e.possiblyEvaluate(new Va(n)).evaluate(i,{},r)}function Kp(t,e){const{expression:r}=e;if(\"constant\"===r.kind)return {kind:\"constant\",layoutSize:r.evaluate(new Va(t+1))};if(\"source\"===r.kind)return {kind:\"source\"};{const{zoomStops:e,interpolationType:n}=r;let i=0;for(;i<e.length&&e[i]<=t;)i++;i=Math.max(0,i-1);let a=i;for(;a<e.length&&e[a]<t+1;)a++;a=Math.min(e.length-1,a);const s=e[i],o=e[a];return \"composite\"===r.kind?{kind:\"composite\",minZoom:s,maxZoom:o,interpolationType:n}:{kind:\"camera\",minZoom:s,maxZoom:o,minSize:r.evaluate(new Va(s)),maxSize:r.evaluate(new Va(o)),interpolationType:n}}}function Jp(t,{uSize:e,uSizeT:r},{lowerSize:n,upperSize:i}){return \"source\"===t.kind?n/Hp:\"composite\"===t.kind?ze(n/Hp,i/Hp,r):e}function Qp(t,e,r=1){let n=0,i=0;if(\"constant\"===t.kind)i=t.layoutSize*r;else if(\"source\"!==t.kind){const{interpolationType:a,minZoom:s,maxZoom:o}=t,l=a?Q(ai.interpolationFactor(a,e,s,o),0,1):0;\"camera\"===t.kind?i=ze(t.minSize,t.maxSize,l)*r:n=l*r;}return {uSizeT:n,uSize:i}}var tf=Object.freeze({__proto__:null,SIZE_PACK_FACTOR:Hp,evaluateSizeForFeature:Jp,evaluateSizeForZoom:Qp,getRasterizedIconSize:Wp,getSizeData:Kp});function ef(t,e,r){return t.sections.forEach((t=>{t.text=function(t,e,r){const n=e.layout.get(\"text-transform\").evaluate(r,{});return \"uppercase\"===n?t=t.toLocaleUpperCase():\"lowercase\"===n&&(t=t.toLocaleLowerCase()),Ba.applyArabicShaping&&(t=Ba.applyArabicShaping(t)),t}(t.text,e,r);})),t}const rf={\"!\":\"︕\",\"#\":\"\",$:\"\",\"%\":\"\",\"&\":\"\",\"(\":\"︵\",\")\":\"︶\",\"*\":\"\",\"+\":\"\",\",\":\"︐\",\"-\":\"︲\",\".\":\"・\",\"/\":\"\",\":\":\"︓\",\";\":\"︔\",\"<\":\"︿\",\"=\":\"\",\">\":\"﹀\",\"?\":\"︖\",\"@\":\"\",\"[\":\"﹇\",\"\\\\\":\"\",\"]\":\"﹈\",\"^\":\"\",_:\"︳\",\"`\":\"\",\"{\":\"︷\",\"|\":\"―\",\"}\":\"︸\",\"~\":\"\",\"¢\":\"¢\",\"£\":\"£\",\"¥\":\"¥\",\"¦\":\"¦\",\"¬\":\"¬\",\"¯\":\" ̄\",\"\":\"︲\",\"—\":\"︱\",\"\":\"﹃\",\"\":\"﹄\",\"“\":\"﹁\",\"”\":\"﹂\",\"…\":\"︙\",\"‧\":\"・\",\"₩\":\"₩\",\"、\":\"︑\",\"。\":\"︒\",\"〈\":\"︿\",\"〉\":\"﹀\",\"《\":\"︽\",\"》\":\"︾\",\"「\":\"﹁\",\"」\":\"﹂\",\"『\":\"﹃\",\"』\":\"﹄\",\"【\":\"︻\",\"】\":\"︼\",\"\":\"︹\",\"\":\"︺\",\"〖\":\"︗\",\"〗\":\"︘\",\"\":\"︕\",\"\":\"︵\",\"\":\"︶\",\"\":\"︐\",\"\":\"︲\",\"\":\"・\",\"\":\"︓\",\"\":\"︔\",\"\":\"︿\",\"\":\"﹀\",\"\":\"︖\",\"\":\"﹇\",\"\":\"﹈\",\"_\":\"︳\",\"\":\"︷\",\"\":\"―\",\"\":\"︸\",\"⦅\":\"︵\",\"⦆\":\"︶\",\"。\":\"︒\",\"「\":\"﹁\",\"」\":\"﹂\",\"←\":\"↑\",\"→\":\"↓\"};function nf(t){return \"︶\"===t||\"﹈\"===t||\"︸\"===t||\"﹄\"===t||\"﹂\"===t||\"︾\"===t||\"︼\"===t||\"︺\"===t||\"︘\"===t||\"﹀\"===t||\"︐\"===t||\"︓\"===t||\"︔\"===t||\"\"===t||\" ̄\"===t||\"︑\"===t||\"︒\"===t}function af(t){return \"︵\"===t||\"﹇\"===t||\"︷\"===t||\"﹃\"===t||\"﹁\"===t||\"︽\"===t||\"︻\"===t||\"︹\"===t||\"︗\"===t||\"︿\"===t}var sf,of,lf,uf={};\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */function cf(){return sf||(sf=1,uf.read=function(t,e,r,n,i){var a,s,o=8*i-n-1,l=(1<<o)-1,u=l>>1,c=-7,h=r?i-1:0,p=r?-1:1,f=t[e+h];for(h+=p,a=f&(1<<-c)-1,f>>=-c,c+=o;c>0;a=256*a+t[e+h],h+=p,c-=8);for(s=a&(1<<-c)-1,a>>=-c,c+=n;c>0;s=256*s+t[e+h],h+=p,c-=8);if(0===a)a=1-u;else {if(a===l)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),a-=u;}return (f?-1:1)*s*Math.pow(2,a-n)},uf.write=function(t,e,r,n,i,a){var s,o,l,u=8*a-i-1,c=(1<<u)-1,h=c>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:a-1,d=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),(e+=s+h>=1?p/l:p*Math.pow(2,1-h))*l>=2&&(s++,l/=2),s+h>=c?(o=0,s=c):s+h>=1?(o=(e*l-1)*Math.pow(2,i),s+=h):(o=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+f]=255&o,f+=d,o/=256,i-=8);for(s=s<<i|o,u+=i;u>0;t[r+f]=255&s,f+=d,s/=256,u-=8);t[r+f-d]|=128*m;}),uf}function hf(){if(lf)return of;lf=1,of=e;var t=cf();function e(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length;}e.Varint=0,e.Fixed64=1,e.Bytes=2,e.Fixed32=5;var r=4294967296,n=1/r,i=\"undefined\"==typeof TextDecoder?null:new TextDecoder(\"utf8\");function a(t){return t.type===e.Bytes?t.readVarint()+t.pos:t.pos+1}function s(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function o(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i];}function l(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r]);}function u(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r]);}function c(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r]);}function h(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r]);}function p(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r]);}function f(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r]);}function d(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r]);}function m(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r]);}function y(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r]);}function g(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function x(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function v(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}return e.prototype={destroy:function(){this.buf=null;},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),i=n>>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n);}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=g(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=v(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=g(this.buf,this.pos)+g(this.buf,this.pos+4)*r;return this.pos+=8,t},readSFixed64:function(){var t=g(this.buf,this.pos)+v(this.buf,this.pos+4)*r;return this.pos+=8,t},readFloat:function(){var e=t.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=t.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return s(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return s(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return s(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return s(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return s(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return s(t,n,e);throw new Error(\"Expected varint not more than 10 bytes\")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&i?function(t,e,r){return i.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n=\"\",i=e;i<r;){var a,s,o,l=t[i],u=null,c=l>239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)<=127&&(u=null):3===c?(s=t[i+2],128==(192&(a=t[i+1]))&&128==(192&s)&&((u=(15&l)<<12|(63&a)<<6|63&s)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(s=t[i+2],o=t[i+3],128==(192&(a=t[i+1]))&&128==(192&s)&&128==(192&o)&&((u=(15&l)<<18|(63&a)<<12|(63&s)<<6|63&o)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c;}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,r){if(this.type!==e.Bytes)return t.push(this.readVarint(r));var n=a(this);for(t=t||[];this.pos<n;)t.push(this.readVarint(r));return t},readPackedSVarint:function(t){if(this.type!==e.Bytes)return t.push(this.readSVarint());var r=a(this);for(t=t||[];this.pos<r;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==e.Bytes)return t.push(this.readBoolean());var r=a(this);for(t=t||[];this.pos<r;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==e.Bytes)return t.push(this.readFloat());var r=a(this);for(t=t||[];this.pos<r;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==e.Bytes)return t.push(this.readDouble());var r=a(this);for(t=t||[];this.pos<r;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==e.Bytes)return t.push(this.readFixed32());var r=a(this);for(t=t||[];this.pos<r;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==e.Bytes)return t.push(this.readSFixed32());var r=a(this);for(t=t||[];this.pos<r;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==e.Bytes)return t.push(this.readFixed64());var r=a(this);for(t=t||[];this.pos<r;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==e.Bytes)return t.push(this.readSFixed64());var r=a(this);for(t=t||[];this.pos<r;)t.push(this.readSFixed64());return t},skip:function(t){var r=7&t;if(r===e.Varint)for(;this.buf[this.pos++]>127;);else if(r===e.Bytes)this.pos=this.readVarint()+this.pos;else if(r===e.Fixed32)this.pos+=4;else {if(r!==e.Fixed64)throw new Error(\"Unimplemented type: \"+r);this.pos+=8;}},writeTag:function(t,e){this.writeVarint(t<<3|e);},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e;}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),x(this.buf,t,this.pos),this.pos+=4;},writeSFixed32:function(t){this.realloc(4),x(this.buf,t,this.pos),this.pos+=4;},writeFixed64:function(t){this.realloc(8),x(this.buf,-1&t,this.pos),x(this.buf,Math.floor(t*n),this.pos+4),this.pos+=8;},writeSFixed64:function(t){this.realloc(8),x(this.buf,-1&t,this.pos),x(this.buf,Math.floor(t*n),this.pos+4),this.pos+=8;},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error(\"Given varint doesn't fit into 10 bytes\");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,r.buf[r.pos]=127&(t>>>=7);}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))));}(n,e);}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))));},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t);},writeBoolean:function(t){this.writeVarint(Boolean(t));},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a<e.length;a++){if((n=e.charCodeAt(a))>55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null;}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128);}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&o(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(e){this.realloc(4),t.write(this.buf,e,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(e){this.realloc(8),t.write(this.buf,e,this.pos,!0,52,8),this.pos+=8;},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r];},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&o(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n;},writeMessage:function(t,r,n){this.writeTag(t,e.Bytes),this.writeRawMessage(r,n);},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,l,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,u,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,p,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,c,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,h,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,f,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,d,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,m,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,y,e);},writeBytesField:function(t,r){this.writeTag(t,e.Bytes),this.writeBytes(r);},writeFixed32Field:function(t,r){this.writeTag(t,e.Fixed32),this.writeFixed32(r);},writeSFixed32Field:function(t,r){this.writeTag(t,e.Fixed32),this.writeSFixed32(r);},writeFixed64Field:function(t,r){this.writeTag(t,e.Fixed64),this.writeFixed64(r);},writeSFixed64Field:function(t,r){this.writeTag(t,e.Fixed64),this.writeSFixed64(r);},writeVarintField:function(t,r){this.writeTag(t,e.Varint),this.writeVarint(r);},writeSVarintField:function(t,r){this.writeTag(t,e.Varint),this.writeSVarint(r);},writeStringField:function(t,r){this.writeTag(t,e.Bytes),this.writeString(r);},writeFloatField:function(t,r){this.writeTag(t,e.Fixed32),this.writeFloat(r);},writeDoubleField:function(t,r){this.writeTag(t,e.Fixed64),this.writeDouble(r);},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e));}},of}var pf=e(hf());const ff=3;function df(t,e,r){e.glyphs=[],1===t&&r.readMessage(mf,e);}function mf(t,e,r){if(3===t){const{id:t,bitmap:n,width:i,height:a,left:s,top:o,advance:l}=r.readMessage(yf,{});e.glyphs.push({id:t,bitmap:new ac({width:i+2*ff,height:a+2*ff},n),metrics:{width:i,height:a,left:s,top:o,advance:l}});}else 4===t?e.ascender=r.readSVarint():5===t&&(e.descender=r.readSVarint());}function yf(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint());}const gf=ff,xf={horizontal:1,vertical:2,horizontalOnly:3};class vf{constructor(){this.scale=1,this.fontStack=\"\",this.image=null;}static forText(t,e){const r=new vf;return r.scale=t||1,r.fontStack=e,r}static forImage(t){const e=new vf;return e.image=t,e}}class bf{constructor(){this.text=\"\",this.sectionIndex=[],this.sections=[],this.imageSectionID=null;}static fromFeature(t,e){const r=new bf;for(let n=0;n<t.sections.length;n++){const i=t.sections[n];i.image?r.addImageSection(i):r.addTextSection(i,e);}return r}length(){return this.text.length}getSection(t){return this.sections[this.sectionIndex[t]]}getSections(){return this.sections}getSectionIndex(t){return this.sectionIndex[t]}getCodePoint(t){return this.text.codePointAt(t)}verticalizePunctuation(t){this.text=function(t,e){let r=\"\";for(let n=0;n<t.length;n++){const i=t.charCodeAt(n+1)||null,a=t.charCodeAt(n-1)||null;r+=!e&&(i&&ga(i)&&!rf[t[n+1]]||a&&ga(a)&&!rf[t[n-1]])||!rf[t[n]]?t[n]:rf[t[n]];}return r}(this.text,t);}trim(){let t=0;for(let e=0;e<this.text.length&&wf[this.text.charCodeAt(e)];e++)t++;let e=this.text.length;for(let r=this.text.length-1;r>=0&&r>=t&&wf[this.text.charCodeAt(r)];r--)e--;this.text=this.text.substring(t,e),this.sectionIndex=this.sectionIndex.slice(t,e);}substring(t,e){const r=new bf;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((t,e)=>Math.max(t,this.sections[e].scale)),0)}addTextSection(t,e){this.text+=t.text,this.sections.push(vf.forText(t.scale,t.fontStack||e));const r=this.sections.length-1;for(let e=0;e<t.text.length;++e)this.sectionIndex.push(r);}addImageSection(t){const e=t.image&&t.image.namePrimary?t.image.getPrimary():null;if(!e)return void ft(\"Can't add FormattedSection with an empty image.\");const r=this.getNextImageSectionCharCode();r?(this.text+=String.fromCodePoint(r),this.sections.push(vf.forImage(e)),this.sectionIndex.push(this.sections.length-1)):ft(\"Reached maximum number of images 6401\");}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function _f(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d){const m=bf.fromFeature(t,i);h===xf.vertical&&m.verticalizePunctuation(p);let y=[];const g=function(t,e,r,n,i,a){if(!t)return [];const s=[],o=function(t,e,r,n,i,a){let s=0;for(let r=0;r<t.length();r++){const o=t.getSection(r);s+=Af(t.getCodePoint(r),o,n,i,e,a);}return s/Math.max(1,Math.ceil(s/r))}(t,e,r,n,i,a),l=t.text.indexOf(\"\")>=0;let u=0;for(let r=0;r<t.length();r++){const h=t.getSection(r),p=t.getCodePoint(r);if(wf[p]||(u+=Af(p,h,n,i,e,a)),r<t.length()-1){const e=!((c=p)<11904||!(pa[\"Bopomofo Extended\"](c)||pa.Bopomofo(c)||pa[\"CJK Compatibility Forms\"](c)||pa[\"CJK Compatibility Ideographs\"](c)||pa[\"CJK Compatibility\"](c)||pa[\"CJK Radicals Supplement\"](c)||pa[\"CJK Strokes\"](c)||pa[\"CJK Symbols and Punctuation\"](c)||pa[\"CJK Unified Ideographs Extension A\"](c)||pa[\"CJK Unified Ideographs\"](c)||pa[\"Enclosed CJK Letters and Months\"](c)||pa[\"Halfwidth and Fullwidth Forms\"](c)||pa.Hiragana(c)||pa[\"Ideographic Description Characters\"](c)||pa[\"Kangxi Radicals\"](c)||pa[\"Katakana Phonetic Extensions\"](c)||pa.Katakana(c)||pa[\"Vertical Forms\"](c)||pa[\"Yi Radicals\"](c)||pa[\"Yi Syllables\"](c)));(Mf[p]||e||h.image)&&s.push(Pf(r+1,u,o,s,If(p,t.getCodePoint(r+1),e&&l),!1));}}var c;return zf(Pf(t.length(),u,o,s,0,!0))}(m,u,a,e,n,f),{processBidirectionalText:x,processStyledBidirectionalText:v}=Ba;if(x&&1===m.sections.length){const t=x(m.toString(),g);for(const e of t){const t=new bf;t.text=e,t.sections=m.sections;for(let r=0;r<e.length;r++)t.sectionIndex.push(0);y.push(t);}}else if(v){const t=v(m.text,m.sectionIndex,g);for(const e of t){const t=new bf;t.text=e[0],t.sectionIndex=e[1],t.sections=m.sections,y.push(t);}}else y=function(t,e){const r=[],n=t.text;let i=0;for(const n of e)r.push(t.substring(i,n)),i=n;return i<n.length&&r.push(t.substring(i,n.length)),r}(m,g);const b=[],_={positionedLines:b,text:m.toString(),top:c[1],bottom:c[1],left:c[0],right:c[0],writingMode:h,iconsInText:!1,verticalizable:!1,hasBaseline:!1};return function(t,e,r,n,i,a,s,o,l,u,c,h){let p=0,f=0,d=0;const m=\"right\"===o?1:\"left\"===o?0:.5;let y=!1;for(const t of i){const r=t.getSections();for(const t of r){if(t.image)continue;const r=e[t.fontStack];if(r&&(y=void 0!==r.ascender&&void 0!==r.descender,!y))break}if(!y)break}let g=0;for(const s of i){s.trim();const i=s.getMaxScale(),o=(i-1)*Zp,v={positionedGlyphs:[],lineOffset:0};t.positionedLines[g]=v;const b=v.positionedGlyphs;let _=0;if(!s.length()){f+=a,++g;continue}let w=0,M=0;for(let a=0;a<s.length();a++){const o=s.getSection(a),d=s.getSectionIndex(a),m=s.getCodePoint(a);let g=o.scale,v=null,A=null,S=null,I=Zp,P=0;const z=!(l===xf.horizontal||!c&&!ya(m)||c&&(wf[m]||(x=m,pa.Arabic(x)||pa[\"Arabic Supplement\"](x)||pa[\"Arabic Extended-A\"](x)||pa[\"Arabic Presentation Forms-A\"](x)||pa[\"Arabic Presentation Forms-B\"](x))));if(o.image){const e=n[o.image.serialize()];if(!e)continue;S=o.image.id,t.iconsInText=t.iconsInText||!0,A=e.paddedRect;const r=e.displaySize;g=g*Zp/h,v={width:r[0],height:r[1],left:0,top:-gf,advance:z?r[1]:r[0],localGlyph:!1},P=y?-v.height*g:i*Zp-17-r[1]*g,I=v.advance;const a=(z?r[0]:r[1])*g-Zp*i;a>0&&a>_&&(_=a);}else {const t=r[o.fontStack];if(!t)continue;t[m]&&(A=t[m]);const n=e[o.fontStack];if(!n)continue;const a=n.glyphs[m];if(!a)continue;if(v=a.metrics,I=8203!==m?Zp:0,y){const t=void 0!==n.ascender?Math.abs(n.ascender):0,e=void 0!==n.descender?Math.abs(n.descender):0,r=(t+e)*g;w<r&&(w=r,M=(t-e)/2*g),P=-t*g;}else P=(i-g)*Zp-17;}z?(t.verticalizable=!0,b.push({glyph:m,imageName:S,x:p,y:f+P,vertical:z,scale:g,localGlyph:v.localGlyph,fontStack:o.fontStack,sectionIndex:d,metrics:v,rect:A}),p+=I*g+u):(b.push({glyph:m,imageName:S,x:p,y:f+P,vertical:z,scale:g,localGlyph:v.localGlyph,fontStack:o.fontStack,sectionIndex:d,metrics:v,rect:A}),p+=v.advance*g+u);}0!==b.length&&(d=Math.max(p-u,d),y?kf(b,m,_,M,a*i/2):kf(b,m,_,0,a/2)),p=0;const A=a*i+_;v.lineOffset=Math.max(_,o),f+=A,++g;}var x;const v=f,{horizontalAlign:b,verticalAlign:_}=Ef(s);((function(t,e,r,n,i,a){const s=(e-r)*i,o=-a*n;for(const e of t)for(const t of e.positionedGlyphs)t.x+=s,t.y+=o;}))(t.positionedLines,m,b,_,d,v),t.top+=-_*v,t.bottom=t.top+v,t.left+=-b*d,t.right=t.left+d,t.hasBaseline=y;}(_,e,r,n,y,s,o,l,h,u,p,d),!function(t){for(const e of t)if(0!==e.positionedGlyphs.length)return !1;return !0}(b)&&_}const wf={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Mf={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function Af(t,e,r,n,i,a){if(e.image){const t=n[e.image.serialize()];return t?t.displaySize[0]*e.scale*Zp/a+i:0}{const n=r[e.fontStack],a=n&&n.glyphs[t];return a?a.metrics.advance*e.scale+i:0}}function Sf(t,e,r,n){const i=Math.pow(t-e,2);return n?t<e?i/2:2*i:i+Math.abs(r)*r}function If(t,e,r){let n=0;return 10===t&&(n-=1e4),r&&(n+=150),40!==t&&65288!==t||(n+=50),41!==e&&65289!==e||(n+=50),n}function Pf(t,e,r,n,i,a){let s=null,o=Sf(e,r,i,a);for(const t of n){const n=Sf(e-t.x,r,i,a)+t.badness;n<=o&&(s=t,o=n);}return {index:t,x:e,priorBreak:s,badness:o}}function zf(t){return t?zf(t.priorBreak).concat(t.index):[]}function Ef(t){let e=.5,r=.5;switch(t){case\"right\":case\"top-right\":case\"bottom-right\":e=1;break;case\"left\":case\"top-left\":case\"bottom-left\":e=0;}switch(t){case\"bottom\":case\"bottom-right\":case\"bottom-left\":r=1;break;case\"top\":case\"top-right\":case\"top-left\":r=0;}return {horizontalAlign:e,verticalAlign:r}}function kf(t,e,r,n,i){if(!(e||r||n||i))return;const a=t.length-1,s=t[a],o=(s.x+s.metrics.advance*s.scale)*e;for(let e=0;e<=a;e++)t[e].x-=o,t[e].y+=r+n+i;}function Tf(t,e,r,n){const{horizontalAlign:i,verticalAlign:a}=Ef(n),s=r[0]-t.displaySize[0]*i,o=r[1]-t.displaySize[1]*a;return {imagePrimary:t,imageSecondary:e,top:o,bottom:o+t.displaySize[1],left:s,right:s+t.displaySize[0]}}function Bf(t,e,r,n,i,a){const s=t.imagePrimary;let o;if(s.content){const t=s.content,e=s.pixelRatio||1;o=[t[0]/e,t[1]/e,s.displaySize[0]-t[2]/e,s.displaySize[1]-t[3]/e];}const l=e.left*a,u=e.right*a;let c,h,p,f;\"width\"===r||\"both\"===r?(f=i[0]+l-n[3],h=i[0]+u+n[1]):(f=i[0]+(l+u-s.displaySize[0])/2,h=f+s.displaySize[0]);const d=e.top*a,m=e.bottom*a;return \"height\"===r||\"both\"===r?(c=i[1]+d-n[0],p=i[1]+m+n[2]):(c=i[1]+(d+m-s.displaySize[1])/2,p=c+s.displaySize[1]),{imagePrimary:s,imageSecondary:void 0,top:c,right:h,bottom:p,left:f,collisionPadding:o}}class Vf extends q{constructor(t,e,r,n,i){super(t,e),this.angle=n,this.z=r,void 0!==i&&(this.segment=i);}clone(){return new Vf(this.x,this.y,this.z,this.angle,this.segment)}}function Cf(t,e,r,n,i){if(void 0===e.segment)return !0;let a=e,s=e.segment+1,o=0;for(;o>-r/2;){if(s--,s<0)return !1;o-=t[s].dist(a),a=t[s];}o+=t[s].dist(t[s+1]),s++;const l=[];let u=0;for(;o<r/2;){const e=t[s],r=t[s+1];if(!r)return !1;let a=t[s-1].angleTo(e)-e.angleTo(r);for(a=Math.abs((a+3*Math.PI)%(2*Math.PI)-Math.PI),l.push({distance:o,angleDelta:a}),u+=a;o-l[0].distance>n;)u-=l.shift().angleDelta;if(u>i)return !1;s++,o+=e.dist(r);}return !0}function Df(t){let e=0;for(let r=0;r<t.length-1;r++)e+=t[r].dist(t[r+1]);return e}function Lf(t,e,r){return t?.6*e*r:0}function Rf(t,e){return Math.max(t?t.right-t.left:0,e?e.right-e.left:0)}function Ff(t,e,r,n,i,a){const s=Lf(r,i,a),o=Rf(r,n)*a;let l=0;const u=Df(t)/2;for(let r=0;r<t.length-1;r++){const n=t[r],i=t[r+1],a=n.dist(i);if(l+a>u){const c=(u-l)/a,h=ze(n.x,i.x,c),p=ze(n.y,i.y,c),f=new Vf(h,p,0,i.angleTo(n),r);return !s||Cf(t,f,o,s,e)?f:void 0}l+=a;}}function Of(t,e,r,n,i,a,s,o,l){const u=Lf(n,a,s),c=Rf(n,i),h=c*s,p=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-h<e/4&&(e=h+e/4),Nf(t,p?e/2*o%e:(c/2+2*a)*s*o%e,e,u,r,h,p,!1,l)}function Nf(t,e,r,n,i,a,s,o,l){const u=a/2,c=Df(t);let h=0,p=e-r,f=[];for(let e=0;e<t.length-1;e++){const s=t[e],o=t[e+1],d=s.dist(o),m=o.angleTo(s);for(;p+r<h+d;){p+=r;const y=(p-h)/d,g=ze(s.x,o.x,y),x=ze(s.y,o.y,y);if(g>=0&&g<l&&x>=0&&x<l&&p-u>=0&&p+u<=c){const r=new Vf(g,x,0,m,e);n&&!Cf(t,r,a,n,i)||f.push(r);}}h+=d;}return o||f.length||s||(f=Nf(t,h/2,r,n,i,a,s,!0,l)),f}function Uf(t,e,r,n,i){const a=[];for(let s=0;s<t.length;s++){const o=t[s];let l;for(let t=0;t<o.length-1;t++){let s=o[t],u=o[t+1];s.x<e&&u.x<e||(s.x<e?s=new q(e,s.y+(e-s.x)/(u.x-s.x)*(u.y-s.y))._round():u.x<e&&(u=new q(e,s.y+(e-s.x)/(u.x-s.x)*(u.y-s.y))._round()),s.y<r&&u.y<r||(s.y<r?s=new q(s.x+(r-s.y)/(u.y-s.y)*(u.x-s.x),r)._round():u.y<r&&(u=new q(s.x+(r-s.y)/(u.y-s.y)*(u.x-s.x),r)._round()),s.x>=n&&u.x>=n||(s.x>=n?s=new q(n,s.y+(n-s.x)/(u.x-s.x)*(u.y-s.y))._round():u.x>=n&&(u=new q(n,s.y+(n-s.x)/(u.x-s.x)*(u.y-s.y))._round()),s.y>=i&&u.y>=i||(s.y>=i?s=new q(s.x+(i-s.y)/(u.y-s.y)*(u.x-s.x),i)._round():u.y>=i&&(u=new q(s.x+(i-s.y)/(u.y-s.y)*(u.x-s.x),i)._round()),l&&s.equals(l[l.length-1])||(l=[s],a.push(l)),l.push(u)))));}}return a}function jf(t){let e=0,r=0;for(const n of t)e+=n.w*n.h,r=Math.max(r,n.w);t.sort(((t,e)=>e.h-t.h));const n=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}];let i=0,a=0;for(const e of t)for(let t=n.length-1;t>=0;t--){const r=n[t];if(!(e.w>r.w||e.h>r.h)){if(e.x=r.x,e.y=r.y,a=Math.max(a,e.y+e.h),i=Math.max(i,e.x+e.w),e.w===r.w&&e.h===r.h){const e=n.pop();t<n.length&&(n[t]=e);}else e.h===r.h?(r.x+=e.w,r.w-=e.w):e.w===r.w?(r.y+=e.h,r.h-=e.h):(n.push({x:r.x+e.w,y:r.y,w:r.w-e.w,h:e.h}),r.y+=e.h,r.h-=e.h);break}}return {w:i,h:a,fill:e/(i*a)||0}}oa(Vf,\"Anchor\");const qf=1;class $f{constructor(t,{pixelRatio:e,version:r,stretchX:n,stretchY:i,content:a},s){this.paddedRect=t,this.pixelRatio=e,this.stretchX=n,this.stretchY=i,this.content=a,this.version=r,this.padding=s;}get tl(){return [this.paddedRect.x+this.padding,this.paddedRect.y+this.padding]}get br(){return [this.paddedRect.x+this.paddedRect.w-this.padding,this.paddedRect.y+this.paddedRect.h-this.padding]}get displaySize(){return [(this.paddedRect.w-2*this.padding)/this.pixelRatio,(this.paddedRect.h-2*this.padding)/this.pixelRatio]}}class Gf{constructor(t,e,r){const n={},i={};this.haveRenderCallbacks=[];const a=[];this.addImages(t,n,qf,a),this.addImages(e,i,2,a);const{w:s,h:o}=jf(a),l=new sc({width:s||1,height:o||1});for(const e in t){const i=t[e],a=n[e].paddedRect;sc.copy(i.data,l,{x:0,y:0},{x:a.x+qf,y:a.y+qf},i.data,r,i.sdf);}for(const t in e){const n=e[t],a=i[t].paddedRect;let s=i[t].padding;const o=a.x+s,u=a.y+s,c=n.data.width,h=n.data.height;s=s>1?s-1:s,sc.copy(n.data,l,{x:0,y:0},{x:o,y:u},n.data,r),sc.copy(n.data,l,{x:0,y:h-s},{x:o,y:u-s},{width:c,height:s},r),sc.copy(n.data,l,{x:0,y:0},{x:o,y:u+h},{width:c,height:s},r),sc.copy(n.data,l,{x:c-s,y:0},{x:o-s,y:u},{width:s,height:h},r),sc.copy(n.data,l,{x:0,y:0},{x:o+c,y:u},{width:s,height:h},r),sc.copy(n.data,l,{x:c-s,y:h-s},{x:o-s,y:u-s},{width:s,height:s},r),sc.copy(n.data,l,{x:0,y:h-s},{x:o+c,y:u-s},{width:s,height:s},r),sc.copy(n.data,l,{x:0,y:0},{x:o+c,y:u+h},{width:s,height:s},r),sc.copy(n.data,l,{x:c-s,y:0},{x:o-s,y:u+h},{width:s,height:s},r);}this.image=l,this.iconPositions=n,this.patternPositions=i;}addImages(t,e,r,n){for(const i in t){const a=t[i],s={x:0,y:0,w:a.data.width+2*r,h:a.data.height+2*r};n.push(s),e[i]=new $f(s,a,r),a.hasRenderCallback&&this.haveRenderCallbacks.push(Qe.deserializeId(i));}}patchUpdatedImages(t,e,r){this.haveRenderCallbacks=this.haveRenderCallbacks.filter((e=>t.hasImage(e,r))),t.dispatchRenderCallbacks(this.haveRenderCallbacks,r);for(const n in t.getUpdatedImages(r)){for(const i of Object.keys(this.iconPositions))Qe.deserializeId(i)===n&&this.patchUpdatedImage(this.iconPositions[i],t.getImage(n,r),e);for(const i of Object.keys(this.patternPositions))Qe.deserializeId(i)===n&&this.patchUpdatedImage(this.patternPositions[i],t.getImage(n,r),e);}}patchUpdatedImage(t,e,r){if(!t||!e)return;if(t.version===e.version)return;t.version=e.version;const[n,i]=t.tl;r.update(e.data,{position:{x:n,y:i}});}}oa($f,\"ImagePosition\"),oa(Gf,\"ImageAtlas\");const Yf=1e20;function Xf(t,e,r,n,i,a,s,o,l){for(let u=e;u<e+n;u++)Zf(t,r*a+u,a,i,s,o,l);for(let u=r;u<r+i;u++)Zf(t,u*a+e,1,n,s,o,l);}function Zf(t,e,r,n,i,a,s){a[0]=0,s[0]=-Yf,s[1]=Yf,i[0]=t[e];for(let o=1,l=0,u=0;o<n;o++){i[o]=t[e+o*r];const n=o*o;do{const t=a[l];u=(i[o]-i[t]+n-t*t)/(o-t)/2;}while(u<=s[l]&&--l>-1);l++,a[l]=o,s[l]=u,s[l+1]=Yf;}for(let o=0,l=0;o<n;o++){for(;s[l+1]<o;)l++;const n=a[l],u=o-n;t[e+o*r]=i[n]+u*u;}}const Hf=2,Wf={none:0,ideographs:1,all:2};class Kf{constructor(t,e,r){this.requestManager=t,this.localGlyphMode=e,this.localFontFamily=r,this.urls={},this.entries={},this.localGlyphs={200:{},400:{},500:{},900:{}};}setURL(t,e){this.urls[e]=t;}getGlyphs(t,e,r){const n=[],i=this.urls[e]||St.GLYPHS_URL;for(const e in t)for(const r of t[e])n.push({stack:e,id:r});rt(n,(({stack:t,id:e},r)=>{let n=this.entries[t];n||(n=this.entries[t]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let a=n.glyphs[e];if(void 0!==a)return void r(null,{stack:t,id:e,glyph:a});if(a=this._tinySDF(n,t,e),a)return n.glyphs[e]=a,void r(null,{stack:t,id:e,glyph:a});const s=Math.floor(e/256);if(256*s>65535)return ft(\"glyphs > 65535 not supported\"),void r(null,{stack:t,id:e,glyph:a});if(n.ranges[s])return void r(null,{stack:t,id:e,glyph:a});let o=n.requests[s];o||(o=n.requests[s]=[],Kf.loadGlyphRange(t,s,i,this.requestManager,((t,e)=>{if(e){n.ascender=e.ascender,n.descender=e.descender;for(const t in e.glyphs)this._doesCharSupportLocalGlyph(+t)||(n.glyphs[+t]=e.glyphs[+t]);n.ranges[s]=!0;}for(const r of o)r(t,e);delete n.requests[s];}))),o.push(((n,i)=>{n?r(n):i&&r(null,{stack:t,id:e,glyph:i.glyphs[e]||null});}));}),((t,e)=>{if(t)r(t);else if(e){const t={};for(const{stack:r,id:n,glyph:i}of e)void 0===t[r]&&(t[r]={}),void 0===t[r].glyphs&&(t[r].glyphs={}),t[r].glyphs[n]=i&&{id:i.id,bitmap:i.bitmap.clone(),metrics:i.metrics},t[r].ascender=this.entries[r].ascender,t[r].descender=this.entries[r].descender;r(null,t);}}));}_doesCharSupportLocalGlyph(t){return this.localGlyphMode!==Wf.none&&(this.localGlyphMode===Wf.all?!!this.localFontFamily:!!this.localFontFamily&&(pa[\"CJK Unified Ideographs\"](t)||pa[\"Hangul Syllables\"](t)||pa.Hiragana(t)||pa.Katakana(t)||pa[\"CJK Symbols and Punctuation\"](t)||pa[\"CJK Unified Ideographs Extension A\"](t)||pa[\"CJK Unified Ideographs Extension B\"](t)||pa.Osage(t)))}_tinySDF(t,e,r){const n=this.localFontFamily;if(!n||!this._doesCharSupportLocalGlyph(r))return;let i=t.tinySDF;if(!i){let r=\"400\";/bold/i.test(e)?r=\"900\":/medium/i.test(e)?r=\"500\":/light/i.test(e)&&(r=\"200\"),i=t.tinySDF=new Kf.TinySDF({fontFamily:n,fontWeight:r,fontSize:24*Hf,buffer:3*Hf,radius:8*Hf}),i.fontWeight=r;}if(this.localGlyphs[i.fontWeight][r])return this.localGlyphs[i.fontWeight][r];const a=String.fromCodePoint(r),{data:s,width:o,height:l,glyphWidth:u,glyphHeight:c,glyphLeft:h,glyphTop:p,glyphAdvance:f}=i.draw(a);return this.localGlyphs[i.fontWeight][r]={id:r,bitmap:new ac({width:o,height:l},s),metrics:{width:u/Hf,height:c/Hf,left:h/Hf,top:p/Hf-27,advance:f/Hf,localGlyph:!0}}}}Kf.loadGlyphRange=function(t,e,r,n,i){const a=256*e,s=a+255,o=n.transformRequest(n.normalizeGlyphsURL(r).replace(\"{fontstack}\",t).replace(\"{range}\",`${a}-${s}`),te.Glyphs);ie(o,((t,e)=>{if(t)i(t);else if(e){const t={},r=function(t){return new pf(t).readFields(df,{})}(e);for(const e of r.glyphs)t[e.id]=e;i(null,{glyphs:t,ascender:r.ascender,descender:r.descender});}}));},Kf.TinySDF=class{constructor({fontSize:t=24,buffer:e=3,radius:r=8,cutoff:n=.25,fontFamily:i=\"sans-serif\",fontWeight:a=\"normal\",fontStyle:s=\"normal\"}={}){this.buffer=e,this.cutoff=n,this.radius=r;const o=this.size=t+4*e,l=this._createCanvas(o),u=this.ctx=l.getContext(\"2d\",{willReadFrequently:!0});u.font=`${s} ${a} ${t}px ${i}`,u.textBaseline=\"alphabetic\",u.textAlign=\"left\",u.fillStyle=\"black\",this.gridOuter=new Float64Array(o*o),this.gridInner=new Float64Array(o*o),this.f=new Float64Array(o),this.z=new Float64Array(o+1),this.v=new Uint16Array(o);}_createCanvas(t){const e=document.createElement(\"canvas\");return e.width=e.height=t,e}draw(t){const{width:e,actualBoundingBoxAscent:r,actualBoundingBoxDescent:n,actualBoundingBoxLeft:i,actualBoundingBoxRight:a}=this.ctx.measureText(t),s=Math.ceil(r),o=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(a-i))),l=Math.min(this.size-this.buffer,s+Math.ceil(n)),u=o+2*this.buffer,c=l+2*this.buffer,h=Math.max(u*c,0),p=new Uint8ClampedArray(h),f={data:p,width:u,height:c,glyphWidth:o,glyphHeight:l,glyphTop:s,glyphLeft:0,glyphAdvance:e};if(0===o||0===l)return f;const{ctx:d,buffer:m,gridInner:y,gridOuter:g}=this;d.clearRect(m,m,o,l),d.fillText(t,m,m+s);const x=d.getImageData(m,m,o,l);g.fill(Yf,0,h),y.fill(0,0,h);for(let t=0;t<l;t++)for(let e=0;e<o;e++){const r=x.data[4*(t*o+e)+3]/255;if(0===r)continue;const n=(t+m)*u+e+m;if(1===r)g[n]=0,y[n]=Yf;else {const t=.5-r;g[n]=t>0?t*t:0,y[n]=t<0?t*t:0;}}Xf(g,0,0,u,c,u,this.f,this.v,this.z),Xf(y,m,m,o,l,u,this.f,this.v,this.z);for(let t=0;t<h;t++){const e=Math.sqrt(g[t])-Math.sqrt(y[t]);p[t]=Math.round(255-255*(e/this.radius+this.cutoff));}return f}};const Jf=qf;function Qf(t,e){return t+e[1]-e[0]}function td(t,e,r,n,i=1){const a=[],s=t.imagePrimary,o=s.pixelRatio,l=s.paddedRect.w-2*Jf,u=s.paddedRect.h-2*Jf,c=(t.right-t.left)*i,h=(t.bottom-t.top)*i,p=s.stretchX||[[0,l]],f=s.stretchY||[[0,u]],d=p.reduce(Qf,0),m=f.reduce(Qf,0),y=l-d,g=u-m;let x=0,v=d,b=0,_=m,w=0,M=y,A=0,S=g;if(s.content&&n){const t=s.content;x=ed(p,0,t[0]),b=ed(f,0,t[1]),v=ed(p,t[0],t[2]),_=ed(f,t[1],t[3]),w=t[0]-x,A=t[1]-b,M=t[2]-t[0]-v,S=t[3]-t[1]-_;}const I=(n,a,l,u)=>{const p=nd(n.stretch-x,v,c,t.left*i),f=id(n.fixed-w,M,n.stretch,d),y=nd(a.stretch-b,_,h,t.top*i),g=id(a.fixed-A,S,a.stretch,m),I=nd(l.stretch-x,v,c,t.left*i),P=id(l.fixed-w,M,l.stretch,d),z=nd(u.stretch-b,_,h,t.top*i),E=id(u.fixed-A,S,u.stretch,m),k=new q(p,y),T=new q(I,y),B=new q(I,z),V=new q(p,z),C=new q(f/o,g/o),D=new q(P/o,E/o),L=e*Math.PI/180;if(L){const t=Math.sin(L),e=Math.cos(L),r=[e,-t,t,e];k._matMult(r),T._matMult(r),V._matMult(r),B._matMult(r);}const R=n.stretch+n.fixed,F=l.stretch+l.fixed,O=a.stretch+a.fixed,N=u.stretch+u.fixed,U=t.imageSecondary;return {tl:k,tr:T,bl:V,br:B,texPrimary:{x:s.paddedRect.x+Jf+R,y:s.paddedRect.y+Jf+O,w:F-R,h:N-O},texSecondary:U?{x:U.paddedRect.x+Jf+R,y:U.paddedRect.y+Jf+O,w:F-R,h:N-O}:void 0,writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:C,pixelOffsetBR:D,minFontScaleX:M/o/c,minFontScaleY:S/o/h,isSDF:r}};if(n&&(s.stretchX||s.stretchY)){const t=rd(p,y,d),e=rd(f,g,m);for(let r=0;r<t.length-1;r++){const n=t[r],i=t[r+1];for(let t=0;t<e.length-1;t++)a.push(I(n,e[t],i,e[t+1]));}}else a.push(I({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:l+1},{fixed:0,stretch:u+1}));return a}function ed(t,e,r){let n=0;for(const i of t)n+=Math.max(e,Math.min(r,i[1]))-Math.max(e,Math.min(r,i[0]));return n}function rd(t,e,r){const n=[{fixed:-Jf,stretch:0}];for(const[e,r]of t){const t=n[n.length-1];n.push({fixed:e-t.stretch,stretch:t.stretch}),n.push({fixed:e-t.stretch,stretch:t.stretch+(r-e)});}return n.push({fixed:e+Jf,stretch:r}),n}function nd(t,e,r,n){return t/e*r+n}function id(t,e,r,n){return t-e*r/n}function ad(t,e,r,n){const i=e+t.positionedLines[n].lineOffset;return 0===n?r+i/2:r+(i+(e+t.positionedLines[n-1].lineOffset))/2}function sd(t,e=1,r=!1){let n=1/0,i=1/0,a=-1/0,s=-1/0;const o=t[0];for(let t=0;t<o.length;t++){const e=o[t];(!t||e.x<n)&&(n=e.x),(!t||e.y<i)&&(i=e.y),(!t||e.x>a)&&(a=e.x),(!t||e.y>s)&&(s=e.y);}const l=Math.min(a-n,s-i);let u=l/2;const c=new Hr([],od);if(0===l)return new q(n,i);for(let e=n;e<a;e+=l)for(let r=i;r<s;r+=l)c.push(new ld(e+u,r+u,u,t));let h=function(t){let e=0,r=0,n=0;const i=t[0];for(let t=0,a=i.length,s=a-1;t<a;s=t++){const a=i[t],o=i[s],l=a.x*o.y-o.x*a.y;r+=(a.x+o.x)*l,n+=(a.y+o.y)*l,e+=3*l;}return new ld(r/e,n/e,0,t)}(t),p=c.length;for(;c.length;){const n=c.pop();(n.d>h.d||!h.d)&&(h=n,r&&console.log(\"found best %d after %d probes\",Math.round(1e4*n.d)/1e4,p)),n.max-h.d<=e||(u=n.h/2,c.push(new ld(n.p.x-u,n.p.y-u,u,t)),c.push(new ld(n.p.x+u,n.p.y-u,u,t)),c.push(new ld(n.p.x-u,n.p.y+u,u,t)),c.push(new ld(n.p.x+u,n.p.y+u,u,t)),p+=4);}return r&&(console.log(`num probes: ${p}`),console.log(`best distance: ${h.d}`)),h.p}function od(t,e){return e.max-t.max}class ld{constructor(t,e,r,n){this.p=new q(t,e),this.h=r,this.d=function(t,e){let r=!1,n=1/0;for(let i=0;i<e.length;i++){const a=e[i];for(let e=0,i=a.length,s=i-1;e<i;s=e++){const i=a[e],o=a[s];i.y>t.y!=o.y>t.y&&t.x<(o.x-i.x)*(t.y-i.y)/(o.y-i.y)+i.x&&(r=!r),n=Math.min(n,Nl(t,i,o));}}return (r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2;}}const ud=Number.POSITIVE_INFINITY,cd=Math.sqrt(2);function hd(t,[e,r]){let n=0,i=0;if(r===ud){e<0&&(e=0);const r=e/cd;switch(t){case\"top-right\":case\"top-left\":i=r-7;break;case\"bottom-right\":case\"bottom-left\":i=7-r;break;case\"bottom\":i=7-e;break;case\"top\":i=e-7;}switch(t){case\"top-right\":case\"bottom-right\":n=-r;break;case\"top-left\":case\"bottom-left\":n=r;break;case\"left\":n=e;break;case\"right\":n=-e;}}else {switch(e=Math.abs(e),r=Math.abs(r),t){case\"top-right\":case\"top-left\":case\"top\":i=r-7;break;case\"bottom-right\":case\"bottom-left\":case\"bottom\":i=7-r;}switch(t){case\"top-right\":case\"bottom-right\":case\"right\":n=-e;break;case\"top-left\":case\"bottom-left\":case\"left\":n=e;}}return [n,i]}function pd(t){switch(t){case\"right\":case\"top-right\":case\"bottom-right\":return \"right\";case\"left\":case\"top-left\":case\"bottom-left\":return \"left\"}return \"center\"}function fd(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m){let y=a.textMaxSize.evaluate(e,{},p);void 0===y?y=s*a.textScaleFactor:y*=a.textScaleFactor;const g=t.layers[0].layout,x=g.get(\"icon-offset\").evaluate(e,{},p),v=gd(r.horizontal)||r.vertical,b=\"globe\"===f.name,_=Zp,w=s*a.textScaleFactor/_,M=t.tilePixelRatio*y/_,A=(B=t.overscaling,t.zoom>18&&B>2&&(B>>=1),Math.max(Wr/(512*B),1)*g.get(\"symbol-spacing\")),S=g.get(\"text-padding\")*t.tilePixelRatio,I=g.get(\"icon-padding\")*t.tilePixelRatio,P=X(g.get(\"text-max-angle\")),z=\"map\"===g.get(\"text-rotation-alignment\")&&\"point\"!==g.get(\"symbol-placement\"),E=\"map\"===g.get(\"icon-rotation-alignment\")&&\"point\"!==g.get(\"symbol-placement\"),k=g.get(\"symbol-placement\"),T=A/2;var B;const V=g.get(\"icon-text-fit\").evaluate(e,{},p),C=g.get(\"icon-text-fit-padding\").evaluate(e,{},p),D=\"none\"!==V;let L;!1===t.hasAnyIconTextFit&&D&&(t.hasAnyIconTextFit=!0),n&&D&&(t.allowVerticalPlacement&&r.vertical&&(L=Bf(n,r.vertical,V,C,x,w)),v&&(n=Bf(n,v,V,C,x,w)));const R=(s,o,y)=>{if(o.x<0||o.x>=Wr||o.y<0||o.y>=Wr)return;let g=null;if(b){const{x:t,y:e,z:r}=f.projectTilePoint(o.x,o.y,y);g={anchor:new Vf(t,e,r,0,void 0),up:f.upVector(y,o.x,o.y)};}!function(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y,g,x,v,b,_,w,M,A,S,I,P){const z=t.addToLineVertexArray(e,n);let E,k,T,B,V,C,D,L=0,R=0,F=0,O=0,N=-1,U=-1;const j={};let q=ge(\"\");const $=r?r.anchor:e,G=\"none\"!==l.layout.get(\"icon-text-fit\").evaluate(b,{},S);let Y=0,X=0;if(void 0===l._unevaluatedLayout.getValue(\"text-radial-offset\")?[Y,X]=l.layout.get(\"text-offset\").evaluate(b,{},S).map((t=>t*Zp)):(Y=l.layout.get(\"text-radial-offset\").evaluate(b,{},S)*Zp,X=ud),t.allowVerticalPlacement&&i.vertical){const t=i.vertical;if(d)C=vd(t),o&&(D=vd(o));else {const r=l.layout.get(\"text-rotate\").evaluate(b,{},S)+90;T=xd(u,$,e,c,h,p,t,f,r,m),o&&(B=xd(u,$,e,c,h,p,o,g,r));}}if(a){const n=t.iconSizeData,i=M?Wp(t.iconSizeData,t.layers[0]._unevaluatedLayout._values[\"icon-size\"],S,t.zoom,b):1,s=l.layout.get(\"icon-rotate\").evaluate(b,{},S),f=td(a,s,w,G,M?1/i:_.iconScaleFactor),d=o?td(o,s,w,G,_.iconScaleFactor):void 0;k=xd(u,$,e,c,h,p,a,g,s,null,M?_.iconScaleFactor*i:1),L=4*f.length;let m=null;\"source\"===n.kind?(m=[Hp*l.layout.get(\"icon-size\").evaluate(b,{},S)*_.iconScaleFactor],m[0]>md&&ft(`${t.layerIds[0]}: Value for \"icon-size\" is >= ${dd}. Reduce your \"icon-size\".`)):\"composite\"===n.kind&&(m=[Hp*_.compositeIconSizes[0].evaluate(b,{},S)*_.iconScaleFactor,Hp*_.compositeIconSizes[1].evaluate(b,{},S)*_.iconScaleFactor],(m[0]>md||m[1]>md)&&ft(`${t.layerIds[0]}: Value for \"icon-size\" is >= ${dd}. Reduce your \"icon-size\".`)),t.addSymbols(t.icon,f,m,v,x,b,!1,r,e,z.lineStartIndex,z.lineLength,-1,A,S,I,P),N=t.icon.placedSymbolArray.length-1,d&&(R=4*d.length,t.addSymbols(t.icon,d,m,v,x,b,xf.vertical,r,e,z.lineStartIndex,z.lineLength,-1,A,S,I,P),U=t.icon.placedSymbolArray.length-1);}for(const n in i.horizontal){const a=i.horizontal[n];E||(q=ge(a.text),d?V=vd(a):E=xd(u,$,e,c,h,p,a,f,l.layout.get(\"text-rotate\").evaluate(b,{},S),m));const o=1===a.positionedLines.length;if(F+=yd(t,r,e,a,s,l,d,b,m,z,i.vertical?xf.horizontal:xf.horizontalOnly,o?Object.keys(i.horizontal):[n],j,N,_,A,S,I),o)break}i.vertical&&(O+=yd(t,r,e,i.vertical,s,l,d,b,m,z,xf.vertical,[\"vertical\"],j,U,_,A,S,I));let Z=-1;const H=(t,e)=>t?Math.max(t,e):e;Z=H(V,Z),Z=H(C,Z),Z=H(D,Z);const W=Z>-1?1:0;t.glyphOffsetArray.length>=65535&&ft(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"),void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey),t.symbolInstances.emplaceBack(e.x,e.y,$.x,$.y,$.z,j.right>=0?j.right:-1,j.center>=0?j.center:-1,j.left>=0?j.left:-1,j.vertical>=0?j.vertical:-1,N,U,q,void 0!==E?E:t.collisionBoxArray.length,void 0!==E?E+1:t.collisionBoxArray.length,void 0!==T?T:t.collisionBoxArray.length,void 0!==T?T+1:t.collisionBoxArray.length,void 0!==k?k:t.collisionBoxArray.length,void 0!==k?k+1:t.collisionBoxArray.length,B||t.collisionBoxArray.length,B?B+1:t.collisionBoxArray.length,c,F,O,L,R,W,0,Y,X,Z,0,G?1:0);}(t,o,g,s,r,n,i,L,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,S,z,l,0,I,E,x,e,a,u,c,h,p,d,m);};if(\"line\"===k)for(const i of Uf(e.geometry,0,0,Wr,Wr)){const e=Of(i,A,P,r.vertical||v,n,_,M,t.overscaling,Wr);for(const r of e)v&&bd(t,v.text,T,r)||R(i,r,p);}else if(\"line-center\"===k){for(const t of e.geometry)if(t.length>1){const e=Ff(t,P,r.vertical||v,n,_,M);e&&R(t,e,p);}}else if(\"Polygon\"===e.type)for(const t of Lc(e.geometry,0)){const e=sd(t,16);R(t[0],new Vf(e.x,e.y,0,0,void 0),p);}else if(\"LineString\"===e.type)for(const t of e.geometry)R(t,new Vf(t[0].x,t[0].y,0,0,void 0),p);else if(\"Point\"===e.type)for(const t of e.geometry)for(const e of t)R([e],new Vf(e.x,e.y,0,0,void 0),p);}const dd=255,md=dd*Hp;function yd(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m,y,g){const x=function(t,e,r,n,i,a,s,o){const l=[];if(0===e.positionedLines.length)return l;const u=n.layout.get(\"text-rotate\").evaluate(a,{})*Math.PI/180,c=function(t){const e=t[0],r=t[1],n=e*r;return n>0?[e,-r]:n<0?[-e,r]:0===e?[r,e]:[r,-e]}(r);let h=Math.abs(e.top-e.bottom);for(const t of e.positionedLines)h-=t.lineOffset;const p=e.positionedLines.length,f=h/p;let d=e.top-r[1];for(let t=0;t<p;++t){const n=e.positionedLines[t];d=ad(e,f,d,t);for(const t of n.positionedGlyphs){if(!t.rect)continue;const n=t.rect||{};let a=gf+1,h=!0,p=1,f=0;if(t.imageName){const e=s[tr.build(t.imageName).getSerializedPrimary()];if(!e)continue;if(e.sdf){ft(\"SDF images are not supported in formatted text and will be ignored.\");continue}h=!1,p=e.pixelRatio,a=qf/p;}const m=(i||o)&&t.vertical,y=t.metrics.advance*t.scale/2,g=t.metrics,x=t.rect;if(null===x)continue;o&&e.verticalizable&&(f=t.imageName?y-t.metrics.width*t.scale/2:0);const v=i?[t.x+y,t.y]:[0,0];let b=[0,0],_=[0,0],w=!1;i||(m?(_=[t.x+y+c[0],t.y+c[1]-f],w=!0):b=[t.x+y+r[0],t.y+r[1]-f]);const M=x.w*t.scale/(p*(t.localGlyph?Hf:1)),A=x.h*t.scale/(p*(t.localGlyph?Hf:1));let S,I,P,z;if(m){const e=t.y-d,r=new q(-y,y-e),n=-Math.PI/2,i=new q(..._);S=new q(-y+b[0],b[1]),S._rotateAround(n,r)._add(i),S.x+=-e+y,S.y-=(g.left-a)*t.scale;const s=t.imageName?g.advance*t.scale:Zp*t.scale,o=String.fromCodePoint(t.glyph);nf(o)?S.x+=(1-a)*t.scale:af(o)?S.x+=s-g.height*t.scale+(-a-1)*t.scale:S.x+=t.imageName||g.width+2*a===x.w&&g.height+2*a===x.h?(s-A)/2:(s-(g.height+2*a)*t.scale)/2,I=new q(S.x,S.y-M),P=new q(S.x+A,S.y),z=new q(S.x+A,S.y-M);}else {const e=(g.left-a)*t.scale-y+b[0],r=(-g.top-a)*t.scale+b[1],n=e+M,i=r+A;S=new q(e,r),I=new q(n,r),P=new q(e,i),z=new q(n,i);}if(u){let t;t=i?new q(0,0):w?new q(c[0],c[1]):new q(r[0],r[1]),S._rotateAround(u,t),I._rotateAround(u,t),P._rotateAround(u,t),z._rotateAround(u,t);}const E=new q(0,0),k=new q(0,0);l.push({tl:S,tr:I,bl:P,br:z,texPrimary:n,texSecondary:void 0,writingMode:e.writingMode,glyphOffset:v,sectionIndex:t.sectionIndex,isSDF:h,pixelOffsetTL:E,pixelOffsetBR:k,minFontScaleX:0,minFontScaleY:0});}}return l}(0,n,l,a,s,o,i,t.allowVerticalPlacement),v=t.textSizeData;let b=null;\"source\"===v.kind?(b=[Hp*a.layout.get(\"text-size\").evaluate(o,{},y)*d.textScaleFactor],b[0]>md&&ft(`${t.layerIds[0]}: Value for \"text-size\" is >= ${dd}. Reduce your \"text-size\".`)):\"composite\"===v.kind&&(b=[Hp*d.compositeTextSizes[0].evaluate(o,{},y)*d.textScaleFactor,Hp*d.compositeTextSizes[1].evaluate(o,{},y)*d.textScaleFactor],(b[0]>md||b[1]>md)&&ft(`${t.layerIds[0]}: Value for \"text-size\" is >= ${dd}. Reduce your \"text-size\".`)),t.addSymbols(t.text,x,b,l,s,o,c,e,r,u.lineStartIndex,u.lineLength,f,m,y,g,!1);for(const e of h)p[e]=t.text.placedSymbolArray.length-1;return 4*x.length}function gd(t){for(const e in t)return t[e];return null}function xd(t,e,r,n,i,a,s,o,l,u,c=1){let h=s.top/c,p=s.bottom/c,f=s.left/c,d=s.right/c;const m=s.collisionPadding;if(m&&(f-=m[0],h-=m[1],d+=m[2],p+=m[3]),l){const t=new q(f,h),e=new q(d,h),r=new q(f,p),n=new q(d,p),i=X(l);let a=new q(0,0);u&&(a=new q(u[0],u[1])),t._rotateAround(i,a),e._rotateAround(i,a),r._rotateAround(i,a),n._rotateAround(i,a),f=Math.min(t.x,e.x,r.x,n.x),d=Math.max(t.x,e.x,r.x,n.x),h=Math.min(t.y,e.y,r.y,n.y),p=Math.max(t.y,e.y,r.y,n.y);}return t.emplaceBack(e.x,e.y,e.z,r.x,r.y,f,h,d,p,o,n,i,a),t.length-1}function vd(t){t.collisionPadding&&(t.top-=t.collisionPadding[1],t.bottom+=t.collisionPadding[3]);const e=t.bottom-t.top;return e>0?Math.max(10,e):null}function bd(t,e,r,n){const i=t.compareText;if(e in i){const t=i[e];for(let e=t.length-1;e>=0;e--)if(n.dist(t[e])<r)return !0}else i[e]=[];return i[e].push(n),!1}function _d(t,e){const r=t.fovAboveCenter,n=t.elevation?t.elevation.getMinElevationBelowMSL()*e:0,i=(t._camera.position[2]*t.worldSize-n)/Math.cos(t._pitch),a=Math.sin(r)*i/Math.sin(Math.max(Math.PI/2-t._pitch-r,.01));let s=Math.sin(t._pitch)*a+i;const o=i*(1/t._horizonShift);return t.elevation&&0!==t.elevation.exaggeration()||(s*=1+Math.max(t.zoom-17,0)),Math.min(1.01*s,o)}function wd(t,e){if(!e.isReprojectedInTileSpace)return {scale:1<<t.z,x:t.x,y:t.y,x2:t.x+1,y2:t.y+1,projection:e};const r=Math.pow(2,-t.z),n=t.x*r,i=(t.x+1)*r,a=t.y*r,s=(t.y+1)*r,o=pl(n),l=pl(i),u=fl(a),c=fl(s),h=e.project(o,u),p=e.project(l,u),f=e.project(l,c),d=e.project(o,c);let m=Math.min(h.x,p.x,f.x,d.x),y=Math.min(h.y,p.y,f.y,d.y),g=Math.max(h.x,p.x,f.x,d.x),x=Math.max(h.y,p.y,f.y,d.y);const v=r/16;function b(t,r,n,i,a,s){const o=(n+a)/2,l=(i+s)/2,u=e.project(pl(o),fl(l)),c=Math.max(0,m-u.x,y-u.y,u.x-g,u.y-x);m=Math.min(m,u.x),g=Math.max(g,u.x),y=Math.min(y,u.y),x=Math.max(x,u.y),c>v&&(b(t,u,n,i,o,l),b(u,r,o,l,a,s));}b(h,p,n,a,i,a),b(p,f,i,a,i,s),b(f,d,i,s,n,s),b(d,h,n,s,n,a),m-=v,y-=v,g+=v,x+=v;const _=1/Math.max(g-m,x-y);return {scale:_,x:m*_,y:y*_,x2:g*_,y2:x*_,projection:e}}function Md(t,{x:e,y:r},n=0){return new q(((e-n)*t.scale-t.x)*Wr,(r*t.scale-t.y)*Wr)}const Ad=O.mat4.identity(new Float32Array(16));class Sd{constructor(t){this.spec=t,this.name=t.name,this.wrap=!1,this.requiresDraping=!1,this.supportsWorldCopies=!1,this.supportsTerrain=!1,this.supportsFog=!1,this.supportsFreeCamera=!1,this.zAxisUnit=\"meters\",this.isReprojectedInTileSpace=!0,this.unsupportedLayers=[\"custom\"],this.center=[0,0],this.range=[3.5,7];}project(t,e){return {x:0,y:0,z:0}}unproject(t,e){return new il(0,0)}projectTilePoint(t,e,r){return {x:t,y:e,z:0}}locationPoint(t,e,r=!0){return t._coordinatePoint(t.locationCoordinate(e),r)}pixelsPerMeter(t,e){return hl(1,t)*e}pixelSpaceConversion(t,e,r){return 1}farthestPixelDistance(t){return _d(t,t.pixelsPerMeter)}pointCoordinate(t,e,r,n){const i=t.horizonLineFromTop(!1),a=new q(e,Math.max(i,r));return t.rayIntersectionCoordinate(t.pointRayIntersection(a,n))}pointCoordinate3D(t,e,r){const n=new q(e,r);if(t.elevation)return t.elevation.pointCoordinate(n);{const e=this.pointCoordinate(t,n.x,n.y,0);return [e.x,e.y,e.z]}}isPointAboveHorizon(t,e){if(t.elevation&&t.elevation.visibleDemTiles.length)return !this.pointCoordinate3D(t,e.x,e.y);const r=t.horizonLineFromTop();return e.y<r}createInversionMatrix(t,e){return Ad}createTileMatrix(t,e,r){let n,i,a;const s=r.canonical,o=O.mat4.identity(new Float64Array(16));if(this.isReprojectedInTileSpace){const l=wd(s,this);n=1,i=l.x+r.wrap*l.scale,a=l.y,O.mat4.scale(o,o,[n/l.scale,n/l.scale,t.pixelsPerMeter/e]);}else n=e/t.zoomScale(s.z),i=(s.x+Math.pow(2,s.z)*r.wrap)*n,a=s.y*n;return O.mat4.translate(o,o,[i,a,0]),O.mat4.scale(o,o,[n/Wr,n/Wr,1]),o}upVector(t,e,r){return [0,0,1]}upVectorScale(t,e,r){return {metersToTile:1}}}class Id extends Sd{constructor(t){super(t),this.range=[4,7],this.center=t.center||[-96,37.5];const[e,r]=this.parallels=t.parallels||[29.5,45.5],n=Math.sin(X(e));this.n=(n+Math.sin(X(r)))/2,this.c=1+n*(2*this.n-n),this.r0=Math.sqrt(this.c)/this.n;}project(t,e){const{n:r,c:n,r0:i}=this,a=X(t-this.center[0]),s=X(e),o=Math.sqrt(n-2*r*Math.sin(s))/r;return {x:o*Math.sin(a*r),y:o*Math.cos(a*r)-i,z:0}}unproject(t,e){const{n:r,c:n,r0:i}=this,a=i+e;let s=Math.atan2(t,Math.abs(a))*Math.sign(a);a*r<0&&(s-=Math.PI*Math.sign(t)*Math.sign(a));const o=X(this.center[0])*r;s=et(s,-Math.PI-o,Math.PI-o);const l=Q(Z(s/r)+this.center[0],-180,180),u=Math.asin(Q((n-(t*t+a*a)*r*r)/(2*r),-1,1)),c=Q(Z(u),-ml,ml);return new il(l,c)}}const Pd=1.340264,zd=-.081106,Ed=893e-6,kd=.003796,Td=Math.sqrt(3)/2;class Bd extends Sd{project(t,e){e=e/180*Math.PI,t=t/180*Math.PI;const r=Math.asin(Td*Math.sin(e)),n=r*r,i=n*n*n;return {x:.5*(t*Math.cos(r)/(Td*(Pd+3*zd*n+i*(7*Ed+9*kd*n)))/Math.PI+.5),y:1-.5*(r*(Pd+zd*n+i*(Ed+kd*n))/Math.PI+1),z:0}}unproject(t,e){t=(2*t-.5)*Math.PI;let r=e=(2*(1-e)-1)*Math.PI,n=r*r,i=n*n*n;for(let t,a,s,o=0;o<12&&(a=r*(Pd+zd*n+i*(Ed+kd*n))-e,s=Pd+3*zd*n+i*(7*Ed+9*kd*n),t=a/s,r=Q(r-t,-Math.PI/3,Math.PI/3),n=r*r,i=n*n*n,!(Math.abs(t)<1e-12));++o);const a=Td*t*(Pd+3*zd*n+i*(7*Ed+9*kd*n))/Math.cos(r),s=Math.asin(Math.sin(r)/Td),o=Q(180*a/Math.PI,-180,180),l=Q(180*s/Math.PI,-ml,ml);return new il(o,l)}}class Vd extends Sd{constructor(t){super(t),this.wrap=!0,this.supportsWorldCopies=!0;}project(t,e){return {x:.5+t/360,y:.5-e/360,z:0}}unproject(t,e){const r=360*(t-.5),n=Q(360*(.5-e),-ml,ml);return new il(r,n)}}const Cd=Math.PI/2;function Dd(t){return Math.tan((Cd+t)/2)}class Ld extends Sd{constructor(t){super(t),this.center=t.center||[0,30];const[e,r]=this.parallels=t.parallels||[30,30];let n=X(e),i=X(r);this.southernCenter=n+i<0,this.southernCenter&&(n=-n,i=-i);const a=Math.cos(n),s=Dd(n);this.n=n===i?Math.sin(n):Math.log(a/Math.cos(i))/Math.log(Dd(i)/s),this.f=a*Math.pow(Dd(n),this.n)/this.n;}project(t,e){e=X(e),this.southernCenter&&(e=-e),t=X(t-this.center[0]);const r=1e-6,{n,f:i}=this;i>0?e<-Cd+r&&(e=-Cd+r):e>Cd-r&&(e=Cd-r);const a=i/Math.pow(Dd(e),n);let s=a*Math.sin(n*t),o=i-a*Math.cos(n*t);return s=.5*(s/Math.PI+.5),o=.5*(o/Math.PI+.5),{x:s,y:this.southernCenter?o:1-o,z:0}}unproject(t,e){t=(2*t-.5)*Math.PI,this.southernCenter&&(e=1-e),e=(2*(1-e)-.5)*Math.PI;const{n:r,f:n}=this,i=n-e,a=Math.sign(i),s=Math.sign(r)*Math.sqrt(t*t+i*i);let o=Math.atan2(t,Math.abs(i))*a;i*r<0&&(o-=Math.PI*Math.sign(t)*a);const l=Q(Z(o/r)+this.center[0],-180,180),u=Q(Z(2*Math.atan(Math.pow(n/s,1/r))-Cd),-ml,ml);return new il(l,this.southernCenter?-u:u)}}class Rd extends Sd{constructor(t){super(t),this.wrap=!0,this.supportsWorldCopies=!0,this.supportsTerrain=!0,this.supportsFog=!0,this.supportsFreeCamera=!0,this.isReprojectedInTileSpace=!1,this.unsupportedLayers=[],this.range=null;}project(t,e){return {x:ul(t),y:cl(e),z:0}}unproject(t,e){const r=pl(t),n=fl(e);return new il(r,n)}}const Fd=X(ml);class Od extends Sd{project(t,e){const r=(e=X(e))*e,n=r*r;return {x:.5*((t=X(t))*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791))/Math.PI+.5),y:1-.5*(e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))/Math.PI+1),z:0}}unproject(t,e){t=(2*t-.5)*Math.PI;let r=e=(2*(1-e)-1)*Math.PI,n=25,i=0,a=r*r;do{a=r*r;const t=a*a;i=(r*(1.007226+a*(.015085+t*(.028874*a-.044475-.005916*t)))-e)/(1.007226+a*(.045255+t*(.259866*a-.311325-.005916*11*t))),r=Q(r-i,-Fd,Fd);}while(Math.abs(i)>1e-6&&--n>0);a=r*r;const s=Q(Z(t/(.8707+a*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979))),-180,180),o=Z(r);return new il(s,o)}}const Nd=X(ml);class Ud extends Sd{project(t,e){e=X(e),t=X(t);const r=Math.cos(e),n=2/Math.PI,i=Math.acos(r*Math.cos(t/2)),a=Math.sin(i)/i,s=.5*(t*n+2*r*Math.sin(t/2)/a)||0,o=.5*(e+Math.sin(e)/a)||0;return {x:.5*(s/Math.PI+.5),y:1-.5*(o/Math.PI+1),z:0}}unproject(t,e){let r=t=(2*t-.5)*Math.PI,n=e=(2*(1-e)-1)*Math.PI,i=25;const a=1e-6;let s=0,o=0;do{const i=Math.cos(n),a=Math.sin(n),l=2*a*i,u=a*a,c=i*i,h=Math.cos(r/2),p=Math.sin(r/2),f=2*h*p,d=p*p,m=1-c*h*h,y=m?1/m:0,g=m?Math.acos(i*h)*Math.sqrt(1/m):0,x=.5*(2*g*i*p+2*r/Math.PI)-t,v=.5*(g*a+n)-e,b=.5*y*(c*d+g*i*h*u)+1/Math.PI,_=y*(f*l/4-g*a*p),w=.125*y*(l*p-g*a*c*f),M=.5*y*(u*h+g*d*i)+.5,A=_*w-M*b;s=(v*_-x*M)/A,o=(x*w-v*b)/A,r=Q(r-s,-Math.PI,Math.PI),n=Q(n-o,-Nd,Nd);}while((Math.abs(s)>a||Math.abs(o)>a)&&--i>0);return new il(Z(r),Z(n))}}class jd extends Sd{constructor(t){super(t),this.center=t.center||[0,0],this.parallels=t.parallels||[0,0],this.cosPhi=Math.max(.01,Math.cos(X(this.parallels[0]))),this.scale=1/(2*Math.max(Math.PI*this.cosPhi,1/this.cosPhi)),this.wrap=!0,this.supportsWorldCopies=!0;}project(t,e){const{scale:r,cosPhi:n}=this;return {x:X(t)*n*r+.5,y:-Math.sin(X(e))/n*r+.5,z:0}}unproject(t,e){const{scale:r,cosPhi:n}=this,i=-(e-.5)/r,a=Q(Z((t-.5)/r)/n,-180,180),s=Math.asin(Q(i*n,-1,1)),o=Q(Z(s),-ml,ml);return new il(a,o)}}class qd extends Rd{constructor(t){super(t),this.requiresDraping=!0,this.supportsWorldCopies=!1,this.supportsFog=!0,this.zAxisUnit=\"pixels\",this.unsupportedLayers=[\"debug\"],this.range=[3,5];}projectTilePoint(t,e,r){const n=ku(t,e,r),i=Vu(Au(r));return O.vec3.transformMat4(n,n,i),{x:n[0],y:n[1],z:n[2]}}locationPoint(t,e){const r=el(e.lat,e.lng),n=O.vec3.normalize([],r),i=t.elevation?t.elevation.getAtPointOrZero(t.locationCoordinate(e),t._centerAltitude):t._centerAltitude,a=hl(1,0)*Wr*i;O.vec3.scaleAndAdd(r,r,n,a);const s=O.mat4.identity(new Float64Array(16));return O.mat4.multiply(s,t.pixelMatrix,t.globeMatrix),O.vec3.transformMat4(r,r,s),new q(r[0],r[1])}pixelsPerMeter(t,e){return hl(1,0)*e}pixelSpaceConversion(t,e,r){const n=hl(1,t)*e,i=ze(hl(1,45)*e,n,r);return this.pixelsPerMeter(t,e)/i}createTileMatrix(t,e,r){const n=Cu(Au(r.canonical));return O.mat4.multiply(new Float64Array(16),t.globeMatrix,n)}createInversionMatrix(t,e){const{center:r}=t,n=Vu(Au(e));return O.mat4.rotateY(n,n,X(r.lng)),O.mat4.rotateX(n,n,X(r.lat)),O.mat4.scale(n,n,[t._pixelsPerMercatorPixel,t._pixelsPerMercatorPixel,1]),Float32Array.from(n)}pointCoordinate(t,e,r,n){return _u(t,e,r,!0)||new bl(0,0)}pointCoordinate3D(t,e,r){const n=this.pointCoordinate(t,e,r,0);return [n.x,n.y,n.z]}isPointAboveHorizon(t,e){return !_u(t,e.x,e.y,!1)}farthestPixelDistance(t){const e=function(t,e){const r=t.cameraToCenterDistance,n=t._centerAltitude*e,i=t._camera,a=t._camera.forward(),s=O.vec3.add([],O.vec3.scale([],a,-r),[0,0,n]),o=t.worldSize/(2*Math.PI),l=[0,0,-o],u=t.width/t.height,c=Math.tan(t.fovAboveCenter),h=O.vec3.scale([],i.up(),c),p=O.vec3.scale([],i.right(),c*u),f=O.vec3.normalize([],O.vec3.add([],O.vec3.add([],a,h),p)),d=[];let m;if(new hu(s,f).closestPointOnSphere(l,o,d)){const e=O.vec3.add([],d,l),r=O.vec3.sub([],e,s);m=Math.cos(t.fovAboveCenter)*O.vec3.length(r);}else {const t=O.vec3.sub([],s,l),e=O.vec3.sub([],l,s);O.vec3.normalize(e,e);const r=O.vec3.length(t)-o;m=Math.sqrt(r*(r+2*o));const n=Math.acos(m/(o+r))-Math.acos(O.vec3.dot(a,e));m*=Math.cos(n);}return 1.01*m}(t,this.pixelsPerMeter(t.center.lat,t.worldSize)),r=Fu(t.zoom);if(r>0){const n=_d(t,hl(1,t.center.lat)*t.worldSize),i=t.worldSize/(2*Math.PI),a=Math.max(t.width,t.height)/t.worldSize*Math.PI;return ze(e,n+i*(1-Math.cos(a)),Math.pow(r,10))}return e}upVector(t,e,r){return ku(e,r,t,1)}upVectorScale(t){return {metersToTile:vu(Tu(Au(t)))}}}function $d(t){const e=t.parallels,r=!!e&&Math.abs(e[0]+e[1])<.01;switch(t.name){case\"mercator\":return new Rd(t);case\"equirectangular\":return new Vd(t);case\"naturalEarth\":return new Od(t);case\"equalEarth\":return new Bd(t);case\"winkelTripel\":return new Ud(t);case\"albers\":return r?new jd(t):new Id(t);case\"lambertConformalConic\":return r?new jd(t):new Ld(t);case\"globe\":return new qd(t)}throw new Error(`Invalid projection name: ${t.name}`)}const Gd=fh.VectorTileFeature.types,Yd=[{name:\"a_fade_opacity\",components:1,type:\"Uint8\",offset:0}];function Xd(t,e,r,n,i,a,s,o,l,u,c,h,p){const f=o?Math.min(md,Math.round(o[0])):0,d=o?Math.min(md,Math.round(o[1])):0;t.emplaceBack(e,r,Math.round(32*n),Math.round(32*i),a,s,(f<<1)+(l?1:0),d,16*u,16*c,256*h,256*p);}function Zd(t,e,r){t.emplaceBack(e,r);}function Hd(t,e,r,n,i,a,s){t.emplaceBack(e,r,n,i,a,s);}function Wd(t,e,r,n,i){t.emplaceBack(e,r,n,i),t.emplaceBack(e,r,n,i),t.emplaceBack(e,r,n,i),t.emplaceBack(e,r,n,i);}function Kd(t){for(const e of t.sections)if(ba(e.text))return !0;return !1}class Jd{constructor(t){this.layoutVertexArray=new zs,this.indexArray=new Ls,this.programConfigurations=t,this.segments=new po,this.dynamicLayoutVertexArray=new Ms,this.opacityVertexArray=new ks,this.placedSymbolArray=new to,this.iconTransitioningVertexArray=new Ts,this.globeExtVertexArray=new Es,this.zOffsetVertexArray=new Os;}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length&&0===this.iconTransitioningVertexArray.length}upload(t,e,r,n,i){this.isEmpty()||(r&&(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Op.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,e),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,Up.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,Yd,!0),this.iconTransitioningVertexArray.length>0&&(this.iconTransitioningVertexBuffer=t.createVertexBuffer(this.iconTransitioningVertexArray,qp.members,!0)),this.globeExtVertexArray.length>0&&(this.globeExtVertexBuffer=t.createVertexBuffer(this.globeExtVertexArray,Np.members,!0)),!this.zOffsetVertexBuffer&&(this.zOffsetVertexArray.length>0||i)&&(this.zOffsetVertexBuffer=t.createVertexBuffer(this.zOffsetVertexArray,jp.members,!0)),this.opacityVertexBuffer.itemSize=1),(r||n)&&this.programConfigurations.upload(t));}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy(),this.iconTransitioningVertexBuffer&&this.iconTransitioningVertexBuffer.destroy(),this.globeExtVertexBuffer&&this.globeExtVertexBuffer.destroy(),this.zOffsetVertexBuffer&&this.zOffsetVertexBuffer.destroy());}}oa(Jd,\"SymbolBuffers\");class Qd{constructor(t,e,r){this.layoutVertexArray=new t,this.layoutAttributes=e,this.indexArray=new r,this.segments=new po,this.collisionVertexArray=new Ds,this.collisionVertexArrayExt=new Ms;}upload(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,$p.members,!0),this.collisionVertexBufferExt=t.createVertexBuffer(this.collisionVertexArrayExt,Gp.members,!0);}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy());}}oa(Qd,\"CollisionBuffers\");class tm{constructor(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.lut=t.lut,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.fqid)),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.hasAnyIconTextFit=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=O.mat4.identity([]),this.placementViewportMatrix=O.mat4.identity([]);const e=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Kp(this.zoom,e[\"text-size\"]),this.iconSizeData=Kp(this.zoom,e[\"icon-size\"]);const r=this.layers[0].layout,n=r.get(\"symbol-sort-key\"),i=r.get(\"symbol-z-order\");this.canOverlap=r.get(\"text-allow-overlap\")||r.get(\"icon-allow-overlap\")||r.get(\"text-ignore-placement\")||r.get(\"icon-ignore-placement\"),this.sortFeaturesByKey=\"viewport-y\"!==i&&void 0!==n.constantOr(1),this.sortFeaturesByY=(\"viewport-y\"===i||\"auto\"===i&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=r.get(\"text-writing-mode\").map((t=>xf[t])),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.sourceID=t.sourceID,this.projection=t.projection,this.hasAnyZOffset=!1,this.zOffsetSortDirty=!1,this.zOffsetBuffersNeedUpload=r.get(\"symbol-z-elevate\"),this.activeReplacements=[],this.replacementUpdateTime=0;}createArrays(){this.text=new Jd(new No(this.layers,{zoom:this.zoom,lut:this.lut},(t=>t.startsWith(\"text\")||t.startsWith(\"symbol\")))),this.icon=new Jd(new No(this.layers,{zoom:this.zoom,lut:this.lut},(t=>t.startsWith(\"icon\")||t.startsWith(\"symbol\")))),this.glyphOffsetArray=new no,this.lineVertexArray=new io,this.symbolInstances=new ro;}calculateGlyphDependencies(t,e,r,n,i){for(const r of t){const t=r.codePointAt(0);if(void 0===t)break;if(e[t]=!0,n&&i&&t<=65535){const t=rf[r];t&&(e[t.charCodeAt(0)]=!0);}}}updateFootprints(t,e){}updateReplacement(t,e){if(e.updateTime===this.replacementUpdateTime)return !1;this.replacementUpdateTime=e.updateTime;const r=e.getReplacementRegionsForTile(t.toUnwrapped(),!0);return !Ah(this.activeReplacements,r)&&(this.activeReplacements=r,!0)}populate(t,e,r,n){const i=this.layers[0],a=i.layout,s=\"globe\"===this.projection.name,o=a.get(\"text-font\"),l=a.get(\"text-field\"),u=a.get(\"icon-image\"),[c,h]=a.get(\"icon-size-scale-range\"),p=Q(e.scaleFactor||1,c,h),f=(\"constant\"!==l.value.kind||l.value.value instanceof Je&&!l.value.value.isEmpty()||l.value.value.toString().length>0)&&(\"constant\"!==o.value.kind||o.value.value.length>0),d=\"constant\"!==u.value.kind||!!u.value.value||Object.keys(u.parameters).length>0,m=a.get(\"symbol-sort-key\");if(this.features=[],!f&&!d)return;const y=e.iconDependencies,g=e.glyphDependencies,x=e.availableImages,v=new Va(this.zoom);for(const{feature:e,id:l,index:u,sourceLayerIndex:c}of t){const t=i._featureFilter.needGeometry,h=El(e,t);if(!i._featureFilter.filter(v,h,r))continue;if(t||(h.geometry=zl(e,r,n)),s&&1!==e.type&&r.z<=5){const t=h.geometry,e=.98078528056,n=(t,n)=>{const i=ku(t.x,t.y,r,1),a=ku(n.x,n.y,r,1);return O.vec3.dot(i,a)<e};for(let e=0;e<t.length;e++)t[e]=Al(t[e],n);}let b,_;if(f){const t=i.getValueAndResolveTokens(\"text-field\",h,r,x),e=Je.factory(t);Kd(e)&&(this.hasRTLText=!0),(!this.hasRTLText||\"unavailable\"===ka()||this.hasRTLText&&Ba.isParsed())&&(b=ef(e,i,h));}if(d){const t=i.getValueAndResolveTokens(\"icon-image\",h,r,x);_=t instanceof tr?t:tr.build(t);}if(!b&&!_)continue;const w=this.sortFeaturesByKey?m.evaluate(h,{},r):void 0,M={id:l,text:b,icon:_,index:u,sourceLayerIndex:c,geometry:h.geometry,properties:e.properties,type:Gd[e.type],sortKey:w};if(this.features.push(M),_){const t=Wp(this.iconSizeData,this.layers[0]._unevaluatedLayout._values[\"icon-size\"],r,this.zoom,M)*p*this.pixelRatio,e=_.getPrimary().scaleSelf(t);if(y[e.id]=y[e.id]||[],y[e.id].push(e),_.nameSecondary){const e=_.getSecondary().scaleSelf(t);y[e.id]=y[e.id]||[],y[e.id].push(e);}}if(b){const t=o.evaluate(h,{},r).join(\",\"),e=\"map\"===a.get(\"text-rotation-alignment\")&&\"point\"!==a.get(\"symbol-placement\");this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(xf.vertical)>=0;for(const r of b.sections)if(r.image){const t=r.image.getPrimary().scaleSelf(this.pixelRatio);y[t.id]=y[t.id]||[],y[t.id].push(t);}else {const n=fa(b.toString()),i=r.fontStack||t,a=g[i]=g[i]||{};this.calculateGlyphDependencies(r.text,a,e,this.allowVerticalPlacement,n);}}}\"line\"===a.get(\"symbol-placement\")&&(this.features=function(t){const e={},r={},n=[];let i=0;function a(e){n.push(t[e]),i++;}function s(t,e,i){const a=r[t];return delete r[t],r[e]=a,n[a].geometry[0].pop(),n[a].geometry[0]=n[a].geometry[0].concat(i[0]),a}function o(t,r,i){const a=e[r];return delete e[r],e[t]=a,n[a].geometry[0].shift(),n[a].geometry[0]=i[0].concat(n[a].geometry[0]),a}function l(t,e,r){const n=r?e[0][e[0].length-1]:e[0][0];return `${t}:${n.x}:${n.y}`}for(let u=0;u<t.length;u++){const c=t[u],h=c.geometry,p=c.text?c.text.toString():null;if(!p){a(u);continue}const f=l(p,h),d=l(p,h,!0);if(f in r&&d in e&&r[f]!==e[d]){const t=o(f,d,h),i=s(f,d,n[t].geometry);delete e[f],delete r[d],r[l(p,n[i].geometry,!0)]=i,n[t].geometry=null;}else f in r?s(f,d,h):d in e?o(f,d,h):(a(u),e[f]=i-1,r[d]=i-1);}return n.filter((t=>t.geometry))}(this.features)),this.sortFeaturesByKey&&this.features.sort(((t,e)=>t.sortKey-e.sortKey));}update(t,e,r,n,i,a,s){this.text.programConfigurations.updatePaintArrays(t,e,i,r,n,a,s),this.icon.programConfigurations.updatePaintArrays(t,e,i,r,n,a,s);}updateZOffset(){const t=(t,e,n)=>{r+=e,r>t.length&&t.resize(r);for(let i=-e;i<0;i++)t.emplace(i+r,n);},e=(t,e,r)=>{n+=e,n>t.length&&t.resize(n);for(let i=-e;i<0;i++)t.emplace(i+n,r);};if(!this.zOffsetBuffersNeedUpload)return;this.zOffsetBuffersNeedUpload=!1;let r=0,n=0;for(let r=0;r<this.symbolInstances.length;r++){const n=this.symbolInstances.get(r),{numHorizontalGlyphVertices:i,numVerticalGlyphVertices:a,numIconVertices:s}=n,o=n.zOffset,l=s>0;if((i>0||a>0)&&(t(this.text.zOffsetVertexArray,i,o),t(this.text.zOffsetVertexArray,a,o)),l){const{placedIconSymbolIndex:t,verticalPlacedIconSymbolIndex:r}=n;t>=0&&e(this.icon.zOffsetVertexArray,s,o),r>=0&&e(this.icon.zOffsetVertexArray,n.numVerticalIconVertices,o);}}this.text.zOffsetVertexBuffer&&this.text.zOffsetVertexBuffer.updateData(this.text.zOffsetVertexArray),this.icon.zOffsetVertexBuffer&&this.icon.zOffsetVertexBuffer.updateData(this.icon.zOffsetVertexArray);}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload,this.zOffsetBuffersNeedUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload,this.zOffsetBuffersNeedUpload),this.uploaded=!0;}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();}getProjection(){return this.projectionInstance||(this.projectionInstance=$d(this.projection)),this.projectionInstance}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();}addToLineVertexArray(t,e){const r=this.lineVertexArray.length;if(void 0!==t.segment)for(const{x:t,y:r}of e)this.lineVertexArray.emplaceBack(t,r);return {lineStartIndex:r,lineLength:this.lineVertexArray.length-r}}addSymbols(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,m){const y=t.indexArray,g=t.layoutVertexArray,x=t.globeExtVertexArray,v=t.segments.prepareSegment(4*e.length,g,y,this.canOverlap?a.sortKey:void 0),b=this.glyphOffsetArray.length,_=v.vertexLength,w=this.allowVerticalPlacement&&s===xf.vertical?Math.PI/2:0,M=a.text&&a.text.sections;for(let n=0;n<e.length;n++){const{tl:i,tr:s,bl:u,br:c,texPrimary:h,texSecondary:b,pixelOffsetTL:_,pixelOffsetBR:A,minFontScaleX:S,minFontScaleY:I,glyphOffset:P,isSDF:z,sectionIndex:E}=e[n],k=v.vertexLength,T=P[1];if(Xd(g,l.x,l.y,i.x,T+i.y,h.x,h.y,r,z,_.x,_.y,S,I),Xd(g,l.x,l.y,s.x,T+s.y,h.x+h.w,h.y,r,z,A.x,_.y,S,I),Xd(g,l.x,l.y,u.x,T+u.y,h.x,h.y+h.h,r,z,_.x,A.y,S,I),Xd(g,l.x,l.y,c.x,T+c.y,h.x+h.w,h.y+h.h,r,z,A.x,A.y,S,I),o){const{x:e,y:r,z:n}=o.anchor,[i,a,s]=o.up;Hd(x,e,r,n,i,a,s),Hd(x,e,r,n,i,a,s),Hd(x,e,r,n,i,a,s),Hd(x,e,r,n,i,a,s),Wd(t.dynamicLayoutVertexArray,e,r,n,w);}else Wd(t.dynamicLayoutVertexArray,l.x,l.y,l.z,w);if(m){const e=b||h;Zd(t.iconTransitioningVertexArray,e.x,e.y),Zd(t.iconTransitioningVertexArray,e.x+e.w,e.y),Zd(t.iconTransitioningVertexArray,e.x,e.y+e.h),Zd(t.iconTransitioningVertexArray,e.x+e.w,e.y+e.h);}y.emplaceBack(k,k+1,k+2),y.emplaceBack(k+1,k+2,k+3),v.vertexLength+=4,v.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(P[0]),n!==e.length-1&&E===e[n+1].sectionIndex||t.programConfigurations.populatePaintArrays(g.length,a,a.index,{},p,f,d,M&&M[E]);}const A=o?o.anchor:l;t.placedSymbolArray.emplaceBack(A.x,A.y,A.z,l.x,l.y,b,this.glyphOffsetArray.length-b,_,u,c,l.segment,r?r[0]:0,r?r[1]:0,n[0],n[1],s,0,!1,0,h,0);}_commitLayoutVertex(t,e,r,n,i,a,s){t.emplaceBack(e,r,n,i,a,Math.round(s.x),Math.round(s.y));}_addCollisionDebugVertices(t,e,r,n,i,a,s){const o=r.segments.prepareSegment(4,r.layoutVertexArray,r.indexArray),l=o.vertexLength,u=s.tileAnchorX,c=s.tileAnchorY;for(let t=0;t<4;t++)r.collisionVertexArray.emplaceBack(0,0,0,0,0,0);this._commitDebugCollisionVertexUpdate(r.collisionVertexArrayExt,e,t.padding,s.zOffset),this._commitLayoutVertex(r.layoutVertexArray,n,i,a,u,c,new q(t.x1,t.y1)),this._commitLayoutVertex(r.layoutVertexArray,n,i,a,u,c,new q(t.x2,t.y1)),this._commitLayoutVertex(r.layoutVertexArray,n,i,a,u,c,new q(t.x2,t.y2)),this._commitLayoutVertex(r.layoutVertexArray,n,i,a,u,c,new q(t.x1,t.y2)),o.vertexLength+=4;const h=r.indexArray;h.emplaceBack(l,l+1),h.emplaceBack(l+1,l+2),h.emplaceBack(l+2,l+3),h.emplaceBack(l+3,l),o.primitiveLength+=4;}_addTextDebugCollisionBoxes(t,e,r,n,i,a){for(let s=n;s<i;s++){const n=r.get(s),i=this.getSymbolInstanceTextSize(t,a,e,s);this._addCollisionDebugVertices(n,i,this.textCollisionBox,n.projectedAnchorX,n.projectedAnchorY,n.projectedAnchorZ,a);}}_addIconDebugCollisionBoxes(t,e,r,n,i,a){for(let s=n;s<i;s++){const n=r.get(s),i=this.getSymbolInstanceIconSize(t,e,a.placedIconSymbolIndex);this._addCollisionDebugVertices(n,i,this.iconCollisionBox,n.projectedAnchorX,n.projectedAnchorY,n.projectedAnchorZ,a);}}generateCollisionDebugBuffers(t,e,r){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new Qd(Vs,Yp.members,Ts),this.iconCollisionBox=new Qd(Vs,Yp.members,Ts);const n=Qp(this.iconSizeData,t),i=Qp(this.textSizeData,t,r);for(let r=0;r<this.symbolInstances.length;r++){const a=this.symbolInstances.get(r);this._addTextDebugCollisionBoxes(i,t,e,a.textBoxStartIndex,a.textBoxEndIndex,a),this._addTextDebugCollisionBoxes(i,t,e,a.verticalTextBoxStartIndex,a.verticalTextBoxEndIndex,a),this._addIconDebugCollisionBoxes(n,t,e,a.iconBoxStartIndex,a.iconBoxEndIndex,a),this._addIconDebugCollisionBoxes(n,t,e,a.verticalIconBoxStartIndex,a.verticalIconBoxEndIndex,a);}}getSymbolInstanceTextSize(t,e,r,n){const i=this.text.placedSymbolArray.get(e.rightJustifiedTextSymbolIndex>=0?e.rightJustifiedTextSymbolIndex:e.centerJustifiedTextSymbolIndex>=0?e.centerJustifiedTextSymbolIndex:e.leftJustifiedTextSymbolIndex>=0?e.leftJustifiedTextSymbolIndex:e.verticalPlacedTextSymbolIndex>=0?e.verticalPlacedTextSymbolIndex:n),a=Jp(this.textSizeData,t,i)/Zp;return this.tilePixelRatio*a}getSymbolInstanceIconSize(t,e,r){const n=this.icon.placedSymbolArray.get(r),i=Jp(this.iconSizeData,t,n);return this.tilePixelRatio*i}_commitDebugCollisionVertexUpdate(t,e,r,n){t.emplaceBack(e,-r,-r,n),t.emplaceBack(e,r,-r,n),t.emplaceBack(e,r,r,n),t.emplaceBack(e,-r,r,n);}_updateTextDebugCollisionBoxes(t,e,r,n,i,a,s){for(let s=n;s<i;s++){const n=r.get(s),i=this.getSymbolInstanceTextSize(t,a,e,s);this._commitDebugCollisionVertexUpdate(this.textCollisionBox.collisionVertexArrayExt,i,n.padding,a.zOffset);}}_updateIconDebugCollisionBoxes(t,e,r,n,i,a,s){for(let s=n;s<i;s++){const n=r.get(s),i=this.getSymbolInstanceIconSize(t,e,a.placedIconSymbolIndex);this._commitDebugCollisionVertexUpdate(this.iconCollisionBox.collisionVertexArrayExt,i,n.padding,a.zOffset);}}updateCollisionDebugBuffers(t,e,r,n){if(!this.hasDebugData())return;this.hasTextCollisionBoxData()&&this.textCollisionBox.collisionVertexArrayExt.clear(),this.hasIconCollisionBoxData()&&this.iconCollisionBox.collisionVertexArrayExt.clear();const i=Qp(this.iconSizeData,t,n),a=Qp(this.textSizeData,t,r);for(let s=0;s<this.symbolInstances.length;s++){const o=this.symbolInstances.get(s);this._updateTextDebugCollisionBoxes(a,t,e,o.textBoxStartIndex,o.textBoxEndIndex,o,r),this._updateTextDebugCollisionBoxes(a,t,e,o.verticalTextBoxStartIndex,o.verticalTextBoxEndIndex,o,r),this._updateIconDebugCollisionBoxes(i,t,e,o.iconBoxStartIndex,o.iconBoxEndIndex,o,n),this._updateIconDebugCollisionBoxes(i,t,e,o.verticalIconBoxStartIndex,o.verticalIconBoxEndIndex,o,n);}this.hasTextCollisionBoxData()&&this.textCollisionBox.collisionVertexBufferExt&&this.textCollisionBox.collisionVertexBufferExt.updateData(this.textCollisionBox.collisionVertexArrayExt),this.hasIconCollisionBoxData()&&this.iconCollisionBox.collisionVertexBufferExt&&this.iconCollisionBox.collisionVertexBufferExt.updateData(this.iconCollisionBox.collisionVertexArrayExt);}_deserializeCollisionBoxesForSymbol(t,e,r,n,i,a,s,o,l){const u={};if(e<r){const{x1:r,y1:n,x2:i,y2:a,padding:s,projectedAnchorX:o,projectedAnchorY:l,projectedAnchorZ:c,tileAnchorX:h,tileAnchorY:p,featureIndex:f}=t.get(e);u.textBox={x1:r,y1:n,x2:i,y2:a,padding:s,projectedAnchorX:o,projectedAnchorY:l,projectedAnchorZ:c,tileAnchorX:h,tileAnchorY:p},u.textFeatureIndex=f;}if(n<i){const{x1:e,y1:r,x2:i,y2:a,padding:s,projectedAnchorX:o,projectedAnchorY:l,projectedAnchorZ:c,tileAnchorX:h,tileAnchorY:p,featureIndex:f}=t.get(n);u.verticalTextBox={x1:e,y1:r,x2:i,y2:a,padding:s,projectedAnchorX:o,projectedAnchorY:l,projectedAnchorZ:c,tileAnchorX:h,tileAnchorY:p},u.verticalTextFeatureIndex=f;}if(a<s){const{x1:e,y1:r,x2:n,y2:i,padding:s,projectedAnchorX:o,projectedAnchorY:l,projectedAnchorZ:c,tileAnchorX:h,tileAnchorY:p,featureIndex:f}=t.get(a);u.iconBox={x1:e,y1:r,x2:n,y2:i,padding:s,projectedAnchorX:o,projectedAnchorY:l,projectedAnchorZ:c,tileAnchorX:h,tileAnchorY:p},u.iconFeatureIndex=f;}if(o<l){const{x1:e,y1:r,x2:n,y2:i,padding:a,projectedAnchorX:s,projectedAnchorY:l,projectedAnchorZ:c,tileAnchorX:h,tileAnchorY:p,featureIndex:f}=t.get(o);u.verticalIconBox={x1:e,y1:r,x2:n,y2:i,padding:a,projectedAnchorX:s,projectedAnchorY:l,projectedAnchorZ:c,tileAnchorX:h,tileAnchorY:p},u.verticalIconFeatureIndex=f;}return u}deserializeCollisionBoxes(t){this.collisionArrays=[];for(let e=0;e<this.symbolInstances.length;e++){const r=this.symbolInstances.get(e);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t,r.textBoxStartIndex,r.textBoxEndIndex,r.verticalTextBoxStartIndex,r.verticalTextBoxEndIndex,r.iconBoxStartIndex,r.iconBoxEndIndex,r.verticalIconBoxStartIndex,r.verticalIconBoxEndIndex));}}hasTextData(){return this.text.segments.get().length>0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}hasIconTextFit(){return this.hasAnyIconTextFit}addIndicesForPlacedSymbol(t,e){const r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs;for(let e=r.vertexStartIndex;e<n;e+=4)t.indexArray.emplaceBack(e,e+1,e+2),t.indexArray.emplaceBack(e+1,e+2,e+3);}getSortedSymbolIndexes(t){if(this.sortedAngle===t&&void 0!==this.symbolInstanceIndexes)return this.symbolInstanceIndexes;const e=Math.sin(t),r=Math.cos(t),n=[],i=[],a=[];for(let t=0;t<this.symbolInstances.length;++t){a.push(t);const s=this.symbolInstances.get(t);n.push(0|Math.round(e*s.tileAnchorX+r*s.tileAnchorY)),i.push(s.featureIndex);}return a.sort(((t,e)=>n[t]-n[e]||i[e]-i[t])),a}getSortedIndexesByZOffset(){if(!this.zOffsetSortDirty)return this.symbolInstanceIndexesSortedZOffset;if(!this.symbolInstanceIndexesSortedZOffset){this.symbolInstanceIndexesSortedZOffset=[];for(let t=0;t<this.symbolInstances.length;++t)this.symbolInstanceIndexesSortedZOffset.push(t);}return this.zOffsetSortDirty=!1,this.symbolInstanceIndexesSortedZOffset.sort(((t,e)=>this.symbolInstances.get(e).zOffset-this.symbolInstances.get(t).zOffset))}addToSortKeyRanges(t,e){const r=this.sortKeyRanges[this.sortKeyRanges.length-1];r&&r.sortKey===e?r.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:e,symbolInstanceStart:t,symbolInstanceEnd:t+1});}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const t of this.symbolInstanceIndexes){const e=this.symbolInstances.get(t);this.featureSortOrder.push(e.featureIndex);const{rightJustifiedTextSymbolIndex:r,centerJustifiedTextSymbolIndex:n,leftJustifiedTextSymbolIndex:i,verticalPlacedTextSymbolIndex:a,placedIconSymbolIndex:s,verticalPlacedIconSymbolIndex:o}=e;r>=0&&this.addIndicesForPlacedSymbol(this.text,r),n>=0&&n!==r&&this.addIndicesForPlacedSymbol(this.text,n),i>=0&&i!==n&&i!==r&&this.addIndicesForPlacedSymbol(this.text,i),a>=0&&this.addIndicesForPlacedSymbol(this.text,a),s>=0&&this.addIndicesForPlacedSymbol(this.icon,s),o>=0&&this.addIndicesForPlacedSymbol(this.icon,o);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}}}let em,rm,nm;oa(tm,\"SymbolBucket\",{omit:[\"layers\",\"collisionBoxArray\",\"features\",\"compareText\"]}),tm.addDynamicAttributes=Wd;class im{constructor(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Ce,this.defaultValue=t;}evaluate(t){if(t.formattedSection){const e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression);}outputDefined(){return !1}serialize(){return null}}oa(im,\"FormatSectionOverride\",{omit:[\"defaultValue\"]});const am=()=>nm||(nm={layout:em||(em=new Ga({\"symbol-placement\":new ja(Ya.layout_symbol[\"symbol-placement\"]),\"symbol-spacing\":new ja(Ya.layout_symbol[\"symbol-spacing\"]),\"symbol-avoid-edges\":new ja(Ya.layout_symbol[\"symbol-avoid-edges\"]),\"symbol-sort-key\":new qa(Ya.layout_symbol[\"symbol-sort-key\"]),\"symbol-z-order\":new ja(Ya.layout_symbol[\"symbol-z-order\"]),\"symbol-z-elevate\":new ja(Ya.layout_symbol[\"symbol-z-elevate\"]),\"symbol-elevation-reference\":new ja(Ya.layout_symbol[\"symbol-elevation-reference\"]),\"icon-allow-overlap\":new ja(Ya.layout_symbol[\"icon-allow-overlap\"]),\"icon-ignore-placement\":new ja(Ya.layout_symbol[\"icon-ignore-placement\"]),\"icon-optional\":new ja(Ya.layout_symbol[\"icon-optional\"]),\"icon-rotation-alignment\":new ja(Ya.layout_symbol[\"icon-rotation-alignment\"]),\"icon-size\":new qa(Ya.layout_symbol[\"icon-size\"]),\"icon-size-scale-range\":new ja(Ya.layout_symbol[\"icon-size-scale-range\"]),\"icon-text-fit\":new qa(Ya.layout_symbol[\"icon-text-fit\"]),\"icon-text-fit-padding\":new qa(Ya.layout_symbol[\"icon-text-fit-padding\"]),\"icon-image\":new qa(Ya.layout_symbol[\"icon-image\"]),\"icon-rotate\":new qa(Ya.layout_symbol[\"icon-rotate\"]),\"icon-padding\":new ja(Ya.layout_symbol[\"icon-padding\"]),\"icon-keep-upright\":new ja(Ya.layout_symbol[\"icon-keep-upright\"]),\"icon-offset\":new qa(Ya.layout_symbol[\"icon-offset\"]),\"icon-anchor\":new qa(Ya.layout_symbol[\"icon-anchor\"]),\"icon-pitch-alignment\":new ja(Ya.layout_symbol[\"icon-pitch-alignment\"]),\"text-pitch-alignment\":new ja(Ya.layout_symbol[\"text-pitch-alignment\"]),\"text-rotation-alignment\":new ja(Ya.layout_symbol[\"text-rotation-alignment\"]),\"text-field\":new qa(Ya.layout_symbol[\"text-field\"]),\"text-font\":new qa(Ya.layout_symbol[\"text-font\"]),\"text-size\":new qa(Ya.layout_symbol[\"text-size\"]),\"text-size-scale-range\":new ja(Ya.layout_symbol[\"text-size-scale-range\"]),\"text-max-width\":new qa(Ya.layout_symbol[\"text-max-width\"]),\"text-line-height\":new qa(Ya.layout_symbol[\"text-line-height\"]),\"text-letter-spacing\":new qa(Ya.layout_symbol[\"text-letter-spacing\"]),\"text-justify\":new qa(Ya.layout_symbol[\"text-justify\"]),\"text-radial-offset\":new qa(Ya.layout_symbol[\"text-radial-offset\"]),\"text-variable-anchor\":new ja(Ya.layout_symbol[\"text-variable-anchor\"]),\"text-anchor\":new qa(Ya.layout_symbol[\"text-anchor\"]),\"text-max-angle\":new ja(Ya.layout_symbol[\"text-max-angle\"]),\"text-writing-mode\":new ja(Ya.layout_symbol[\"text-writing-mode\"]),\"text-rotate\":new qa(Ya.layout_symbol[\"text-rotate\"]),\"text-padding\":new ja(Ya.layout_symbol[\"text-padding\"]),\"text-keep-upright\":new ja(Ya.layout_symbol[\"text-keep-upright\"]),\"text-transform\":new qa(Ya.layout_symbol[\"text-transform\"]),\"text-offset\":new qa(Ya.layout_symbol[\"text-offset\"]),\"text-allow-overlap\":new ja(Ya.layout_symbol[\"text-allow-overlap\"]),\"text-ignore-placement\":new ja(Ya.layout_symbol[\"text-ignore-placement\"]),\"text-optional\":new ja(Ya.layout_symbol[\"text-optional\"]),visibility:new ja(Ya.layout_symbol.visibility)})),paint:rm||(rm=new Ga({\"icon-opacity\":new qa(Ya.paint_symbol[\"icon-opacity\"]),\"icon-occlusion-opacity\":new qa(Ya.paint_symbol[\"icon-occlusion-opacity\"]),\"icon-emissive-strength\":new qa(Ya.paint_symbol[\"icon-emissive-strength\"]),\"text-emissive-strength\":new qa(Ya.paint_symbol[\"text-emissive-strength\"]),\"icon-color\":new qa(Ya.paint_symbol[\"icon-color\"]),\"icon-halo-color\":new qa(Ya.paint_symbol[\"icon-halo-color\"]),\"icon-halo-width\":new qa(Ya.paint_symbol[\"icon-halo-width\"]),\"icon-halo-blur\":new qa(Ya.paint_symbol[\"icon-halo-blur\"]),\"icon-translate\":new ja(Ya.paint_symbol[\"icon-translate\"]),\"icon-translate-anchor\":new ja(Ya.paint_symbol[\"icon-translate-anchor\"]),\"icon-image-cross-fade\":new qa(Ya.paint_symbol[\"icon-image-cross-fade\"]),\"text-opacity\":new qa(Ya.paint_symbol[\"text-opacity\"]),\"text-occlusion-opacity\":new qa(Ya.paint_symbol[\"text-occlusion-opacity\"]),\"text-color\":new qa(Ya.paint_symbol[\"text-color\"],{runtimeType:Fe,getOverride:t=>t.textColor,hasOverride:t=>!!t.textColor}),\"text-halo-color\":new qa(Ya.paint_symbol[\"text-halo-color\"]),\"text-halo-width\":new qa(Ya.paint_symbol[\"text-halo-width\"]),\"text-halo-blur\":new qa(Ya.paint_symbol[\"text-halo-blur\"]),\"text-translate\":new ja(Ya.paint_symbol[\"text-translate\"]),\"text-translate-anchor\":new ja(Ya.paint_symbol[\"text-translate-anchor\"]),\"icon-color-saturation\":new ja(Ya.paint_symbol[\"icon-color-saturation\"]),\"icon-color-contrast\":new ja(Ya.paint_symbol[\"icon-color-contrast\"]),\"icon-color-brightness-min\":new ja(Ya.paint_symbol[\"icon-color-brightness-min\"]),\"icon-color-brightness-max\":new ja(Ya.paint_symbol[\"icon-color-brightness-max\"]),\"symbol-z-offset\":new qa(Ya.paint_symbol[\"symbol-z-offset\"]),\"icon-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"icon-halo-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"text-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"text-halo-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},nm);class sm extends ps{constructor(t,e,r,n){super(t,am(),e,r,n),this._colorAdjustmentMatrix=O.mat4.identity([]),this.hasInitialOcclusionOpacityProperties=void 0!==t.paint&&(\"icon-occlusion-opacity\"in t.paint||\"text-occlusion-opacity\"in t.paint);}recalculate(t,e){super.recalculate(t,e),\"auto\"===this.layout.get(\"icon-rotation-alignment\")&&(this.layout._values[\"icon-rotation-alignment\"]=\"point\"!==this.layout.get(\"symbol-placement\")?\"map\":\"viewport\"),\"auto\"===this.layout.get(\"text-rotation-alignment\")&&(this.layout._values[\"text-rotation-alignment\"]=\"point\"!==this.layout.get(\"symbol-placement\")?\"map\":\"viewport\"),\"auto\"===this.layout.get(\"text-pitch-alignment\")&&(this.layout._values[\"text-pitch-alignment\"]=this.layout.get(\"text-rotation-alignment\")),\"auto\"===this.layout.get(\"icon-pitch-alignment\")&&(this.layout._values[\"icon-pitch-alignment\"]=this.layout.get(\"icon-rotation-alignment\"));const r=this.layout.get(\"text-writing-mode\");if(r){const t=[];for(const e of r)t.indexOf(e)<0&&t.push(e);this.layout._values[\"text-writing-mode\"]=t;}else this.layout._values[\"text-writing-mode\"]=\"point\"===this.layout.get(\"symbol-placement\")?[\"horizontal\"]:[\"horizontal\",\"vertical\"];this._setPaintOverrides();}getColorAdjustmentMatrix(t,e,r,n){return this._saturation===t&&this._contrast===e&&this._brightnessMin===r&&this._brightnessMax===n||(this._colorAdjustmentMatrix=function(t,e,r,n){t=At(t),e=Mt(e);const i=O.mat4.create(),a=t/3,s=1-2*a,o=[s,a,a,0,a,s,a,0,a,a,s,0,0,0,0,1],l=.5-.5*e,u=n-r;return O.mat4.multiply(i,[u,0,0,0,0,u,0,0,0,0,u,0,r,r,r,1],[e,0,0,0,0,e,0,0,0,0,e,0,l,l,l,1]),O.mat4.multiply(i,i,o),i}(t,e,r,n),this._saturation=t,this._contrast=e,this._brightnessMin=r,this._brightnessMax=n),this._colorAdjustmentMatrix}getValueAndResolveTokens(t,e,r,n){const i=this.layout.get(t).evaluate(e,{},r,n),a=this._unevaluatedLayout._values[t];return a.isDataDriven()||Hi(a.value)||!i?i:function(t,e){return e.replace(/{([^{}]+)}/g,((e,r)=>r in t?String(t[r]):\"\"))}(e.properties,i)}createBucket(t){return new tm(t)}queryRadius(){return 0}queryIntersectsFeature(){return !1}_setPaintOverrides(){for(const t of am().paint.overridableProperties){if(!sm.hasPaintOverride(this.layout,t))continue;const e=this.paint.get(t),r=new im(e),n=new Zi(r,e.property.specification,this.scope,this.options);let i=null;i=\"constant\"===e.value.kind||\"source\"===e.value.kind?new Ki(\"source\",n):new Ji(\"composite\",n,e.value.zoomStops,e.value._interpolationType),this.paint._values[t]=new Na(e.property,i,e.parameters);}}_handleOverridablePaintPropertyUpdate(t,e,r){return !(!this.layout||e.isDataDriven()||r.isDataDriven())&&sm.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,e){const r=t.get(\"text-field\"),n=am().paint.properties[e];let i=!1;const a=t=>{for(const e of t)if(n.overrides&&n.overrides.hasOverride(e))return void(i=!0)};if(\"constant\"===r.value.kind&&r.value.value instanceof Je)a(r.value.value.sections);else if(\"source\"===r.value.kind){const t=e=>{i||(e instanceof ar&&nr(e.value)===je?a(e.value.sections):e instanceof ur?a(e.sections):e.eachChild(t));},e=r.value;e._styleExpression&&t(e._styleExpression.expression);}return i}getProgramIds(){return [\"symbol\"]}getDefaultProgramParams(t,e,r){return {config:new Oo(this,{zoom:e,lut:r}),overrideFog:!1}}}let om,lm,um,cm;var hm=ys([{name:\"a_pos\",type:\"Int16\",components:2},{name:\"a_texture_pos\",type:\"Int16\",components:2}]);function pm(t){switch(t){case WebGL2RenderingContext.RGBA8:return WebGL2RenderingContext.RGBA;case WebGL2RenderingContext.DEPTH_COMPONENT16:return WebGL2RenderingContext.DEPTH_COMPONENT;case WebGL2RenderingContext.DEPTH24_STENCIL8:return WebGL2RenderingContext.DEPTH_STENCIL;case WebGL2RenderingContext.R8:case WebGL2RenderingContext.R32F:return WebGL2RenderingContext.RED}}function fm(t){switch(t){case WebGL2RenderingContext.RGBA8:return WebGL2RenderingContext.UNSIGNED_BYTE;case WebGL2RenderingContext.DEPTH_COMPONENT16:return WebGL2RenderingContext.UNSIGNED_SHORT;case WebGL2RenderingContext.DEPTH24_STENCIL8:return WebGL2RenderingContext.UNSIGNED_INT_24_8;case WebGL2RenderingContext.R8:return WebGL2RenderingContext.UNSIGNED_BYTE;case WebGL2RenderingContext.R32F:return WebGL2RenderingContext.FLOAT}}class dm{constructor(t,e,r,n){this.context=t,this.format=r,this.useMipmap=n&&n.useMipmap,this.texture=t.gl.createTexture(),this.update(e,{premultiply:n&&n.premultiply});}update(t,e){const r=t&&t instanceof HTMLVideoElement&&0===t.width?t.videoWidth:t.width,n=t&&t instanceof HTMLVideoElement&&0===t.height?t.videoHeight:t.height,{context:i}=this,{gl:a}=i,{x:s,y:o}=e&&e.position?e.position:{x:0,y:0},l=s+r,u=o+n;!this.size||this.size[0]===l&&this.size[1]===u||(a.bindTexture(a.TEXTURE_2D,null),a.deleteTexture(this.texture),this.texture=a.createTexture(),this.size=null),a.bindTexture(a.TEXTURE_2D,this.texture),i.pixelStoreUnpackFlipY.set(!1),i.pixelStoreUnpack.set(1),i.pixelStoreUnpackPremultiplyAlpha.set(this.format===a.RGBA8&&(!e||!1!==e.premultiply));const c=t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement||t instanceof ImageData||ImageBitmap&&t instanceof ImageBitmap;if(!this.size&&l>0&&u>0){const t=this.useMipmap?Math.floor(Math.log2(Math.max(l,u)))+1:1;a.texStorage2D(a.TEXTURE_2D,t,this.format,l,u),this.size=[l,u];}if(this.size)if(c)a.texSubImage2D(a.TEXTURE_2D,0,s,o,pm(this.format),fm(this.format),t);else {const e=t.data;e&&a.texSubImage2D(a.TEXTURE_2D,0,s,o,r,n,pm(this.format),fm(this.format),e);}this.useMipmap&&a.generateMipmap(a.TEXTURE_2D);}bind(t,e,r=!1){const{context:n}=this,{gl:i}=n;i.bindTexture(i.TEXTURE_2D,this.texture),t!==this.minFilter&&(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,t),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,this.useMipmap&&!r?t===i.NEAREST?i.NEAREST_MIPMAP_NEAREST:i.LINEAR_MIPMAP_LINEAR:t),this.minFilter=t),e!==this.wrapS&&(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,e),this.wrapS=e);}bindExtraParam(t,e,r,n){const{context:i}=this,{gl:a}=i;a.bindTexture(a.TEXTURE_2D,this.texture),e!==this.magFilter&&(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,e),this.magFilter=e),t!==this.minFilter&&(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,this.useMipmap?t===a.NEAREST?a.NEAREST_MIPMAP_NEAREST:a.LINEAR_MIPMAP_LINEAR:t),this.minFilter=t),r!==this.wrapS&&(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,r),this.wrapS=r),n!==this.wrapT&&(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,n),this.wrapT=n);}destroy(){const{gl:t}=this.context;t.deleteTexture(this.texture),this.texture=null;}}class mm{constructor(t,e){this.context=t,this.texture=e;}bind(t,e){const{context:r}=this,{gl:n}=r;n.bindTexture(n.TEXTURE_2D,this.texture),t!==this.minFilter&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,t),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,t),this.minFilter=t),e!==this.wrapS&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,e),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,e),this.wrapS=e);}}function ym(t,e,r,n,i,a,s,o){const l=[t,e,1,r,n,1,i,a,1],u=[s,o,1],c=O.mat3.adjoint([],l),[h,p,f]=O.vec3.transformMat3(u,u,c);return O.mat3.multiply(l,l,[h,0,0,0,p,0,0,0,f])}function gm(t,e,r,n,i,a,s,o){const l=function(t,e,r,n,i,a,s,o){const l=ym(0,0,1,0,1,1,0,1),u=ym(t,e,r,n,i,a,s,o),c=O.mat3.adjoint([],l);return O.mat3.multiply(u,u,c)}(t,e,r,n,i,a,s,o);return [l[2]/l[8]/Wr,l[5]/l[8]/Wr]}function xm(t){return [t[0],Math.min(Math.max(t[1],-ml),ml)]}class vm extends we{constructor(t,e,r,n){super(),this.id=t,this.dispatcher=r,this.coordinates=e.coordinates,this.type=\"image\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.onNorthPole=!1,this.onSouthPole=!1,this.setEventedParent(n),this.options=e,this._dirty=!1;}load(t,e){if(this._loaded=e||!1,this.fire(new xe(\"dataloading\",{dataType:\"source\"})),this.url=this.options.url,!this.url)return t&&(this.coordinates=t),this._loaded=!0,void this._finishLoading();this._imageRequest=ue(this.map._requestManager.transformRequest(this.url,te.Image),((e,r)=>{this._imageRequest=null,this._loaded=!0,e?this.fire(new ve(e)):r&&(this.image=r instanceof HTMLImageElement?Dt.getImageData(r):r,this._dirty=!0,this.width=this.image.width,this.height=this.image.height,t&&(this.coordinates=t),this._finishLoading());}));}loaded(){return this._loaded}updateImage(t){return t.url?(this._imageRequest&&t.url!==this.options.url&&(this._imageRequest.cancel(),this._imageRequest=null),this.options.url=t.url,this.load(t.coordinates,this._loaded),this):this}setTexture(t){if(!(t.handle instanceof WebGLTexture))throw new Error(\"The provided handle is not a WebGLTexture instance\");return this.texture=new mm(this.map.painter.context,t.handle),this.width=t.dimensions[0],this.height=t.dimensions[1],this._dirty=!1,this._loaded=!0,this._finishLoading(),this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new xe(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})));}onAdd(t){this.map=t,this.load();}onRemove(t){this._imageRequest&&(this._imageRequest.cancel(),this._imageRequest=null),!this.texture||this.texture instanceof mm||this.texture.destroy(),this.boundsBuffer&&(this.boundsBuffer.destroy(),this.elevatedGlobeVertexBuffer&&this.elevatedGlobeVertexBuffer.destroy(),this.elevatedGlobeIndexBuffer&&this.elevatedGlobeIndexBuffer.destroy());}setCoordinates(t){if(this.coordinates=t,this._boundsArray=void 0,this._unsupportedCoords=!1,!t.length)return this;this.onNorthPole=!1,this.onSouthPole=!1;let e=t[0][1],r=t[0][1];for(const n of t)n[1]>r&&(r=n[1]),n[1]<e&&(e=n[1]);const n=(r+e)/2;if(n>ml?this.onNorthPole=!0:n<-ml&&(this.onSouthPole=!0),!this.onNorthPole&&!this.onSouthPole){const e=t.map(bl.fromLngLat);this.tileID=function(t){let e=1/0,r=1/0,n=-1/0,i=-1/0;for(const a of t)e=Math.min(e,a.x),r=Math.min(r,a.y),n=Math.max(n,a.x),i=Math.max(i,a.y);const a=Math.max(n-e,i-r),s=Math.max(0,Math.floor(-Math.log(a)/Math.LN2)),o=Math.pow(2,s);let l=Math.floor((e+n)/2*o);return l>1&&(l-=1),new ru(s,l,Math.floor((r+i)/2*o))}(e),this.minzoom=this.maxzoom=this.tileID.z;}return this.fire(new xe(\"data\",{dataType:\"source\",sourceDataType:\"content\"})),this}_clear(){this._boundsArray=void 0,this._unsupportedCoords=!1;}_prepareData(t){for(const t in this.tiles){const e=this.tiles[t];\"loaded\"!==e.state&&(e.state=\"loaded\",e.texture=this.texture);}if(this._boundsArray||this.onNorthPole||this.onSouthPole||this._unsupportedCoords)return;const e=wd(new ru(0,0,0),this.map.transform.projection),r=[e.projection.project(this.coordinates[0][0],this.coordinates[0][1]),e.projection.project(this.coordinates[1][0],this.coordinates[1][1]),e.projection.project(this.coordinates[2][0],this.coordinates[2][1]),e.projection.project(this.coordinates[3][0],this.coordinates[3][1])];if(!function(t){const e=t[1].x-t[0].x,r=t[1].y-t[0].y,n=t[2].x-t[1].x,i=t[2].y-t[1].y,a=t[3].x-t[2].x,s=t[3].y-t[2].y,o=t[0].x-t[3].x,l=t[0].y-t[3].y,u=e*i-n*r,c=n*s-a*i,h=a*l-o*s,p=o*r-e*l;return u>0&&c>0&&h>0&&p>0||u<0&&c<0&&h<0&&p<0}(r))return console.warn(\"Image source coordinates are defining non-convex area in the Mercator projection\"),void(this._unsupportedCoords=!0);const n=wd(this.tileID,this.map.transform.projection),[i,a,s,o]=this.coordinates.map((t=>{const e=n.projection.project(t[0],t[1]);return Md(n,e)._round()}));this.perspectiveTransform=gm(i.x,i.y,a.x,a.y,s.x,s.y,o.x,o.y);const l=this._boundsArray=new bs;l.emplaceBack(i.x,i.y,0,0),l.emplaceBack(a.x,a.y,Wr,0),l.emplaceBack(o.x,o.y,0,Wr),l.emplaceBack(s.x,s.y,Wr,Wr),this.boundsBuffer&&(this.boundsBuffer.destroy(),this.elevatedGlobeVertexBuffer&&this.elevatedGlobeVertexBuffer.destroy(),this.elevatedGlobeIndexBuffer&&this.elevatedGlobeIndexBuffer.destroy()),this.boundsBuffer=t.createVertexBuffer(l,hm.members),this.boundsSegments=po.simpleSegment(0,0,4,2);const u=[],c=[xm((h=this.coordinates)[0]),xm(h[1]),xm(h[2]),xm(h[3])];var h;const[p,f,d,m]=function(t){let e=t[0][0],r=e,n=t[0][1],i=n;for(let a=1;a<t.length;a++)t[a][0]<e?e=t[a][0]:t[a][0]>r&&(r=t[a][0]),t[a][1]<n?n=t[a][1]:t[a][1]>i&&(i=t[a][1]);return [e,n,r-e,i-n]}(c);{const n=new bs,[i,a,s,o]=function(t){let e=t[0].x,r=e,n=t[0].y,i=n;for(let a=1;a<t.length;a++)t[a].x<e?e=t[a].x:t[a].x>r&&(r=t[a].x),t[a].y<n?n=t[a].y:t[a].y>i&&(i=t[a].y);return [e,n,r-e,i-n]}(r),l=t=>[(t.x-i)/s,(t.y-a)/o],[c,h,y,g]=r.map(l),x=function(t,e,r,n,i,a,s,o){const l=ym(0,0,1,0,1,1,0,1),u=ym(t,e,r,n,i,a,s,o),c=O.mat3.adjoint([],u);return O.mat3.multiply(l,l,c)}(c[0],c[1],h[0],h[1],y[0],y[1],g[0],g[1]);this.elevatedGlobePerspectiveTransform=gm(c[0],c[1],h[0],h[1],y[0],y[1],g[0],g[1]);const v=(t,e)=>{u.push(t.lng);const r=Math.round((t.lng-p)/d*Wr),i=Math.round((t.lat-f)/m*Wr),a=l(e),s=O.vec3.transformMat3([],[a[0],a[1],1],x),o=Math.round(s[0]/s[2]*Wr),c=Math.round(s[1]/s[2]*Wr);n.emplaceBack(r,i,o,c);},b=r[3].x-r[0].x,_=r[3].y-r[0].y,w=r[2].x-r[1].x,M=r[2].y-r[1].y;for(let t=0;t<65;t++){const n=t/64,i=[r[0].x+n*b,r[0].y+n*_],a=[r[1].x+n*w,r[1].y+n*M],s=a[0]-i[0],o=a[1]-i[1];for(let t=0;t<65;t++){const r=t/64,n={x:i[0]+s*r,y:i[1]+o*r,z:0};v(e.projection.unproject(n.x,n.y),n);}}this.elevatedGlobeVertexBuffer=t.createVertexBuffer(n,hm.members);}{this.maxLongitudeTriangleSize=0;let e=[],r=new Ls;const n=(t,n,i)=>{r.emplaceBack(t,n,i);const a=u[t],s=u[n],o=u[i],l=Math.min(Math.min(a,s),o),c=Math.max(Math.max(a,s),o)-l;c>this.maxLongitudeTriangleSize&&(this.maxLongitudeTriangleSize=c),e.push(l+c/2);};for(let t=0;t<64;t++)for(let e=0;e<64;e++){const r=65*t+e,i=r+1,a=r+65,s=a+1;n(r,a,i),n(i,a,s);}[e,r]=function(t,e){const r=Array.from({length:t.length},((t,e)=>e));r.sort(((e,r)=>t[e]-t[r]));const n=[],i=new Ls;for(let a=0;a<r.length;a++){const s=r[a];n.push(t[s]);const o=3*s,l=o+1;i.emplaceBack(e.uint16[o],e.uint16[l],e.uint16[l+1]);}return [n,i]}(e,r),this.elevatedGlobeTrianglesCenterLongitudes=e,this.elevatedGlobeIndexBuffer=t.createIndexBuffer(r);}this.elevatedGlobeSegments=po.simpleSegment(0,0,4225,8192),this.elevatedGlobeGridMatrix=new Float32Array([0,d/Wr,0,m/Wr,0,0,f,p,0]);}prepare(){const t=0!==Object.keys(this.tiles).length;if(this.tileID&&!t)return;const e=this.map.painter.context,r=e.gl;!this._dirty||this.texture instanceof mm||(this.texture?this.texture.update(this.image):(this.texture=new dm(e,this.image,r.RGBA8),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this._dirty=!1),t&&this._prepareData(e);}loadTile(t,e){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={},e(null)):(t.state=\"errored\",e(null));}serialize(){return {type:\"image\",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return !1}getSegmentsForLongitude(t){const e=this.elevatedGlobeSegments;if(!this.elevatedGlobeTrianglesCenterLongitudes||!e)return null;const r=this.elevatedGlobeTrianglesCenterLongitudes;let n=(i=t+180)+360*Math.round((r[0]-i)/360);var i;const a=new po,s=(t,r)=>{a.segments.push({vertexOffset:0,primitiveOffset:t,vertexLength:e.segments[0].vertexLength,primitiveLength:r,sortKey:void 0,vaos:{}});},o=.51*this.maxLongitudeTriangleSize;if(Math.abs(r[0]-n)<=o){const t=wt(r,0,r.length,n+o);return t===r.length||s(t,_t(r,t+1,r.length,n+360-o)-t),a}n<r[0]&&(n+=360);const l=_t(r,0,r.length,n-o);if(l===r.length)return s(0,r.length),a;s(0,l-0);const u=wt(r,l+1,r.length,n+o);return u!==r.length&&s(u,r.length-u),a}}const bm=(Math.pow(256,2)-1)/16907520;class _m extends ps{constructor(t,e,r,n){super(t,{layout:um||(um=new Ga({visibility:new ja(Ya.layout_raster.visibility)})),paint:cm||(cm=new Ga({\"raster-opacity\":new ja(Ya.paint_raster[\"raster-opacity\"]),\"raster-color\":new $a(Ya.paint_raster[\"raster-color\"]),\"raster-color-mix\":new ja(Ya.paint_raster[\"raster-color-mix\"]),\"raster-color-range\":new ja(Ya.paint_raster[\"raster-color-range\"]),\"raster-hue-rotate\":new ja(Ya.paint_raster[\"raster-hue-rotate\"]),\"raster-brightness-min\":new ja(Ya.paint_raster[\"raster-brightness-min\"]),\"raster-brightness-max\":new ja(Ya.paint_raster[\"raster-brightness-max\"]),\"raster-saturation\":new ja(Ya.paint_raster[\"raster-saturation\"]),\"raster-contrast\":new ja(Ya.paint_raster[\"raster-contrast\"]),\"raster-resampling\":new ja(Ya.paint_raster[\"raster-resampling\"]),\"raster-fade-duration\":new ja(Ya.paint_raster[\"raster-fade-duration\"]),\"raster-emissive-strength\":new ja(Ya.paint_raster[\"raster-emissive-strength\"]),\"raster-array-band\":new ja(Ya.paint_raster[\"raster-array-band\"]),\"raster-elevation\":new ja(Ya.paint_raster[\"raster-elevation\"]),\"raster-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n),this.updateColorRamp(),this._curRampRange=[NaN,NaN];}getProgramIds(){return [\"raster\"]}hasColorMap(){return !!this._transitionablePaint._values[\"raster-color\"].value.value}tileCoverLift(){return this.paint.get(\"raster-elevation\")}isDraped(t){return !(t&&t._source instanceof vm&&(t._source.onNorthPole||t._source.onSouthPole))&&0===this.paint.get(\"raster-elevation\")}_handleSpecialPaintPropertyUpdate(t){\"raster-color\"!==t&&\"raster-color-range\"!==t||(this._curRampRange=[NaN,NaN],this.updateColorRamp());}updateColorRamp(t){if(!this.hasColorMap())return;if(!this._curRampRange)return;const e=this._transitionablePaint._values[\"raster-color\"].value.expression,[r,n]=t||this._transitionablePaint._values[\"raster-color-range\"].value.expression.evaluate({zoom:0})||[NaN,NaN];isNaN(r)&&isNaN(n)||r===this._curRampRange[0]&&n===this._curRampRange[1]||(this.colorRamp=lc({expression:e,evaluationKey:\"rasterValue\",image:this.colorRamp,clips:[{start:r,end:n}],resolution:256}),this.colorRampTexture=null,this._curRampRange=[r,n]);}}let wm,Mm,Am,Sm,Im;class Pm extends ps{constructor(t,e,r,n){super(t,{layout:wm||(wm=new Ga({visibility:new ja(Ya[\"layout_raster-particle\"].visibility)})),paint:Mm||(Mm=new Ga({\"raster-particle-array-band\":new ja(Ya[\"paint_raster-particle\"][\"raster-particle-array-band\"]),\"raster-particle-count\":new ja(Ya[\"paint_raster-particle\"][\"raster-particle-count\"]),\"raster-particle-color\":new $a(Ya[\"paint_raster-particle\"][\"raster-particle-color\"]),\"raster-particle-max-speed\":new ja(Ya[\"paint_raster-particle\"][\"raster-particle-max-speed\"]),\"raster-particle-speed-factor\":new ja(Ya[\"paint_raster-particle\"][\"raster-particle-speed-factor\"]),\"raster-particle-fade-opacity-factor\":new ja(Ya[\"paint_raster-particle\"][\"raster-particle-fade-opacity-factor\"]),\"raster-particle-reset-rate-factor\":new ja(Ya[\"paint_raster-particle\"][\"raster-particle-reset-rate-factor\"]),\"raster-particle-elevation\":new ja(Ya[\"paint_raster-particle\"][\"raster-particle-elevation\"]),\"raster-particle-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n),this._updateColorRamp(),this.lastInvalidatedAt=Dt.now();}onRemove(t){this.colorRampTexture&&this.colorRampTexture.destroy(),this.tileFramebuffer&&this.tileFramebuffer.destroy(),this.particleFramebuffer&&this.particleFramebuffer.destroy();}hasColorMap(){return !!this._transitionablePaint._values[\"raster-particle-color\"].value.value}getProgramIds(){return [\"rasterParticle\"]}hasOffscreenPass(){return \"none\"!==this.visibility}isDraped(t){return !1}_handleSpecialPaintPropertyUpdate(t){\"raster-particle-color\"!==t&&\"raster-particle-max-speed\"!==t||(this._updateColorRamp(),this._invalidateAnimationState()),\"raster-particle-count\"===t&&this._invalidateAnimationState();}_updateColorRamp(){if(!this.hasColorMap())return;const t=this._transitionablePaint._values[\"raster-particle-color\"].value.expression,e=this._transitionablePaint._values[\"raster-particle-max-speed\"].value.expression.evaluate({zoom:0});this.colorRamp=lc({expression:t,evaluationKey:\"rasterParticleSpeed\",image:this.colorRamp,clips:[{start:0,end:e}],resolution:256}),this.colorRampTexture=null;}_invalidateAnimationState(){this.lastInvalidatedAt=Dt.now();}tileCoverLift(){return this.paint.get(\"raster-particle-elevation\")}}class zm extends ps{constructor(t,e){super(t,{},e,null),this.implementation=t,t.slot&&(this.slot=t.slot);}is3D(){return \"3d\"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}isDraped(t){return void 0!==this.implementation.renderToTile}shouldRedrape(){return !!this.implementation.shouldRerenderTiles&&this.implementation.shouldRerenderTiles()}recalculate(){}updateTransitions(){}hasTransition(){return !1}serialize(){}onAdd(t){this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl);}onRemove(t){this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl);}}function Em(t,e,r){const n=[0,0,1],i=O.quat.identity([]);return O.quat.rotateY(i,i,r?-X(t)+Math.PI:X(t)),O.quat.rotateX(i,i,-X(e)),O.vec3.transformQuat(n,n,i),O.vec3.normalize(n,n)}function km(t,e){const r=Bm(t.projection,t.zoom,t.width,t.height),n=function(t,e,r,n,i){const a=new il(r.lng-180*Vm,r.lat),s=new il(r.lng+180*Vm,r.lat),o=t.project(a.lng,a.lat),l=t.project(s.lng,s.lat),u=-Math.atan2(l.y-o.y,l.x-o.x),c=bl.fromLngLat(r);c.y=Q(c.y,-1+Vm,1-Vm);const h=c.toLngLat(),p=t.project(h.lng,h.lat),f=bl.fromLngLat(h);f.x+=Vm;const d=f.toLngLat(),m=t.project(d.lng,d.lat),y=Dm(m.x-p.x,m.y-p.y,u),g=bl.fromLngLat(h);g.y+=Vm;const x=g.toLngLat(),v=t.project(x.lng,x.lat),b=Dm(v.x-p.x,v.y-p.y,u),_=Math.abs(y.x)/Math.abs(b.y),w=O.mat4.identity([]);O.mat4.rotateZ(w,w,-u*(1-(i?0:n)));const M=O.mat4.identity([]);return O.mat4.scale(M,M,[1,1-(1-_)*n,1]),M[4]=-b.x/b.y*n,O.mat4.rotateZ(M,M,u),O.mat4.multiply(M,w,M),M}(t.projection,0,t.center,r,e),i=Tm(t);return O.mat4.scale(n,n,[i,i,1]),n}function Tm(t){const e=t.projection,r=Bm(t.projection,t.zoom,t.width,t.height),n=Cm(e,t.center),i=Cm(e,il.convert(e.center));return Math.pow(2,n*r+(1-r)*i)}function Bm(t,e,r,n,i=1/0){const a=t.range;if(!a)return 0;const s=Math.min(i,Math.max(r,n)),o=Math.log(s/1024)/Math.LN2;return tt(a[0]+o,a[1]+o,e)}const Vm=1/4e4;function Cm(t,e){const r=Q(e.lat,-ml,ml),n=new il(e.lng-180*Vm,r),i=new il(e.lng+180*Vm,r),a=t.project(n.lng,r),s=t.project(i.lng,r),o=bl.fromLngLat(n),l=bl.fromLngLat(i),u=s.x-a.x,c=s.y-a.y,h=l.x-o.x,p=l.y-o.y,f=Math.sqrt((h*h+p*p)/(u*u+c*c));return Math.log(f)/Math.LN2}function Dm(t,e,r){const n=Math.cos(r),i=Math.sin(r);return {x:t*n-e*i,y:t*i+e*n}}function Lm(t,e,r){O.mat4.identity(t),O.mat4.rotateZ(t,t,X(e[2])),O.mat4.rotateX(t,t,X(e[0])),O.mat4.rotateY(t,t,X(e[1])),O.mat4.scale(t,t,r),O.mat4.multiply(t,t,[1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1]);}function Rm(t,e,r,n,i,a,s,o){const l=[r[0]-e[0],r[1]-e[1],0],u=[n[0]-e[0],n[1]-e[1],0];if(O.vec3.length(l)<1e-12||O.vec3.length(u)<1e-12)return O.quat.identity(t);const c=O.vec3.cross([],l,u);O.vec3.normalize(c,c),O.vec3.subtract(u,n,e),l[2]=(a-i)*o,u[2]=(s-i)*o;const h=l;return O.vec3.cross(h,l,u),O.vec3.normalize(h,h),O.quat.rotationTo(t,c,h)}function Fm(t,e,r=!1){const n=Fu(e.zoom),i=function(t,e,r){const n=e.worldSize,i=[t[12],t[13],t[14]],a=fl(i[1]/n),s=pl(i[0]/n),o=O.mat4.identity([]),l=hl(1,a)*n,u=hl(1,0)*n*gl(a,e.zoom),c=1/Du(n);let h=u*c;if(r){const t=Bm(e.projection,e.zoom,e.width,e.height,1024);h=c*e.projection.pixelSpaceConversion(e.center.lat,n,t);}const p=el(a,s);O.vec3.add(p,p,O.vec3.scale([],O.vec3.normalize([],p),l*h*i[2]));const f=function(t){const e=[t[0],t[1],t[2]];let r=[0,1,0];const n=O.vec3.cross([],r,e);return O.vec3.cross(r,e,n),0===O.vec3.squaredLength(r)&&(r=[0,1,0],O.vec3.cross(n,e,r)),O.vec3.normalize(n,n),O.vec3.normalize(r,r),O.vec3.normalize(e,e),[n[0],n[1],n[2],0,r[0],r[1],r[2],0,e[0],e[1],e[2],0,t[0],t[1],t[2],1]}(p);O.mat4.scale(o,o,[h,h,h*l]),O.mat4.translate(o,o,[-i[0],-i[1],-i[2]]);const d=O.mat4.multiply([],e.globeMatrix,f);return O.mat4.multiply(d,d,o),O.mat4.multiply(d,d,t),d}(t,e,r);if(n>0){const r=function(t,e){const r=e.worldSize,n=hl(1,0)*r*gl(e.center.lat,e.zoom)/Du(r),i=hl(1,e.center.lat)*r,a=O.mat4.identity([]);return O.mat4.rotateY(a,a,X(e.center.lng)),O.mat4.rotateX(a,a,X(e.center.lat)),O.mat4.translate(a,a,[0,0,Yo]),O.mat4.scale(a,a,[n,n,n*i]),O.mat4.translate(a,a,[e.point.x-.5*r,e.point.y-.5*r,0]),O.mat4.multiply(a,a,t),O.mat4.multiply(a,e.globeMatrix,a)}(t,e);return function(t,e,r){const n=(t,e,r)=>{const n=O.vec3.length(t),i=O.vec3.length(e),a=Su(t,e,r);return O.vec3.scale(a,a,1/O.vec3.length(a)*ze(n,i,r))},i=n([t[0],t[1],t[2]],[e[0],e[1],e[2]],r),a=n([t[4],t[5],t[6]],[e[4],e[5],e[6]],r),s=n([t[8],t[9],t[10]],[e[8],e[9],e[10]],r),o=Su([t[12],t[13],t[14]],[e[12],e[13],e[14]],r);return [i[0],i[1],i[2],0,a[0],a[1],a[2],0,s[0],s[1],s[2],0,o[0],o[1],o[2],1]}(i,r,n)}return i}function Om(t,e,r,n){const i=xu.projectAabbCorners(n,r);let a=Number.MAX_VALUE,s=-1;for(let t=0;t<i.length;++t){const r=i[t];r[0]=(.5*r[0]+.5)*e.width,r[1]=(.5-.5*r[1])*e.height,r[2]<a&&(s=t,a=r[2]);}const o=t=>new q(i[t][0],i[t][1]);let l;switch(s){case 0:case 6:l=[o(1),o(5),o(4),o(7),o(3),o(2),o(1)];break;case 1:case 7:l=[o(0),o(4),o(5),o(6),o(2),o(3),o(0)];break;case 3:case 5:l=[o(1),o(0),o(4),o(7),o(6),o(2),o(1)];break;default:l=[o(1),o(5),o(6),o(7),o(3),o(0),o(1)];}if(Vl(t,l))return a}const Nm=ys([{name:\"a_pos_3f\",components:3,type:\"Float32\"}]),Um=ys([{name:\"a_color_3f\",components:3,type:\"Float32\"}]),jm=ys([{name:\"a_color_4f\",components:4,type:\"Float32\"}]),qm=ys([{name:\"a_uv_2f\",components:2,type:\"Float32\"}]),$m=ys([{name:\"a_normal_3f\",components:3,type:\"Float32\"}]),Gm=ys([{name:\"a_normal_matrix0\",components:4,type:\"Float32\"},{name:\"a_normal_matrix1\",components:4,type:\"Float32\"},{name:\"a_normal_matrix2\",components:4,type:\"Float32\"},{name:\"a_normal_matrix3\",components:4,type:\"Float32\"}]),Ym=ys([{name:\"a_pbr\",components:4,type:\"Uint16\"},{name:\"a_heightBasedEmissiveStrength\",components:3,type:\"Float32\"}]),Xm={None:0,Model:1,Symbol:2,FillExtrusion:4,All:7};class Zm{constructor(t,e,r,n){this.message=(t?`${t}: `:\"\")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__);}}function Hm(t,e){const r=-1===t.indexOf(\"://\");try{return new URL(t,r&&e?\"http://example.com\":void 0),!0}catch(t){return !1}}class Wm{constructor(t,e){this.feature=t,this.instancedDataOffset=e,this.instancedDataCount=0,this.rotation=[0,0,0],this.scale=[1,1,1],this.translation=[0,0,0];}}class Km{constructor(){this.instancedDataArray=new Xs,this.instancesEvaluatedElevation=[],this.features=[],this.idToFeaturesIndex={};}}class Jm{constructor(t){this.zoom=t.zoom,this.canonical=t.canonical,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.fqid)),this.projection=t.projection,this.index=t.index,this.hasZoomDependentProperties=this.layers[0].isZoomDependent(),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.hasPattern=!1,this.instancesPerModel={},this.validForExaggeration=0,this.maxVerticalOffset=0,this.maxScale=0,this.maxHeight=0,this.lookupDim=this.zoom>this.canonical.z?256:this.zoom>15?75:100,this.instanceCount=0,this.terrainElevationMin=0,this.terrainElevationMax=0,this.validForDEMTile={id:null,timestamp:0},this.modelUris=[],this.modelsRequested=!1,this.activeReplacements=[],this.replacementUpdateTime=0;}updateFootprints(t,e){}populate(t,e,r,n){this.tileToMeter=vl(r);const i=this.layers[0]._featureFilter.needGeometry;this.lookup=new Uint8Array(this.lookupDim*this.lookupDim);for(const{feature:a,id:s,index:o,sourceLayerIndex:l}of t){const t=null!=s?s:a.properties&&a.properties.hasOwnProperty(\"id\")?a.properties.id:void 0,u=El(a,i);if(!this.layers[0]._featureFilter.filter(new Va(this.zoom),u,r))continue;const c={id:t,sourceLayerIndex:l,index:o,geometry:i?u.geometry:zl(a,r,n),properties:a.properties,type:a.type,patterns:{}},h=this.addFeature(c,c.geometry,u);h&&e.featureIndex.insert(a,c.geometry,o,l,this.index,this.instancesPerModel[h].instancedDataArray.length,Wr/32);}this.lookup=null;}update(t,e,r,n){for(const e in this.instancesPerModel){const r=this.instancesPerModel[e];for(const e in t)r.idToFeaturesIndex.hasOwnProperty(e)&&(this.evaluate(r.features[r.idToFeaturesIndex[e]],t[e],r,!0),this.uploaded=!1);}this.maxHeight=0;}updateZoomBasedPaintProperties(){if(!this.hasZoomDependentProperties)return !1;let t=!1;for(const e in this.instancesPerModel){const r=this.instancesPerModel[e];for(const e of r.features){const n=this.layers[0],i=e.feature,a=this.canonical,s=n.paint.get(\"model-rotation\").evaluate(i,{},a),o=n.paint.get(\"model-scale\").evaluate(i,{},a),l=n.paint.get(\"model-translation\").evaluate(i,{},a);O.vec3.exactEquals(e.rotation,s)&&O.vec3.exactEquals(e.scale,o)&&O.vec3.exactEquals(e.translation,l)||(this.evaluate(e,e.featureStates,r,!0),t=!0);}}return t}updateReplacement(t,e,r,n){if(e.updateTime===this.replacementUpdateTime)return !1;this.replacementUpdateTime=e.updateTime;const i=e.getReplacementRegionsForTile(t.toUnwrapped(),!0);if(Ah(this.activeReplacements,i))return !1;this.activeReplacements=i;let a=!1;for(const e in this.instancesPerModel){const i=this.instancesPerModel[e],s=i.instancedDataArray;for(const e of i.features){const i=e.instancedDataOffset,o=e.instancedDataCount;for(let e=0;e<o;e++){const o=16*(e+i);let l=s.float32[o+0];const u=l>Wr;l=u?l-Wr:l;const c=Math.floor(l),h=s.float32[o+1];let p=!1;for(const e of this.activeReplacements)if(!bh(e,r,Xm.Model,n)&&!(e.min.x>c||c>e.max.x||e.min.y>h||h>e.max.y)&&(p=kh(Eh(c,h,t.canonical,e.footprintTileId.canonical),e.footprint),p))break;s.float32[o]=p?l+Wr:l,a=a||p!==u;}}}return a}isEmpty(){for(const t in this.instancesPerModel)if(0!==this.instancesPerModel[t].instancedDataArray.length)return !1;return !0}uploadPending(){return !this.uploaded}upload(t){if(!this.uploaded)for(const e in this.instancesPerModel){const r=this.instancesPerModel[e];r.instancedDataArray.length<0||0===r.instancedDataArray.length||(r.instancedDataBuffer?r.instancedDataBuffer.updateData(r.instancedDataArray):r.instancedDataBuffer=t.createVertexBuffer(r.instancedDataArray,Gm.members,!0,void 0,this.instanceCount));}this.uploaded=!0;}destroy(){for(const t in this.instancesPerModel){const e=this.instancesPerModel[t];0!==e.instancedDataArray.length&&e.instancedDataBuffer&&e.instancedDataBuffer.destroy();}const t=this.layers[0].modelManager;if(t&&this.modelUris)for(const e of this.modelUris)t.removeModel(e,\"\");}addFeature(t,e,r){const n=this.layers[0],i=n.layout.get(\"model-id\").evaluate(r,{},this.canonical);if(!i)return ft(`modelId is not evaluated for layer ${n.id} and it is not going to get rendered.`),i;Hm(i,!1)&&(this.modelUris.includes(i)||this.modelUris.push(i)),this.instancesPerModel[i]||(this.instancesPerModel[i]=new Km);const a=this.instancesPerModel[i],s=a.instancedDataArray,o=new Wm(r,s.length);for(const t of e)for(const e of t){if(e.x<0||e.x>=Wr||e.y<0||e.y>=Wr)continue;const t=(this.lookupDim-1)/Wr,r=this.lookupDim*(e.y*t|0)+e.x*t|0;if(this.lookup){if(0!==this.lookup[r])continue;this.lookup[r]=1;}this.instanceCount++;const n=s.length;s.resize(n+1),a.instancesEvaluatedElevation.push(0),s.float32[16*n]=e.x,s.float32[16*n+1]=e.y;}return o.instancedDataCount=a.instancedDataArray.length-o.instancedDataOffset,o.instancedDataCount>0&&(t.id&&(a.idToFeaturesIndex[t.id]=a.features.length),a.features.push(o),this.evaluate(o,{},a,!1)),i}getModelUris(){return this.modelUris}evaluate(t,e,r,n){const i=this.layers[0],a=t.feature,s=this.canonical,o=t.rotation=i.paint.get(\"model-rotation\").evaluate(a,e,s),l=t.scale=i.paint.get(\"model-scale\").evaluate(a,e,s),u=t.translation=i.paint.get(\"model-translation\").evaluate(a,e,s),c=i.paint.get(\"model-color\").evaluate(a,e,s);c.a=i.paint.get(\"model-color-mix-intensity\").evaluate(a,e,s);const h=[];this.maxVerticalOffset<u[2]&&(this.maxVerticalOffset=u[2]),this.maxScale=Math.max(Math.max(this.maxScale,l[0]),Math.max(l[1],l[2])),Lm(h,o,l);const p=Math.round(100*c.a)+c.b/1.05;for(let e=0;e<t.instancedDataCount;++e){const i=t.instancedDataOffset+e,a=16*i,o=r.instancedDataArray.float32;let l=0;n&&(l=o[a+6]-r.instancesEvaluatedElevation[i]);const f=0|o[a+1];o[a]=(0|o[a])+c.r/1.05,o[a+1]=f+c.g/1.05,o[a+2]=p,o[a+3]=1/(s.z>10?this.tileToMeter:vl(s,f)),o[a+4]=u[0],o[a+5]=u[1],o[a+6]=u[2]+l,o[a+7]=h[0],o[a+8]=h[1],o[a+9]=h[2],o[a+10]=h[4],o[a+11]=h[5],o[a+12]=h[6],o[a+13]=h[8],o[a+14]=h[9],o[a+15]=h[10],r.instancesEvaluatedElevation[i]=u[2];}}}let Qm,ty;oa(Jm,\"ModelBucket\",{omit:[\"layers\"]}),oa(Km,\"PerModelAttributes\"),oa(Wm,\"ModelFeature\");const ey=64,ry={CoordinateSpaceTile:1,CoordinateSpaceYUp:2,HasMapboxMeshFeatures:4,HasMeshoptCompression:8};function ny(t,e,r,n,i,a,s,o,l,u=!1){const c=r.zoom,h=r.project(n),p=gl(n.lat,c),f=1/p;O.mat4.identity(t),O.mat4.translate(t,t,[h.x+s[0]*f,h.y+s[1]*f,s[2]]);let d=1,m=1;const y=r.worldSize;if(u){if(\"mercator\"===r.projection.name){let t=0;r.elevation&&(t=r.elevation.getAtPointOrZero(new bl(h.x/y,h.y/y),0));const e=O.vec4.transformMat4([],[h.x,h.y,t,1],r.projMatrix)[3]/r.cameraToCenterDistance;d=e,m=e*gl(r.center.lat,c);}else if(\"globe\"===r.projection.name){const e=Fm(t,r),i=O.mat4.multiply([],r.projMatrix,e),a=[0,0,0,1];O.vec4.transformMat4(a,a,i);const s=a[3]/r.cameraToCenterDistance,o=Fu(c),l=r.projection.pixelsPerMeter(n.lat,y)*gl(n.lat,c),u=r.projection.pixelsPerMeter(r.center.lat,y)*gl(r.center.lat,c);d=s/ze(l,yl(r.center.lat),o),m=s*p/l,d*=u,m*=u;}}else d=f;O.mat4.scale(t,t,[d,d,m]);const g=[...t],x=e.orientation,v=[];if(Lm(v,[x[0]+i[0],x[1]+i[1],x[2]+i[2]],a),O.mat4.multiply(t,g,v),o&&r.elevation){let i=0;const a=[];if(l&&r.elevation){i=function(t,e,r,n,i){const a=e.elevation;if(!a)return 0;const s=xu.projectAabbCorners(r,n),o=hl(1,i.lat)*e.worldSize,l=function(t,e){const r=[0,0,1],n=[{corners:[0,1,3,2],dotProductWithUp:0},{corners:[1,5,2,6],dotProductWithUp:0},{corners:[0,4,1,5],dotProductWithUp:0},{corners:[2,6,3,7],dotProductWithUp:0},{corners:[4,7,5,6],dotProductWithUp:0},{corners:[0,3,4,7],dotProductWithUp:0}];for(const i of n){const n=t[i.corners[0]],a=t[i.corners[1]],s=t[i.corners[2]],o=[a[0]-n[0],a[1]-n[1],e*(a[2]-n[2])],l=O.vec3.cross(o,o,[s[0]-n[0],s[1]-n[1],e*(s[2]-n[2])]);O.vec3.normalize(l,l),i.dotProductWithUp=O.vec3.dot(l,r);}return n.sort(((t,e)=>t.dotProductWithUp-e.dotProductWithUp)),n[0].corners}(s,o),u=s[l[0]],c=s[l[1]],h=s[l[2]],p=s[l[3]],f=a.getAtPointOrZero(new bl(u[0]/e.worldSize,u[1]/e.worldSize),0),d=a.getAtPointOrZero(new bl(c[0]/e.worldSize,c[1]/e.worldSize),0),m=a.getAtPointOrZero(new bl(h[0]/e.worldSize,h[1]/e.worldSize),0),y=a.getAtPointOrZero(new bl(p[0]/e.worldSize,p[1]/e.worldSize),0),g=(f+y)/2,x=(d+m)/2;return g>x?d<m?Rm(t,c,p,u,d,y,f,o):Rm(t,h,u,p,m,f,y,o):f<y?Rm(t,u,c,h,f,d,m,o):Rm(t,p,h,c,y,m,d,o),Math.max(g,x)}(a,r,e.aabb,t,n);const s=O.mat4.fromQuat([],a),o=O.mat4.multiply([],s,v);O.mat4.multiply(t,g,o);}else i=r.elevation.getAtPointOrZero(new bl(h.x/y,h.y/y),0);0!==i&&(t[14]+=i);}}function iy(t,e,r=!1){t.uploaded||(t.gfxTexture=new dm(e,t.image,r?e.gl.R8:e.gl.RGBA8,{useMipmap:t.sampler.minFilter>=e.gl.NEAREST_MIPMAP_NEAREST}),t.uploaded=!0,t.image=null);}function ay(t,e,r){t.indexBuffer=e.createIndexBuffer(t.indexArray,!1,!0),t.vertexBuffer=e.createVertexBuffer(t.vertexArray,Nm.members,!1,!0),t.normalArray&&(t.normalBuffer=e.createVertexBuffer(t.normalArray,$m.members,!1,!0)),t.texcoordArray&&(t.texcoordBuffer=e.createVertexBuffer(t.texcoordArray,qm.members,!1,!0)),t.colorArray&&(t.colorBuffer=e.createVertexBuffer(t.colorArray,(12===t.colorArray.bytesPerElement?Um:jm).members,!1,!0)),t.featureArray&&(t.pbrBuffer=e.createVertexBuffer(t.featureArray,Ym.members,!0)),t.segments=po.simpleSegment(0,0,t.vertexArray.length,t.indexArray.length);const n=t.material;n.pbrMetallicRoughness.baseColorTexture&&iy(n.pbrMetallicRoughness.baseColorTexture,e),n.pbrMetallicRoughness.metallicRoughnessTexture&&iy(n.pbrMetallicRoughness.metallicRoughnessTexture,e),n.normalTexture&&iy(n.normalTexture,e),n.occlusionTexture&&iy(n.occlusionTexture,e,r),n.emissionTexture&&iy(n.emissionTexture,e);}function sy(t,e,r){if(t.meshes)for(const n of t.meshes)ay(n,e,r);if(t.children)for(const n of t.children)sy(n,e,r);}function oy(t){if(t.meshes)for(const e of t.meshes)e.indexArray.destroy(),e.vertexArray.destroy(),e.colorArray&&e.colorArray.destroy(),e.normalArray&&e.normalArray.destroy(),e.texcoordArray&&e.texcoordArray.destroy(),e.featureArray&&e.featureArray.destroy();if(t.children)for(const e of t.children)oy(e);}function ly(t){if(t.meshes)for(const r of t.meshes)r.vertexBuffer&&(r.vertexBuffer.destroy(),r.indexBuffer.destroy(),r.normalBuffer&&r.normalBuffer.destroy(),r.texcoordBuffer&&r.texcoordBuffer.destroy(),r.colorBuffer&&r.colorBuffer.destroy(),r.pbrBuffer&&r.pbrBuffer.destroy(),r.segments.destroy(),r.material&&((e=r.material).pbrMetallicRoughness.baseColorTexture&&e.pbrMetallicRoughness.baseColorTexture.gfxTexture&&e.pbrMetallicRoughness.baseColorTexture.gfxTexture.destroy(),e.pbrMetallicRoughness.metallicRoughnessTexture&&e.pbrMetallicRoughness.metallicRoughnessTexture.gfxTexture&&e.pbrMetallicRoughness.metallicRoughnessTexture.gfxTexture.destroy(),e.normalTexture&&e.normalTexture.gfxTexture&&e.normalTexture.gfxTexture.destroy(),e.emissionTexture&&e.emissionTexture.gfxTexture&&e.emissionTexture.gfxTexture.destroy(),e.occlusionTexture&&e.occlusionTexture.gfxTexture&&e.occlusionTexture.gfxTexture.destroy()));var e;if(t.children)for(const e of t.children)ly(e);}class uy{constructor(t,e,r){this._demTile=t,this._dem=this._demTile.dem,this._scale=e,this._offset=r;}static create(t,e,r){const n=r||t.findDEMTileFor(e);if(!n||!n.dem)return;const i=n.dem,a=n.tileID,s=1<<e.canonical.z-a.canonical.z;return new uy(n,i.dim/Wr/s,[(e.canonical.x/s-a.canonical.x)*i.dim,(e.canonical.y/s-a.canonical.y)*i.dim])}tileCoordToPixel(t,e){const r=e*this._scale+this._offset[1],n=Math.floor(t*this._scale+this._offset[0]),i=Math.floor(r);return new q(n,i)}getElevationAt(t,e,r,n){const i=t*this._scale+this._offset[0],a=e*this._scale+this._offset[1],s=Math.floor(i),o=Math.floor(a),l=this._dem;return n=!!n,r?ze(ze(l.get(s,o,n),l.get(s,o+1,n),a-o),ze(l.get(s+1,o,n),l.get(s+1,o+1,n),a-o),i-s):l.get(s,o,n)}getElevationAtPixel(t,e,r){return this._dem.get(t,e,!!r)}getMeterToDEM(t){return (1<<this._demTile.tileID.canonical.z)*hl(1,t)*this._dem.stride}}const cy=new Float32Array(262144),hy=new Uint8Array(262144);function py(t){let e=0;if(t.meshes)for(const r of t.meshes)e=Math.max(e,r.aabb.max[2]);if(t.children)for(const r of t.children)e=Math.max(e,py(r));return e}function fy(t,e,r){if(t.meshes)for(const n of t.meshes){if(n.aabb.min[0]===1/0)continue;const i=xu.applyTransform(n.aabb,t.matrix);r.insert(e,i.min[0],i.min[1],i.max[0],i.max[1]);}if(t.children)for(const n of t.children)fy(n,e,r);}const dy=[\"\",\"wall\",\"door\",\"roof\",\"window\",\"lamp\",\"logo\"];class my{constructor(t){this.node=t,this.evaluatedRMEA=[[1,0,0,1],[1,0,0,1],[1,0,0,1],[1,0,0,1],[.4,1,0,1],[1,0,0,1],[1,0,0,1]],this.hiddenByReplacement=!1,this.evaluatedScale=[1,1,1],this.evaluatedColor=[],this.emissionHeightBasedParams=[],this.cameraCollisionOpacity=1,this.feature={type:\"Point\",id:t.id,geometry:[],properties:{height:py(t)}},this.aabb=this._getLocalBounds(),this.state=null;}_getLocalBounds(){if(!this.node.meshes)return new xu([1/0,1/0,1/0],[-1/0,-1/0,-1/0]);if(!this.aabb){let t=0;const e=new xu([1/0,1/0,1/0],[-1/0,-1/0,-1/0]);for(const r of this.node.meshes)this.node.lightMeshIndex!==t&&(r.transformedAabb=xu.applyTransformFast(r.aabb,this.node.matrix),e.encapsulate(r.transformedAabb)),t++;this.aabb=e;}return this.aabb}}class yy{constructor(t,e,r,n,i,a,s){this.id=r,this.layers=t,this.layerIds=this.layers.map((t=>t.fqid)),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.modelTraits|=ry.CoordinateSpaceTile,this.uploaded=!1,this.hasPattern=!1,n&&(this.modelTraits|=ry.HasMapboxMeshFeatures),i&&(this.modelTraits|=ry.HasMeshoptCompression),this.zoom=-1,this.terrainExaggeration=1,this.projection={name:\"mercator\"},this.replacementUpdateTime=0,this.elevationReadFromZ=255,this.brightness=a,this.dirty=!0,this.needsUpload=!1,this.nodesInfo=[];for(const t of e)this.nodesInfo.push(new my(t)),fy(t,s.featureIndexArray.length,s.grid),s.featureIndexArray.emplaceBack(this.nodesInfo.length-1,0,s.bucketLayerIDs.length-1,0);this.states={};}updateFootprints(t,e){for(const r of this.getNodesInfo()){const n=r.node;n.footprint&&e.push({footprint:n.footprint,id:t});}}update(t){const e=0!==Object.keys(t).length;if(e&&!this.stateDependentLayers.length)return;const r=e?this.stateDependentLayers:this.layers;if(!$(t,this.states))for(const e of r)this.evaluate(e,t);this.states=structuredClone(t);}populate(){console.log(\"populate 3D model bucket\");}uploadPending(){return !this.uploaded||this.needsUpload}upload(t){if(!this.needsUpload)return;const e=this.getNodesInfo();for(const r of e){const e=r.node;this.uploaded?this.updatePbrBuffer(e):sy(e,t,!0);}for(const t of e)oy(t.node);this.uploaded=!0,this.needsUpload=!1;}updatePbrBuffer(t){let e=!1;if(!t.meshes)return e;for(const r of t.meshes)r.pbrBuffer&&(r.pbrBuffer.updateData(r.featureArray),e=!0);return e}needsReEvaluation(t,e,r){const n=t.transform.projectionOptions,i=t.style.getBrightness(),a=this.brightness!==i;if(!this.uploaded||this.dirty||n.name!==this.projection.name||gy(r.paint.get(\"model-color\").value,a)||gy(r.paint.get(\"model-color-mix-intensity\").value,a)||gy(r.paint.get(\"model-roughness\").value,a)||gy(r.paint.get(\"model-emissive-strength\").value,a)||gy(r.paint.get(\"model-height-based-emissive-strength-multiplier\").value,a)){this.projection=n,this.brightness=i;const t=this.getNodesInfo();for(const e of t)e.state=null;return !0}return !1}evaluateScale(t,e){if(t.transform.zoom===this.zoom)return;this.zoom=t.transform.zoom;const r=this.getNodesInfo(),n=this.id.canonical;for(const t of r){const r=t.feature;t.evaluatedScale=e.paint.get(\"model-scale\").evaluate(r,{},n);}}evaluate(t,e){const r=this.getNodesInfo();for(const n of r){if(!n.node.meshes)continue;const r=n.feature,i=e&&e[r.id];if($(i,n.state))continue;n.state=structuredClone(i);const a=n.node.meshes&&n.node.meshes[0].featureData,s=n.evaluatedColor[2],o=n.evaluatedRMEA[2],l=this.id.canonical;if(n.hasTranslucentParts=!1,a){for(let e=0;e<dy.length;e++){const a=dy[e];a.length&&(r.properties.part=a);const s=t.paint.get(\"model-color\").evaluate(r,i,l).toRenderColor(null),o=t.paint.get(\"model-color-mix-intensity\").evaluate(r,i,l);n.evaluatedColor[e]=[s.r,s.g,s.b,o],n.evaluatedRMEA[e][0]=t.paint.get(\"model-roughness\").evaluate(r,i,l),n.evaluatedRMEA[e][2]=t.paint.get(\"model-emissive-strength\").evaluate(r,i,l),n.evaluatedRMEA[e][3]=s.a,n.emissionHeightBasedParams[e]=t.paint.get(\"model-height-based-emissive-strength-multiplier\").evaluate(r,i,l),!n.hasTranslucentParts&&s.a<1&&(n.hasTranslucentParts=!0);}delete r.properties.part,vy(n,s!==n.evaluatedColor[2]||o!==n.evaluatedRMEA[2],this.modelTraits);}else n.evaluatedRMEA[0][2]=t.paint.get(\"model-emissive-strength\").evaluate(r,i,l);n.evaluatedScale=t.paint.get(\"model-scale\").evaluate(r,i,l),this.updatePbrBuffer(n.node)||(this.needsUpload=!0);}this.dirty=!1;}elevationUpdate(t,e,r,n){const i=t.findDEMTileFor(r);if(i&&(i.tileID.canonical!==this.terrainTile||e!==this.terrainExaggeration)){if(i.dem&&i.tileID.overscaledZ!==this.elevationReadFromZ){this.elevationReadFromZ=i.tileID.overscaledZ;const e=uy.create(t,r,i);if(!e)return;this.modelTraits&ry.HasMapboxMeshFeatures&&this.updateDEM(t,e,r,n);for(const t of this.getNodesInfo()){const r=t.node;if(!r.footprint||!r.footprint.vertices||!r.footprint.vertices.length)continue;const n=r.footprint.vertices;let i=e.getElevationAt(n[0].x,n[0].y,!0,!0);for(let t=1;t<n.length;t++)i=Math.min(i,e.getElevationAt(n[t].x,n[t].y,!0,!0));r.elevation=i;}}this.terrainTile=i.tileID.canonical,this.terrainExaggeration=e;}}updateDEM(t,e,r,n){let i=e._dem._modifiedForSources[n];if(void 0===i&&(e._dem._modifiedForSources[n]=[],i=e._dem._modifiedForSources[n]),i.includes(r.canonical))return;const a=e._dem.dim;i.push(r.canonical);let s=!1;for(const t of this.getNodesInfo()){const r=t.node;if(!r.footprint||!r.footprint.grid)continue;const n=r.footprint.grid,i=e.tileCoordToPixel(n.min.x,n.min.y),o=e.tileCoordToPixel(n.max.x,n.max.y),l=Math.min(Math.min(a-o.y,i.x),Math.min(i.y,a-o.x));if(l<0)continue;const u=Q(l,2,5);let c=Math.max(0,i.x-u),h=Math.max(0,i.y-u),p=Math.min(o.x+u,a-1),f=Math.min(o.y+u,a-1);for(let t=h;t<=f;++t)for(let e=c;e<=p;++e)hy[t*a+e]=255;let d=0,m=0;for(let t=0;t<n.cellsY;++t)for(let r=0;r<n.cellsX;++r){if(!n.cells[t*n.cellsX+r])continue;const i=e.tileCoordToPixel(n.min.x+r/n.xScale,n.min.y+t/n.yScale),s=e.tileCoordToPixel(n.min.x+(r+1)/n.xScale,n.min.y+(t+1)/n.yScale);for(let t=i.y;t<=Math.min(s.y+1,a-1);++t)for(let r=i.x;r<=Math.min(s.x+1,a-1);++r)255===hy[t*a+r]&&(hy[t*a+r]=0,d+=e.getElevationAtPixel(r,t),m++);}const y=d/m;c=Math.max(1,i.x-u),h=Math.max(1,i.y-u),p=Math.min(o.x+u,a-2),f=Math.min(o.y+u,a-2),s=!0;for(let t=h;t<=f;++t)for(let r=c;r<=p;++r)0===hy[t*a+r]&&(cy[t*a+r]=e._dem.set(r,t,y));for(let t=1;t<u;++t){c=Math.max(1,i.x-t),h=Math.max(1,i.y-t),p=Math.min(o.x+t,a-2),f=Math.min(o.y+t,a-2);for(let r=h;r<=f;++r)for(let n=c;n<=p;++n){const i=r*a+n;if(255===hy[i]){let s=0,o=0,l=-1,c=-1;for(let e=-1;e<=1;++e)for(let i=-1;i<=1;++i){const u=(r+e)*a+n+i;if(hy[u]>=t)continue;const h=cy[u],p=Math.abs(h);p>o&&(s=h,o=p,l=i,c=e);}if(o>.1){const a=1-(t+.5*Math.abs(l*c))/u;let o=e._dem.get(n,r)+s*a;const h=e._dem.get(n+l,r+c),p=e._dem.get(n-l,r-c,!0);(o-h)*(o-p)>0&&(o=(h+p)/2),cy[i]=e._dem.set(n,r,o),hy[i]=t;}}}}}s&&(e._demTile.needsDEMTextureUpload=!0,e._dem._timestamp=Dt.now());}getNodesInfo(){return this.nodesInfo}destroy(){const t=this.getNodesInfo();for(const e of t)oy(e.node),ly(e.node);}isEmpty(){return !this.nodesInfo.length}updateReplacement(t,e){if(e.updateTime===this.replacementUpdateTime)return;this.replacementUpdateTime=e.updateTime;const r=e.getReplacementRegionsForTile(t.toUnwrapped()),n=this.getNodesInfo();for(let t=0;t<this.nodesInfo.length;t++){const e=n[t].node;n[t].hiddenByReplacement=!!e.footprint&&!r.find((t=>t.footprint===e.footprint));}}getHeightAtTileCoord(t,e){const r=this.getNodesInfo(),n=[],i=[0,0,0],a=O.mat4.identity([]);for(let s=0;s<this.nodesInfo.length;s++){const o=r[s],l=o.node.meshes[0],u=l.transformedAabb;if(t<u.min[0]||e<u.min[1]||t>u.max[0]||e>u.max[1])continue;if(!0===o.node.hidden)return {height:1/0,maxHeight:o.feature.properties.height,hidden:!1,verticalScale:o.evaluatedScale[2]};O.mat4.invert(a,o.node.matrix),i[0]=t,i[1]=e,O.vec3.transformMat4(i,i,a);const c=(i[0]-l.aabb.min[0])/(l.aabb.max[0]-l.aabb.min[0])*ey|0,h=Math.min(63,(i[1]-l.aabb.min[1])/(l.aabb.max[1]-l.aabb.min[1])*ey|0)*ey+Math.min(63,c),p=l.heightmap[h];if(!(p<0&&o.node.footprint)){if(o.hiddenByReplacement)return;return {height:p,maxHeight:o.feature.properties.height,hidden:!1,verticalScale:o.evaluatedScale[2]}}if(o.node.footprint.grid.query(new q(t,e),new q(t,e),n),n.length>0)return {height:void 0,maxHeight:o.feature.properties.height,hidden:o.hiddenByReplacement,verticalScale:o.evaluatedScale[2]}}}}function gy(t,e){return !t.isLightConstant&&e}function xy(t,e,r,n,i,a,s,o){let l=(61440&e|(61440&e)>>4)>>8,u=(3840&e|(3840&e)>>4)>>4,c=240&e|(240&e)>>4;r[3]>0&&(l=ze(l,255*r[0],r[3]),u=ze(u,255*r[1],r[3]),c=ze(c,255*r[2],r[3]));const h=l<<8|u,p=c<<8|Math.floor(255*n[3]),f=function(t){const e=Q(t,0,2);return Math.min(Math.round(.5*e*255),255)}(n[2])<<8|15*n[0]<<4|15*n[1],d=Q(i[0],0,1),m=Q(i[1],0,1),y=Q(i[2],0,1),g=Q(i[3],0,1);let x,v,b,_;if(d!==m&&s!==a&&m!==d){const t=s-a;v=1/(t*(m-d)),b=-(a+t*d)/(t*(m-d));const e=Q(i[4],-1,1);_=Math.pow(10,e),x=255*y<<8|255*g;}else x=65535,v=0,b=1,_=1;if(t.emplaceBack(h,p,f,x,v,b,_),o){const t=o.length;o.clear();for(let e=0;e<t;e++)o.emplaceBack(h,p,f,x,v,b,_);}}function vy(t,e,r){const n=t.node;let i=0;const a=r&ry.HasMeshoptCompression;for(const r of n.meshes){if(n.lights&&n.lightMeshIndex===i)continue;if(!r.featureData)continue;r.featureArray=new Zs,r.featureArray.reserve(r.featureData.length);let s=e;for(const e of r.featureData){const i=a?65535&e:e>>16&65535,o=a?e>>16&65535:65535&e,l=(15&o)<8?15&o:0,u=t.evaluatedRMEA[l],c=t.evaluatedColor[l],h=t.emissionHeightBasedParams[l];let p;if(s&&2===l&&n.lights&&(p=new Zs,p.resize(10*n.lights.length)),xy(r.featureArray,i,c,u,h,r.aabb.min[2],r.aabb.max[2],p),p&&s){s=!1;const t=n.meshes[n.lightMeshIndex];t.featureArray=p,t.featureArray._trim();}}r.featureArray._trim(),i++;}}function by(t,e,r,n){const i=1<<t.z;e.lat=fl((n/Wr+t.y)/i),e.lng=pl((r/Wr+t.x)/i);}oa(yy,\"Tiled3dModelBucket\",{omit:[\"layers\"]}),oa(my,\"Tiled3dModelFeature\");const _y={circle:class extends ps{constructor(t,e,r,n){super(t,{layout:Kl||(Kl=new Ga({\"circle-sort-key\":new qa(Ya.layout_circle[\"circle-sort-key\"]),visibility:new ja(Ya.layout_circle.visibility)})),paint:Jl||(Jl=new Ga({\"circle-radius\":new qa(Ya.paint_circle[\"circle-radius\"]),\"circle-color\":new qa(Ya.paint_circle[\"circle-color\"]),\"circle-blur\":new qa(Ya.paint_circle[\"circle-blur\"]),\"circle-opacity\":new qa(Ya.paint_circle[\"circle-opacity\"]),\"circle-translate\":new ja(Ya.paint_circle[\"circle-translate\"]),\"circle-translate-anchor\":new ja(Ya.paint_circle[\"circle-translate-anchor\"]),\"circle-pitch-scale\":new ja(Ya.paint_circle[\"circle-pitch-scale\"]),\"circle-pitch-alignment\":new ja(Ya.paint_circle[\"circle-pitch-alignment\"]),\"circle-stroke-width\":new qa(Ya.paint_circle[\"circle-stroke-width\"]),\"circle-stroke-color\":new qa(Ya.paint_circle[\"circle-stroke-color\"]),\"circle-stroke-opacity\":new qa(Ya.paint_circle[\"circle-stroke-opacity\"]),\"circle-emissive-strength\":new ja(Ya.paint_circle[\"circle-emissive-strength\"]),\"circle-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"circle-stroke-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n);}createBucket(t){return new Bl(t)}queryRadius(t){const e=t;return Xl(\"circle-radius\",this,e)+Xl(\"circle-stroke-width\",this,e)+Zl(this.paint.get(\"circle-translate\"))}queryIntersectsFeature(t,e,r,n,i,a,s,o){const l=Wl(this.paint.get(\"circle-translate\"),this.paint.get(\"circle-translate-anchor\"),a.angle,t.pixelToTileUnitsFactor),u=this.paint.get(\"circle-radius\").evaluate(e,r)+this.paint.get(\"circle-stroke-width\").evaluate(e,r);return Yu(t,n,a,s,o,\"map\"===this.paint.get(\"circle-pitch-alignment\"),\"map\"===this.paint.get(\"circle-pitch-scale\"),l,u)}getProgramIds(){return [\"circle\"]}getDefaultProgramParams(t,e,r){const n=Gu(this);return {config:new Oo(this,{zoom:e,lut:r}),defines:n,overrideFog:!1}}},heatmap:class extends ps{createBucket(t){return new Ku(t)}constructor(t,e,r,n){super(t,{layout:Ju||(Ju=new Ga({visibility:new ja(Ya.layout_heatmap.visibility)})),paint:Qu||(Qu=new Ga({\"heatmap-radius\":new qa(Ya.paint_heatmap[\"heatmap-radius\"]),\"heatmap-weight\":new qa(Ya.paint_heatmap[\"heatmap-weight\"]),\"heatmap-intensity\":new ja(Ya.paint_heatmap[\"heatmap-intensity\"]),\"heatmap-color\":new $a(Ya.paint_heatmap[\"heatmap-color\"]),\"heatmap-opacity\":new ja(Ya.paint_heatmap[\"heatmap-opacity\"]),\"heatmap-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n),this._updateColorRamp();}_handleSpecialPaintPropertyUpdate(t){\"heatmap-color\"===t&&this._updateColorRamp();}_updateColorRamp(){this.colorRamp=lc({expression:this._transitionablePaint._values[\"heatmap-color\"].value.expression,evaluationKey:\"heatmapDensity\",image:this.colorRamp}),this.colorRampTexture=null;}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null);}queryRadius(t){return Xl(\"heatmap-radius\",this,t)}queryIntersectsFeature(t,e,r,n,i,a,s,o){const l=this.paint.get(\"heatmap-radius\").evaluate(e,r);return Yu(t,n,a,s,o,!0,!0,new q(0,0),l)}hasOffscreenPass(){return 0!==this.paint.get(\"heatmap-opacity\")&&\"none\"!==this.visibility}getProgramIds(){return [\"heatmap\",\"heatmapTexture\"]}getDefaultProgramParams(t,e,r){return \"heatmap\"===t?{config:new Oo(this,{zoom:e,lut:r}),overrideFog:!1}:{}}},hillshade:class extends ps{constructor(t,e,r,n){super(t,{layout:tc||(tc=new Ga({visibility:new ja(Ya.layout_hillshade.visibility)})),paint:ec||(ec=new Ga({\"hillshade-illumination-direction\":new ja(Ya.paint_hillshade[\"hillshade-illumination-direction\"]),\"hillshade-illumination-anchor\":new ja(Ya.paint_hillshade[\"hillshade-illumination-anchor\"]),\"hillshade-exaggeration\":new ja(Ya.paint_hillshade[\"hillshade-exaggeration\"]),\"hillshade-shadow-color\":new ja(Ya.paint_hillshade[\"hillshade-shadow-color\"]),\"hillshade-highlight-color\":new ja(Ya.paint_hillshade[\"hillshade-highlight-color\"]),\"hillshade-accent-color\":new ja(Ya.paint_hillshade[\"hillshade-accent-color\"]),\"hillshade-emissive-strength\":new ja(Ya.paint_hillshade[\"hillshade-emissive-strength\"]),\"hillshade-shadow-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"hillshade-highlight-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"hillshade-accent-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n);}shouldRedrape(){return this.hasOffscreenPass()&&\"viewport\"===this.paint.get(\"hillshade-illumination-anchor\")}hasOffscreenPass(){return 0!==this.paint.get(\"hillshade-exaggeration\")&&\"none\"!==this.visibility}getProgramIds(){return [\"hillshade\",\"hillshadePrepare\"]}getDefaultProgramParams(t,e,r){return {overrideFog:!1}}},fill:class extends ps{constructor(t,e,r,n){super(t,{layout:jc||(jc=new Ga({\"fill-sort-key\":new qa(Ya.layout_fill[\"fill-sort-key\"]),visibility:new ja(Ya.layout_fill.visibility),\"fill-elevation-reference\":new ja(Ya.layout_fill[\"fill-elevation-reference\"])})),paint:qc||(qc=new Ga({\"fill-antialias\":new ja(Ya.paint_fill[\"fill-antialias\"]),\"fill-opacity\":new qa(Ya.paint_fill[\"fill-opacity\"]),\"fill-color\":new qa(Ya.paint_fill[\"fill-color\"]),\"fill-outline-color\":new qa(Ya.paint_fill[\"fill-outline-color\"]),\"fill-translate\":new ja(Ya.paint_fill[\"fill-translate\"]),\"fill-translate-anchor\":new ja(Ya.paint_fill[\"fill-translate-anchor\"]),\"fill-pattern\":new qa(Ya.paint_fill[\"fill-pattern\"]),\"fill-emissive-strength\":new ja(Ya.paint_fill[\"fill-emissive-strength\"]),\"fill-z-offset\":new qa(Ya.paint_fill[\"fill-z-offset\"]),\"fill-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"fill-outline-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n);}getProgramIds(){const t=this.paint.get(\"fill-pattern\"),e=t&&t.constantOr(1),r=[e?\"fillPattern\":\"fill\"];return this.paint.get(\"fill-antialias\")&&r.push(e&&!this.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\"),r}getDefaultProgramParams(t,e,r){return {config:new Oo(this,{zoom:e,lut:r}),overrideFog:!1}}recalculate(t,e){super.recalculate(t,e);const r=this.paint._values[\"fill-outline-color\"];\"constant\"===r.value.kind&&void 0===r.value.value&&(this.paint._values[\"fill-outline-color\"]=this.paint._values[\"fill-color\"]);}createBucket(t){return new Uc(t)}queryRadius(){return Zl(this.paint.get(\"fill-translate\"))}queryIntersectsFeature(t,e,r,n,i,a){return !t.queryGeometry.isAboveHorizon&&Dl(Hl(t.tilespaceGeometry,this.paint.get(\"fill-translate\"),this.paint.get(\"fill-translate-anchor\"),a.angle,t.pixelToTileUnitsFactor),n)}isTileClipped(){return !0}is3D(){return 0!==this.paint.get(\"fill-z-offset\").constantOr(1)}},\"fill-extrusion\":class extends ps{constructor(t,e,r,n){super(t,{layout:lp||(lp=new Ga({visibility:new ja(Ya[\"layout_fill-extrusion\"].visibility),\"fill-extrusion-edge-radius\":new ja(Ya[\"layout_fill-extrusion\"][\"fill-extrusion-edge-radius\"])})),paint:up||(up=new Ga({\"fill-extrusion-opacity\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\"fill-extrusion-color\":new qa(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\"fill-extrusion-translate\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\"fill-extrusion-translate-anchor\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\"fill-extrusion-pattern\":new qa(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\"fill-extrusion-height\":new qa(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\"fill-extrusion-base\":new qa(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\"fill-extrusion-height-alignment\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-height-alignment\"]),\"fill-extrusion-base-alignment\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-base-alignment\"]),\"fill-extrusion-vertical-gradient\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"]),\"fill-extrusion-ambient-occlusion-intensity\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-ambient-occlusion-intensity\"]),\"fill-extrusion-ambient-occlusion-radius\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-ambient-occlusion-radius\"]),\"fill-extrusion-ambient-occlusion-wall-radius\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-ambient-occlusion-wall-radius\"]),\"fill-extrusion-ambient-occlusion-ground-radius\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-ambient-occlusion-ground-radius\"]),\"fill-extrusion-ambient-occlusion-ground-attenuation\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-ambient-occlusion-ground-attenuation\"]),\"fill-extrusion-flood-light-color\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-flood-light-color\"]),\"fill-extrusion-flood-light-intensity\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-flood-light-intensity\"]),\"fill-extrusion-flood-light-wall-radius\":new qa(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-flood-light-wall-radius\"]),\"fill-extrusion-flood-light-ground-radius\":new qa(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-flood-light-ground-radius\"]),\"fill-extrusion-flood-light-ground-attenuation\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-flood-light-ground-attenuation\"]),\"fill-extrusion-vertical-scale\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-scale\"]),\"fill-extrusion-rounded-roof\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-rounded-roof\"]),\"fill-extrusion-cutoff-fade-range\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-cutoff-fade-range\"]),\"fill-extrusion-emissive-strength\":new qa(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-emissive-strength\"]),\"fill-extrusion-line-width\":new qa(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-line-width\"]),\"fill-extrusion-cast-shadows\":new ja(Ya[\"paint_fill-extrusion\"][\"fill-extrusion-cast-shadows\"]),\"fill-extrusion-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"fill-extrusion-flood-light-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n),this._stats={numRenderedVerticesInShadowPass:0,numRenderedVerticesInTransparentPass:0};}createBucket(t){return new Kh(t)}queryRadius(){return Zl(this.paint.get(\"fill-extrusion-translate\"))}is3D(){return !0}hasShadowPass(){return this.paint.get(\"fill-extrusion-cast-shadows\")}cutoffRange(){return this.paint.get(\"fill-extrusion-cutoff-fade-range\")}canCastShadows(){return !0}getProgramIds(){return [this.paint.get(\"fill-extrusion-pattern\").constantOr(1)?\"fillExtrusionPattern\":\"fillExtrusion\"]}queryIntersectsFeature(t,e,r,n,i,a,s,o,l){const u=Wl(this.paint.get(\"fill-extrusion-translate\"),this.paint.get(\"fill-extrusion-translate-anchor\"),a.angle,t.pixelToTileUnitsFactor),c=this.paint.get(\"fill-extrusion-height\").evaluate(e,r),h=this.paint.get(\"fill-extrusion-base\").evaluate(e,r),p=[0,0],f=o&&a.elevation,d=a.elevation?a.elevation.exaggeration():1,m=t.tile.getBucket(this);if(f&&m instanceof Kh){const t=m.centroidVertexArray,e=l+1;e<t.length&&(p[0]=t.geta_centroid_pos0(e),p[1]=t.geta_centroid_pos1(e));}if(0===p[0]&&1===p[1])return !1;\"globe\"===a.projection.name&&(n=sp([n],[new q(0,0),new q(Wr,Wr)],t.tileID.canonical).map((t=>t.polygon)).flat());const y=f?o:null,[g,x]=function(t,e,r,n,i,a,s,o,l,u,c){return \"globe\"===t.projection.name?function(t,e,r,n,i,a,s,o,l,u,c){const h=[],p=[],f=t.projection.upVectorScale(c,t.center.lat,t.worldSize).metersToTile,d=[0,0,0,1],m=[0,0,0,1],y=(t,e,r,n)=>{t[0]=e,t[1]=r,t[2]=n,t[3]=1;},g=ap();r>0&&(r+=g),n+=g;for(const g of e){const e=[],x=[];for(const h of g){const p=h.x+i.x,g=h.y+i.y,v=t.projection.projectTilePoint(p,g,c),b=t.projection.upVector(c,h.x,h.y);let _=r,w=n;if(s){const t=pp(p,g,r,n,s,o,l,u);_+=t.base,w+=t.top;}0!==r?y(d,v.x+b[0]*f*_,v.y+b[1]*f*_,v.z+b[2]*f*_):y(d,v.x,v.y,v.z),y(m,v.x+b[0]*f*w,v.y+b[1]*f*w,v.z+b[2]*f*w),O.vec3.transformMat4(d,d,a),O.vec3.transformMat4(m,m,a),e.push(new dh(d[0],d[1],d[2])),x.push(new dh(m[0],m[1],m[2]));}h.push(e),p.push(x);}return [h,p]}(t,e,r,n,i,a,s,o,l,u,c):s?function(t,e,r,n,i,a,s,o,l){const u=[],c=[],h=[0,0,0,1];for(const p of t){const t=[],f=[];for(const u of p){const c=u.x+n.x,p=u.y+n.y,d=pp(c,p,e,r,a,s,o,l);h[0]=c,h[1]=p,h[2]=d.base,h[3]=1,O.vec4.transformMat4(h,h,i),h[3]=Math.max(h[3],1e-5);const m=new dh(h[0]/h[3],h[1]/h[3],h[2]/h[3]);h[0]=c,h[1]=p,h[2]=d.top,h[3]=1,O.vec4.transformMat4(h,h,i),h[3]=Math.max(h[3],1e-5);const y=new dh(h[0]/h[3],h[1]/h[3],h[2]/h[3]);t.push(m),f.push(y);}u.push(t),c.push(f);}return [u,c]}(e,r,n,i,a,s,o,l,u):function(t,e,r,n,i){const a=[],s=[],o=i[8]*e,l=i[9]*e,u=i[10]*e,c=i[11]*e,h=i[8]*r,p=i[9]*r,f=i[10]*r,d=i[11]*r;for(const e of t){const t=[],r=[];for(const a of e){const e=a.x+n.x,s=a.y+n.y,m=i[0]*e+i[4]*s+i[12],y=i[1]*e+i[5]*s+i[13],g=i[2]*e+i[6]*s+i[14],x=i[3]*e+i[7]*s+i[15],v=m+o,b=y+l,_=g+u,w=Math.max(x+c,1e-5),M=m+h,A=y+p,S=g+f,I=Math.max(x+d,1e-5);t.push(new dh(v/w,b/w,_/w)),r.push(new dh(M/I,A/I,S/I));}a.push(t),s.push(r);}return [a,s]}(e,r,n,i,a)}(a,n,h,c,u,s,y,p,d,a.center.lat,t.tileID.canonical),v=t.queryGeometry;return function(t,e,r){let n=1/0;Dl(r,e)&&(n=hp(r,e[0]));for(let i=0;i<e.length;i++){const a=e[i],s=t[i];for(let t=0;t<a.length-1;t++){const e=a[t],i=[e,a[t+1],s[t+1],s[t],e];Vl(r,i)&&(n=Math.min(n,hp(r,i)));}}return n!==1/0&&n}(g,x,v.isPointQuery()?v.screenBounds:v.screenGeometry)}},line:class extends ps{constructor(t,e,r,n){const i=Dp();super(t,i,e,r,n),i.layout&&(this.layout=new Ua(i.layout)),this.gradientVersion=0;}_handleSpecialPaintPropertyUpdate(t){if(\"line-gradient\"===t){const t=this._transitionablePaint._values[\"line-gradient\"].value.expression;this.stepInterpolant=t._styleExpression&&t._styleExpression.expression instanceof Nn,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER;}}gradientExpression(){return this._transitionablePaint._values[\"line-gradient\"].value.expression}widthExpression(){return this._transitionablePaint._values[\"line-width\"].value.expression}recalculate(t,e){super.recalculate(t,e),this.paint._values[\"line-floorwidth\"]=(()=>{if(Rp)return Rp;const t=Dp();return Rp=new Lp(t.paint.properties[\"line-width\"].specification),Rp.useIntegerZoom=!0,Rp})().possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value,t);}createBucket(t){return new Ap(t)}getProgramIds(){return [this.paint.get(\"line-pattern\").constantOr(1)?\"linePattern\":\"line\"]}getDefaultProgramParams(t,e,r){const n=Bp(this);return {config:new Oo(this,{zoom:e,lut:r}),defines:n,overrideFog:!1}}queryRadius(t){const e=t,r=Fp(Xl(\"line-width\",this,e),Xl(\"line-gap-width\",this,e)),n=Xl(\"line-offset\",this,e);return r/2+Math.abs(n)+Zl(this.paint.get(\"line-translate\"))}queryIntersectsFeature(t,e,r,n,i,a){if(t.queryGeometry.isAboveHorizon)return !1;const s=Hl(t.tilespaceGeometry,this.paint.get(\"line-translate\"),this.paint.get(\"line-translate-anchor\"),a.angle,t.pixelToTileUnitsFactor),o=t.pixelToTileUnitsFactor/2*Fp(this.paint.get(\"line-width\").evaluate(e,r),this.paint.get(\"line-gap-width\").evaluate(e,r)),l=this.paint.get(\"line-offset\").evaluate(e,r);return l&&(n=function(t,e){const r=[],n=new q(0,0);for(let i=0;i<t.length;i++){const a=t[i],s=[];for(let t=0;t<a.length;t++){const r=a[t],i=a[t+1],o=0===t?n:r.sub(a[t-1])._unit()._perp(),l=t===a.length-1?n:i.sub(r)._unit()._perp(),u=o._add(l)._unit();u._mult(1/(u.x*l.x+u.y*l.y)),s.push(u._mult(e)._add(r));}r.push(s);}return r}(n,l*t.pixelToTileUnitsFactor)),function(t,e,r){for(let n=0;n<e.length;n++){const i=e[n];if(t.length>=3)for(let e=0;e<i.length;e++)if(jl(t,i[e]))return !0;if(Ll(t,i,r))return !0}return !1}(s,n,o)}isTileClipped(){return !0}isDraped(t){const e=this.layout.get(\"line-z-offset\"),r=e.isConstant()&&!e.constantOr(0),n=this.layout.get(\"line-elevation-reference\");return !(\"sea\"===n||\"ground\"===n)&&(r||\"none\"!==n)}},symbol:sm,background:class extends ps{constructor(t,e,r,n){super(t,{layout:om||(om=new Ga({visibility:new ja(Ya.layout_background.visibility)})),paint:lm||(lm=new Ga({\"background-pitch-alignment\":new ja(Ya.paint_background[\"background-pitch-alignment\"]),\"background-color\":new ja(Ya.paint_background[\"background-color\"]),\"background-pattern\":new ja(Ya.paint_background[\"background-pattern\"]),\"background-opacity\":new ja(Ya.paint_background[\"background-opacity\"]),\"background-emissive-strength\":new ja(Ya.paint_background[\"background-emissive-strength\"]),\"background-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n);}getProgramIds(){return [this.paint.get(\"background-pattern\")?\"backgroundPattern\":\"background\"]}getDefaultProgramParams(t,e,r){return {overrideFog:!1}}is3D(){return \"viewport\"===this.paint.get(\"background-pitch-alignment\")}},raster:_m,\"raster-particle\":Pm,sky:class extends ps{constructor(t,e,r,n){super(t,{layout:Am||(Am=new Ga({visibility:new ja(Ya.layout_sky.visibility)})),paint:Sm||(Sm=new Ga({\"sky-type\":new ja(Ya.paint_sky[\"sky-type\"]),\"sky-atmosphere-sun\":new ja(Ya.paint_sky[\"sky-atmosphere-sun\"]),\"sky-atmosphere-sun-intensity\":new ja(Ya.paint_sky[\"sky-atmosphere-sun-intensity\"]),\"sky-gradient-center\":new ja(Ya.paint_sky[\"sky-gradient-center\"]),\"sky-gradient-radius\":new ja(Ya.paint_sky[\"sky-gradient-radius\"]),\"sky-gradient\":new $a(Ya.paint_sky[\"sky-gradient\"]),\"sky-atmosphere-halo-color\":new ja(Ya.paint_sky[\"sky-atmosphere-halo-color\"]),\"sky-atmosphere-color\":new ja(Ya.paint_sky[\"sky-atmosphere-color\"]),\"sky-opacity\":new ja(Ya.paint_sky[\"sky-opacity\"]),\"sky-gradient-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"sky-atmosphere-halo-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"}),\"sky-atmosphere-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n),this._updateColorRamp();}_handleSpecialPaintPropertyUpdate(t){\"sky-gradient\"===t?this._updateColorRamp():\"sky-atmosphere-sun\"!==t&&\"sky-atmosphere-halo-color\"!==t&&\"sky-atmosphere-color\"!==t&&\"sky-atmosphere-sun-intensity\"!==t||(this._skyboxInvalidated=!0);}_updateColorRamp(){this.colorRamp=lc({expression:this._transitionablePaint._values[\"sky-gradient\"].value.expression,evaluationKey:\"skyRadialProgress\"}),this.colorRampTexture&&(this.colorRampTexture.destroy(),this.colorRampTexture=null);}needsSkyboxCapture(t){if(this._skyboxInvalidated||!this.skyboxTexture||!this.skyboxGeometry)return !0;if(!this.paint.get(\"sky-atmosphere-sun\")){const e=t.style.light.properties.get(\"position\");return this._lightPosition.azimuthal!==e.azimuthal||this._lightPosition.polar!==e.polar}return !1}getCenter(t,e){if(\"atmosphere\"===this.paint.get(\"sky-type\")){const r=this.paint.get(\"sky-atmosphere-sun\"),n=!r,i=t.style.light,a=i.properties.get(\"position\");return n&&\"viewport\"===i.properties.get(\"anchor\")&&ft(\"The sun direction is attached to a light with viewport anchor, lighting may behave unexpectedly.\"),n?Em(a.azimuthal,90-a.polar,e):Em(r[0],90-r[1],e)}const r=this.paint.get(\"sky-gradient-center\");return Em(r[0],90-r[1],e)}isSky(){return !0}markSkyboxValid(t){this._skyboxInvalidated=!1,this._lightPosition=t.style.light.properties.get(\"position\");}hasOffscreenPass(){return !0}getProgramIds(){const t=this.paint.get(\"sky-type\");return \"atmosphere\"===t?[\"skyboxCapture\",\"skybox\"]:\"gradient\"===t?[\"skyboxGradient\"]:null}},slot:class extends ps{constructor(t,e,r,n){super(t,{paint:Im||(Im=new Ga({}))},e,null);}},model:class extends ps{constructor(t,e,r,n){super(t,{layout:Qm||(Qm=new Ga({visibility:new ja(Ya.layout_model.visibility),\"model-id\":new qa(Ya.layout_model[\"model-id\"])})),paint:ty||(ty=new Ga({\"model-opacity\":new qa(Ya.paint_model[\"model-opacity\"]),\"model-rotation\":new qa(Ya.paint_model[\"model-rotation\"]),\"model-scale\":new qa(Ya.paint_model[\"model-scale\"]),\"model-translation\":new qa(Ya.paint_model[\"model-translation\"]),\"model-color\":new qa(Ya.paint_model[\"model-color\"]),\"model-color-mix-intensity\":new qa(Ya.paint_model[\"model-color-mix-intensity\"]),\"model-type\":new ja(Ya.paint_model[\"model-type\"]),\"model-cast-shadows\":new ja(Ya.paint_model[\"model-cast-shadows\"]),\"model-receive-shadows\":new ja(Ya.paint_model[\"model-receive-shadows\"]),\"model-ambient-occlusion-intensity\":new ja(Ya.paint_model[\"model-ambient-occlusion-intensity\"]),\"model-emissive-strength\":new qa(Ya.paint_model[\"model-emissive-strength\"]),\"model-roughness\":new qa(Ya.paint_model[\"model-roughness\"]),\"model-height-based-emissive-strength-multiplier\":new qa(Ya.paint_model[\"model-height-based-emissive-strength-multiplier\"]),\"model-cutoff-fade-range\":new ja(Ya.paint_model[\"model-cutoff-fade-range\"]),\"model-front-cutoff\":new ja(Ya.paint_model[\"model-front-cutoff\"]),\"model-color-use-theme\":new qa({type:\"string\",default:\"default\",\"property-type\":\"data-driven\"})}))},e,r,n),this._stats={numRenderedVerticesInShadowPass:0,numRenderedVerticesInTransparentPass:0};}createBucket(t){return new Jm(t)}getProgramIds(){return [\"model\"]}is3D(){return !0}hasShadowPass(){return !0}canCastShadows(){return !0}hasLightBeamPass(){return !0}cutoffRange(){return this.paint.get(\"model-cutoff-fade-range\")}queryRadius(t){return t instanceof yy?Wr-1:0}queryIntersectsFeature(t,e,r,n,i,a){if(!this.modelManager)return !1;const s=this.modelManager,o=t.tile.getBucket(this);if(!(o&&o instanceof Jm))return !1;for(const r in o.instancesPerModel){const n=o.instancesPerModel[r],i=void 0!==e.id?e.id:e.properties&&e.properties.hasOwnProperty(\"id\")?e.properties.id:void 0;if(n.idToFeaturesIndex.hasOwnProperty(i)){const e=n.features[n.idToFeaturesIndex[i]],l=s.getModel(r,this.scope);if(!l)return !1;let u=O.mat4.create();const c=new il(0,0),h=o.canonical;let p=Number.MAX_VALUE;for(let r=0;r<e.instancedDataCount;++r){const i=16*(e.instancedDataOffset+r),s=n.instancedDataArray.float32,o=[s[i+4],s[i+5],s[i+6]];by(h,c,s[i],0|s[i+1]),ny(u,l,a,c,e.rotation,e.scale,o,!1,!1,!1),\"globe\"===a.projection.name&&(u=Fm(u,a));const f=O.mat4.multiply([],a.projMatrix,u),d=t.queryGeometry,m=Om(d.isPointQuery()?d.screenBounds:d.screenGeometry,a,f,l.aabb);null!=m&&(p=Math.min(m,p));}return p!==Number.MAX_VALUE&&p}}return !1}_handleOverridablePaintPropertyUpdate(t,e,r){return !(!this.layout||e.isDataDriven()||r.isDataDriven()||\"model-color\"!==t&&\"model-color-mix-intensity\"!==t&&\"model-rotation\"!==t&&\"model-scale\"!==t&&\"model-translation\"!==t&&\"model-emissive-strength\"!==t)}_isPropertyZoomDependent(t){const e=this._transitionablePaint._values[t];return null!=e&&null!=e.value&&null!=e.value.expression&&e.value.expression instanceof Ji}isZoomDependent(){return this._isPropertyZoomDependent(\"model-scale\")||this._isPropertyZoomDependent(\"model-rotation\")||this._isPropertyZoomDependent(\"model-translation\")}},clip:class extends ps{constructor(t,e,r,n){super(t,{layout:$c||($c=new Ga({\"clip-layer-types\":new ja(Ya.layout_clip[\"clip-layer-types\"]),\"clip-layer-scope\":new ja(Ya.layout_clip[\"clip-layer-scope\"])})),paint:Gc||(Gc=new Ga({}))},e,r,n);}recalculate(t,e){super.recalculate(t,e);}createBucket(t){return new Zc(t)}isTileClipped(){return !0}is3D(){return !0}}};class wy{constructor(t){this._callback=t,this._triggered=!1,\"undefined\"!=typeof MessageChannel&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._callback();});}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((()=>{this._triggered=!1,this._callback();}),0));}remove(){this._channel=void 0,this._callback=()=>{};}}class My{constructor(){this.tasks={},this.taskQueue=[],ot([\"process\"],this),this.invoker=new wy(this.process),this.nextId=0;}add(t,e){const r=this.nextId++,n=function({type:t,isSymbolTile:e,zoom:r}){return r=r||0,\"message\"===t?0:\"maybePrepare\"!==t||e?\"parseTile\"!==t||e?\"parseTile\"===t&&e?300-r:\"maybePrepare\"===t&&e?400-r:500:200-r:100-r}(e);if(0===n){try{t();}finally{}return null}return this.tasks[r]={fn:t,metadata:e,priority:n,id:r},this.taskQueue.push(r),this.invoker.trigger(),{cancel:()=>{delete this.tasks[r];}}}process(){try{if(this.taskQueue=this.taskQueue.filter((t=>!!this.tasks[t])),!this.taskQueue.length)return;const t=this.pick();if(null===t)return;const e=this.tasks[t];if(delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),!e)return;e.fn();}finally{}}pick(){let t=null,e=1/0;for(let r=0;r<this.taskQueue.length;r++){const n=this.tasks[this.taskQueue[r]];n.priority<e&&(e=n.priority,t=r);}if(null===t)return null;const r=this.taskQueue[t];return this.taskQueue.splice(t,1),r}remove(){this.invoker.remove();}}class Ay{constructor(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.cancelCallbacks={},ot([\"receive\"],this),this.target.addEventListener(\"message\",this.receive,!1),this.scheduler=new My;}send(t,e,r,n,i=!1,a){const s=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(r.metadata=a,this.callbacks[s]=r);const o=new Set;return this.target.postMessage({id:s,type:t,hasCallback:!!r,targetMapId:n,mustQueue:i,sourceMapId:this.mapId,data:ca(e,o)},o),{cancel:()=>{r&&delete this.callbacks[s],this.target.postMessage({id:s,type:\"<cancel>\",targetMapId:n,sourceMapId:this.mapId});}}}receive(t){const e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(\"<cancel>\"===e.type){const t=this.cancelCallbacks[r];delete this.cancelCallbacks[r],t&&t.cancel();}else if(e.mustQueue||gt()){const t=this.callbacks[r],n=this.scheduler.add((()=>this.processTask(r,e)),t&&t.metadata||{type:\"message\"});n&&(this.cancelCallbacks[r]=n);}else this.processTask(r,e);}processTask(t,e){if(delete this.cancelCallbacks[t],\"<response>\"===e.type){const r=this.callbacks[t];delete this.callbacks[t],r&&(e.error?r(ha(e.error)):r(null,ha(e.data)));}else {const r=new Set,n=e.hasCallback?(e,n)=>{this.target.postMessage({id:t,type:\"<response>\",sourceMapId:this.mapId,error:e?ca(e):null,data:ca(n,r)},r);}:()=>{},i=ha(e.data);if(this.parent[e.type])this.parent[e.type](e.sourceMapId,i,n);else if(this.parent.getWorkerSource){const t=e.type.split(\".\");this.parent.getWorkerSource(e.sourceMapId,t[0],i.source,i.scope)[t[1]](i,n);}else n(new Error(`Could not find function ${e.type}`));}}remove(){this.scheduler.remove(),this.target.removeEventListener(\"message\",this.receive,!1);}}var Sy={workerUrl:\"\",workerClass:null,workerParams:void 0};const Iy=\"mapboxgl_preloaded_worker_pool\";class Py{constructor(){this.active={};}acquire(t,e=Py.workerCount){if(!this.workers)for(this.workers=[];this.workers.length<e;)this.workers.push(null!=Sy.workerClass?new Sy.workerClass:new self.Worker(Sy.workerUrl,Sy.workerParams));return this.active[t]=!0,this.workers.slice()}release(t){delete this.active[t],this.workers&&0===this.numActive()&&(this.workers.forEach((t=>{t.terminate();})),this.workers=null);}isPreloaded(){return !!this.active[Iy]}numActive(){return Object.keys(this.active).length}}Py.workerCount=2;class zy{constructor(t,e,r=\"Worker\",n=Py.workerCount){this.workerPool=t,this.actors=[],this.currentActor=0,this.id=at();const i=this.workerPool.acquire(this.id,n);for(let t=0;t<i.length;t++){const n=new zy.Actor(i[t],e,this.id);n.name=`${r} ${t}`,this.actors.push(n);}this.ready=!1,this.broadcast(\"checkIfReady\",null,(()=>{this.ready=!0;}));}broadcast(t,e,r){rt(this.actors,((r,n)=>{r.send(t,e,n);}),r=r||function(){});}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach((t=>{t.remove();})),this.actors=[],this.workerPool.release(this.id);}}let Ey,ky;function Ty(){return Ey||(Ey=new Py),Ey}zy.Actor=Ay;const By=new Ie(0,0,0);var Vy=(t=>(t[t.PATH_RULE_UNSPECIFIED=0]=\"PATH_RULE_UNSPECIFIED\",t[t.PATH_RULE_NON_ZERO=1]=\"PATH_RULE_NON_ZERO\",t[t.PATH_RULE_EVEN_ODD=2]=\"PATH_RULE_EVEN_ODD\",t))(Vy||{}),Cy=(t=>(t[t.LINE_CAP_UNSPECIFIED=0]=\"LINE_CAP_UNSPECIFIED\",t[t.LINE_CAP_BUTT=1]=\"LINE_CAP_BUTT\",t[t.LINE_CAP_ROUND=2]=\"LINE_CAP_ROUND\",t[t.LINE_CAP_SQUARE=3]=\"LINE_CAP_SQUARE\",t))(Cy||{}),Dy=(t=>(t[t.LINE_JOIN_UNSPECIFIED=0]=\"LINE_JOIN_UNSPECIFIED\",t[t.LINE_JOIN_MITER=1]=\"LINE_JOIN_MITER\",t[t.LINE_JOIN_MITER_CLIP=2]=\"LINE_JOIN_MITER_CLIP\",t[t.LINE_JOIN_ROUND=3]=\"LINE_JOIN_ROUND\",t[t.LINE_JOIN_BEVEL=4]=\"LINE_JOIN_BEVEL\",t))(Dy||{}),Ly=(t=>(t[t.PAINT_ORDER_UNSPECIFIED=0]=\"PAINT_ORDER_UNSPECIFIED\",t[t.PAINT_ORDER_FILL_AND_STROKE=1]=\"PAINT_ORDER_FILL_AND_STROKE\",t[t.PAINT_ORDER_STROKE_AND_FILL=2]=\"PAINT_ORDER_STROKE_AND_FILL\",t))(Ly||{}),Ry=(t=>(t[t.PATH_COMMAND_UNSPECIFIED=0]=\"PATH_COMMAND_UNSPECIFIED\",t[t.PATH_COMMAND_MOVE=1]=\"PATH_COMMAND_MOVE\",t[t.PATH_COMMAND_LINE=2]=\"PATH_COMMAND_LINE\",t[t.PATH_COMMAND_QUAD=3]=\"PATH_COMMAND_QUAD\",t[t.PATH_COMMAND_CUBIC=4]=\"PATH_COMMAND_CUBIC\",t[t.PATH_COMMAND_CLOSE=5]=\"PATH_COMMAND_CLOSE\",t))(Ry||{}),Fy=(t=>(t[t.MASK_TYPE_UNSPECIFIED=0]=\"MASK_TYPE_UNSPECIFIED\",t[t.MASK_TYPE_LUMINANCE=1]=\"MASK_TYPE_LUMINANCE\",t[t.MASK_TYPE_ALPHA=2]=\"MASK_TYPE_ALPHA\",t))(Fy||{});function Oy(t,e,r){1===t&&e.icons.push(function(t,e){return function(t){if(t.usvg_tree.height||(t.usvg_tree.height=t.usvg_tree.width),!t.metadata)return t;const{metadata:e}=t;if(e.content_area){const{content_area:r}=e;null==r.top&&(r.top=r.left),null==r.width&&(r.width=t.usvg_tree.width),null==r.height&&(r.height=r.width);}return e.stretch_x&&e.stretch_x.length&&Ny(e,\"x\"),e.stretch_y&&e.stretch_y.length&&Ny(e,\"y\"),t}(t.readFields(Uy,{name:void 0},e))}(r,r.readVarint()+r.pos));}function Ny(t,e){const r=[],n=t[`stretch_${e}`];let i=null;for(let t=0;t<n.length;t++)null===i?i=0===r.length?n[0]:r[r.length-1][1]+n[t]:(r.push([i,i+n[t]]),i=null);t[`stretch_${e}_areas`]=r;}function Uy(t,e,r){1===t?e.name=r.readString():2===t?e.metadata=function(t,e){return t.readFields(jy,{stretch_x:null,stretch_y:null,stretch_x_areas:null,stretch_y_areas:null,variables:[]},e)}(r,r.readVarint()+r.pos):3===t&&(e.usvg_tree=function(t,e){return t.readFields(Gy,{width:20,children:[],linear_gradients:[],radial_gradients:[],clip_paths:[],masks:[]},e)}(r,r.readVarint()+r.pos),e.data=\"usvg_tree\");}function jy(t,e,r){1===t?e.stretch_x=r.readPackedVarint():2===t?e.stretch_y=r.readPackedVarint():3===t?e.content_area=function(t,e){return t.readFields(qy,{left:0},e)}(r,r.readVarint()+r.pos):4===t&&e.variables.push(function(t,e){return t.readFields($y,{name:void 0},e)}(r,r.readVarint()+r.pos));}function qy(t,e,r){1===t?e.left=r.readVarint():2===t?e.width=r.readVarint():3===t?e.top=r.readVarint():4===t&&(e.height=r.readVarint());}function $y(t,e,r){1===t?e.name=r.readString():2===t&&(e.rgb_color=Qy(r.readVarint()),e.value=\"rgb_color\");}function Gy(t,e,r){1===t?e.width=e.height=r.readVarint():2===t?e.height=r.readVarint():3===t?e.children.push(Yy(r,r.readVarint()+r.pos)):4===t?e.linear_gradients.push(function(t,e){return t.readFields(eg,{spread_method:1,stops:[],x1:0,y1:0,x2:1,y2:0},e)}(r,r.readVarint()+r.pos)):5===t?e.radial_gradients.push(function(t,e){return t.readFields(ig,{spread_method:1,stops:[],cx:.5,cy:.5,r:.5,fx:.5,fy:.5,fr:0},e)}(r,r.readVarint()+r.pos)):7===t?e.clip_paths.push(function(t,e){return t.readFields(ag,{children:[]},e)}(r,r.readVarint()+r.pos)):8===t&&e.masks.push(function(t,e){const r=t.readFields(sg,{left:0,width:20,mask_type:1,children:[]},e);return null==r.height&&(r.height=r.width),null==r.top&&(r.top=r.left),r}(r,r.readVarint()+r.pos));}function Yy(t,e){return t.readFields(Xy,{},e)}function Xy(t,e,r){1===t?(e.group=function(t,e){return t.readFields(Zy,{opacity:255,children:[]},e)}(r,r.readVarint()+r.pos),e.node=\"group\"):2===t&&(e.path=function(t,e){return t.readFields(Ky,{paint_order:1,commands:[],step:1,diffs:[],rule:1},e)}(r,r.readVarint()+r.pos),e.node=\"path\");}function Zy(t,e,r){1===t?e.transform=Hy(r,r.readVarint()+r.pos):2===t?e.opacity=r.readVarint():5===t?e.clip_path_idx=r.readVarint():6===t?e.mask_idx=r.readVarint():7===t&&e.children.push(Yy(r,r.readVarint()+r.pos));}function Hy(t,e){return t.readFields(Wy,{sx:1,ky:0,kx:0,sy:1,tx:0,ty:0},e)}function Wy(t,e,r){1===t?e.sx=r.readFloat():2===t?e.ky=r.readFloat():3===t?e.kx=r.readFloat():4===t?e.sy=r.readFloat():5===t?e.tx=r.readFloat():6===t&&(e.ty=r.readFloat());}function Ky(t,e,r){1===t?e.fill=function(t,e){return t.readFields(Jy,{rgb_color:By,paint:\"rgb_color\",opacity:255},e)}(r,r.readVarint()+r.pos):2===t?e.stroke=function(t,e){return t.readFields(tg,{rgb_color:By,paint:\"rgb_color\",dasharray:[],dashoffset:0,miterlimit:4,opacity:255,width:1,linecap:1,linejoin:1},e)}(r,r.readVarint()+r.pos):3===t?e.paint_order=r.readVarint():5===t?r.readPackedVarint(e.commands):6===t?e.step=r.readFloat():7===t?r.readPackedSVarint(e.diffs):8===t&&(e.rule=r.readVarint());}function Jy(t,e,r){1===t?(e.rgb_color=Qy(r.readVarint()),e.paint=\"rgb_color\"):2===t?(e.linear_gradient_idx=r.readVarint(),e.paint=\"linear_gradient_idx\"):3===t?(e.radial_gradient_idx=r.readVarint(),e.paint=\"radial_gradient_idx\"):5===t&&(e.opacity=r.readVarint());}function Qy(t){return new Ie((t>>16&255)/255,(t>>8&255)/255,(255&t)/255,1)}function tg(t,e,r){1===t?(e.rgb_color=Qy(r.readVarint()),e.paint=\"rgb_color\"):2===t?(e.linear_gradient_idx=r.readVarint(),e.paint=\"linear_gradient_idx\"):3===t?(e.radial_gradient_idx=r.readVarint(),e.paint=\"radial_gradient_idx\"):5===t?r.readPackedFloat(e.dasharray):6===t?e.dashoffset=r.readFloat():7===t?e.miterlimit=r.readFloat():8===t?e.opacity=r.readVarint():9===t?e.width=r.readFloat():10===t?e.linecap=r.readVarint():11===t&&(e.linejoin=r.readVarint());}function eg(t,e,r){1===t?e.transform=Hy(r,r.readVarint()+r.pos):2===t?e.spread_method=r.readVarint():3===t?e.stops.push(rg(r,r.readVarint()+r.pos)):4===t?e.x1=r.readFloat():5===t?e.y1=r.readFloat():6===t?e.x2=r.readFloat():7===t&&(e.y2=r.readFloat());}function rg(t,e){return t.readFields(ng,{offset:0,opacity:255,rgb_color:By},e)}function ng(t,e,r){1===t?e.offset=r.readFloat():2===t?e.opacity=r.readVarint():3===t&&(e.rgb_color=Qy(r.readVarint()));}function ig(t,e,r){1===t?e.transform=Hy(r,r.readVarint()+r.pos):2===t?e.spread_method=r.readVarint():3===t?e.stops.push(rg(r,r.readVarint()+r.pos)):4===t?e.cx=r.readFloat():5===t?e.cy=r.readFloat():6===t?e.r=r.readFloat():7===t?e.fx=r.readFloat():8===t?e.fy=r.readFloat():9===t&&(e.fr=r.readFloat());}function ag(t,e,r){1===t?e.transform=Hy(r,r.readVarint()+r.pos):2===t?e.clip_path_idx=r.readVarint():3===t&&e.children.push(Yy(r,r.readVarint()+r.pos));}function sg(t,e,r){1===t?e.left=e.top=r.readFloat():2===t?e.width=e.height=r.readFloat():3===t?e.top=r.readFloat():4===t?e.height=r.readFloat():5===t?e.mask_type=r.readVarint():6===t?e.mask_idx=r.readVarint():7===t&&e.children.push(Yy(r,r.readVarint()+r.pos));}class og{static calculate(t,e){const r=new Map,n=new Map;if(0===Object.keys(t).length)return r;e.forEach((t=>{n.set(t.name,t.rgb_color||new Ie(0,0,0));}));for(const[e,i]of Object.entries(t))n.has(e)?r.set(n.get(e).toStringPremultipliedAlpha(),i):console.warn(`Ignoring unknown image variable \"${e}\"`);return r}}function lg(t,e=255,r){const n=e/255,i=t.toStringPremultipliedAlpha(),a=r.has(i)?r.get(i).clone():t.clone();return a.a=n,a.toString()}function ug(t,e){if(!Ct()){const r=document.createElement(\"canvas\");return r.width=t,r.height=e,r}return new OffscreenCanvas(t,e)}function cg(t,e){const r=og.calculate(e.params,t.metadata?t.metadata.variables:[]),n=t.usvg_tree,i=n.width,a=n.height,s=e.transform?e.transform:new DOMMatrix,o=Math.max(1,Math.round(i*s.a)),l=Math.max(1,Math.round(a*s.d)),u=new DOMMatrix([o/i,0,0,l/a,0,0]),c=ug(o,l).getContext(\"2d\");return hg(c,u,n,n,r),c.getImageData(0,0,o,l)}function hg(t,e,r,n,i){for(const a of n.children)pg(t,e,r,a,i);}function pg(t,e,r,n,i){n.group?(t.save(),function(t,e,r,n,i){const a=null!=n.mask_idx?r.masks[n.mask_idx]:null,s=null!=n.clip_path_idx?r.clip_paths[n.clip_path_idx]:null;if(n.transform&&(e=vg(n.transform).preMultiplySelf(e)),!function(t,e,r){return 255!==t.opacity||e||r}(n,null!=s,null!=a))return void hg(t,e,r,n,i);const o=ug(t.canvas.width,t.canvas.height),l=o.getContext(\"2d\");s&&gg(l,e,r,s),hg(l,e,r,n,i),a&&xg(l,e,r,a,i),t.globalAlpha=n.opacity/255,t.drawImage(o,0,0);}(t,e,r,n.group,i),t.restore()):n.path&&(t.save(),function(t,e,r,n,i){const a=bg(n);t.setTransform(e),n.paint_order===Ly.PAINT_ORDER_FILL_AND_STROKE?(fg(t,r,n,a,i),dg(t,r,n,a,i)):(dg(t,r,n,a,i),fg(t,r,n,a,i));}(t,e,r,n.path,i),t.restore());}function fg(t,e,r,n,i){const a=r.fill;if(!a)return;const s=a.opacity/255;switch(a.paint){case\"rgb_color\":t.fillStyle=lg(a.rgb_color,a.opacity,i);break;case\"linear_gradient_idx\":t.fillStyle=mg(t,e.linear_gradients[a.linear_gradient_idx],s,i);break;case\"radial_gradient_idx\":t.fillStyle=yg(t,e.radial_gradients[a.radial_gradient_idx],s,i);}let o;switch(r.rule){case Vy.PATH_RULE_NON_ZERO:o=\"nonzero\";break;case Vy.PATH_RULE_EVEN_ODD:o=\"evenodd\";}t.fill(n,o);}function dg(t,e,r,n,i){const a=r.stroke;if(!a)return;t.lineWidth=a.width,t.miterLimit=a.miterlimit,t.setLineDash(a.dasharray),t.lineDashOffset=a.dashoffset;const s=a.opacity/255;switch(a.paint){case\"rgb_color\":t.strokeStyle=lg(a.rgb_color,a.opacity,i);break;case\"linear_gradient_idx\":t.strokeStyle=mg(t,e.linear_gradients[a.linear_gradient_idx],s,i);break;case\"radial_gradient_idx\":t.strokeStyle=yg(t,e.radial_gradients[a.radial_gradient_idx],s,i);}switch(a.linejoin){case Dy.LINE_JOIN_MITER_CLIP:case Dy.LINE_JOIN_MITER:t.lineJoin=\"miter\";break;case Dy.LINE_JOIN_ROUND:t.lineJoin=\"round\";break;case Dy.LINE_JOIN_BEVEL:t.lineJoin=\"bevel\";}switch(a.linecap){case Cy.LINE_CAP_BUTT:t.lineCap=\"butt\";break;case Cy.LINE_CAP_ROUND:t.lineCap=\"round\";break;case Cy.LINE_CAP_SQUARE:t.lineCap=\"square\";}t.stroke(n);}function mg(t,e,r,n){if(1===e.stops.length){const t=e.stops[0];return lg(t.rgb_color,t.opacity*r,n)}const i=vg(e.transform),{x1:a,y1:s,x2:o,y2:l}=e,u=i.transformPoint(new DOMPoint(a,s)),c=i.transformPoint(new DOMPoint(o,l)),h=t.createLinearGradient(u.x,u.y,c.x,c.y);for(const t of e.stops)h.addColorStop(t.offset,lg(t.rgb_color,t.opacity*r,n));return h}function yg(t,e,r,n){if(1===e.stops.length){const t=e.stops[0];return lg(t.rgb_color,t.opacity*r,n)}const i=vg(e.transform),{fx:a,fy:s,cx:o,cy:l}=e,u=i.transformPoint(new DOMPoint(a,s)),c=i.transformPoint(new DOMPoint(o,l)),h=t.createRadialGradient(u.x,u.y,0,c.x,c.y,e.r*((i.a+i.d)/2));for(const t of e.stops)h.addColorStop(t.offset,lg(t.rgb_color,t.opacity*r,n));return h}function gg(t,e,r,n){const i=vg(n.transform).preMultiplySelf(e),a=null!=n.clip_path_idx?r.clip_paths[n.clip_path_idx]:null;a&&gg(t,i,r,a);const s=new Path2D;let o;function l(t,e){if(t.path){const r=t.path;s.addPath(bg(r),e),r.rule===Vy.PATH_RULE_EVEN_ODD&&(o=\"evenodd\");}else if(t.group){const r=t.group.transform?vg(t.group.transform).preMultiplySelf(e):e;for(const e of t.group.children)l(e,r);}}for(const t of n.children)l(t,i);t.clip(s,o);}function xg(t,e,r,n,i){if(0===n.children.length)return;const a=null!=n.mask_idx?r.masks[n.mask_idx]:null;a&&xg(t,e,r,a,i);const s=t.canvas.width,o=t.canvas.height,l=ug(s,o),u=l.getContext(\"2d\"),c=n.width,h=n.height,p=n.left,f=n.top,d=new Path2D,m=new Path2D;m.rect(p,f,c,h),d.addPath(m,e),u.clip(d);for(const t of n.children)pg(u,e,r,t,i);const y=u.getImageData(0,0,s,o),g=y.data;if(n.mask_type===Fy.MASK_TYPE_LUMINANCE)for(let t=0;t<g.length;t+=4)g[t+3]=g[t+3]/255*(.2126*g[t]+.7152*g[t+1]+.0722*g[t+2]);u.putImageData(y,0,0),t.globalCompositeOperation=\"destination-in\",t.drawImage(l,0,0);}function vg(t){return t?new DOMMatrix([t.sx,t.ky,t.kx,t.sy,t.tx,t.ty]):new DOMMatrix}function bg(t){const e=new Path2D,r=t.step;let n=t.diffs[0]*r,i=t.diffs[1]*r;e.moveTo(n,i);for(let a=0,s=2;a<t.commands.length;a++)switch(t.commands[a]){case Ry.PATH_COMMAND_MOVE:n+=t.diffs[s++]*r,i+=t.diffs[s++]*r,e.moveTo(n,i);break;case Ry.PATH_COMMAND_LINE:n+=t.diffs[s++]*r,i+=t.diffs[s++]*r,e.lineTo(n,i);break;case Ry.PATH_COMMAND_QUAD:{const a=n+t.diffs[s++]*r,o=i+t.diffs[s++]*r;n=a+t.diffs[s++]*r,i=o+t.diffs[s++]*r,e.quadraticCurveTo(a,o,n,i);break}case Ry.PATH_COMMAND_CUBIC:{const a=n+t.diffs[s++]*r,o=i+t.diffs[s++]*r,l=a+t.diffs[s++]*r,u=o+t.diffs[s++]*r;n=l+t.diffs[s++]*r,i=u+t.diffs[s++]*r,e.bezierCurveTo(a,o,l,u,n,i);break}case Ry.PATH_COMMAND_CLOSE:e.closePath();}return e}class _g{constructor(t){this.capacity=t,this.cache=new Map;}get(t){if(!this.cache.has(t))return;const e=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,e),e}put(t,e){this.cache.has(t)?this.cache.delete(t):this.cache.size===this.capacity&&this.cache.delete(this.cache.keys().next().value),this.cache.set(t,e);}delete(t){this.cache.delete(t);}}class wg{constructor(){this.cacheMap=new Map,this.cacheDependenciesMap=new Map;}static _getImage(t){return new sc(t,t.data)}getFromCache(t,e,r){return this.cacheMap.has(r)||this.cacheMap.set(r,new _g(150)),this.cacheMap.get(r).get(us(t.serialize(),e))}setInCache(t,e,r,n){this.cacheDependenciesMap.has(n)||this.cacheDependenciesMap.set(n,new Map),this.cacheMap.has(n)||this.cacheMap.set(n,new _g(150));const i=this.cacheDependenciesMap.get(n);i.get(us(t.id,r))||i.set(us(t.id,r),new Set);const a=this.cacheMap.get(n),s=t.serialize();i.get(us(t.id,r)).add(s),a.put(us(t.serialize(),r),e);}removeImagesFromCacheByIds(t,e,r=\"\"){if(!this.cacheMap.has(r)||!this.cacheDependenciesMap.has(r))return;const n=this.cacheMap.get(r),i=this.cacheDependenciesMap.get(r);for(const r of t)if(i.has(us(r,e))){for(const t of i.get(us(r,e)))n.delete(t);i.delete(us(r,e));}}rasterize(t,e,r,n,i=cg){const a=this.getFromCache(t,r,n);if(a)return a.clone();const s=i(e.icon,t.options),o=wg._getImage(s);return this.setInCache(t,o,r,n),o.clone()}}class Mg{constructor(t){this.size=t,this.minimums=[],this.maximums=[],this.leaves=[];}getElevation(t,e){const r=this.toIdx(t,e);return {min:this.minimums[r],max:this.maximums[r]}}isLeaf(t,e){return this.leaves[this.toIdx(t,e)]}toIdx(t,e){return e*this.size+t}}function Ag(t,e,r,n){let i=0,a=Number.MAX_VALUE;for(let s=0;s<3;s++)if(Math.abs(n[s])<1e-15){if(r[s]<t[s]||r[s]>e[s])return null}else {const o=1/n[s];let l=(t[s]-r[s])*o,u=(e[s]-r[s])*o;if(l>u){const t=l;l=u,u=t;}if(l>i&&(i=l),u<a&&(a=u),i>a)return null}return i}function Sg(t,e,r,n,i,a,s,o,l,u,c){const h=n-t,p=i-e,f=a-r,d=s-t,m=o-e,y=l-r,g=c[1]*y-c[2]*m,x=c[2]*d-c[0]*y,v=c[0]*m-c[1]*d,b=h*g+p*x+f*v;if(Math.abs(b)<1e-15)return null;const _=1/b,w=u[0]-t,M=u[1]-e,A=u[2]-r,S=(w*g+M*x+A*v)*_;if(S<0||S>1)return null;const I=M*f-A*p,P=A*h-w*f,z=w*p-M*h,E=(c[0]*I+c[1]*P+c[2]*z)*_;return E<0||S+E>1?null:(d*I+m*P+y*z)*_}function Ig(t,e,r){return (t-e)/(r-e)}function Pg(t,e,r,n,i,a,s,o,l){const u=1<<r,c=a-n,h=s-i,p=(t+1)/u*c+n,f=(e+0)/u*h+i,d=(e+1)/u*h+i;o[0]=(t+0)/u*c+n,o[1]=f,l[0]=p,l[1]=d;}class zg{constructor(t){if(this.maximums=[],this.minimums=[],this.leaves=[],this.childOffsets=[],this.nodeCount=0,this.dem=t,this._siblingOffset=[[0,0],[1,0],[0,1],[1,1]],!this.dem)return;const e=function(t){const e=Math.ceil(Math.log2(t.dim/8)),r=[];let n=Math.ceil(Math.pow(2,e));const i=1/n,a=(t,e,r,n,i)=>{const a=n?1:0,s=(t+1)*r-a,o=e*r,l=(e+1)*r-a;i[0]=t*r,i[1]=o,i[2]=s,i[3]=l;};let s=new Mg(n);const o=[];for(let e=0;e<n*n;e++){a(e%n,Math.floor(e/n),i,!1,o);const r=kg(o[0],o[1],t),l=kg(o[2],o[1],t),u=kg(o[2],o[3],t),c=kg(o[0],o[3],t);s.minimums.push(Math.min(r,l,u,c)),s.maximums.push(Math.max(r,l,u,c)),s.leaves.push(1);}for(r.push(s),n/=2;n>=1;n/=2){const t=r[r.length-1];s=new Mg(n);for(let e=0;e<n*n;e++){a(e%n,Math.floor(e/n),2,!0,o);const r=t.getElevation(o[0],o[1]),i=t.getElevation(o[2],o[1]),l=t.getElevation(o[2],o[3]),u=t.getElevation(o[0],o[3]),c=t.isLeaf(o[0],o[1]),h=t.isLeaf(o[2],o[1]),p=t.isLeaf(o[2],o[3]),f=t.isLeaf(o[0],o[3]),d=Math.min(r.min,i.min,l.min,u.min),m=Math.max(r.max,i.max,l.max,u.max),y=c&&h&&p&&f;s.maximums.push(m),s.minimums.push(d),s.leaves.push(m-d<=5&&y?1:0);}r.push(s);}return r}(this.dem),r=e.length-1,n=e[r];this._addNode(n.minimums[0],n.maximums[0],n.leaves[0]),this._construct(e,0,0,r,0);}raycastRoot(t,e,r,n,i,a,s=1){return Ag([t,e,-100],[r,n,this.maximums[0]*s],i,a)}raycast(t,e,r,n,i,a,s=1){if(!this.nodeCount)return null;const o=this.raycastRoot(t,e,r,n,i,a,s);if(null==o)return null;const l=[],u=[],c=[],h=[],p=[{idx:0,t:o,nodex:0,nodey:0,depth:0}];for(;p.length>0;){const{idx:o,t:f,nodex:d,nodey:m,depth:y}=p.pop();if(this.leaves[o]){Pg(d,m,y,t,e,r,n,c,h);const o=1<<y,l=(d+0)/o,u=(d+1)/o,p=(m+0)/o,g=(m+1)/o,x=kg(l,p,this.dem)*s,v=kg(u,p,this.dem)*s,b=kg(u,g,this.dem)*s,_=kg(l,g,this.dem)*s,w=Sg(c[0],c[1],x,h[0],c[1],v,h[0],h[1],b,i,a),M=Sg(h[0],h[1],b,c[0],h[1],_,c[0],c[1],x,i,a),A=Math.min(null!==w?w:Number.MAX_VALUE,null!==M?M:Number.MAX_VALUE);if(A!==Number.MAX_VALUE)return A;{const t=O.vec3.scaleAndAdd([],i,a,f);if(Eg(x,v,_,b,Ig(t[0],c[0],h[0]),Ig(t[1],c[1],h[1]))>=t[2])return f}continue}let g=0;for(let p=0;p<this._siblingOffset.length;p++){Pg((d<<1)+this._siblingOffset[p][0],(m<<1)+this._siblingOffset[p][1],y+1,t,e,r,n,c,h),c[2]=-100,h[2]=this.maximums[this.childOffsets[o]+p]*s;const f=Ag(c,h,i,a);if(null!=f){const t=f;l[p]=t;let e=!1;for(let r=0;r<g&&!e;r++)t>=l[u[r]]&&(u.splice(r,0,p),e=!0);e||(u[g]=p),g++;}}for(let t=0;t<g;t++){const e=u[t];p.push({idx:this.childOffsets[o]+e,t:l[e],nodex:(d<<1)+this._siblingOffset[e][0],nodey:(m<<1)+this._siblingOffset[e][1],depth:y+1});}}return null}_addNode(t,e,r){return this.minimums.push(t),this.maximums.push(e),this.leaves.push(r),this.childOffsets.push(0),this.nodeCount++}_construct(t,e,r,n,i){if(1===t[n].isLeaf(e,r))return;this.childOffsets[i]||(this.childOffsets[i]=this.nodeCount);const a=n-1,s=t[a];let o=0,l=0;for(let t=0;t<this._siblingOffset.length;t++){const n=2*e+this._siblingOffset[t][0],i=2*r+this._siblingOffset[t][1],a=s.getElevation(n,i),u=s.isLeaf(n,i),c=this._addNode(a.min,a.max,u);u&&(o|=1<<t),l||(l=c);}for(let n=0;n<this._siblingOffset.length;n++)o&1<<n||this._construct(t,2*e+this._siblingOffset[n][0],2*r+this._siblingOffset[n][1],a,l+n);}}function Eg(t,e,r,n,i,a){return ze(ze(t,r,a),ze(e,n,a),i)}function kg(t,e,r){const n=r.dim,i=Q(t*n-.5,0,n-1),a=Q(e*n-.5,0,n-1),s=Math.floor(i),o=Math.floor(a),l=Math.min(s+1,n-1),u=Math.min(o+1,n-1);return Eg(r.get(s,o),r.get(l,o),r.get(s,u),r.get(l,u),i-s,a-o)}const Tg={mapbox:[6553.6,25.6,.1,1e4],terrarium:[256,1,1/256,32768]};function Bg(t,e,r){return (256*t*256+256*e+r)/10-1e4}function Vg(t,e,r){return 256*t+e+r/256-32768}class Cg{get tree(){return this._tree||this._buildQuadTree(),this._tree}constructor(t,e,r,n=!1){if(this.uid=t,e.height!==e.width)throw new RangeError(\"DEM tiles must be square\");if(r&&\"mapbox\"!==r&&\"terrarium\"!==r)return void ft(`\"${r}\" is not a valid encoding type. Valid types include \"mapbox\" and \"terrarium\".`);this.stride=e.height;const i=this.dim=e.height-2,a=new Uint32Array(e.data.buffer);if(this.pixels=new Uint8Array(e.data.buffer),this.floatView=new Float32Array(e.data.buffer),this.borderReady=n,this._modifiedForSources={},!n){for(let t=0;t<i;t++)a[this._idx(-1,t)]=a[this._idx(0,t)],a[this._idx(i,t)]=a[this._idx(i-1,t)],a[this._idx(t,-1)]=a[this._idx(t,0)],a[this._idx(t,i)]=a[this._idx(t,i-1)];a[this._idx(-1,-1)]=a[this._idx(0,0)],a[this._idx(i,-1)]=a[this._idx(i-1,0)],a[this._idx(-1,i)]=a[this._idx(0,i-1)],a[this._idx(i,i)]=a[this._idx(i-1,i-1)];}const s=\"terrarium\"===r?Vg:Bg;for(let t=0;t<a.length;++t){const e=4*t;this.floatView[t]=s(this.pixels[e],this.pixels[e+1],this.pixels[e+2]);}this._timestamp=Dt.now();}_buildQuadTree(){this._tree=new zg(this);}get(t,e,r=!1){r&&(t=Q(t,-1,this.dim),e=Q(e,-1,this.dim));const n=this._idx(t,e);return this.floatView[n]}set(t,e,r){const n=this._idx(t,e),i=this.floatView[n];return this.floatView[n]=r,r-i}static getUnpackVector(t){return Tg[t]}_idx(t,e){if(t<-1||t>=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError(\"out of range source coordinates for DEM data\");return (e+1)*this.stride+(t+1)}static pack(t,e){const r=[0,0,0,0],n=Cg.getUnpackVector(e);let i=Math.floor((t+n[3])/n[2]);return r[2]=i%256,i=Math.floor(i/256),r[1]=i%256,i=Math.floor(i/256),r[0]=i,r}getPixels(){return new oc({width:this.stride,height:this.stride},this.pixels)}backfillBorder(t,e,r){if(this.dim!==t.dim)throw new Error(\"dem dimension mismatch\");let n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,s=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1;}switch(r){case-1:a=s-1;break;case 1:s=a+1;}const o=-e*this.dim,l=-r*this.dim;for(let e=a;e<s;e++)for(let r=n;r<i;r++){const n=4*this._idx(r,e),i=4*this._idx(r+o,e+l);this.pixels[n+0]=t.pixels[i+0],this.pixels[n+1]=t.pixels[i+1],this.pixels[n+2]=t.pixels[i+2],this.pixels[n+3]=t.pixels[i+3];}}onDeserialize(){this._tree&&(this._tree.dem=this);}}function Dg(t,e,r){1===t?e.headerLength=r.readFixed32():2===t?e.x=r.readVarint():3===t?e.y=r.readVarint():4===t?e.z=r.readVarint():5===t&&e.layers.push(function(t,e){return t.readFields(Ng,{version:0,name:\"\",units:\"\",tileSize:0,buffer:0,pixelFormat:0,dataIndex:[]},e)}(r,r.readVarint()+r.pos));}function Lg(t,e,r){1===t?(e.delta_filter=function(t,e){return t.readFields(Rg,{blockSize:0},e)}(r,r.readVarint()+r.pos),e.filter=\"delta_filter\"):2===t?(r.readVarint(),e.filter=\"zigzag_filter\"):3===t?(r.readVarint(),e.filter=\"bitshuffle_filter\"):4===t&&(r.readVarint(),e.filter=\"byteshuffle_filter\");}function Rg(t,e,r){1===t&&(e.blockSize=r.readVarint());}function Fg(t,e,r){1===t?(r.readVarint(),e.codec=\"gzip_data\"):2===t?(r.readVarint(),e.codec=\"jpeg_image\"):3===t?(r.readVarint(),e.codec=\"webp_image\"):4===t&&(r.readVarint(),e.codec=\"png_image\");}function Og(t,e,r){let n=0,i=0;1===t?e.firstByte=r.readFixed64():2===t?e.lastByte=r.readFixed64():3===t?e.filters.push(function(t,e){return t.readFields(Lg,{},e)}(r,r.readVarint()+r.pos)):4===t?e.codec=function(t,e){return t.readFields(Fg,{},e)}(r,r.readVarint()+r.pos):5===t?i=r.readFloat():6===t?n=r.readFloat():7===t?e.bands.push(r.readString()):8===t?e.offset=r.readDouble():9===t&&(e.scale=r.readDouble()),0===e.offset&&(e.offset=i),0===e.scale&&(e.scale=n);}function Ng(t,e,r){1===t?e.version=r.readVarint():2===t?e.name=r.readString():3===t?e.units=r.readString():4===t?e.tileSize=r.readVarint():5===t?e.buffer=r.readVarint():6===t?e.pixelFormat=r.readVarint():7===t&&e.dataIndex.push(function(t,e){return t.readFields(Og,{firstByte:0,lastByte:0,filters:[],codec:null,offset:0,scale:0,bands:[]},e)}(r,r.readVarint()+r.pos));}function Ug(t,e,r){if(2===t)!function(t,e,r){t.readFields(jg,r,e);}(r,r.readVarint()+r.pos,e);else if(3===t)throw new Error(\"Not implemented\")}function jg(t,e,r){if(1===t){let t=0;const n=r.readVarint()+r.pos;for(;r.pos<n;)e[t++]=r.readVarint();}}function qg(t,e){if(4!==e.length)throw new Error(`Expected data of dimension 4 but got ${e.length}.`);let r=e[3];for(let n=2;n>=1;n--){const i=1===n?1:0,a=2===n?1:0;for(let n=0;n<e[0];n++){const s=e[1]*n;for(let n=i;n<e[1];n++){const i=e[2]*(n+s);for(let n=a;n<e[2];n++){const a=e[3]*(n+i);for(let n=0;n<e[3];n++){const e=a+n;t[e]+=t[e-r];}}}}r*=e[n];}return t}function $g(t){for(let e=0,r=t.length;e<r;e++)t[e]=t[e]>>>1^-(1&t[e]);return t}function Gg(t,e){switch(e){case\"uint32\":return t;case\"uint16\":for(let e=0;e<t.length;e+=2){const r=t[e],n=t[e+1];t[e]=(240&r)>>4|(61440&r)>>8|(240&n)<<4|61440&n,t[e+1]=15&r|(3840&r)>>4|(15&n)<<8|(3840&n)<<4;}return t;case\"uint8\":for(let e=0;e<t.length;e+=4){const r=t[e],n=t[e+1],i=t[e+2],a=t[e+3];t[e+0]=(192&r)>>6|(192&n)>>4|(192&i)>>2|192&a,t[e+1]=(48&r)>>4|(48&n)>>2|48&i|(48&a)<<2,t[e+2]=(12&r)>>2|12&n|(12&i)<<2|(12&a)<<4,t[e+3]=3&r|(3&n)<<2|(3&i)<<4|(3&a)<<6;}return t;default:throw new Error(`Invalid pixel format, \"${e}\"`)}}oa(Cg,\"DEMData\"),oa(zg,\"DemMinMaxQuadTree\",{omit:[\"dem\"]});var Yg=Uint8Array,Xg=Uint16Array,Zg=Int32Array,Hg=new Yg([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Wg=new Yg([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Kg=new Yg([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Jg=function(t,e){for(var r=new Xg(31),n=0;n<31;++n)r[n]=e+=1<<t[n-1];var i=new Zg(r[30]);for(n=1;n<30;++n)for(var a=r[n];a<r[n+1];++a)i[a]=a-r[n]<<5|n;return {b:r,r:i}},Qg=Jg(Hg,2),tx=Qg.b,ex=Qg.r;tx[28]=258,ex[258]=28;for(var rx=Jg(Wg,0).b,nx=new Xg(32768),ix=0;ix<32768;++ix){var ax=(43690&ix)>>1|(21845&ix)<<1;nx[ix]=((65280&(ax=(61680&(ax=(52428&ax)>>2|(13107&ax)<<2))>>4|(3855&ax)<<4))>>8|(255&ax)<<8)>>1;}var sx=function(t,e,r){for(var n=t.length,i=0,a=new Xg(e);i<n;++i)t[i]&&++a[t[i]-1];var s,o=new Xg(e);for(i=1;i<e;++i)o[i]=o[i-1]+a[i-1]<<1;s=new Xg(1<<e);var l=15-e;for(i=0;i<n;++i)if(t[i])for(var u=i<<4|t[i],c=e-t[i],h=o[t[i]-1]++<<c,p=h|(1<<c)-1;h<=p;++h)s[nx[h]>>l]=u;return s},ox=new Yg(288);for(ix=0;ix<144;++ix)ox[ix]=8;for(ix=144;ix<256;++ix)ox[ix]=9;for(ix=256;ix<280;++ix)ox[ix]=7;for(ix=280;ix<288;++ix)ox[ix]=8;var lx=new Yg(32);for(ix=0;ix<32;++ix)lx[ix]=5;var ux=sx(ox,9),cx=sx(lx,5),hx=function(t){for(var e=t[0],r=1;r<t.length;++r)t[r]>e&&(e=t[r]);return e},px=function(t,e,r){var n=e/8|0;return (t[n]|t[n+1]<<8)>>(7&e)&r},fx=function(t,e){var r=e/8|0;return (t[r]|t[r+1]<<8|t[r+2]<<16)>>(7&e)},dx=[\"unexpected EOF\",\"invalid block type\",\"invalid length/literal\",\"invalid distance\",\"stream finished\",\"no stream handler\",,\"no callback\",\"invalid UTF-8 data\",\"extra field too long\",\"date not in range 1980-2099\",\"filename too long\",\"stream finishing\",\"invalid zip data\"],mx=function(t,e,r){var n=new Error(e||dx[t]);if(n.code=t,Error.captureStackTrace&&Error.captureStackTrace(n,mx),!r)throw n;return n},yx=new Yg(0),gx=\"undefined\"!=typeof TextDecoder&&new TextDecoder;try{gx.decode(yx,{stream:!0});}catch(t){}const xx={gzip_data:\"gzip\"};class vx extends Error{constructor(t){super(t),this.name=\"MRTError\";}}const bx={0:\"uint32\",1:\"uint32\",2:\"uint16\",3:\"uint8\"},_x={uint32:1,uint16:2,uint8:4},wx={uint32:Uint32Array,uint16:Uint16Array,uint8:Uint8Array};let Mx;class Ax{constructor(t=5){this.x=NaN,this.y=NaN,this.z=NaN,this.layers={},this._cacheSize=t;}getLayer(t){const e=this.layers[t];if(!e)throw new vx(`Layer '${t}' not found`);return e}getHeaderLength(t){const e=new Uint8Array(t),r=new DataView(t);if(13!==e[0])throw new vx(\"File is not a valid MRT.\");return r.getUint32(1,!0)}parseHeader(t){const e=new Uint8Array(t),r=this.getHeaderLength(t);if(e.length<r)throw new vx(`Expected header with length >= ${r} but got buffer of length ${e.length}`);const n=function(t,e){return t.readFields(Dg,{headerLength:0,x:0,y:0,z:0,layers:[]},void 0)}(new Mx(e.subarray(0,r)));if(!isNaN(this.x)&&(this.x!==n.x||this.y!==n.y||this.z!==n.z))throw new vx(`Invalid attempt to parse header ${n.z}/${n.x}/${n.y} for tile ${this.z}/${this.x}/${this.y}`);this.x=n.x,this.y=n.y,this.z=n.z;for(const t of n.layers)this.layers[t.name]=new Sx(t,{cacheSize:this._cacheSize});return this}createDecodingTask(t){const e=[],r=this.getLayer(t.layerName);for(let n of t.blockIndices){const i=r.dataIndex[n],a=i.firstByte-t.firstByte,s=i.lastByte-t.firstByte;if(r._blocksInProgress.has(n))continue;const o={layerName:r.name,firstByte:a,lastByte:s,pixelFormat:r.pixelFormat,blockIndex:n,blockShape:[i.bands.length].concat(r.bandShape),buffer:r.buffer,codec:i.codec.codec,filters:i.filters.map((t=>t.filter))};r._blocksInProgress.add(n),e.push(o);}return new Ix(e,(()=>{e.forEach((t=>r._blocksInProgress.delete(t.blockIndex)));}),((t,n)=>{if(e.forEach((t=>r._blocksInProgress.delete(t.blockIndex))),t)throw t;n.forEach((t=>{this.getLayer(t.layerName).processDecodedData(t);}));}))}}class Sx{constructor({version:t,name:e,units:r,tileSize:n,pixelFormat:i,buffer:a,dataIndex:s},o){if(this.version=t,1!==this.version)throw new vx(`Cannot parse raster layer encoded with MRT version ${t}`);this.name=e,this.units=r,this.tileSize=n,this.buffer=a,this.pixelFormat=bx[i],this.dataIndex=s,this.bandShape=[n+2*a,n+2*a,_x[this.pixelFormat]],this._decodedBlocks=new _g(o?o.cacheSize:5),this._blocksInProgress=new Set;}get dimension(){return _x[this.pixelFormat]}get cacheSize(){return this._decodedBlocks.capacity}getBandList(){return this.dataIndex.map((({bands:t})=>t)).flat()}processDecodedData(t){const e=t.blockIndex.toString();this._decodedBlocks.get(e)||this._decodedBlocks.put(e,t.data);}getBlockForBand(t){let e=0;switch(typeof t){case\"string\":for(const[r,n]of this.dataIndex.entries()){for(const[i,a]of n.bands.entries())if(a===t)return {bandIndex:e+i,blockIndex:r,blockBandIndex:i};e+=n.bands.length;}break;case\"number\":for(const[r,n]of this.dataIndex.entries()){if(t>=e&&t<e+n.bands.length)return {bandIndex:t,blockIndex:r,blockBandIndex:t-e};e+=n.bands.length;}break;default:throw new vx(`Invalid band \\`${JSON.stringify(t)}\\`. Expected string or integer.`)}throw new vx(`Band not found: ${JSON.stringify(t)}`)}getDataRange(t){let e=1/0,r=-1/0;const n=[],i=new Set;for(const a of t){const{blockIndex:t}=this.getBlockForBand(a);if(t<0)throw new vx(`Invalid band: ${JSON.stringify(a)}`);const s=this.dataIndex[t];n.includes(t)||n.push(t),i.add(t),e=Math.min(e,s.firstByte),r=Math.max(r,s.lastByte);}if(i.size>this.cacheSize)throw new vx(`Number of blocks to decode (${i.size}) exceeds cache size (${this.cacheSize}).`);return {layerName:this.name,firstByte:e,lastByte:r,blockIndices:n}}hasBand(t){const{blockIndex:e}=this.getBlockForBand(t);return e>=0}hasDataForBand(t){const{blockIndex:e}=this.getBlockForBand(t);return e>=0&&!!this._decodedBlocks.get(e.toString())}getBandView(t){const{blockIndex:e,blockBandIndex:r}=this.getBlockForBand(t),n=this._decodedBlocks.get(e.toString());if(!n)throw new vx(`Data for band ${JSON.stringify(t)} of layer \"${this.name}\" not decoded.`);const i=this.dataIndex[e],a=this.bandShape.reduce(((t,e)=>t*e),1),s=r*a,o=n.subarray(s,s+a);return {data:o,bytes:new Uint8Array(o.buffer).subarray(o.byteOffset,o.byteOffset+o.byteLength),tileSize:this.tileSize,buffer:this.buffer,pixelFormat:this.pixelFormat,dimension:this.dimension,offset:i.offset,scale:i.scale}}}Ax.setPbf=function(t){Mx=t;};class Ix{constructor(t,e,r){this.tasks=t,this._onCancel=e,this._onComplete=r,this._finalized=!1;}cancel(){this._finalized||(this._onCancel(),this._finalized=!0);}complete(t,e){this._finalized||(this._onComplete(t,e),this._finalized=!0);}}Ax.performDecoding=function(t,e){const r=new Uint8Array(t);return Promise.all(e.tasks.map((t=>{const{layerName:e,firstByte:n,lastByte:i,pixelFormat:a,blockShape:s,blockIndex:o,filters:l,codec:u}=t,c=r.subarray(n,i+1),h=new Uint32Array(s[0]*s[1]*s[2]);let p;if(\"gzip_data\"!==u)throw new vx(`Unhandled codec: ${u}`);return p=function(t,e){if(!globalThis.DecompressionStream&&\"gzip_data\"===e)return Promise.resolve(((a=function(t){31==t[0]&&139==t[1]&&8==t[2]||mx(6,\"invalid gzip data\");var e=t[3],r=10;4&e&&(r+=2+(t[10]|t[11]<<8));for(var n=(e>>3&1)+(e>>4&1);n>0;n-=!t[r++]);return r+(2&e)}(i=t))+8>i.length&&mx(6,\"invalid gzip data\"),function(t,e,r,n){var i=t.length;if(!i||e.f&&!e.l)return r||new Yg(0);var a=!r,s=a||2!=e.i,o=e.i;a&&(r=new Yg(3*i));var l,u,c=function(t){var e=r.length;if(t>e){var n=new Yg(Math.max(2*e,t));n.set(r),r=n;}},h=e.f||0,p=e.p||0,f=e.b||0,d=e.l,m=e.d,y=e.m,g=e.n,x=8*i;do{if(!d){h=px(t,p,1);var v=px(t,p+1,3);if(p+=3,!v){var b=t[(T=4+((p+7)/8|0))-4]|t[T-3]<<8,_=T+b;if(_>i){o&&mx(0);break}s&&c(f+b),r.set(t.subarray(T,_),f),e.b=f+=b,e.p=p=8*_,e.f=h;continue}if(1==v)d=ux,m=cx,y=9,g=5;else if(2==v){var w=px(t,p,31)+257,M=px(t,p+10,15)+4,A=w+px(t,p+5,31)+1;p+=14;for(var S=new Yg(A),I=new Yg(19),P=0;P<M;++P)I[Kg[P]]=px(t,p+3*P,7);p+=3*M;var z=hx(I),E=(1<<z)-1,k=sx(I,z);for(P=0;P<A;){var T,B=k[px(t,p,E)];if(p+=15&B,(T=B>>4)<16)S[P++]=T;else {var V=0,C=0;for(16==T?(C=3+px(t,p,3),p+=2,V=S[P-1]):17==T?(C=3+px(t,p,7),p+=3):18==T&&(C=11+px(t,p,127),p+=7);C--;)S[P++]=V;}}var D=S.subarray(0,w),L=S.subarray(w);y=hx(D),g=hx(L),d=sx(D,y),m=sx(L,g);}else mx(1);if(p>x){o&&mx(0);break}}s&&c(f+131072);for(var R=(1<<y)-1,F=(1<<g)-1,O=p;;O=p){var N=(V=d[fx(t,p)&R])>>4;if((p+=15&V)>x){o&&mx(0);break}if(V||mx(2),N<256)r[f++]=N;else {if(256==N){O=p,d=null;break}var U=N-254;N>264&&(U=px(t,p,(1<<($=Hg[P=N-257]))-1)+tx[P],p+=$);var j=m[fx(t,p)&F],q=j>>4;if(j||mx(3),p+=15&j,L=rx[q],q>3){var $=Wg[q];L+=fx(t,p)&(1<<$)-1,p+=$;}if(p>x){o&&mx(0);break}s&&c(f+131072);var G=f+U;if(f<L){var Y=0-L,X=Math.min(L,G);for(Y+f<0&&mx(3);f<X;++f)r[f]=(void 0)[Y+f];}for(;f<G;++f)r[f]=r[f-L];}}e.l=d,e.p=O,e.b=f,e.f=h,d&&(h=1,e.m=y,e.d=m,e.n=g);}while(!h);return f!=r.length&&a?(l=r,(null==(u=f)||u>l.length)&&(u=l.length),new Yg(l.subarray(0,u))):r.subarray(0,f)}(i.subarray(a,-8),{i:2},new Yg(((r=i)[(n=r.length)-4]|r[n-3]<<8|r[n-2]<<16|r[n-1]<<24)>>>0))));var r,n,i,a;const s=xx[e];if(!s)throw new Error(`Unhandled codec: ${e}`);const o=new globalThis.DecompressionStream(s);return new Response(new Blob([t]).stream().pipeThrough(o)).arrayBuffer().then((t=>new Uint8Array(t)))}(c,u).then((t=>(function(t,e){t.readFields(Ug,e);}(new Mx(t),h),new(0,wx[a])(h.buffer)))),p.then((t=>{for(let e=l.length-1;e>=0;e--)switch(l[e]){case\"delta_filter\":qg(t,s);break;case\"zigzag_filter\":$g(t);break;case\"bitshuffle_filter\":Gg(t,a);break;default:throw new vx(`Unhandled filter \"${l[e]}\"`)}return {layerName:e,blockIndex:o,data:t}})).catch((t=>{throw t}))})))},oa(Ix,\"MRTDecodingBatch\",{omit:[\"_onCancel\",\"_onComplete\"]});let Px,zx,Ex,kx,Tx,Bx=null;function Vx(){return gt()&&self.worker&&self.worker.dracoUrl?self.worker.dracoUrl:zx||St.DRACO_URL}function Cx(){if(gt()&&self.worker&&self.worker.meshoptUrl)return self.worker.meshoptUrl;if(kx)return kx;const t=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]);if(\"object\"!=typeof WebAssembly)throw new Error(\"WebAssembly not supported, cannot instantiate meshoptimizer\");return kx=WebAssembly.validate(t)?St.MESHOPT_SIMD_URL:St.MESHOPT_URL,kx}const Dx={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},Lx={5120:\"DT_INT8\",5121:\"DT_UINT8\",5122:\"DT_INT16\",5123:\"DT_UINT16\",5125:\"DT_UINT32\",5126:\"DT_FLOAT32\"},Rx={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16};function Fx(t,e,r){const n=r.json.bufferViews.length,i=r.buffers.length;e.bufferView=n,r.json.bufferViews[n]={buffer:i,byteLength:t.byteLength},r.buffers[i]=t;}const Ox=\"KHR_draco_mesh_compression\";function Nx(t,e){const r=t.extensions&&t.extensions[Ox];if(!r)return;const n=new Ex.Decoder,i=Xx(e,r.bufferView),a=new Ex.Mesh;if(!n.DecodeArrayToMesh(i,i.byteLength,a))throw new Error(\"Failed to decode Draco mesh\");const s=e.json.accessors[t.indices],o=Dx[s.componentType],l=s.count*o.BYTES_PER_ELEMENT,u=Ex._malloc(l);o===Uint16Array?n.GetTrianglesUInt16Array(a,l,u):n.GetTrianglesUInt32Array(a,l,u),Fx(Ex.memory.buffer.slice(u,u+l),s,e),Ex._free(u);for(const i of Object.keys(r.attributes)){const s=n.GetAttributeByUniqueId(a,r.attributes[i]),o=e.json.accessors[t.attributes[i]],l=Lx[o.componentType],u=o.count*Rx[o.type]*Dx[o.componentType].BYTES_PER_ELEMENT,c=Ex._malloc(u);n.GetAttributeDataArrayForAllPoints(a,s,Ex[l],u,c),Fx(Ex.memory.buffer.slice(c,c+u),o,e),Ex._free(c);}n.destroy(),a.destroy(),delete t.extensions[Ox];}const Ux=\"EXT_meshopt_compression\";function jx(t,e){if(!t.extensions||!t.extensions[Ux])return;const r=t.extensions[Ux],n=new Uint8Array(e.buffers[r.buffer],r.byteOffset||0,r.byteLength||0),i=new Uint8Array(r.count*r.byteStride);Tx.decodeGltfBuffer(i,r.count,r.byteStride,n,r.mode,r.filter),t.buffer=e.buffers.length,t.byteOffset=0,e.buffers[t.buffer]=i.buffer,delete t.extensions[Ux];}const qx=1179937895,$x=new TextDecoder(\"utf8\");function Gx(t,e){return new URL(t,e).href}function Yx(t,e,r,n){return fetch(Gx(t.uri,n)).then((t=>t.arrayBuffer())).then((t=>{e.buffers[r]=t;}))}function Xx(t,e){const r=t.json.bufferViews[e];return new Uint8Array(t.buffers[r.buffer],r.byteOffset||0,r.byteLength)}function Zx(t,e,r,n){if(t.uri){const i=Gx(t.uri,n);return fetch(i).then((t=>t.blob())).then((t=>createImageBitmap(t))).then((t=>{e.images[r]=t;}))}if(void 0!==t.bufferView){const n=Xx(e,t.bufferView),i=new Blob([n],{type:t.mimeType});return createImageBitmap(i).then((t=>{e.images[r]=t;}))}}function Hx(t,e=0,r){const n={json:null,images:[],buffers:[]};if(new Uint32Array(t,e,1)[0]===qx){const r=new Uint32Array(t,e);let i=2;const a=(r[i++]>>2)-3,s=r[i++]>>2;if(i++,n.json=JSON.parse($x.decode(r.subarray(i,i+s))),i+=s,i<a){const a=r[i++];i++;const s=e+(i<<2);n.buffers[0]=t.slice(s,s+a);}}else n.json=JSON.parse($x.decode(new Uint8Array(t,e)));const{buffers:i,images:a,meshes:s,extensionsUsed:o,bufferViews:l}=n.json;let u=Promise.resolve();if(i){const t=[];for(let e=0;e<i.length;e++){const a=i[e];a.uri?t.push(Yx(a,n,e,r)):n.buffers[e]||(n.buffers[e]=null);}u=Promise.all(t);}return u.then((()=>{const t=[],e=o&&o.includes(Ox),i=o&&o.includes(Ux);if(e&&t.push(function(){if(!Ex)return null!=Px?Px:(Px=function(t){let e,r=null;function n(){e=new Uint8Array(r.buffer);}function i(){throw new Error(\"Unexpected Draco error.\")}const a={a:{a:i,d:function(t,r,n){return e.copyWithin(t,r,r+n)},c:function(t){const i=e.length,a=Math.max(t>>>0,Math.ceil(1.2*i)),s=Math.ceil((a-i)/65536);try{return r.grow(s),n(),!0}catch(t){return !1}},b:i}};return (WebAssembly.instantiateStreaming?WebAssembly.instantiateStreaming(t,a):t.then((t=>t.arrayBuffer())).then((t=>WebAssembly.instantiate(t,a)))).then((t=>{const{Rb:i,Qb:a,P:s,T:o,X:l,Ja:u,La:c,Qa:h,Va:p,Wa:f,eb:d,jb:m,f:y,e:g,yb:x,zb:v,Ab:b,Bb:_,Db:w,Gb:M}=t.instance.exports;r=g;const A=(()=>{let t=0,r=0,n=0,s=0;return o=>{n&&(i(s),i(t),r+=n,n=t=0),t||(r+=128,t=a(r));const l=o.length+7&-8;let u=t;l>=r&&(n=l,u=s=a(l));for(let t=0;t<o.length;t++)e[u+t]=o[t];return u}})();return n(),y(),{memory:g,_free:i,_malloc:a,Mesh:class{constructor(){this.ptr=s();}destroy(){o(this.ptr);}},Decoder:class{constructor(){this.ptr=u();}destroy(){m(this.ptr);}DecodeArrayToMesh(t,e,r){const n=A(t),i=c(this.ptr,n,e,r.ptr);return !!l(i)}GetAttributeByUniqueId(t,e){return {ptr:h(this.ptr,t.ptr,e)}}GetTrianglesUInt16Array(t,e,r){p(this.ptr,t.ptr,e,r);}GetTrianglesUInt32Array(t,e,r){f(this.ptr,t.ptr,e,r);}GetAttributeDataArrayForAllPoints(t,e,r,n,i){d(this.ptr,t.ptr,e.ptr,r,n,i);}},DT_INT8:x(),DT_UINT8:v(),DT_INT16:b(),DT_UINT16:_(),DT_UINT32:w(),DT_FLOAT32:M()}}))}(fetch(Vx())),Px.then((t=>{Ex=t,Px=void 0;})))}()),i&&t.push(function(){if(Tx)return;const t=function(t){let e;const r=WebAssembly.instantiateStreaming(t,{}).then((t=>{e=t.instance,e.exports.__wasm_call_ctors();})),n={NONE:\"\",OCTAHEDRAL:\"meshopt_decodeFilterOct\",QUATERNION:\"meshopt_decodeFilterQuat\",EXPONENTIAL:\"meshopt_decodeFilterExp\"},i={ATTRIBUTES:\"meshopt_decodeVertexBuffer\",TRIANGLES:\"meshopt_decodeIndexBuffer\",INDICES:\"meshopt_decodeIndexSequence\"};return {ready:r,supported:!0,decodeGltfBuffer(t,r,a,s,o,l){!function(t,e,r,n,i,a,s){const o=t.exports.sbrk,l=n+3&-4,u=o(l*i),c=o(a.length),h=new Uint8Array(t.exports.memory.buffer);h.set(a,c);const p=e(u,n,i,c,a.length);if(0===p&&s&&s(u,l,i),r.set(h.subarray(u,u+n*i)),o(u-o(0)),0!==p)throw new Error(`Malformed buffer data: ${p}`)}(e,e.exports[i[o]],t,r,a,s,e.exports[n[l]]);}}}(fetch(Cx()));return t.ready.then((()=>{Tx=t;}))}()),a)for(let e=0;e<a.length;e++)t.push(Zx(a[e],n,e,r));return (t.length?Promise.all(t):Promise.resolve()).then((()=>{if(e&&s)for(const{primitives:t}of s)for(const e of t)Nx(e,n);if(i&&s&&l)for(const t of l)jx(t,n);return n}))}))}function Wx(t,e){const r=t.json.bufferViews[e.bufferView],n=Dx[e.componentType];return new n(t.buffers[r.buffer],(e.byteOffset||0)+(r.byteOffset||0),e.count*(r.byteStride&&r.byteStride!==Rx[e.type]*n.BYTES_PER_ELEMENT?r.byteStride/n.BYTES_PER_ELEMENT:Rx[e.type]))}function Kx(t,e,r,n){const i=Dx[e.componentType],a=function(t){switch(t){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:return 1}}(i),s=t.json.bufferViews[e.bufferView],o=s.byteStride?s.byteStride/i.BYTES_PER_ELEMENT:Rx[e.type],l=r.float32,u=l.length/r.capacity;for(let t=0,r=0;t<e.count*o;t+=o,r+=u)for(let e=0;e<u;e++)l[r+e]=n[t+e]*a;r._trim();}function Jx(t,e,r){const n=t.indices,i=t.attributes,a={};a.indexArray=new Ls;const s=e.json.accessors[n],o=s.count/3;a.indexArray.reserve(o);const l=Wx(e,s);for(let t=0;t<o;t++)a.indexArray.emplaceBack(l[3*t],l[3*t+1],l[3*t+2]);a.indexArray._trim(),a.vertexArray=new As;const u=e.json.accessors[i.POSITION];a.vertexArray.reserve(u.count);const c=Wx(e,u);for(let t=0;t<u.count;t++)a.vertexArray.emplaceBack(c[3*t],c[3*t+1],c[3*t+2]);if(a.vertexArray._trim(),a.aabb=new xu(u.min,u.max),a.centroid=function(t,e){const r=[0,0,0],n=t.length;if(n>0){for(let i=0;i<n;i++){const n=3*t[i];r[0]+=e[n],r[1]+=e[n+1],r[2]+=e[n+2];}r[0]/=n,r[1]/=n,r[2]/=n;}return r}(l,c),void 0!==i.COLOR_0){const t=e.json.accessors[i.COLOR_0],r=Rx[t.type],n=Wx(e,t);a.colorArray=3===r?new As:new Ms,a.colorArray.resize(t.count),Kx(e,t,a.colorArray,n);}if(void 0!==i.NORMAL){a.normalArray=new As;const t=e.json.accessors[i.NORMAL];a.normalArray.resize(t.count);const r=Wx(e,t);Kx(e,t,a.normalArray,r);}if(void 0!==i.TEXCOORD_0&&r.length>0){a.texcoordArray=new $s;const t=e.json.accessors[i.TEXCOORD_0];a.texcoordArray.resize(t.count);const r=Wx(e,t);Kx(e,t,a.texcoordArray,r);}if(void 0!==i._FEATURE_ID_RGBA4444){const t=e.json.accessors[i._FEATURE_ID_RGBA4444];e.json.extensionsUsed&&e.json.extensionsUsed.includes(\"EXT_meshopt_compression\")&&(a.featureData=Wx(e,t));}void 0!==i._FEATURE_RGBA4444&&(a.featureData=new Uint32Array(Wx(e,e.json.accessors[i._FEATURE_RGBA4444]).buffer));const h=t.material;return a.material=function(t,e){const{emissiveFactor:r=[0,0,0],alphaMode:n=\"OPAQUE\",alphaCutoff:i=.5,normalTexture:a,occlusionTexture:s,emissiveTexture:o,doubleSided:l}=t,{baseColorFactor:u=[1,1,1,1],metallicFactor:c=1,roughnessFactor:h=1,baseColorTexture:p,metallicRoughnessTexture:f}=t.pbrMetallicRoughness||{},d=s?e[s.index]:void 0;if(s&&s.extensions&&s.extensions.KHR_texture_transform&&d){const t=s.extensions.KHR_texture_transform;d.offsetScale=[t.offset[0],t.offset[1],t.scale[0],t.scale[1]];}return {pbrMetallicRoughness:{baseColorFactor:new Ie(...u),metallicFactor:c,roughnessFactor:h,baseColorTexture:p?e[p.index]:void 0,metallicRoughnessTexture:f?e[f.index]:void 0},doubleSided:l,emissiveFactor:r,alphaMode:n,alphaCutoff:i,normalTexture:a?e[a.index]:void 0,occlusionTexture:d,emissionTexture:o?e[o.index]:void 0,defined:void 0===t.defined}}(void 0!==h?e.json.materials[h]:{defined:!1},r),a}function Qx(t,e,r){const{matrix:n,rotation:i,translation:a,scale:s,mesh:o,extras:l,children:u}=t,c={};if(c.matrix=n||O.mat4.fromRotationTranslationScale([],i||[0,0,0,1],a||[0,0,0],s||[1,1,1]),void 0!==o){c.meshes=r[o];const t=c.anchor=[0,0];for(const e of c.meshes){const{min:r,max:n}=e.aabb;t[0]+=r[0]+n[0],t[1]+=r[1]+n[1];}t[0]=Math.floor(t[0]/c.meshes.length/2),t[1]=Math.floor(t[1]/c.meshes.length/2);}if(l&&(l.id&&(c.id=l.id),l.lights&&(c.lights=function(t){if(!t.length)return [];const e=function(t){const e=atob(t),r=new Uint8Array(e.length);for(let t=0;t<e.length;t++)r[t]=e.codePointAt(t);return r}(t),r=[],n=e.length/24,i=new Uint16Array(e.buffer),a=new Float32Array(e.buffer);for(let t=0;t<n;t++){const e=i[2*t*6]/30,n=i[2*t*6+1]/30,s=i[2*t*6+10]/100,o=a[6*t+1],l=a[6*t+2],u=a[6*t+3],c=a[6*t+4],h=u-o,p=c-l,f=Math.hypot(h,p);r.push({pos:[o+.5*h,l+.5*p,n],normal:[p/f,-h/f,0],width:f,height:e,depth:s,points:[o,l,u,c]});}return r}(l.lights))),u){const t=[];for(const n of u)t.push(Qx(e.json.nodes[n],e,r));c.children=t;}return c}function tv(t){if(0===t.vertices.length||0===t.indices.length)return null;const e=new Yc(t.vertices,t.indices,8,256),[r,n]=[e.min.clone(),e.max.clone()];return {vertices:t.vertices,indices:t.indices,grid:e,min:r,max:n}}function ev(t){if(!t.extras||!t.extras.ground)return null;const e=t.extras.ground;if(!e||!Array.isArray(e)||0===e.length)return null;const r=e[0];if(!r||!Array.isArray(r)||0===r.length)return null;const n=[];for(const t of r){if(!Array.isArray(t)||2!==t.length)continue;const e=t[0],r=t[1];\"number\"==typeof e&&\"number\"==typeof r&&n.push(new q(e,r));}if(n.length<3)return null;n.length>1&&n[n.length-1].equals(n[0])&&n.pop();let i=0;for(let t=0;t<n.length;t++){const e=n[t],r=n[(t+1)%n.length],a=n[(t+2)%n.length];i+=(e.x-r.x)*(a.y-r.y)-(a.x-r.x)*(e.y-r.y);}i>0&&n.reverse();const a=hc(n.flatMap((t=>[t.x,t.y])),[]);return 0===a.length?null:{vertices:n,indices:a}}function rv(t,e){const r=[],n=[];let i=0;const a=[];for(const s of t){i=r.length;const t=s.vertexArray.float32,o=s.indexArray.uint16;for(let n=0;n<s.vertexArray.length;n++)a[0]=t[3*n+0],a[1]=t[3*n+1],a[2]=t[3*n+2],O.vec3.transformMat4(a,a,e),r.push(new q(a[0],a[1]));for(let t=0;t<3*s.indexArray.length;t++)n.push(o[t]+i);}if(n.length%3!=0)return null;for(let t=0;t<n.length;t+=3){const e=r[n[t+0]],i=r[n[t+1]],a=r[n[t+2]];(e.x-i.x)*(a.y-i.y)-(a.x-i.x)*(e.y-i.y)>0&&([n[t+1],n[t+2]]=[n[t+2],n[t+1]]);}return {vertices:r,indices:n}}function nv(t){const e=function(t,e){const r=[],n=WebGL2RenderingContext;if(t.json.textures)for(const i of t.json.textures){const a={magFilter:n.LINEAR,minFilter:n.NEAREST,wrapS:n.REPEAT,wrapT:n.REPEAT};void 0!==i.sampler&&Object.assign(a,t.json.samplers[i.sampler]),r.push({image:e[i.source],sampler:a,uploaded:!1});}return r}(t,t.images),r=function(t,e){const r=[];for(const n of t.json.meshes){const i=[];for(const r of n.primitives)i.push(Jx(r,t,e));r.push(i);}return r}(t,e),{scenes:n,scene:i,nodes:a}=t.json,s=n?n[i||0].nodes:a,o=[];for(const e of s)o.push(Qx(a[e],t,r));return function(t,e,r){const n={},i=new Set;for(let a=0;a<t.length;a++){const t=r[e[a]];if(!t.extras)continue;const s=t.extras[\"mapbox:footprint:version\"],o=t.extras[\"mapbox:footprint:id\"];(s||o)&&i.add(a),\"1.0.0\"===s&&o&&(n[o]=a);}for(let a=0;a<t.length;a++){if(i.has(a))continue;const s=t[a],o=r[e[a]];if(!o.extras)continue;let l=null;s.id in n&&(l=rv(t[n[s.id]].meshes,s.matrix)),l||(l=ev(o)),l&&(s.footprint=tv(l));}if(i.size>0){const e=Array.from(i.values()).sort(((t,e)=>t-e));for(let r=e.length-1;r>=0;r--)t.splice(e[r],1);}}(o,s,t.json.nodes),o}function iv(t){t.heightmap=new Float32Array(4096),t.heightmap.fill(-1);const e=t.vertexArray.float32,r=t.aabb.min[0]-1,n=t.aabb.min[1]-1,i=ey/(t.aabb.max[0]-r+2),a=ey/(t.aabb.max[1]-n+2);for(let s=0;s<e.length;s+=3){const o=e[s+2],l=(e[s+0]-r)*i|0,u=(e[s+1]-n)*a|0;o>t.heightmap[u*ey+l]&&(t.heightmap[u*ey+l]=o);}}function av(t,e){const r={};r.indexArray=new Ls,r.indexArray.reserve(4*t.length),r.vertexArray=new As,r.vertexArray.reserve(10*t.length),r.colorArray=new Ms,r.vertexArray.reserve(10*t.length);let n=0;for(const i of t){const t=Math.min(10,Math.max(4,1.3*i.height))*e,a=[-i.normal[1],i.normal[0],0],s=Math.min(.29,.1*i.width/i.depth),o=i.width-2*i.depth*e*(s+.01),l=O.vec3.scaleAndAdd([],i.pos,a,o/2),u=O.vec3.scaleAndAdd([],i.pos,a,-o/2),c=[l[0],l[1],l[2]+i.height],h=[u[0],u[1],u[2]+i.height],p=O.vec3.scaleAndAdd([],i.normal,a,s);O.vec3.scale(p,p,t);const f=O.vec3.scaleAndAdd([],i.normal,a,-s);O.vec3.scale(f,f,t),O.vec3.add(p,l,p),O.vec3.add(f,u,f),l[2]+=.1,u[2]+=.1,r.vertexArray.emplaceBack(p[0],p[1],p[2]),r.vertexArray.emplaceBack(f[0],f[1],f[2]),r.vertexArray.emplaceBack(l[0],l[1],l[2]),r.vertexArray.emplaceBack(u[0],u[1],u[2]),r.vertexArray.emplaceBack(c[0],c[1],c[2]),r.vertexArray.emplaceBack(h[0],h[1],h[2]),r.vertexArray.emplaceBack(l[0],l[1],l[2]),r.vertexArray.emplaceBack(u[0],u[1],u[2]),r.vertexArray.emplaceBack(p[0],p[1],p[2]),r.vertexArray.emplaceBack(f[0],f[1],f[2]);const d=o/t/2;r.colorArray.emplaceBack(-d-s,-1,d,.8),r.colorArray.emplaceBack(d+s,-1,d,.8),r.colorArray.emplaceBack(-d,0,d,1.3),r.colorArray.emplaceBack(d,0,d,1.3),r.colorArray.emplaceBack(d+s,-.8,d,.7),r.colorArray.emplaceBack(d+s,-.8,d,.7),r.colorArray.emplaceBack(0,0,d,1.3),r.colorArray.emplaceBack(0,0,d,1.3),r.colorArray.emplaceBack(d+s,-1.2,d,.8),r.colorArray.emplaceBack(d+s,-1.2,d,.8),r.indexArray.emplaceBack(6+n,4+n,8+n),r.indexArray.emplaceBack(7+n,9+n,5+n),r.indexArray.emplaceBack(0+n,1+n,2+n),r.indexArray.emplaceBack(1+n,3+n,2+n),n+=10;}const i={defined:!0,emissiveFactor:[0,0,0]},a={};return a.baseColorFactor=Ie.white,i.pbrMetallicRoughness=a,r.material=i,r.aabb=new xu([1/0,1/0,1/0],[-1/0,-1/0,-1/0]),r}class sv{constructor(t){this._stringToNumber={},this._numberToString=[];for(let e=0;e<t.length;e++){const r=t[e];this._stringToNumber[r]=e,this._numberToString[e]=r;}}encode(t){return this._stringToNumber[t]}decode(t){return this._numberToString[t]}}const ov=[\"id\",\"tile\",\"layer\",\"source\",\"sourceLayer\",\"state\"];class lv{constructor(t,e,r,n,i){this.type=\"Feature\",this._vectorTileFeature=t,this._z=e,this._x=r,this._y=n,this.properties=t.properties,this.id=i;}clone(){const t=new lv(this._vectorTileFeature,this._z,this._x,this._y,this.id);return this.state&&(t.state={...this.state}),this.layer&&(t.layer={...this.layer}),this.source&&(t.source=this.source),this.sourceLayer&&(t.sourceLayer=this.sourceLayer),t}get geometry(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._x,this._y,this._z).geometry),this._geometry}set geometry(t){this._geometry=t;}toJSON(){const t={type:\"Feature\",state:void 0,geometry:this.geometry,properties:this.properties};for(const e of ov)void 0!==this[e]&&(t[e]=this[e]);return t}}class uv{constructor(t,e){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new aa(Wr,16,0),this.featureIndexArray=new so,this.promoteId=e,this.is3DTile=!1,this.serializedLayersCache=new Map;}insert(t,e,r,n,i,a=0,s=0){const o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(r,n,i,a);const l=this.grid;for(let t=0;t<e.length;t++){const r=e[t],n=[1/0,1/0,-1/0,-1/0];for(let t=0;t<r.length;t++){const e=r[t];n[0]=Math.min(n[0],e.x),n[1]=Math.min(n[1],e.y),n[2]=Math.max(n[2],e.x),n[3]=Math.max(n[3],e.y);}0!==s&&(n[0]-=s,n[1]-=s,n[2]+=s,n[3]+=s),n[0]<Wr&&n[1]<Wr&&n[2]>=0&&n[3]>=0&&l.insert(o,n[0],n[1],n[2],n[3]);}}loadVTLayers(){if(!this.vtLayers){this.vtLayers=new fh.VectorTile(new pf(this.rawTileData)).layers,this.sourceLayerCoder=new sv(this.vtLayers?Object.keys(this.vtLayers).sort():[\"_geojsonTileLayer\"]),this.vtFeatures={};for(const t in this.vtLayers)this.vtFeatures[t]=[];}return this.vtLayers}query(t,e){const{tilespaceGeometry:r,transform:n,tileTransform:i,pixelPosMatrix:a,availableImages:s}=e;this.loadVTLayers(),this.serializedLayersCache.clear();const o=r.bufferedTilespaceBounds,l=this.grid.query(o.min.x,o.min.y,o.max.x,o.max.y,((t,e,n,i)=>ql(r.bufferedTilespaceGeometry,t,e,n,i)));l.sort(hv);let u=null;n.elevation&&l.length>0&&(u=uy.create(n.elevation,this.tileID));const c={};let h;for(let e=0;e<l.length;e++){const o=l[e];if(o===h)continue;h=o;const p=this.featureIndexArray.get(o);let f=null;this.is3DTile?this.loadMatchingModelFeature(c,p,t,r,n):this.loadMatchingFeature(c,p,t,s,((t,e,s,o=0)=>(f||(f=zl(t,this.tileID.canonical,i)),e.queryIntersectsFeature(r,t,s,f,this.z,n,a,u,o))));}return c}loadMatchingFeature(t,e,r,n,i){const{featureIndex:a,bucketIndex:s,sourceLayerIndex:o,layoutVertexArrayOffset:l}=e,u=this.bucketLayerIDs[s],c=r.layers,h=Object.keys(c);if(h.length&&!function(t,e){for(let r=0;r<t.length;r++)if(e.indexOf(t[r])>=0)return !0;return !1}(h,u))return;const p=r.sourceCache,f=this.sourceLayerCoder.decode(o),d=this.vtLayers[f].feature(a),m=this.getId(d,f);for(let e=0;e<u.length;e++){const r=u[e];if(!c[r])continue;const{styleLayer:s,targets:o}=c[r];let h={};void 0!==m&&(h=p.getFeatureState(s.sourceLayer,m));const f=!i||i(d,s,h,l);if(!f)continue;const y=new lv(d,this.z,this.x,this.y,m);y.tile=this.tileID.canonical,y.state=h;let g=this.serializedLayersCache.get(r);g||(g=s.serialize(),g.id=r,this.serializedLayersCache.set(r,g)),y.source=g.source,y.sourceLayer=g[\"source-layer\"],y.layer=nt({},g),y.layer.paint=cv(g.paint,s.paint,d,h,n),y.layer.layout=cv(g.layout,s.layout,d,h,n);let x=!1;for(const t of o){this.updateFeatureProperties(y,t);const{filter:e}=t;if(e)if(d.properties=y.properties,e.needGeometry){const t=El(d,!0);if(!e.filter(new Va(this.tileID.overscaledZ),t,this.tileID.canonical))continue}else if(!e.filter(new Va(this.tileID.overscaledZ),d))continue;x=!0,t.targetId&&this.addFeatureVariant(y,t);}x&&this.appendToResult(t,r,a,y,f);}}loadMatchingModelFeature(t,e,r,n,i){const a=this.bucketLayerIDs[0][0],s=r.layers;if(!s[a])return;const{styleLayer:o,targets:l}=s[a];if(\"model\"!==o.type)return;const u=n.tile,c=e.featureIndex,h=u.getBucket(o);if(!(h&&h instanceof yy))return;const p=function(t,e,r,n){const i=t.getNodesInfo()[e];if(i.hiddenByReplacement||!i.node.meshes)return;let a=Number.MAX_VALUE;const s=i.node,o=r.tile,l=n.calculatePosMatrix(o.tileID.toUnwrapped(),n.worldSize),u=i.evaluatedScale;let c=0;n.elevation&&s.elevation&&(c=s.elevation*n.elevation.exaggeration()),O.mat4.translate(l,l,[(s.anchor?s.anchor[0]:0)*(u[0]-1),(s.anchor?s.anchor[1]:0)*(u[1]-1),c]),O.mat4.scale(l,l,u);const h=r.queryGeometry,p=h.isPointQuery()?h.screenBounds:h.screenGeometry,f=function(t){const e=O.mat4.multiply([],l,t.matrix);O.mat4.multiply(e,n.expandedFarZProjMatrix,e);for(let r=0;r<t.meshes.length;++r){const i=t.meshes[r];if(r===t.lightMeshIndex)continue;const s=Om(p,n,e,i.aabb);null!=s&&(a=Math.min(s,a));}if(t.children)for(const e of t.children)f(e);};if(f(s),a===Number.MAX_VALUE)return;const d=new il(0,0);return by(o.tileID.canonical,d,i.node.anchor[0],i.node.anchor[1]),{intersectionZ:a,position:d,feature:i.feature}}(h,c,n,i);if(!p)return;const{z:f,x:d,y:m}=u.tileID.canonical,{feature:y,intersectionZ:g,position:x}=p;let v={};void 0!==y.id&&(v=r.sourceCache.getFeatureState(o.sourceLayer,y.id));const b=new lv({},f,d,m,y.id);b.tile=this.tileID.canonical,b.state=v,b.properties=y.properties,b.geometry={type:\"Point\",coordinates:[x.lng,x.lat]};let _=this.serializedLayersCache.get(a);_||(_=o.serialize(),_.id=a,this.serializedLayersCache.set(a,_)),b.source=_.source,b.sourceLayer=_[\"source-layer\"],b.layer=nt({},_);let w=!1;for(const t of l){this.updateFeatureProperties(b,t);const{filter:e}=t;if(e)if(y.properties=b.properties,e.needGeometry){if(!e.filter(new Va(this.tileID.overscaledZ),y,this.tileID.canonical))continue}else if(!e.filter(new Va(this.tileID.overscaledZ),y))continue;w=!0,t.targetId&&this.addFeatureVariant(b,t);}w&&this.appendToResult(t,a,c,b,g);}updateFeatureProperties(t,e,r){if(e.properties){const n={};for(const i in e.properties){const a=e.properties[i].evaluate({zoom:this.z},t._vectorTileFeature,t.state,t.tile,r);null!=a&&(n[i]=a);}t.properties=n;}}addFeatureVariant(t,e,r){const n={target:e.target,namespace:e.namespace};e.properties&&(n.properties=t.properties),t.variants=t.variants||{},t.variants[e.targetId]=t.variants[e.targetId]||[],t.variants[e.targetId].push(n);}appendToResult(t,e,r,n,i){let a=t[e];void 0===a&&(a=t[e]=[]),a.push({featureIndex:r,feature:n,intersectionZ:i});}lookupSymbolFeatures(t,e,r,n,i){const a={};this.loadVTLayers();for(const s of t)this.loadMatchingFeature(a,{bucketIndex:e,sourceLayerIndex:r,featureIndex:s,layoutVertexArrayOffset:0},n,i);return a}loadFeature(t){const{featureIndex:e,sourceLayerIndex:r}=t;this.loadVTLayers();const n=this.sourceLayerCoder.decode(r),i=this.vtFeatures[n];if(i[e])return i[e];const a=this.vtLayers[n].feature(e);return i[e]=a,a}hasLayer(t){for(const e of this.bucketLayerIDs)for(const r of e)if(t===r)return !0;return !1}getId(t,e){let r=t.id;if(this.promoteId){const n=\"string\"==typeof this.promoteId?this.promoteId:this.promoteId[e];null!=n&&(r=t.properties[n]),\"boolean\"==typeof r&&(r=Number(r));}return r}}function cv(t,e,r,n,i){return ut(t,((t,a)=>{const s=e instanceof Ua?e.get(a):null;return s&&s.evaluate?s.evaluate(r,n,i):s}))}function hv(t,e){return e-t}oa(uv,\"FeatureIndex\",{omit:[\"rawTileData\",\"sourceLayerCoder\"]});const pv=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class fv{static from(t){if(!(t instanceof ArrayBuffer))throw new Error(\"Data must be an instance of ArrayBuffer.\");const[e,r]=new Uint8Array(t,0,2);if(219!==e)throw new Error(\"Data does not appear to be in a KDBush format.\");const n=r>>4;if(1!==n)throw new Error(`Got v${n} data when expected v1.`);const i=pv[15&r];if(!i)throw new Error(\"Unrecognized array type.\");const[a]=new Uint16Array(t,2,1),[s]=new Uint32Array(t,4,1);return new fv(s,a,i,t)}constructor(t,e=64,r=Float64Array,n){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=r,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const i=pv.indexOf(this.ArrayType),a=2*t*this.ArrayType.BYTES_PER_ELEMENT,s=t*this.IndexArrayType.BYTES_PER_ELEMENT,o=(8-s%8)%8;if(i<0)throw new Error(`Unexpected typed array class: ${r}.`);n&&n instanceof ArrayBuffer?(this.data=n,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+s+o,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+a+s+o),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+s+o,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+i]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t);}add(t,e){const r=this._pos>>1;return this.ids[r]=r,this.coords[this._pos++]=t,this.coords[this._pos++]=e,r}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return dv(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,r,n){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");const{ids:i,coords:a,nodeSize:s}=this,o=[0,i.length-1,0],l=[];for(;o.length;){const u=o.pop()||0,c=o.pop()||0,h=o.pop()||0;if(c-h<=s){for(let s=h;s<=c;s++){const o=a[2*s],u=a[2*s+1];o>=t&&o<=r&&u>=e&&u<=n&&l.push(i[s]);}continue}const p=h+c>>1,f=a[2*p],d=a[2*p+1];f>=t&&f<=r&&d>=e&&d<=n&&l.push(i[p]),(0===u?t<=f:e<=d)&&(o.push(h),o.push(p-1),o.push(1-u)),(0===u?r>=f:n>=d)&&(o.push(p+1),o.push(c),o.push(1-u));}return l}within(t,e,r){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");const{ids:n,coords:i,nodeSize:a}=this,s=[0,n.length-1,0],o=[],l=r*r;for(;s.length;){const u=s.pop()||0,c=s.pop()||0,h=s.pop()||0;if(c-h<=a){for(let r=h;r<=c;r++)xv(i[2*r],i[2*r+1],t,e)<=l&&o.push(n[r]);continue}const p=h+c>>1,f=i[2*p],d=i[2*p+1];xv(f,d,t,e)<=l&&o.push(n[p]),(0===u?t-r<=f:e-r<=d)&&(s.push(h),s.push(p-1),s.push(1-u)),(0===u?t+r>=f:e+r>=d)&&(s.push(p+1),s.push(c),s.push(1-u));}return o}}function dv(t,e,r,n,i,a){if(i-n<=r)return;const s=n+i>>1;mv(t,e,s,n,i,a),dv(t,e,r,n,s-1,1-a),dv(t,e,r,s+1,i,1-a);}function mv(t,e,r,n,i,a){for(;i>n;){if(i-n>600){const s=i-n+1,o=r-n+1,l=Math.log(s),u=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*u*(s-u)/s)*(o-s/2<0?-1:1);mv(t,e,r,Math.max(n,Math.floor(r-o*u/s+c)),Math.min(i,Math.floor(r+(s-o)*u/s+c)),a);}const s=e[2*r+a];let o=n,l=i;for(yv(t,e,n,r),e[2*i+a]>s&&yv(t,e,n,i);o<l;){for(yv(t,e,o,l),o++,l--;e[2*o+a]<s;)o++;for(;e[2*l+a]>s;)l--;}e[2*n+a]===s?yv(t,e,n,l):(l++,yv(t,e,l,i)),l<=r&&(n=l+1),r<=l&&(i=l-1);}}function yv(t,e,r,n){gv(t,r,n),gv(e,2*r,2*n),gv(e,2*r+1,2*n+1);}function gv(t,e,r){const n=t[e];t[e]=t[r],t[r]=n;}function xv(t,e,r,n){const i=t-r,a=e-n;return i*i+a*a}t.$=Ha,t.A=tr,t.B=2,t.C=jf,t.D=zy,t.E=we,t.F=$f,t.G=class extends Zm{},t.H=hr,t.I=wg,t.J=Te,t.K=Xa,t.L=Oi,t.M=Li,t.N=Fi,t.O=Hi,t.P=q,t.Q=Za,t.R=te,t.S=Qi,t.T=dm,t.U=Wi,t.V=Zm,t.W=Bn,t.X=Cn,t.Y=Tn,t.Z=yr,t._=Se,t.a=function(t){return St.API_CDN_URL_REGEX.test(t)},t.a$=lv,t.a0=Ni,t.a1=Ri,t.a2=function(t){const e=t.value;let r=[];if(!e)return r;const n=hr(e);return \"string\"!==n?(r=r.concat([new Zm(t.key,e,`string expected, \"${n}\" found`)]),r):(Hm(e,!0)||(r=r.concat([new Zm(t.key,e,`invalid url \"${e}\"`)])),r)},t.a3=Ya,t.a4=La,t.a5=Ga,t.a6=ja,t.a7=class{constructor(t){this.specification=t;}possiblyEvaluate(t,e){return yt(t.expression.evaluate(e))}interpolate(t,e,r){return {x:ze(t.x,e.x,r),y:ze(t.y,e.y,r),z:ze(t.z,e.z,r),azimuthal:ze(t.azimuthal,e.azimuthal,r),polar:ze(t.polar,e.polar,r)}}},t.a8=Va,t.a9=Ji,t.aA=cl,t.aB=class{constructor(t){this.entries={},this.scheduler=t;}request(t,e,r,n){const i=this.entries[t]=this.entries[t]||{callbacks:[]};if(i.result){const[t,r]=i.result;return this.scheduler?this.scheduler.add((()=>{n(t,r);}),e):n(t,r),()=>{}}return i.callbacks.push(n),i.cancel||(i.cancel=r(((r,n)=>{i.result=[r,n];for(const t of i.callbacks)this.scheduler?this.scheduler.add((()=>{t(r,n);}),e):t(r,n);setTimeout((()=>delete this.entries[t]),3e3);}))),()=>{i.result||(i.callbacks=i.callbacks.filter((t=>t!==n)),i.callbacks.length||(i.cancel(),delete this.entries[t]));}}},t.aC=us,t.aD=function(t,e,r){const n=JSON.stringify(t.request);return t.data&&(this.deduped.entries[n]={result:[null,t.data]}),this.deduped.request(n,{type:\"parseTile\",isSymbolTile:t.isSymbolTile,zoom:t.tileZoom},(e=>{const n=ie(t.request,((t,n,i,a)=>{t?e(t):n&&e(null,{vectorTile:r?void 0:new fh.VectorTile(new pf(n)),rawData:n,cacheControl:i,expires:a});}));return ()=>{n.cancel(),e();}}),e)},t.aE=function(t){Yt++,Yt>Nt&&(t.getActor().send(\"enforceCacheSizeLimit\",Ot),Yt=0);},t.aF=function(t){return t<=1?1:Math.pow(2,Math.floor(Math.log(t)/Math.LN2))},t.aG=iu,t.aH=_m,t.aI=Pm,t.aJ=vm,t.aK=function(t,e){const r=document.createElement(\"video\");r.muted=!0,r.onloadstart=function(){e(null,r);};for(let e=0;e<t.length;e++){const n=document.createElement(\"source\");ae(t[e])||(r.crossOrigin=\"Anonymous\"),n.src=t[e],r.appendChild(n);}return {cancel:()=>{}}},t.aL=mm,t.aM=function(t){return fetch(t).then((t=>t.arrayBuffer())).then((e=>Hx(e,0,t)))},t.aN=nv,t.aO=class{constructor(t,e,r,n){this.id=t,this.position=null!=e?new il(e[0],e[1]):new il(0,0),this.orientation=null!=r?r:[0,0,0],this.nodes=n,this.uploaded=!1,this.aabb=new xu([1/0,1/0,1/0],[-1/0,-1/0,-1/0]),this.matrix=[];}_applyTransformations(t,e){if(O.mat4.multiply(t.matrix,e,t.matrix),t.meshes)for(const e of t.meshes){const r=xu.applyTransformFast(e.aabb,t.matrix);this.aabb.encapsulate(r);}if(t.children)for(const e of t.children)this._applyTransformations(e,t.matrix);}computeBoundsAndApplyParent(){const t=O.mat4.identity([]);for(const e of this.nodes)this._applyTransformations(e,t);}computeModelMatrix(t,e,r,n,i,a,s=!1){ny(this.matrix,this,t.transform,this.position,e,r,n,i,a,s);}upload(t){if(!this.uploaded){for(const e of this.nodes)sy(e,t);for(const t of this.nodes)oy(t);this.uploaded=!0;}}destroy(){for(const t of this.nodes)ly(t);}},t.aP=ot,t.aQ=wd,t.aR=pl,t.aS=fl,t.aT=bs,t.aU=Ls,t.aV=at,t.aW=Js,t.aX=tm,t.aY=function(){Ba.isLoading()||Ba.isLoaded()||\"deferred\"!==ka()||Ta();},t.aZ=Wa,t.a_=El,t.aa=bl,t.ab=O,t.ac=tt,t.ad=Ua,t.ae=Fu,t.af=ze,t.ag=Wr,t.ah=Ee,t.ai=X,t.aj=Ie,t.ak=class{constructor(t){this.specification=t;}possiblyEvaluate(t,e){return function([t,e]){const r=yt([1,t,e]);return {x:r.x,y:r.y,z:r.z}}(t.expression.evaluate(e))}interpolate(t,e,r){return {x:ze(t.x,e.x,r),y:ze(t.y,e.y,r),z:ze(t.z,e.z,r)}}},t.al=function(t,e,r=0,n=!0){const i=new q(r,r),a=t.sub(i),s=e.add(i),o=[a,new q(s.x,a.y),s,new q(a.x,s.y)];return n&&o.push(a.clone()),o},t.am=function(t,e){const r=[];for(let n=0;n<t.length;n++){const i=et(n-1,-1,t.length-1),a=et(n+1,-1,t.length-1),s=t[n],o=t[a],l=t[i].sub(s).unit(),u=o.sub(s).unit(),c=u.angleWithSep(l.x,l.y),h=l.add(u).unit().mult(-1*e/Math.sin(c/2));r.push(s.add(h));}return r},t.an=Md,t.ao=ql,t.ap=function(t,e,r=0){return O.vec3.fromValues(((e.x-r)*t.scale-t.x)*Wr,(e.y*t.scale-t.y)*Wr,dl(e.z,e.y))},t.aq=hu,t.ar=zp,t.as=function(t){let e=1/0,r=1/0,n=-1/0,i=-1/0;for(const a of t)e=Math.min(e,a.x),r=Math.min(r,a.y),n=Math.max(n,a.x),i=Math.max(i,a.y);return {min:new q(e,r),max:new q(n,i)}},t.at=ul,t.au=jl,t.av=wl,t.aw=Q,t.ax=Yo,t.ay=function(t,e){const r={};for(let n=0;n<e.length;n++){const i=e[n];i in t&&(r[i]=t[i]);}return r},t.az=al,t.b=function(t){return St.API_FONTS_REGEX.test(t)},t.b$=Bm,t.b0=xt,t.b1=Ap,t.b2=Uc,t.b3=zl,t.b4=xs,t.b5=Ys,t.b6=cu,t.b7=po,t.b8=hc,t.b9=hm,t.bA=kh,t.bB=pd,t.bC=hd,t.bD=Ef,t.bE=fv,t.bF=et,t.bG=bt,t.bH=hl,t.bI=function(t,e,r){t[4*e+0]=r[0],t[4*e+1]=r[1],t[4*e+2]=r[2],t[4*e+3]=r[3];},t.bJ=Eo,t.bK=Ao,t.bL=So,t.bM=Mo,t.bN=wo,t.bO=il,t.bP=$d,t.bQ=nu,t.bR=gu,t.bS=Tm,t.bT=ru,t.bU=Pu,t.bV=function(t,e,r,n,i,a,s,o,l){if(\"globe\"===l.name)return Pu(t,e,new ru(r,n,i),!1);const u=wd({z:r,x:n,y:i},l);return new xu([(a+u.x/u.scale)*e,e*(u.y/u.scale),s],[(a+u.x2/u.scale)*e,e*(u.y2/u.scale),o])},t.bW=function(t,e,r){let n=0;for(let r=0;r<2;++r){const i=0;t[r]>i&&(n+=(t[r]-i)*(t[r]-i)),e[r]<i&&(n+=(i-e[r])*(i-e[r]));}return n},t.bX=ml,t.bY=Zo,t.bZ=function(t){const e=O.mat4.identity(new Float64Array(16));O.mat4.multiply(e,t.pixelMatrix,t.globeMatrix);const r=[0,Jo,0],n=[0,Qo,0];return O.vec3.transformMat4(r,r,e),O.vec3.transformMat4(n,n,e),[r[0]>0&&r[0]<=t.width&&r[1]>0&&r[1]<=t.height&&!Nu(t,new il(t.center.lat,90)),n[0]>0&&n[0]<=t.width&&n[1]>0&&n[1]<=t.height&&!Nu(t,new il(t.center.lat,-90))]},t.b_=function(t,e){const{scale:r}=t.tileTransform,n=r*Wr/(t.tileSize*Math.pow(2,e.zoom-t.tileID.overscaledZ+t.tileID.canonical.z));return O.mat2.scale(new Float32Array(4),e.inverseAdjustmentMatrix,[n,n])},t.ba=function(t,e){const r=Fu(e.zoom);if(0===r)return Au(t);const n=zu(t),i=Eu(n),a=ul(n.getWest())*e.worldSize,s=ul(n.getEast())*e.worldSize,o=cl(n.getNorth())*e.worldSize,l=cl(n.getSouth())*e.worldSize,u=[a,o,0],c=[s,o,0],h=[a,l,0],p=[s,l,0],f=O.mat4.invert([],e.globeMatrix);return O.vec3.transformMat4(u,u,f),O.vec3.transformMat4(c,c,f),O.vec3.transformMat4(h,h,f),O.vec3.transformMat4(p,p,f),i[0]=Su(i[0],h,r),i[1]=Su(i[1],p,r),i[2]=Su(i[2],c,r),i[3]=Su(i[3],u,r),xu.fromPoints(i)},t.bb=Vu,t.bc=ku,t.bd=Su,t.be=vs,t.bf=uu,t.bg=Ax,t.bh=pf,t.bi=ie,t.bj=function(t){const e=[];for(const r in t)e.push(t[r]);return e},t.bk=function(t,e){const r=[];for(const n in t)n in e||r.push(n);return r},t.bl=rt,t.bm=[\"type\",\"source\",\"source-layer\",\"minzoom\",\"maxzoom\",\"filter\",\"layout\"],t.bn=$,t.bo=function(t,e){const{x:r,y:n}=t.point,i=Ru(r,n,t.worldSize/t._pixelsPerMercatorPixel,0,0);return O.mat4.multiply(i,i,Cu(Au(e)))},t.bp=Qp,t.bq=xf,t.br=Jp,t.bs=function(t,e,r,n,i){const a=5*e+2;t.float32[a+0]=r,t.float32[a+1]=n,t.float32[a+2]=i;},t.bt=Wd,t.bu=Uf,t.bv=Vl,t.bw=Zp,t.bx=bh,t.by=Xm,t.bz=Eh,t.c=Pt,t.c$=(t,e,r,n,i,a,s,o)=>{const l=t.transform,u=l.pitch<15?Ep(.07,.7,Q((14-l.zoom)/5,0,1)):.07,c=\"none\"===r.paint.get(\"line-trim-color-use-theme\").constantOr(\"default\");return {u_matrix:Tp(t,e,r,n),u_texsize:e.imageAtlasTexture?e.imageAtlasTexture.size:[0,0],u_pixels_to_tile_units:l.calculatePixelsToTileUnitsMatrix(e),u_device_pixel_ratio:i,u_width_scale:a,u_floor_width_scale:s,u_image:0,u_tile_units_to_pixels:kp(e,l),u_units_to_pixels:[1/l.pixelsToGLUnits[0],1/l.pixelsToGLUnits[1]],u_alpha_discard_threshold:0,u_trim_offset:o,u_trim_fade_range:r.paint.get(\"line-trim-fade-range\"),u_trim_color:r.paint.get(\"line-trim-color\").toRenderColor(c?null:r.lut).toArray01(),u_emissive_strength:r.paint.get(\"line-emissive-strength\"),u_zbias_factor:u,u_tile_to_meter:vl(e.tileID.canonical,0)}},t.c0=km,t.c1=function(t){const e=km(t,!0);return O.mat2.invert([],[e[0],e[1],e[4],e[5]])},t.c2=pu,t.c3=function(t){const{x:e,y:r}=t.point,{lng:n,lat:i}=t._center;return Ru(e,r,t.worldSize,n,i)},t.c4=Z,t.c5=au,t.c6=Xo,t.c7=function(t){const e=Math.round((t+45+360)%360/90)%4;return H[e]},t.c8=45,t.c9=ll,t.cA=class extends _o{constructor(t){super(t),this.current=ko;}set(t,e,r){if(this.fetchUniformLocation(t,e))for(let t=0;t<9;t++)if(r[t]!==this.current[t]){this.current=r,this.gl.uniformMatrix3fv(this.location,!1,r);break}}},t.cB=W,t.cC=function(t,e,r){const n=Fu(r.zoom),i=t.style.map._antialias,a=e.options.extStandardDerivativesForceOff||t.terrain&&t.terrain.exaggeration()>0;return 0===n&&!i&&!a},t.cD=function(t){const e=t.pixelsPerMeter,r=e/hl(1,t.center.lat),n=O.mat4.identity(new Float64Array(16));return O.mat4.translate(n,n,[t.point.x,t.point.y,0]),O.mat4.scale(n,n,[r,r,e]),Float32Array.from(n)},t.cE=zu,t.cF=function(t){const e=ml-5;t=Q(t,-e,e)/e*90;const r=Math.pow(Math.abs(Math.sin(X(t))),3);return Math.round(r*(Ko.length-1))},t.cG=function(t,e,r,n){const i=e.getNorth(),a=e.getSouth(),s=e.getWest(),o=e.getEast(),l=1<<t.z,u=o-s,c=i-a,h=u/Wo,p=-c/Ko[r],f=[0,h,0,p,0,0,i,s,0];if(t.z>0){const t=180/n;O.mat3.multiply(f,f,[t/u+1,0,0,0,t/c+1,0,-.5*t/h,.5*t/p,1]);}return f[2]=l,f[5]=t.x,f[8]=t.y,f},t.cH=Au,t.cI=function(t,e,r){const n=O.mat4.identity(new Float64Array(16)),i=(e/(1<<t)-.5)*Math.PI*2;return O.mat4.rotateY(n,r.globeMatrix,i),Float32Array.from(n)},t.cJ=class{isDataAvailableAtPoint(t){const e=this._source();if(this.isUsingMockSource()||!e||t.y<0||t.y>1)return !1;const r=e.getSource().maxzoom,n=1<<r,i=Math.floor(t.x),a=Math.floor((t.x-i)*n),s=Math.floor(t.y*n),o=this.findDEMTileFor(new iu(r,i,r,a,s));return !(!o||!o.dem)}getAtPointOrZero(t,e=0){return this.getAtPoint(t,e)||0}getAtPoint(t,e,r=!0){if(this.isUsingMockSource())return null;null==e&&(e=null);const n=this._source();if(!n)return e;if(t.y<0||t.y>1)return e;const i=n.getSource().maxzoom,a=1<<i,s=Math.floor(t.x),o=t.x-s,l=new iu(i,s,i,Math.floor(o*a),Math.floor(t.y*a)),u=this.findDEMTileFor(l);if(!u||!u.dem)return e;const c=u.dem,h=1<<u.tileID.canonical.z,p=(o*h-u.tileID.canonical.x)*c.dim,f=(t.y*h-u.tileID.canonical.y)*c.dim,d=Math.floor(p),m=Math.floor(f);return (r?this.exaggeration():1)*ze(ze(c.get(d,m),c.get(d,m+1),f-m),ze(c.get(d+1,m),c.get(d+1,m+1),f-m),p-d)}getAtTileOffset(t,e,r){const n=1<<t.canonical.z;return this.getAtPointOrZero(new bl(t.wrap+(t.canonical.x+e/Wr)/n,(t.canonical.y+r/Wr)/n))}getAtTileOffsetFunc(t,e,r,n){return i=>{const a=this.getAtTileOffset(t,i.x,i.y),s=n.upVector(t.canonical,i.x,i.y),o=n.upVectorScale(t.canonical,e,r).metersToTile;return O.vec3.scale(s,s,a*o),s}}getForTilePoints(t,e,r,n){if(this.isUsingMockSource())return !1;const i=uy.create(this,t,n);return !!i&&(e.forEach((t=>{t[2]=this.exaggeration()*i.getElevationAt(t[0],t[1],r);})),!0)}getMinMaxForTile(t){if(this.isUsingMockSource())return null;const e=this.findDEMTileFor(t);if(!e||!e.dem)return null;const r=e.dem.tree,n=e.tileID,i=1<<t.canonical.z-n.canonical.z;let a=t.canonical.x/i-n.canonical.x,s=t.canonical.y/i-n.canonical.y,o=0;for(let e=0;e<t.canonical.z-n.canonical.z&&!r.leaves[o];e++){a*=2,s*=2;const t=2*Math.floor(s)+Math.floor(a);o=r.childOffsets[o]+t,a%=1,s%=1;}return {min:this.exaggeration()*r.minimums[o],max:this.exaggeration()*r.maximums[o]}}getMinElevationBelowMSL(){throw new Error(\"Pure virtual method called.\")}raycast(t,e,r){throw new Error(\"Pure virtual method called.\")}pointCoordinate(t){throw new Error(\"Pure virtual method called.\")}_source(){throw new Error(\"Pure virtual method called.\")}isUsingMockSource(){throw new Error(\"Pure virtual method called.\")}exaggeration(){throw new Error(\"Pure virtual method called.\")}findDEMTileFor(t){throw new Error(\"Pure virtual method called.\")}get visibleDemTiles(){throw new Error(\"Getter must be implemented in subclass.\")}getMinMaxForVisibleTiles(){const t=this.visibleDemTiles;if(0===t.length)return null;let e=!1,r=Number.MAX_VALUE,n=Number.MIN_VALUE;for(const i of t){const t=this.getMinMaxForTile(i.tileID);t&&(r=Math.min(r,t.min),n=Math.max(n,t.max),e=!0);}return e?{min:r,max:n}:null}},t.cK=oc,t.cL=vu,t.cM=function(t,e){return [Math.pow(t[0],2.2)*e,Math.pow(t[1],2.2)*e,Math.pow(t[2],2.2)*e]},t.cN=Lu,t.cO=At,t.cP=Mt,t.cQ=256,t.cR=function(t,e){const r=[0,0,0],n=Vu(Au(e.canonical));return O.vec3.transformMat4(r,r,n),O.vec3.transformMat4(r,r,t),r},t.cS=t=>({u_camera_to_center_distance:new Mo(t),u_extrude_scale:new Bo(t),u_device_pixel_ratio:new Mo(t),u_matrix:new Eo(t),u_inv_rot_matrix:new Eo(t),u_merc_center:new Ao(t),u_tile_id:new So(t),u_zoom_transition:new Mo(t),u_up_dir:new So(t),u_emissive_strength:new Mo(t)}),t.cT=t=>({u_matrix:new Eo(t),u_pixels_to_tile_units:new Bo(t),u_device_pixel_ratio:new Mo(t),u_width_scale:new Mo(t),u_floor_width_scale:new Mo(t),u_units_to_pixels:new Ao(t),u_dash_image:new wo(t),u_gradient_image:new wo(t),u_image_height:new Mo(t),u_texsize:new Ao(t),u_tile_units_to_pixels:new Mo(t),u_alpha_discard_threshold:new Mo(t),u_trim_offset:new Ao(t),u_trim_fade_range:new Ao(t),u_trim_color:new Io(t),u_emissive_strength:new Mo(t),u_zbias_factor:new Mo(t),u_tile_to_meter:new Mo(t)}),t.cU=t=>({u_matrix:new Eo(t),u_texsize:new Ao(t),u_pixels_to_tile_units:new Bo(t),u_device_pixel_ratio:new Mo(t),u_width_scale:new Mo(t),u_floor_width_scale:new Mo(t),u_image:new wo(t),u_units_to_pixels:new Ao(t),u_tile_units_to_pixels:new Mo(t),u_alpha_discard_threshold:new Mo(t),u_trim_offset:new Ao(t),u_trim_fade_range:new Ao(t),u_trim_color:new Io(t),u_emissive_strength:new Mo(t),u_zbias_factor:new Mo(t),u_tile_to_meter:new Mo(t)}),t.cV=Cs,t.cW=Xp,t.cX=tf,t.cY=Gu,t.cZ=(t,e,r,n,i,a)=>{const s=t.transform,o=\"globe\"===s.projection.name;let l;if(\"map\"===a.paint.get(\"circle-pitch-alignment\"))if(o){const t=Lu(s.zoom,e.canonical)*s._pixelsPerMercatorPixel;l=Float32Array.from([t,0,0,t]);}else l=s.calculatePixelsToTileUnitsMatrix(r);else l=new Float32Array([s.pixelsToGLUnits[0],0,0,s.pixelsToGLUnits[1]]);const u={u_camera_to_center_distance:t.transform.getCameraToCenterDistance(s.projection),u_matrix:t.translatePosMatrix(e.projMatrix,r,a.paint.get(\"circle-translate\"),a.paint.get(\"circle-translate-anchor\")),u_device_pixel_ratio:Dt.devicePixelRatio,u_extrude_scale:l,u_inv_rot_matrix:$u,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0],u_emissive_strength:a.paint.get(\"circle-emissive-strength\")};if(o){u.u_inv_rot_matrix=n,u.u_merc_center=i,u.u_tile_id=[e.canonical.x,e.canonical.y,1<<e.canonical.z],u.u_zoom_transition=Fu(s.zoom);const t=i[0]*Wr,r=i[1]*Wr;u.u_up_dir=s.projection.upVector(new ru(0,0,0),t,r);}return u},t.c_=Bp,t.ca=Io,t.cb=function(t,e,r){const n=Math.sqrt(t*t+e*e+r*r),i=n>0?Math.acos(r/n)*Y:0;let a=0!==t||0!==e?Math.atan2(-e,-t)*Y+90:0;return a<0&&(a+=360),[n,a,i]},t.cc=vl,t.cd=xu,t.ce=yt,t.cf=function(t){return [Math.pow(t[0],1/2.2),Math.pow(t[1],1/2.2),Math.pow(t[2],1/2.2)]},t.cg=function(t,e){return t.readFields(Oy,{icons:[]},e)},t.ch=function(t){return t({pluginStatus:Sa,pluginURL:Ia}),Ea.on(\"pluginStateChange\",t),t},t.ci=Ty,t.cj=Kf,t.ck=Wf,t.cl=re,t.cm=Pa,t.cn=Rt,t.co=ge,t.cp=ht,t.cq=function(t){const e=t.indexOf(ls);return e>=0?t.slice(0,e):t},t.cr=function(t){return t.indexOf(ls)>=0},t.cs=function(t){const e=t.indexOf(ls);return e>=0?t.slice(e+1):\"\"},t.ct=function(t){const e=[],r=t.id;return void 0===r&&e.push({message:`layers.${r}: missing required property \"id\"`}),void 0===t.render&&e.push({message:`layers.${r}: missing required method \"render\"`}),t.renderingMode&&\"2d\"!==t.renderingMode&&\"3d\"!==t.renderingMode&&e.push({message:`layers.${r}: property \"renderingMode\" must be either \"2d\" or \"3d\"`}),e},t.cu=function(t,e,r,n){return \"custom\"===t.type?new zm(t,e):new _y[t.type](t,e,r,n)},t.cv=ct,t.cw=class extends lv{constructor(t,e){super(t._vectorTileFeature,t._z,t._x,t._y,t.id),t.state&&(this.state={...t.state}),this.target=e.target,this.namespace=e.namespace,e.properties&&(this.properties=e.properties),this.target&&(\"featuresetId\"in this.target&&!this.target.importId||\"layerId\"in this.target)&&(this.source=t.source,this.sourceLayer=t.sourceLayer,this.layer=t.layer);}toJSON(){const t=super.toJSON();return t.target=this.target,t.namespace=this.namespace,t}},t.cx=Ea,t.cy=ne,t.cz=Po,t.d=function(t){return St.API_TILEJSON_REGEX.test(t)},t.d$=ut,t.d0=(t,e,r,n,i,a,s,o,l)=>{const u=t.transform,c=u.calculatePixelsToTileUnitsMatrix(e),h=\"none\"===r.paint.get(\"line-trim-color-use-theme\").constantOr(\"default\"),p=u.pitch<15?Ep(.07,.7,Q((14-u.zoom)/5,0,1)):.07;return {u_matrix:Tp(t,e,r,n),u_pixels_to_tile_units:c,u_device_pixel_ratio:a,u_width_scale:s,u_floor_width_scale:o,u_units_to_pixels:[1/u.pixelsToGLUnits[0],1/u.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:i,u_texsize:Vp(r)&&e.lineAtlasTexture?e.lineAtlasTexture.size:[0,0],u_tile_units_to_pixels:kp(e,t.transform),u_alpha_discard_threshold:0,u_trim_offset:l,u_trim_fade_range:r.paint.get(\"line-trim-fade-range\"),u_trim_color:r.paint.get(\"line-trim-color\").toRenderColor(h?null:r.lut).toArray01(),u_emissive_strength:r.paint.get(\"line-emissive-strength\"),u_zbias_factor:p,u_tile_to_meter:vl(e.tileID.canonical,0)}},t.d1=st,t.d2=lc,t.d3=ap,t.d4=su,t.d5=Kh,t.d6=Oh,t.d7=450,t.d8=7,t.d9=bm,t.dA=J,t.dB=xl,t.dC=el,t.dD=function([t,e,r]){const n=Math.hypot(t,e,r),i=Math.atan2(t,r),a=.5*Math.PI-Math.acos(-e/n);return new il(Z(i),Z(a))},t.dE=Cm,t.dF=function(t){const e=t.navigator?t.navigator.userAgent:null;return !!function(t){if(null==vt){const e=t.navigator?t.navigator.userAgent:null;vt=!!t.safari||!(!e||!(/\\b(iPad|iPhone|iPod)\\b/.test(e)||e.match(\"Safari\")&&!e.match(\"Chrome\")));}return vt}(t)&&e&&(e.match(\"Version/15.4\")||e.match(\"Version/15.5\")||e.match(/CPU (OS|iPhone OS) (15_4|15_5) like Mac OS X/))},t.dG=function(t,e){Ot=t,Nt=e;},t.dH=Nu,t.dI=Ou,t.dJ=function(t){const e=[0,0,0],r=O.mat4.identity(new Float64Array(16));return O.mat4.multiply(r,t.pixelMatrix,t.globeMatrix),O.vec3.transformMat4(e,e,r),new q(e[0],e[1])},t.dK=function(t,e,r=!1){if(Sa===_a||Sa===wa||Sa===Ma)throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");Ia=Dt.resolveURL(t),Sa=_a,Aa=e,za(),r||Ta();},t.dL=ka,t.dM=function(){Ty().acquire(Iy);},t.dN=function(){const t=Ey;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Iy),Ey=null):console.warn(\"Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()\"));},t.dO=Py,t.dP=function(t){const e=$t();if(!e)return;const r=e.delete(Ft);t&&r.catch(t).then((()=>t()));},t.dQ=Sy,t.dR=Vx,t.dS=function(t){zx=Dt.resolveURL(t),Bx||(Bx=new zy(Ty(),new we)),Bx.broadcast(\"setDracoUrl\",zx);},t.dT=Cx,t.dU=function(t){kx=Dt.resolveURL(t),Bx||(Bx=new zy(Ty(),new we)),Bx.broadcast(\"setMeshoptUrl\",kx);},t.dV=oa,t.dW=ac,t.dX=Hf,t.dY=sv,t.dZ=uv,t.d_=bp,t.da=ys,t.db=Hs,t.dc=256,t.dd=Cu,t.de=As,t.df=Ns,t.dg=Us,t.dh=function(t,e,r,n,i){return Q((t-e)/(r-e)*(i-n)+n,n,i)},t.di=Ii,t.dj=gl,t.dk=class{constructor(t,e,r,n){this.context=t,this.format=n,this.size=r,this.texture=t.gl.createTexture();const[i,a,s]=this.size,{gl:o}=t;o.bindTexture(o.TEXTURE_3D,this.texture),t.pixelStoreUnpackFlipY.set(!1),t.pixelStoreUnpack.set(1),t.pixelStoreUnpackPremultiplyAlpha.set(!1),o.texImage3D(o.TEXTURE_3D,0,this.format,i,a,s,0,pm(this.format),fm(this.format),e.data);}bind(t,e){const{context:r}=this,{gl:n}=r;n.bindTexture(n.TEXTURE_3D,this.texture),t!==this.minFilter&&(n.texParameteri(n.TEXTURE_3D,n.TEXTURE_MAG_FILTER,t),n.texParameteri(n.TEXTURE_3D,n.TEXTURE_MIN_FILTER,t),this.minFilter=t),e!==this.wrapS&&(n.texParameteri(n.TEXTURE_3D,n.TEXTURE_WRAP_S,e),n.texParameteri(n.TEXTURE_3D,n.TEXTURE_WRAP_T,e),this.wrapS=e);}destroy(){const{gl:t}=this.context;t.deleteTexture(this.texture),this.texture=null;}},t.dl=Fm,t.dm=[1,1,1],t.dn=uy,t.dp=ry,t.dq=Ts,t.dr=$s,t.ds=rl,t.dt=qs,t.du=js,t.dv=class{constructor(){this._updateTime=0,this._sourceIds=[],this._activeRegions=[],this._prevRegions=[],this._globalClipBounds={min:new q(1/0,1/0),max:new q(-1/0,-1/0)};}clear(){this._activeRegions.length>0&&++this._updateTime,this._activeRegions=[],this._prevRegions=[];}get updateTime(){return this._updateTime}getReplacementRegionsForTile(t,e=!1){const r=Sh(new q(0,0),new q(Wr,Wr),t),n=[];if(e&&!Mh(r,this._globalClipBounds))return n;for(const e of this._activeRegions){if(e.hiddenByOverlap)continue;if(!Mh(r,e))continue;const i=Ih(e.min,e.max,t);n.push({min:i.min,max:i.max,sourceId:this._sourceIds[e.priority],footprint:e.footprint,footprintTileId:e.tileId,order:e.order,clipMask:e.clipMask,clipScope:e.clipScope});}return n}setSources(t){this._setSources(t.map((t=>({getSourceId:()=>t.cache.id,getFootprints:()=>{const e=[];for(const r of t.cache.getVisibleCoordinates()){const n=t.cache.getTile(r).buckets[t.layer];n&&n.updateFootprints(r.toUnwrapped(),e);}return e},getOrder:()=>t.order,getClipMask:()=>t.clipMask,getClipScope:()=>t.clipScope}))));}_addSource(t){const e=t.getFootprints();if(0===e.length)return;const r=t.getOrder(),n=t.getClipMask(),i=t.getClipScope();for(const t of e){if(!t.footprint)continue;const e=Sh(t.footprint.min,t.footprint.max,t.id);this._activeRegions.push({min:e.min,max:e.max,hiddenByOverlap:!1,priority:this._sourceIds.length,tileId:t.id,footprint:t.footprint,order:r,clipMask:n,clipScope:i});}this._sourceIds.push(t.getSourceId());}_computeReplacement(){this._activeRegions.sort(((t,e)=>t.priority-e.priority||_h(t.min,e.min)||_h(t.max,e.max)||t.order-e.order||t.clipMask-e.clipMask||function(t,e){const r=(t,e)=>t+e;return t.length-e.length||t.reduce(r,\"\").localeCompare(e.reduce(r,\"\"))}(t.clipScope,e.clipScope)));let t=this._activeRegions.length!==this._prevRegions.length;if(!t){let e=0;for(;!t&&e!==this._activeRegions.length;){const r=this._activeRegions[e],n=this._prevRegions[e];t=r.priority!==n.priority||!wh(r,n)||r.order!==n.order||r.clipMask!==n.clipMask||!$(r.clipScope,n.clipScope),++e;}}if(t){++this._updateTime;for(const t of this._activeRegions)t.order!==vh&&(this._globalClipBounds.min.x=Math.min(this._globalClipBounds.min.x,t.min.x),this._globalClipBounds.min.y=Math.min(this._globalClipBounds.min.y,t.min.y),this._globalClipBounds.max.x=Math.max(this._globalClipBounds.max.x,t.max.x),this._globalClipBounds.max.y=Math.max(this._globalClipBounds.max.y,t.max.y));const t=t=>{const e=this._activeRegions;if(t>=e.length)return t;const r=e[t].priority;for(;t<e.length&&e[t].priority===r;)++t;return t};if(this._sourceIds.length>1){let e=0,r=t(e);for(;e!==r;){let n=e;const i=e;for(;n!==r;){const t=this._activeRegions[n];t.hiddenByOverlap=!1;for(let e=0;e<i;e++){const r=this._activeRegions[e];if(!r.hiddenByOverlap&&t.order===vh&&Mh(t,r)&&(t.hiddenByOverlap=zh(t.footprint,t.tileId,r.footprint,r.tileId),t.hiddenByOverlap))break}++n;}e=r,r=t(e);}}}}_setSources(t){[this._prevRegions,this._activeRegions]=[this._activeRegions,[]],this._sourceIds=[];for(let e=t.length-1;e>=0;e--)this._addSource(t[e]);this._computeReplacement();}},t.dw=class{constructor(t){this._createGrid(t),this._createPoles(t);}destroy(){this._poleIndexBuffer.destroy(),this._gridBuffer.destroy(),this._gridIndexBuffer.destroy(),this._poleNorthVertexBuffer.destroy(),this._poleSouthVertexBuffer.destroy();for(const t of this._poleSegments)t.destroy();for(const t of this._gridSegments)t.withSkirts.destroy(),t.withoutSkirts.destroy();}_fillGridMeshWithLods(t,e){const r=new xs,n=new Ls,i=[],a=t+1+2,s=e[0]+1,o=e[0]+1+(1+e.length),l=(t,e,r)=>{let n=t===a-1?t-2:0===t?t:t-1;return n+=r?24575:0,[n,e]};for(let t=0;t<a;++t)r.emplaceBack(...l(t,0,!0));for(let t=0;t<s;++t)for(let e=0;e<a;++e)r.emplaceBack(...l(e,t,(0===e||e===a-1)&&!0));for(let t=0;t<e.length;++t){const n=e[t];for(let t=0;t<a;++t)r.emplaceBack(...l(t,n,!0));}for(let t=0;t<e.length;++t){const s=n.length,l=e[t]+1+2,u=new Ls;for(let r=0;r<l-1;r++){const i=r===l-2,s=i?a*(o-e.length+t-r):a;for(let t=0;t<a-1;t++){const e=r*a+t;0===r||i||0===t||t===a-2?(u.emplaceBack(e+1,e,e+s),u.emplaceBack(e+s,e+s+1,e+1)):(n.emplaceBack(e+1,e,e+s),n.emplaceBack(e+s,e+s+1,e+1));}}const c=po.simpleSegment(0,s,r.length,n.length-s);for(let t=0;t<u.uint16.length;t+=3)n.emplaceBack(u.uint16[t],u.uint16[t+1],u.uint16[t+2]);const h=po.simpleSegment(0,s,r.length,n.length-s);i.push({withoutSkirts:c,withSkirts:h});}return {vertices:r,indices:n,segments:i}}_createGrid(t){const e=this._fillGridMeshWithLods(Wo,Ko);this._gridSegments=e.segments,this._gridBuffer=t.createVertexBuffer(e.vertices,cu.members),this._gridIndexBuffer=t.createIndexBuffer(e.indices,!0);}_createPoles(t){const e=new Ls;for(let t=0;t<=Wo;t++)e.emplaceBack(0,t+1,t+2);this._poleIndexBuffer=t.createIndexBuffer(e,!0);const r=new Ns,n=new Ns,i=new Ns,a=new Ns;this._poleSegments=[];for(let t=0,e=0;t<Xo;t++){const s=360/(1<<t);r.emplaceBack(0,-Yo,0,.5,0),n.emplaceBack(0,-Yo,0,.5,1),i.emplaceBack(0,-Yo,0,.5,.5),a.emplaceBack(0,-Yo,0,.5,.5);for(let t=0;t<=Wo;t++){let e=t/Wo,o=0;const l=ze(0,s,e),[u,c,h]=tl(ju,qu,l,Yo);r.emplaceBack(u,c,h,e,o),n.emplaceBack(u,c,h,e,1-o);const p=X(l);e=.5+.5*Math.sin(p),o=.5+.5*Math.cos(p),i.emplaceBack(u,c,h,e,o),a.emplaceBack(u,c,h,e,1-o);}this._poleSegments.push(po.simpleSegment(e,0,66,64)),e+=66;}this._poleNorthVertexBuffer=t.createVertexBuffer(r,lu,!1),this._poleSouthVertexBuffer=t.createVertexBuffer(n,lu,!1),this._texturedPoleNorthVertexBuffer=t.createVertexBuffer(i,lu,!1),this._texturedPoleSouthVertexBuffer=t.createVertexBuffer(a,lu,!1);}getGridBuffers(t,e){return [this._gridBuffer,this._gridIndexBuffer,e?this._gridSegments[t].withSkirts:this._gridSegments[t].withoutSkirts]}getPoleBuffers(t,e){return [e?this._texturedPoleNorthVertexBuffer:this._poleNorthVertexBuffer,e?this._texturedPoleSouthVertexBuffer:this._poleSouthVertexBuffer,this._poleIndexBuffer,this._poleSegments[t]]}},t.dx=vh,t.dy=K,t.dz=function(){return !!document.fullscreenElement||!!document.webkitFullscreenElement},t.e=St,t.e0=Qe,t.e1=Gf,t.e2=function(t,e,r,n,i,a,s,o,l,u,c=1,h,p){t.createArrays(),t.tilePixelRatio=Wr/(512*t.overscaling),t.compareText={},t.iconsNeedLinear=!1;const f=t.layers[0].layout,d=t.layers[0]._unevaluatedLayout._values,m={};m.scaleFactor=c,m.textSizeScaleRange=f.get(\"text-size-scale-range\"),m.iconSizeScaleRange=f.get(\"icon-size-scale-range\");const[y,g]=m.textSizeScaleRange,[x,v]=m.iconSizeScaleRange;if(m.textScaleFactor=Q(m.scaleFactor,y,g),m.iconScaleFactor=Q(m.scaleFactor,x,v),\"composite\"===t.textSizeData.kind){const{minZoom:e,maxZoom:r}=t.textSizeData;m.compositeTextSizes=[d[\"text-size\"].possiblyEvaluate(new Va(e),o),d[\"text-size\"].possiblyEvaluate(new Va(r),o)];}if(\"composite\"===t.iconSizeData.kind){const{minZoom:e,maxZoom:r}=t.iconSizeData;m.compositeIconSizes=[d[\"icon-size\"].possiblyEvaluate(new Va(e),o),d[\"icon-size\"].possiblyEvaluate(new Va(r),o)];}m.layoutTextSize=d[\"text-size\"].possiblyEvaluate(new Va(l+1),o),m.layoutIconSize=d[\"icon-size\"].possiblyEvaluate(new Va(l+1),o),m.textMaxSize=d[\"text-size\"].possiblyEvaluate(new Va(18),o);const b=\"map\"===f.get(\"text-rotation-alignment\")&&\"point\"!==f.get(\"symbol-placement\"),_=f.get(\"text-size\");let w=!1;for(const e of t.features)if(e.icon&&e.icon.nameSecondary){w=!0;break}for(const a of t.features){const l=f.get(\"text-font\").evaluate(a,{},o).join(\",\"),c=_.evaluate(a,{},o)*m.textScaleFactor,y=m.layoutTextSize.evaluate(a,{},o)*m.textScaleFactor,g=(m.layoutIconSize.evaluate(a,{},o),{horizontal:{},vertical:void 0}),x=a.text;let v,M=[0,0];if(x){const n=x.toString(),s=f.get(\"text-letter-spacing\").evaluate(a,{},o)*Zp,u=f.get(\"text-line-height\").evaluate(a,{},o)*Zp,h=da(n)?s:0,p=f.get(\"text-anchor\").evaluate(a,{},o),d=f.get(\"text-variable-anchor\");if(!d){const t=f.get(\"text-radial-offset\").evaluate(a,{},o);M=t?hd(p,[t*Zp,ud]):f.get(\"text-offset\").evaluate(a,{},o).map((t=>t*Zp));}let m=b?\"center\":f.get(\"text-justify\").evaluate(a,{},o);const v=\"point\"===f.get(\"symbol-placement\"),_=v?f.get(\"text-max-width\").evaluate(a,{},o)*Zp:1/0,w=a=>{t.allowVerticalPlacement&&fa(n)&&(g.vertical=_f(x,e,r,i,l,_,u,p,a,h,M,xf.vertical,!0,y,c));};if(!b&&d){const t=\"auto\"===m?d.map((t=>pd(t))):[m];let n=!1;for(let a=0;a<t.length;a++){const s=t[a];if(!g.horizontal[s])if(n)g.horizontal[s]=g.horizontal[0];else {const t=_f(x,e,r,i,l,_,u,\"center\",s,h,M,xf.horizontal,!1,y,c);t&&(g.horizontal[s]=t,n=1===t.positionedLines.length);}}w(\"left\");}else {if(\"auto\"===m&&(m=pd(p)),v||f.get(\"text-writing-mode\").indexOf(\"horizontal\")>=0||!fa(n)){const t=_f(x,e,r,i,l,_,u,p,m,h,M,xf.horizontal,!1,y,c);t&&(g.horizontal[m]=t);}w(v?\"left\":m);}}let A=!1,S=!1;if(a.icon&&a.icon.namePrimary){const e=Wp(t.iconSizeData,d[\"icon-size\"],o,t.zoom,a)*m.iconScaleFactor*h,r=a.icon.getPrimary().scaleSelf(e).serialize(),s=n[r];s&&(v=Tf(i[r],a.icon.nameSecondary?i[a.icon.getSecondary().scaleSelf(e).serialize()]:void 0,f.get(\"icon-offset\").evaluate(a,{},o),f.get(\"icon-anchor\").evaluate(a,{},o)),A=s.sdf,S=s.usvg,void 0===t.sdfIcons?t.sdfIcons=s.sdf:t.sdfIcons!==s.sdf&&ft(\"Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer\"),(s.pixelRatio!==t.pixelRatio||0!==f.get(\"icon-rotate\").constantOr(1))&&(t.iconsNeedLinear=!0));}const I=gd(g.horizontal)||g.vertical;t.iconsInText||(t.iconsInText=!!I&&I.iconsInText),(I||v)&&fd(t,a,g,v,n,m,y,0,M,A,S,s,o,u,p,w);}a&&t.generateCollisionDebugBuffers(l,t.collisionBoxArray,m.textScaleFactor);},t.e3=fh,t.e4=Cg,t.e5=j,t.e6=ph,t.e7=hf,t.e8=e,t.e9=function(t){let e=0;if(new Uint32Array(t,0,1)[0]!==qx){const r=new Uint32Array(t,0,7),[,,n,i,a,s]=r;e=r.byteLength+i+a+s+a,(n!==t.byteLength||e>=t.byteLength)&&ft(\"Invalid b3dm header information.\");}return Hx(t,e)},t.ea=function(t,e){const r=nv(t);for(const t of r){for(const e of t.meshes)iv(e);t.lights&&(t.lightMeshIndex=t.meshes.length,t.meshes.push(av(t.lights,e)));}return r},t.eb=yy,t.ec=Ay,t.ed=Ba,t.ee=function(t){Gt(),null!=jt&&jt.then((e=>{e.keys().then((r=>{for(let n=0;n<r.length-t;n++)e.delete(r[n]);}));}));},t.f=function(t){return 0===t.indexOf(\"mapbox:\")},t.g=function(t,e){return ne(nt(t,{method:\"GET\"}),e)},t.h=It,t.i=function(t){return St.API_STYLE_REGEX.test(t)&&!Pt(t)},t.j=function(t){return decodeURIComponent(atob(t).split(\"\").map((t=>\"%\"+(\"00\"+t.charCodeAt(0).toString(16)).slice(-2))).join(\"\"))},t.k=function(t){return btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,((t,e)=>String.fromCharCode(Number(\"0x\"+e)))))},t.l=nt,t.m=Xt,t.n=function(t,e){return ne(nt(t,{type:\"json\"}),e)},t.o=ue,t.p=function(t,e){return ne(nt(t,{method:\"POST\"}),e)},t.q=Dt,t.r=sc,t.s=function(t){try{const e=self[t];return e.setItem(\"_mapbox_test_\",1),e.removeItem(\"_mapbox_test_\"),!0}catch(t){return !1}},t.t=Ct,t.u=function(){return function t(e){return e?(e^Math.random()*(16>>e/4)).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()},t.v=function(t){return !!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)},t.w=ft,t.x=function(){return ky||(ky=new Py),ky},t.y=ve,t.z=xe;}));\n\ndefine([\"./shared\"],(function(e){function t(e){const t=e?e.url.toString():void 0;return t?performance.getEntriesByName(t):[]}function s(e){if(\"number\"==typeof e||\"boolean\"==typeof e||\"string\"==typeof e||null==e)return JSON.stringify(e);if(Array.isArray(e)){let t=\"[\";for(const i of e)t+=`${s(i)},`;return `${t}]`}let t=\"{\";for(const i of Object.keys(e).sort())t+=`${i}:${s(e[i])},`;return `${t}}`}function i(t){let i=\"\";for(const o of e.bm)i+=`/${s(t[o])}`;return i}class o{constructor(e){this.keyCache={},this._layers={},this._layerConfigs={},e&&this.replace(e);}replace(e,t){this._layerConfigs={},this._layers={},this.update(e,[],t);}update(t,o,n){this._options=n;for(const s of t)this._layerConfigs[s.id]=s,(this._layers[s.id]=e.cu(s,this.scope,null,this._options)).compileFilter(n),this.keyCache[s.id]&&delete this.keyCache[s.id];for(const e of o)delete this.keyCache[e],delete this._layerConfigs[e],delete this._layers[e];this.familiesBySource={};const r=function(e,t){const o={};for(let n=0;n<e.length;n++){const r=e[n];let a=t&&t[r.id];!a&&(a=i(r),\"line\"===r.type&&r.paint)&&function e(t){return \"string\"==typeof t&&\"line-progress\"===t||(Array.isArray(t)?t.some(e):!(!t||\"object\"!=typeof t)&&Object.values(t).some(e))}(r.paint[\"line-width\"])&&(a+=`/${s(r.paint[\"line-width\"])}`),t&&(t[r.id]=a);let l=o[a];l||(l=o[a]=[]),l.push(r);}const n=[];for(const e in o)n.push(o[e]);return n}(e.bj(this._layerConfigs),this.keyCache);for(const e of r){const t=e.map((e=>this._layers[e.id])),s=t[0];if(\"none\"===s.visibility)continue;const i=s.source||\"\";let o=this.familiesBySource[i];o||(o=this.familiesBySource[i]={});const n=s.sourceLayer||\"_geojsonTileLayer\";let r=o[n];r||(r=o[n]=[]),r.push(t);}}}const n=1*e.dX;class r{constructor(t){const s={},i=[];for(const e in t){const o=t[e],r=s[e]={};for(const e in o.glyphs){const t=o.glyphs[+e];if(!t||0===t.bitmap.width||0===t.bitmap.height)continue;const s=t.metrics.localGlyph?n:1,a={x:0,y:0,w:t.bitmap.width+2*s,h:t.bitmap.height+2*s};i.push(a),r[e]=a;}}const{w:o,h:r}=e.C(i),a=new e.dW({width:o||1,height:r||1});for(const i in t){const o=t[i];for(const t in o.glyphs){const r=o.glyphs[+t];if(!r||0===r.bitmap.width||0===r.bitmap.height)continue;const l=s[i][t],c=r.metrics.localGlyph?n:1;e.dW.copy(r.bitmap,a,{x:0,y:0},{x:l.x+c,y:l.y+c},r.bitmap);}}this.image=a,this.positions=s;}}e.dV(r,\"GlyphAtlas\");class a{constructor(t){this.tileID=new e.aG(t.tileID.overscaledZ,t.tileID.wrap,t.tileID.canonical.z,t.tileID.canonical.x,t.tileID.canonical.y),this.tileZoom=t.tileZoom,this.uid=t.uid,this.zoom=t.zoom,this.lut=t.lut,this.canonical=t.tileID.canonical,this.pixelRatio=t.pixelRatio,this.tileSize=t.tileSize,this.source=t.source,this.scope=t.scope,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=t.showCollisionBoxes,this.collectResourceTiming=!!t.request&&t.request.collectResourceTiming,this.promoteId=t.promoteId,this.isSymbolTile=t.isSymbolTile,this.tileTransform=e.aQ(t.tileID.canonical,t.projection),this.projection=t.projection,this.worldview=t.worldview,this.localizableLayerIds=t.localizableLayerIds,this.brightness=t.brightness,this.extraShadowCaster=!!t.extraShadowCaster,this.tessellationStep=t.tessellationStep,this.scaleFactor=t.scaleFactor;}parse(t,s,i,o,n){this.status=\"parsing\",this.data=t,this.collisionBoxArray=new e.aW;const a=new e.dY(Object.keys(t.layers).sort()),c=new e.dZ(this.tileID,this.promoteId);c.bucketLayerIDs=[];const h={},u=new e.d_(256,256),d={featureIndex:c,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:u,availableImages:i,brightness:this.brightness,scaleFactor:this.scaleFactor},f=s.familiesBySource[this.source];for(const s in f){const o=t.layers[s];if(!o)continue;let n=!1,r=!1,u=!1;for(const e of f[s])\"symbol\"===e[0].type?n=!0:r=!0,e[0].is3D()&&\"model\"!==e[0].type&&(u=!0);if(this.extraShadowCaster&&!u)continue;if(!0===this.isSymbolTile&&!n)continue;if(!1===this.isSymbolTile&&!r)continue;1===o.version&&e.w(`Vector tile source \"${this.source}\" layer \"${s}\" does not use vector tile spec v2 and therefore may have some rendering errors.`);const p=a.encode(s),g=[];for(let e=0,t=0;e<o.length;e++){const i=o.feature(e),n=c.getId(i,s);if(this.localizableLayerIds&&this.localizableLayerIds.has(s)){const e=i.properties?i.properties.worldview:null;if(this.worldview&&\"string\"==typeof e)if(\"all\"===e)i.properties.$localized=!0;else {if(!e.split(\",\").includes(this.worldview))continue;i.properties.$localized=!0,i.properties.worldview=this.worldview;}}g.push({feature:i,id:n,index:t,sourceLayerIndex:p}),t++;}for(const t of f[s]){const s=t[0];(!this.extraShadowCaster||s.is3D()&&\"model\"!==s.type)&&(void 0!==this.isSymbolTile&&\"symbol\"===s.type!==this.isSymbolTile||s.minzoom&&this.zoom<Math.floor(s.minzoom)||s.maxzoom&&this.zoom>=s.maxzoom||\"none\"!==s.visibility&&(l(t,this.zoom,d.brightness,i),(h[s.id]=s.createBucket({index:c.bucketLayerIDs.length,layers:t,zoom:this.zoom,lut:this.lut,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:p,sourceID:this.source,projection:this.projection.spec,tessellationStep:this.tessellationStep})).populate(g,d,this.tileID.canonical,this.tileTransform),c.bucketLayerIDs.push(t.map((t=>e.aC(t.id,t.scope))))));}}let p,g,m,y;u.trim();const x={type:\"maybePrepare\",isSymbolTile:this.isSymbolTile,zoom:this.zoom},w=()=>{if(p)return this.status=\"done\",n(p);if(this.extraShadowCaster)this.status=\"done\",n(null,{buckets:e.bj(h).filter((e=>!e.isEmpty())),featureIndex:c,collisionBoxArray:null,glyphAtlasImage:null,lineAtlas:null,imageAtlas:null,brightness:d.brightness,glyphMap:null,iconMap:null,glyphPositions:null});else if(g&&m&&y){const t=new r(g),s=new e.e1(m,y,this.lut);for(const o in h){const n=h[o];n instanceof e.aX?(l(n.layers,this.zoom,d.brightness,i),e.e2(n,g,t.positions,m,s.iconPositions,this.showCollisionBoxes,i,this.tileID.canonical,this.tileZoom,this.projection,this.scaleFactor,this.pixelRatio,this.brightness)):n.hasPattern&&(n instanceof e.b1||n instanceof e.b2||n instanceof e.d5)&&(l(n.layers,this.zoom,d.brightness,i),n.addFeatures(d,this.tileID.canonical,s.patternPositions,i,this.tileTransform,this.brightness));}this.status=\"done\",n(null,{buckets:e.bj(h).filter((e=>!e.isEmpty())),featureIndex:c,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,lineAtlas:u,imageAtlas:s,brightness:d.brightness});}};if(!this.extraShadowCaster){const t=e.d$(d.glyphDependencies,(e=>Object.keys(e).map(Number)));Object.keys(t).length?o.send(\"getGlyphs\",{uid:this.uid,stacks:t,scope:this.scope},((e,t)=>{p||(p=e,g=t,w());}),void 0,!1,x):g={};const s=Object.keys(d.iconDependencies);s.length?o.send(\"getImages\",{icons:s,source:this.source,scope:this.scope,tileID:this.tileID,type:\"icons\"},((e,t)=>{if(p)return;p=e;const s={};Object.values(t).some((e=>e.usvg))?this.rasterize(o,s,t,d.iconDependencies,(()=>{m=s,w();})):(this.fillImageMap(s,d.iconDependencies,t),m=s,w());}),void 0,!1,x):m={};const i=Object.keys(d.patternDependencies);i.length?o.send(\"getImages\",{icons:i,source:this.source,scope:this.scope,tileID:this.tileID,type:\"patterns\"},((e,t)=>{if(!p){p=e;const s={};Object.values(t).some((e=>e.usvg))?this.rasterize(o,s,t,d.patternDependencies,(()=>{y=s,w();})):(this.fillImageMap(s,d.patternDependencies,t),y=s,w());}}),void 0,!1,x):y={};}w();}fillImageMap(e,t,s){for(const i in s){const o=t[i]||[];for(const t of o)s[t.id].usvg||(e[t.serialize()]=s[t.id]);}}getImageTaskQueue(e,t,s){const i={};for(const o in t){const n=s[o]||[];for(const s of n){const o=s.serialize();t[s.id].usvg?i[o]||(i[o]=s):e[o]=t[s.id];}}return i}rasterize(t,s,i,o,n){const r=this.getImageTaskQueue(s,i,o);this.rasterizeTask=t.send(\"rasterizeImages\",{scope:this.scope,imageTasks:r},((t,o)=>{if(!t)for(const t in o){const{id:n}=e.e0.deserializeFromString(t);s[t]=Object.assign({},i[n],{data:o[t]});}n();}));}cancelRasterize(){this.rasterizeTask&&this.rasterizeTask.cancel();}}function l(t,s,i,o){const n=new e.a8(s,{brightness:i});for(const e of t)e.recalculate(n,o);}class c extends e.E{constructor(t,s,i,o,n,r){super(),this.actor=t,this.layerIndex=s,this.availableImages=i,this.loadVectorData=n||e.aD,this.loading={},this.loaded={},this.deduped=new e.aB(t.scheduler),this.isSpriteLoaded=o,this.scheduler=t.scheduler,this.brightness=r;}loadTile(s,i){const o=s.uid,n=s&&s.request,r=n&&n.collectResourceTiming,l=this.loading[o]=new a(s);l.abort=this.loadVectorData(s,((a,c)=>{const h=!this.loading[o];if(delete this.loading[o],l.cancelRasterize(),h||a||!c)return l.status=\"done\",h||(this.loaded[o]=l),i(a);const u=c.rawData,d={};c.expires&&(d.expires=c.expires),c.cacheControl&&(d.cacheControl=c.cacheControl),l.vectorTile=c.vectorTile||new e.e3.VectorTile(new e.bh(u));const f=()=>{l.parse(l.vectorTile,this.layerIndex,this.availableImages,this.actor,((s,o)=>{if(s||!o)return i(s);const a={};if(r){const e=t(n);e.length>0&&(a.resourceTiming=JSON.parse(JSON.stringify(e)));}i(null,e.l({rawTileData:u.slice(0)},o,d,a));}));};this.isSpriteLoaded?f():this.once(\"isSpriteLoaded\",(()=>{this.scheduler?this.scheduler.add(f,{type:\"parseTile\",isSymbolTile:s.isSymbolTile,zoom:s.tileZoom}):f();})),this.loaded=this.loaded||{},this.loaded[o]=l;}));}reloadTile(t,s){const i=this.loaded,o=t.uid;if(i&&i[o]){const n=i[o];n.scaleFactor=t.scaleFactor,n.showCollisionBoxes=t.showCollisionBoxes,n.projection=t.projection,n.brightness=t.brightness,n.tileTransform=e.aQ(t.tileID.canonical,t.projection),n.extraShadowCaster=t.extraShadowCaster,n.lut=t.lut;const r=(e,t)=>{const i=n.reloadCallback;i&&(delete n.reloadCallback,n.parse(n.vectorTile,this.layerIndex,this.availableImages,this.actor,i)),s(e,t);};\"parsing\"===n.status?n.reloadCallback=r:\"done\"===n.status&&(n.vectorTile?n.parse(n.vectorTile,this.layerIndex,this.availableImages,this.actor,r):r());}else s(null,void 0);}abortTile(e,t){const s=e.uid,i=this.loading[s];i&&(i.abort&&i.abort(),delete this.loading[s]),t();}removeTile(e,t){const s=this.loaded,i=e.uid;s&&s[i]&&delete s[i],t();}}class h{loadTile(t,s){const{uid:i,encoding:o,rawImageData:n,padding:r}=t,a=ImageBitmap&&n instanceof ImageBitmap?this.getImageData(n,r):n;s(null,new e.e4(i,a,o,r<1));}getImageData(e,t){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext(\"2d\",{willReadFrequently:!0})),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);const s=this.offscreenCanvasContext.getImageData(-t,-t,e.width+2*t,e.height+2*t);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),s}}e.bg.setPbf(e.bh);class u{decodeRasterArray({task:t,buffer:s},i){e.bg.performDecoding(s,t).then((e=>{i(null,e);}),(e=>{i(e);}));}}const d=e.e3.VectorTileFeature.prototype.toGeoJSON;class f{constructor(t){this._feature=t,this.extent=e.ag,this.type=t.type,this.properties=t.tags,\"id\"in t&&!isNaN(t.id)&&(this.id=parseInt(t.id,10));}loadGeometry(){if(1===this._feature.type){const t=[];for(const s of this._feature.geometry)t.push([new e.P(s[0],s[1])]);return t}{const t=[];for(const s of this._feature.geometry){const i=[];for(const t of s)i.push(new e.P(t[0],t[1]));t.push(i);}return t}}toGeoJSON(e,t,s){return d.call(this,e,t,s)}}class p{constructor(t){this.layers={_geojsonTileLayer:this},this.name=\"_geojsonTileLayer\",this.extent=e.ag,this.length=t.length,this._features=t;}feature(e){return new f(this._features[e])}}const g=64/4096,m=128;class y{constructor(){this.features=new Map;}clear(){this.features.clear();}load(e=[],t){for(const s of e){const e=s.id;if(null==e)continue;let i=this.features.get(e);i&&this.updateCache(i,t),s.geometry?(i=w(s),this.updateCache(i,t),this.features.set(e,i)):this.features.delete(e),this.updateCache(i,t);}}updateCache(e,t){for(const{canonical:s,uid:i}of Object.values(t)){const{z:o,x:n,y:r}=s;x(e,Math.pow(2,o),n,r)&&delete t[i];}}getTile(e,t,s){const i=Math.pow(2,e),o=[];for(const e of this.features.values())x(e,i,t,s)&&o.push(I(e,i,t,s));return {features:o}}getFeatures(){return [...this.features.values()]}}function x({minX:e,minY:t,maxX:s,maxY:i},o,n,r){return e<(n+1+g)/o&&t<(r+1+g)/o&&s>(n-g)/o&&i>(r-g)/o}function w(e){const{id:t,geometry:s,properties:i}=e;if(!s)return;if(\"GeometryCollection\"===s.type)throw new Error(\"GeometryCollection not supported in dynamic mode.\");const{type:o,coordinates:n}=s,r={id:t,type:1,geometry:[],tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0},a=r.geometry;if(\"Point\"===o)b(n,a,r);else if(\"MultiPoint\"===o)for(const e of n)b(e,a,r);else if(\"LineString\"===o)r.type=2,S(n,a,r);else if(\"MultiLineString\"===o)r.type=2,v(n,a,r);else if(\"Polygon\"===o)r.type=3,v(n,a,r,!0);else {if(\"MultiPolygon\"!==o)throw new Error(\"Input data is not a valid GeoJSON object.\");r.type=3;for(const e of n)v(e,a,r,!0);}return r}function b([t,s],i,o){const n=e.at(t);let r=e.aA(s);r=r<0?0:r>1?1:r,i.push(n,r),o.minX=Math.min(o.minX,n),o.minY=Math.min(o.minY,r),o.maxX=Math.max(o.maxX,n),o.maxY=Math.max(o.maxY,r);}function S(e,t,s,i=!1,o=!1){const n=[];for(const t of e)b(t,n,s);t.push(n),i&&function(e,t){let s=0;for(let t=0,i=e.length,o=i-2;t<i;o=t,t+=2)s+=(e[t]-e[o])*(e[t+1]+e[o+1]);if(s>0===t)for(let t=0,s=e.length;t<s/2;t+=2){const i=e[t],o=e[t+1];e[t]=e[s-2-t],e[t+1]=e[s-1-t],e[s-2-t]=i,e[s-1-t]=o;}}(n,o);}function v(e,t,s,i=!1){for(let o=0;o<e.length;o++)S(e[o],t,s,i,0===o);}function I(t,s,i,o){const{id:n,type:r,geometry:a,tags:l}=t,c=[];if(1===r)!function(t,s,i,o,n){for(let r=0;r<t.length;r+=2){const a=Math.round(e.ag*(t[r+0]*s-i)),l=Math.round(e.ag*(t[r+1]*s-o));n.push([a,l]);}}(a,s,i,o,c);else for(const e of a)M(e,s,i,o,c);return {id:n,type:r,geometry:c,tags:l}}function M(t,s,i,o,n){const r=-m,a=e.ag+m;let l;for(let c=0;c<t.length-2;c+=2){let h=Math.round(e.ag*(t[c+0]*s-i)),u=Math.round(e.ag*(t[c+1]*s-o)),d=Math.round(e.ag*(t[c+2]*s-i)),f=Math.round(e.ag*(t[c+3]*s-o));const p=d-h,g=f-u;h<r&&d<r||(h<r?(u+=Math.round(g*((r-h)/p)),h=r):d<r&&(f=u+Math.round(g*((r-h)/p)),d=r),u<r&&f<r||(u<r?(h+=Math.round(p*((r-u)/g)),u=r):f<r&&(d=h+Math.round(p*((r-u)/g)),f=r),h>=a&&d>=a||(h>=a?(u+=Math.round(g*((a-h)/p)),h=a):d>=a&&(f=u+Math.round(g*((a-h)/p)),d=a),u>=a&&f>=a||(u>=a?(h+=Math.round(p*((a-u)/g)),u=a):f>=a&&(d=h+Math.round(p*((a-u)/g)),f=a),l&&h===l[l.length-1][0]&&u===l[l.length-1][1]||(l=[[h,u]],n.push(l)),l.push([d,f])))));}}var k,T,P,C={exports:{}},z=function(){if(P)return C.exports;P=1;var t=e.e7(),s=function(){if(T)return k;T=1;var t=e.e5(),s=e.e6().VectorTileFeature;function i(e,t){this.options=t||{},this.features=e,this.length=e.length;}function o(e,t){this.id=\"number\"==typeof e.id?e.id:void 0,this.type=e.type,this.rawGeometry=1===e.type?[e.geometry]:e.geometry,this.properties=e.tags,this.extent=t||4096;}return k=i,i.prototype.feature=function(e){return new o(this.features[e],this.options.extent)},o.prototype.loadGeometry=function(){var e=this.rawGeometry;this.geometry=[];for(var s=0;s<e.length;s++){for(var i=e[s],o=[],n=0;n<i.length;n++)o.push(new t(i[n][0],i[n][1]));this.geometry.push(o);}return this.geometry},o.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var e=this.geometry,t=1/0,s=-1/0,i=1/0,o=-1/0,n=0;n<e.length;n++)for(var r=e[n],a=0;a<r.length;a++){var l=r[a];t=Math.min(t,l.x),s=Math.max(s,l.x),i=Math.min(i,l.y),o=Math.max(o,l.y);}return [t,i,s,o]},o.prototype.toGeoJSON=s.prototype.toGeoJSON,k}();function i(e){var s=new t;return function(e,t){for(var s in e.layers)t.writeMessage(3,o,e.layers[s]);}(e,s),s.finish()}function o(e,t){var s;t.writeVarintField(15,e.version||1),t.writeStringField(1,e.name||\"\"),t.writeVarintField(5,e.extent||4096);var i={keys:[],values:[],keycache:{},valuecache:{}};for(s=0;s<e.length;s++)i.feature=e.feature(s),t.writeMessage(2,n,i);var o=i.keys;for(s=0;s<o.length;s++)t.writeStringField(3,o[s]);var r=i.values;for(s=0;s<r.length;s++)t.writeMessage(4,h,r[s]);}function n(e,t){var s=e.feature;void 0!==s.id&&t.writeVarintField(1,s.id),t.writeMessage(2,r,e),t.writeVarintField(3,s.type),t.writeMessage(4,c,s);}function r(e,t){var s=e.feature,i=e.keys,o=e.values,n=e.keycache,r=e.valuecache;for(var a in s.properties){var l=s.properties[a],c=n[a];if(null!==l){void 0===c&&(i.push(a),n[a]=c=i.length-1),t.writeVarint(c);var h=typeof l;\"string\"!==h&&\"boolean\"!==h&&\"number\"!==h&&(l=JSON.stringify(l));var u=h+\":\"+l,d=r[u];void 0===d&&(o.push(l),r[u]=d=o.length-1),t.writeVarint(d);}}}function a(e,t){return (t<<3)+(7&e)}function l(e){return e<<1^e>>31}function c(e,t){for(var s=e.loadGeometry(),i=e.type,o=0,n=0,r=s.length,c=0;c<r;c++){var h=s[c],u=1;1===i&&(u=h.length),t.writeVarint(a(1,u));for(var d=3===i?h.length-1:h.length,f=0;f<d;f++){1===f&&1!==i&&t.writeVarint(a(2,d-1));var p=h[f].x-o,g=h[f].y-n;t.writeVarint(l(p)),t.writeVarint(l(g)),o+=p,n+=g;}3===i&&t.writeVarint(a(7,1));}}function h(e,t){var s=typeof e;\"string\"===s?t.writeStringField(1,e):\"boolean\"===s?t.writeBooleanField(7,e):\"number\"===s&&(e%1!=0?t.writeDoubleField(3,e):e<0?t.writeSVarintField(6,e):t.writeVarintField(5,e));}return C.exports=i,C.exports.fromVectorTileJs=i,C.exports.fromGeojsonVt=function(e,t){t=t||{};var o={};for(var n in e)o[n]=new s(e[n].features,t),o[n].name=n,o[n].version=t.version,o[n].extent=t.extent;return i({layers:o})},C.exports.GeoJSONWrapper=s,C.exports}(),_=e.e8(z);const L={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e},D=Math.fround||(j=new Float32Array(1),e=>(j[0]=+e,j[0]));var j;const O=3,F=5,A=6;class Z{constructor(e){this.options=Object.assign(Object.create(L),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[];}load(e){const{log:t,minZoom:s,maxZoom:i}=this.options;t&&console.time(\"total time\");const o=`prepare ${e.length} points`;t&&console.time(o),this.points=e;const n=[];for(let t=0;t<e.length;t++){const s=e[t];if(!s.geometry)continue;const[i,o]=s.geometry.coordinates,r=D(X(i)),a=D(Y(o));n.push(r,a,1/0,t,-1,1),this.options.reduce&&n.push(0);}let r=this.trees[i+1]=this._createTree(n);t&&console.timeEnd(o);for(let e=i;e>=s;e--){const s=+Date.now();r=this.trees[e]=this._createTree(this._cluster(r,e)),t&&console.log(\"z%d: %d clusters in %dms\",e,r.numItems,+Date.now()-s);}return t&&console.timeEnd(\"total time\"),this}getClusters(e,t){let s=((e[0]+180)%360+360)%360-180;const i=Math.max(-90,Math.min(90,e[1]));let o=180===e[2]?180:((e[2]+180)%360+360)%360-180;const n=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)s=-180,o=180;else if(s>o){const e=this.getClusters([s,i,180,n],t),r=this.getClusters([-180,i,o,n],t);return e.concat(r)}const r=this.trees[this._limitZoom(t)],a=r.range(X(s),Y(n),X(o),Y(i)),l=r.data,c=[];for(const e of a){const t=this.stride*e;c.push(l[t+F]>1?E(l,t,this.clusterProps):this.points[l[t+O]]);}return c}getChildren(e){const t=this._getOriginId(e),s=this._getOriginZoom(e),i=\"No cluster with the specified id.\",o=this.trees[s];if(!o)throw new Error(i);const n=o.data;if(t*this.stride>=n.length)throw new Error(i);const r=this.options.radius/(this.options.extent*Math.pow(2,s-1)),a=o.within(n[t*this.stride],n[t*this.stride+1],r),l=[];for(const t of a){const s=t*this.stride;n[s+4]===e&&l.push(n[s+F]>1?E(n,s,this.clusterProps):this.points[n[s+O]]);}if(0===l.length)throw new Error(i);return l}getLeaves(e,t,s){const i=[];return this._appendLeaves(i,e,t=t||10,s=s||0,0),i}getTile(e,t,s){const i=this.trees[this._limitZoom(e)],o=Math.pow(2,e),{extent:n,radius:r}=this.options,a=r/n,l=(s-a)/o,c=(s+1+a)/o,h={features:[]};return this._addTileFeatures(i.range((t-a)/o,l,(t+1+a)/o,c),i.data,t,s,o,h),0===t&&this._addTileFeatures(i.range(1-a/o,l,1,c),i.data,o,s,o,h),t===o-1&&this._addTileFeatures(i.range(0,l,a/o,c),i.data,-1,s,o,h),h.features.length?h:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const s=this.getChildren(e);if(t++,1!==s.length)break;e=s[0].properties.cluster_id;}return t}_appendLeaves(e,t,s,i,o){const n=this.getChildren(t);for(const t of n){const n=t.properties;if(n&&n.cluster?o+n.point_count<=i?o+=n.point_count:o=this._appendLeaves(e,n.cluster_id,s,i,o):o<i?o++:e.push(t),e.length===s)break}return o}_createTree(t){const s=new e.bE(t.length/this.stride|0,this.options.nodeSize,Float32Array);for(let e=0;e<t.length;e+=this.stride)s.add(t[e],t[e+1]);return s.finish(),s.data=t,s}_addTileFeatures(e,t,s,i,o,n){for(const r of e){const e=r*this.stride,a=t[e+F]>1;let l,c,h;if(a)l=W(t,e,this.clusterProps),c=t[e],h=t[e+1];else {const s=this.points[t[e+O]];l=s.properties;const[i,o]=s.geometry.coordinates;c=X(i),h=Y(o);}const u={type:1,geometry:[[Math.round(this.options.extent*(c*o-s)),Math.round(this.options.extent*(h*o-i))]],tags:l};let d;d=a||this.options.generateId?t[e+O]:this.points[t[e+O]].id,void 0!==d&&(u.id=d),n.features.push(u);}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:s,extent:i,reduce:o,minPoints:n}=this.options,r=s/(i*Math.pow(2,t)),a=e.data,l=[],c=this.stride;for(let s=0;s<a.length;s+=c){if(a[s+2]<=t)continue;a[s+2]=t;const i=a[s],h=a[s+1],u=e.within(a[s],a[s+1],r),d=a[s+F];let f=d;for(const e of u){const s=e*c;a[s+2]>t&&(f+=a[s+F]);}if(f>d&&f>=n){let e,n=i*d,r=h*d,p=-1;const g=(s/c<<5)+(t+1)+this.points.length;for(const i of u){const l=i*c;if(a[l+2]<=t)continue;a[l+2]=t;const h=a[l+F];n+=a[l]*h,r+=a[l+1]*h,a[l+4]=g,o&&(e||(e=this._map(a,s,!0),p=this.clusterProps.length,this.clusterProps.push(e)),o(e,this._map(a,l)));}a[s+4]=g,l.push(n/f,r/f,1/0,g,-1,f),o&&l.push(p);}else {for(let e=0;e<c;e++)l.push(a[s+e]);if(f>1)for(const e of u){const s=e*c;if(!(a[s+2]<=t)){a[s+2]=t;for(let e=0;e<c;e++)l.push(a[s+e]);}}}}return l}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return (e-this.points.length)%32}_map(e,t,s){if(e[t+F]>1){const i=this.clusterProps[e[t+A]];return s?Object.assign({},i):i}const i=this.points[e[t+O]].properties,o=this.options.map(i);return s&&o===i?Object.assign({},o):o}}function E(e,t,s){return {type:\"Feature\",id:e[t+O],properties:W(e,t,s),geometry:{type:\"Point\",coordinates:[(i=e[t],360*(i-.5)),G(e[t+1])]}};var i;}function W(e,t,s){const i=e[t+F],o=i>=1e4?`${Math.round(i/1e3)}k`:i>=1e3?Math.round(i/100)/10+\"k\":i,n=e[t+A],r=-1===n?{}:Object.assign({},s[n]);return Object.assign(r,{cluster:!0,cluster_id:e[t+O],point_count:i,point_count_abbreviated:o})}function X(e){return e/360+.5}function Y(e){const t=Math.sin(e*Math.PI/180),s=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return s<0?0:s>1?1:s}function G(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}function N(e,t,s,i){let o=i;const n=t+(s-t>>1);let r,a=s-t;const l=e[t],c=e[t+1],h=e[s],u=e[s+1];for(let i=t+3;i<s;i+=3){const t=B(e[i],e[i+1],l,c,h,u);if(t>o)r=i,o=t;else if(t===o){const e=Math.abs(i-n);e<a&&(r=i,a=e);}}o>i&&(r-t>3&&N(e,t,r,i),e[r+2]=o,s-r>3&&N(e,r,s,i));}function B(e,t,s,i,o,n){let r=o-s,a=n-i;if(0!==r||0!==a){const l=((e-s)*r+(t-i)*a)/(r*r+a*a);l>1?(s=o,i=n):l>0&&(s+=r*l,i+=a*l);}return r=e-s,a=t-i,r*r+a*a}function R(e,t,s,i){const o={id:e??null,type:t,geometry:s,tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};if(\"Point\"===t||\"MultiPoint\"===t||\"LineString\"===t)J(o,s);else if(\"Polygon\"===t)J(o,s[0]);else if(\"MultiLineString\"===t)for(const e of s)J(o,e);else if(\"MultiPolygon\"===t)for(const e of s)J(o,e[0]);return o}function J(e,t){for(let s=0;s<t.length;s+=3)e.minX=Math.min(e.minX,t[s]),e.minY=Math.min(e.minY,t[s+1]),e.maxX=Math.max(e.maxX,t[s]),e.maxY=Math.max(e.maxY,t[s+1]);}function V(e,t,s,i){if(!t.geometry)return;const o=t.geometry.coordinates;if(o&&0===o.length)return;const n=t.geometry.type,r=Math.pow(s.tolerance/((1<<s.maxZoom)*s.extent),2);let a=[],l=t.id;if(s.promoteId?l=t.properties[s.promoteId]:s.generateId&&(l=i||0),\"Point\"===n)$(o,a);else if(\"MultiPoint\"===n)for(const e of o)$(e,a);else if(\"LineString\"===n)U(o,a,r,!1);else if(\"MultiLineString\"===n){if(s.lineMetrics){for(const s of o)a=[],U(s,a,r,!1),e.push(R(l,\"LineString\",a,t.properties));return}q(o,a,r,!1);}else if(\"Polygon\"===n)q(o,a,r,!0);else {if(\"MultiPolygon\"!==n){if(\"GeometryCollection\"===n){for(const o of t.geometry.geometries)V(e,{id:l,geometry:o,properties:t.properties},s,i);return}throw new Error(\"Input data is not a valid GeoJSON object.\")}for(const e of o){const t=[];q(e,t,r,!0),a.push(t);}}e.push(R(l,n,a,t.properties));}function $(e,t){t.push(Q(e[0]),H(e[1]),0);}function U(e,t,s,i){let o,n,r=0;for(let s=0;s<e.length;s++){const a=Q(e[s][0]),l=H(e[s][1]);t.push(a,l,0),s>0&&(r+=i?(o*l-a*n)/2:Math.sqrt(Math.pow(a-o,2)+Math.pow(l-n,2))),o=a,n=l;}const a=t.length-3;t[2]=1,N(t,0,a,s),t[a+2]=1,t.size=Math.abs(r),t.start=0,t.end=t.size;}function q(e,t,s,i){for(let o=0;o<e.length;o++){const n=[];U(e[o],n,s,i),t.push(n);}}function Q(e){return e/360+.5}function H(e){const t=Math.sin(e*Math.PI/180),s=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return s<0?0:s>1?1:s}function K(e,t,s,i,o,n,r,a){if(i/=t,n>=(s/=t)&&r<i)return e;if(r<s||n>=i)return null;const l=[];for(const t of e){const e=t.geometry;let n=t.type;const r=0===o?t.minX:t.minY,c=0===o?t.maxX:t.maxY;if(r>=s&&c<i){l.push(t);continue}if(c<s||r>=i)continue;let h=[];if(\"Point\"===n||\"MultiPoint\"===n)ee(e,h,s,i,o);else if(\"LineString\"===n)te(e,h,s,i,o,!1,a.lineMetrics);else if(\"MultiLineString\"===n)ie(e,h,s,i,o,!1);else if(\"Polygon\"===n)ie(e,h,s,i,o,!0);else if(\"MultiPolygon\"===n)for(const t of e){const e=[];ie(t,e,s,i,o,!0),e.length&&h.push(e);}if(h.length){if(a.lineMetrics&&\"LineString\"===n){for(const e of h)l.push(R(t.id,n,e,t.tags));continue}\"LineString\"!==n&&\"MultiLineString\"!==n||(1===h.length?(n=\"LineString\",h=h[0]):n=\"MultiLineString\"),\"Point\"!==n&&\"MultiPoint\"!==n||(n=3===h.length?\"Point\":\"MultiPoint\"),l.push(R(t.id,n,h,t.tags));}}return l.length?l:null}function ee(e,t,s,i,o){for(let n=0;n<e.length;n+=3){const r=e[n+o];r>=s&&r<=i&&oe(t,e[n],e[n+1],e[n+2]);}}function te(e,t,s,i,o,n,r){let a=se(e);const l=0===o?ne:re;let c,h,u=e.start;for(let d=0;d<e.length-3;d+=3){const f=e[d],p=e[d+1],g=e[d+2],m=e[d+3],y=e[d+4],x=0===o?f:p,w=0===o?m:y;let b=!1;r&&(c=Math.sqrt(Math.pow(f-m,2)+Math.pow(p-y,2))),x<s?w>s&&(h=l(a,f,p,m,y,s),r&&(a.start=u+c*h)):x>i?w<i&&(h=l(a,f,p,m,y,i),r&&(a.start=u+c*h)):oe(a,f,p,g),w<s&&x>=s&&(h=l(a,f,p,m,y,s),b=!0),w>i&&x<=i&&(h=l(a,f,p,m,y,i),b=!0),!n&&b&&(r&&(a.end=u+c*h),t.push(a),a=se(e)),r&&(u+=c);}let d=e.length-3;const f=e[d],p=e[d+1],g=0===o?f:p;g>=s&&g<=i&&oe(a,f,p,e[d+2]),d=a.length-3,n&&d>=3&&(a[d]!==a[0]||a[d+1]!==a[1])&&oe(a,a[0],a[1],a[2]),a.length&&t.push(a);}function se(e){const t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function ie(e,t,s,i,o,n){for(const r of e)te(r,t,s,i,o,n,!1);}function oe(e,t,s,i){e.push(t,s,i);}function ne(e,t,s,i,o,n){const r=(n-t)/(i-t);return oe(e,n,s+(o-s)*r,1),r}function re(e,t,s,i,o,n){const r=(n-s)/(o-s);return oe(e,t+(i-t)*r,n,1),r}function ae(e,t){const s=[];for(let i=0;i<e.length;i++){const o=e[i],n=o.type;let r;if(\"Point\"===n||\"MultiPoint\"===n||\"LineString\"===n)r=le(o.geometry,t);else if(\"MultiLineString\"===n||\"Polygon\"===n){r=[];for(const e of o.geometry)r.push(le(e,t));}else if(\"MultiPolygon\"===n){r=[];for(const e of o.geometry){const s=[];for(const i of e)s.push(le(i,t));r.push(s);}}s.push(R(o.id,n,r,o.tags));}return s}function le(e,t){const s=[];s.size=e.size,void 0!==e.start&&(s.start=e.start,s.end=e.end);for(let i=0;i<e.length;i+=3)s.push(e[i]+t,e[i+1],e[i+2]);return s}function ce(e,t){if(e.transformed)return e;const s=1<<e.z,i=e.x,o=e.y;for(const n of e.features){const e=n.geometry,r=n.type;if(n.geometry=[],1===r)for(let r=0;r<e.length;r+=2)n.geometry.push(he(e[r],e[r+1],t,s,i,o));else for(let r=0;r<e.length;r++){const a=[];for(let n=0;n<e[r].length;n+=2)a.push(he(e[r][n],e[r][n+1],t,s,i,o));n.geometry.push(a);}}return e.transformed=!0,e}function he(e,t,s,i,o,n){return [Math.round(s*(e*i-o)),Math.round(s*(t*i-n))]}function ue(e,t,s,i,o){const n=t===o.maxZoom?0:o.tolerance/((1<<t)*o.extent),r={features:[],numPoints:0,numSimplified:0,numFeatures:e.length,source:null,x:s,y:i,z:t,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(const t of e)de(r,t,n,o);return r}function de(e,t,s,i){const o=t.geometry,n=t.type,r=[];if(e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),\"Point\"===n||\"MultiPoint\"===n)for(let t=0;t<o.length;t+=3)r.push(o[t],o[t+1]),e.numPoints++,e.numSimplified++;else if(\"LineString\"===n)fe(r,o,e,s,!1,!1);else if(\"MultiLineString\"===n||\"Polygon\"===n)for(let t=0;t<o.length;t++)fe(r,o[t],e,s,\"Polygon\"===n,0===t);else if(\"MultiPolygon\"===n)for(let t=0;t<o.length;t++){const i=o[t];for(let t=0;t<i.length;t++)fe(r,i[t],e,s,!0,0===t);}if(r.length){let s=t.tags||null;if(\"LineString\"===n&&i.lineMetrics){s={};for(const e in t.tags)s[e]=t.tags[e];s.mapbox_clip_start=o.start/o.size,s.mapbox_clip_end=o.end/o.size;}const a={geometry:r,type:\"Polygon\"===n||\"MultiPolygon\"===n?3:\"LineString\"===n||\"MultiLineString\"===n?2:1,tags:s};null!==t.id&&(a.id=t.id),e.features.push(a);}}function fe(e,t,s,i,o,n){const r=i*i;if(i>0&&t.size<(o?r:i))return void(s.numPoints+=t.length/3);const a=[];for(let e=0;e<t.length;e+=3)(0===i||t[e+2]>r)&&(s.numSimplified++,a.push(t[e],t[e+1])),s.numPoints++;o&&function(e,t){let s=0;for(let t=0,i=e.length,o=i-2;t<i;o=t,t+=2)s+=(e[t]-e[o])*(e[t+1]+e[o+1]);if(s>0===t)for(let t=0,s=e.length;t<s/2;t+=2){const i=e[t],o=e[t+1];e[t]=e[s-2-t],e[t+1]=e[s-1-t],e[s-2-t]=i,e[s-1-t]=o;}}(a,n),e.push(a);}const pe={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0};class ge{constructor(e,t){const s=(t=this.options=function(e,t){for(const s in t)e[s]=t[s];return e}(Object.create(pe),t)).debug;if(s&&console.time(\"preprocess data\"),t.maxZoom<0||t.maxZoom>24)throw new Error(\"maxZoom should be in the 0-24 range\");if(t.promoteId&&t.generateId)throw new Error(\"promoteId and generateId cannot be used together.\");let i=function(e,t){const s=[];if(\"FeatureCollection\"===e.type)for(let i=0;i<e.features.length;i++)V(s,e.features[i],t,i);else V(s,\"Feature\"===e.type?e:{geometry:e},t);return s}(e,t);this.tiles={},this.tileCoords=[],s&&(console.timeEnd(\"preprocess data\"),console.log(\"index: maxZoom: %d, maxPoints: %d\",t.indexMaxZoom,t.indexMaxPoints),console.time(\"generate tiles\"),this.stats={},this.total=0),i=function(e,t){const s=t.buffer/t.extent;let i=e;const o=K(e,1,-1-s,s,0,-1,2,t),n=K(e,1,1-s,2+s,0,-1,2,t);return (o||n)&&(i=K(e,1,-s,1+s,0,-1,2,t)||[],o&&(i=ae(o,1).concat(i)),n&&(i=i.concat(ae(n,-1)))),i}(i,t),i.length&&this.splitTile(i,0,0,0),s&&(i.length&&console.log(\"features: %d, points: %d\",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd(\"generate tiles\"),console.log(\"tiles generated:\",this.total,JSON.stringify(this.stats)));}splitTile(e,t,s,i,o,n,r){const a=[e,t,s,i],l=this.options,c=l.debug;for(;a.length;){i=a.pop(),s=a.pop(),t=a.pop(),e=a.pop();const h=1<<t,u=me(t,s,i);let d=this.tiles[u];if(!d&&(c>1&&console.time(\"creation\"),d=this.tiles[u]=ue(e,t,s,i,l),this.tileCoords.push({z:t,x:s,y:i}),c)){c>1&&(console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\",t,s,i,d.numFeatures,d.numPoints,d.numSimplified),console.timeEnd(\"creation\"));const e=`z${t}`;this.stats[e]=(this.stats[e]||0)+1,this.total++;}if(d.source=e,null==o){if(t===l.indexMaxZoom||d.numPoints<=l.indexMaxPoints)continue}else {if(t===l.maxZoom||t===o)continue;if(null!=o){const e=o-t;if(s!==n>>e||i!==r>>e)continue}}if(d.source=null,0===e.length)continue;c>1&&console.time(\"clipping\");const f=.5*l.buffer/l.extent,p=.5-f,g=.5+f,m=1+f;let y=null,x=null,w=null,b=null,S=K(e,h,s-f,s+g,0,d.minX,d.maxX,l),v=K(e,h,s+p,s+m,0,d.minX,d.maxX,l);e=null,S&&(y=K(S,h,i-f,i+g,1,d.minY,d.maxY,l),x=K(S,h,i+p,i+m,1,d.minY,d.maxY,l),S=null),v&&(w=K(v,h,i-f,i+g,1,d.minY,d.maxY,l),b=K(v,h,i+p,i+m,1,d.minY,d.maxY,l),v=null),c>1&&console.timeEnd(\"clipping\"),a.push(y||[],t+1,2*s,2*i),a.push(x||[],t+1,2*s,2*i+1),a.push(w||[],t+1,2*s+1,2*i),a.push(b||[],t+1,2*s+1,2*i+1);}}getTile(e,t,s){e=+e,t=+t,s=+s;const i=this.options,{extent:o,debug:n}=i;if(e<0||e>24)return null;const r=1<<e,a=me(e,t=t+r&r-1,s);if(this.tiles[a])return ce(this.tiles[a],o);n>1&&console.log(\"drilling down to z%d-%d-%d\",e,t,s);let l,c=e,h=t,u=s;for(;!l&&c>0;)c--,h>>=1,u>>=1,l=this.tiles[me(c,h,u)];return l&&l.source?(n>1&&(console.log(\"found parent tile z%d-%d-%d\",c,h,u),console.time(\"drilling down\")),this.splitTile(l.source,c,h,u,e,t,s),n>1&&console.timeEnd(\"drilling down\"),this.tiles[a]?ce(this.tiles[a],o):null):null}}function me(e,t,s){return 32*((1<<e)*s+t)+e}function ye(e,t){const s=e.tileID.canonical;if(!this._geoJSONIndex)return void t(null,null);const i=this._geoJSONIndex.getTile(s.z,s.x,s.y);if(!i)return void t(null,null);const o=new p(i.features);let n=_(o);0===n.byteOffset&&n.byteLength===n.buffer.byteLength||(n=new Uint8Array(n)),t(null,{vectorTile:o,rawData:n.buffer});}class xe extends c{constructor(e,t,s,i,o,n){super(e,t,s,i,ye,n),o&&(this.loadGeoJSON=o),this._dynamicIndex=new y;}loadData(s,i){const o=s&&s.request,n=o&&o.collectResourceTiming;this.loadGeoJSON(s,((r,a)=>{if(r||!a)return i(r);if(\"object\"!=typeof a)return i(new Error(`Input data given to '${s.source}' is not a valid GeoJSON object.`));{try{if(s.filter){const t=e.U(s.filter,{type:\"boolean\",\"property-type\":\"data-driven\",overridable:!1,transition:!1});if(\"error\"===t.result)throw new Error(t.value.map((e=>`${e.key}: ${e.message}`)).join(\", \"));a.features=a.features.filter((e=>t.value.evaluate({zoom:0},e)));}s.dynamic?(\"Feature\"===a.type&&(a={type:\"FeatureCollection\",features:[a]}),s.append||(this._dynamicIndex.clear(),this.loaded={}),this._dynamicIndex.load(a.features,this.loaded),s.cluster&&(a.features=this._dynamicIndex.getFeatures())):this.loaded={},this._geoJSONIndex=s.cluster?new Z(function({superclusterOptions:t,clusterProperties:s}){if(!s||!t)return t;const i={},o={},n={accumulated:null,zoom:0},r={properties:null},a=Object.keys(s);for(const t of a){const[n,r]=s[t],a=e.U(r),l=e.U(\"string\"==typeof n?[n,[\"accumulated\"],[\"get\",t]]:n);i[t]=a.value,o[t]=l.value;}return t.map=e=>{r.properties=e;const t={};for(const e of a)t[e]=i[e].evaluate(n,r);return t},t.reduce=(e,t)=>{r.properties=t;for(const t of a)n.accumulated=e[t],e[t]=o[t].evaluate(n,r);},t}(s)).load(a.features):s.dynamic?this._dynamicIndex:function(e,t){return new ge(e,t)}(a,s.geojsonVtOptions);}catch(e){return i(e)}const r={};if(n){const e=t(o);e&&(r.resourceTiming={},r.resourceTiming[s.source]=JSON.parse(JSON.stringify(e)));}i(null,r);}}));}reloadTile(e,t){const s=this.loaded;return s&&s[e.uid]?e.partial?t(null,void 0):super.reloadTile(e,t):this.loadTile(e,t)}loadGeoJSON(t,s){if(t.request)e.n(t.request,s);else {if(\"string\"!=typeof t.data)return s(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));try{return s(null,JSON.parse(t.data))}catch(e){return s(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(e,t){try{t(null,this._geoJSONIndex.getClusterExpansionZoom(e.clusterId));}catch(e){t(e);}}getClusterChildren(e,t){try{t(null,this._geoJSONIndex.getChildren(e.clusterId));}catch(e){t(e);}}getClusterLeaves(e,t){try{t(null,this._geoJSONIndex.getLeaves(e.clusterId,e.limit,e.offset));}catch(e){t(e);}}}class we{constructor(t,s){this.tileID=new e.aG(t.tileID.overscaledZ,t.tileID.wrap,t.tileID.canonical.z,t.tileID.canonical.x,t.tileID.canonical.y),this.tileZoom=t.tileZoom,this.uid=t.uid,this.zoom=t.zoom,this.canonical=t.tileID.canonical,this.pixelRatio=t.pixelRatio,this.tileSize=t.tileSize,this.source=t.source,this.overscaling=this.tileID.overscaleFactor(),this.projection=t.projection,this.brightness=s;}parse(t,s,i,o){this.status=\"parsing\";const n=new e.aG(i.tileID.overscaledZ,i.tileID.wrap,i.tileID.canonical.z,i.tileID.canonical.x,i.tileID.canonical.y),r=[],a=s.familiesBySource[i.source],l=new e.dZ(n,i.promoteId);return l.bucketLayerIDs=[],l.is3DTile=!0,e.e9(t).then((t=>{if(!t)return o(new Error(\"Could not parse tile\"));const s=e.ea(t,1/e.cc(i.tileID.canonical)),c=t.json.extensionsUsed&&t.json.extensionsUsed.includes(\"MAPBOX_mesh_features\")||t.json.asset.extras&&t.json.asset.extras.MAPBOX_mesh_features,h=t.json.extensionsUsed&&t.json.extensionsUsed.includes(\"EXT_meshopt_compression\"),u=new e.a8(this.zoom,{brightness:this.brightness});for(const t in a)for(const i of a[t]){const t=i[0];l.bucketLayerIDs.push(i.map((t=>e.aC(t.id,t.scope)))),t.recalculate(u,[]);const o=new e.eb(i,s,n,c,h,this.brightness,l);c||(o.needsUpload=!0),r.push(o),o.evaluate(t);}this.status=\"done\",o(null,{buckets:r,featureIndex:l,collisionBoxArray:null,glyphAtlasImage:null,lineAtlas:null,imageAtlas:null,brightness:null});})).catch((e=>o(new Error(e.message))))}}class be{constructor(e,t,s,i,o,n){this.actor=e,this.layerIndex=t,this.availableImages=s,this.brightness=n,this.loading={},this.loaded={};}loadTile(t,s){const i=t.uid,o=this.loading[i]=new we(t,this.brightness);e.bi(t.request,((e,n)=>{const r=!this.loading[i];return delete this.loading[i],r||e?(o.status=\"done\",r||(this.loaded[i]=o),s(e)):n&&0!==n.byteLength?void o.parse(n,this.layerIndex,t,((e,t)=>{o.status=\"done\",this.loaded=this.loaded||{},this.loaded[i]=o,e||!t?s(e):s(null,t);})):(o.status=\"done\",this.loaded[i]=o,s())}));}reloadTile(e,t){const s=this.loaded,i=e.uid;if(s&&s[i]){const o=s[i];o.projection=e.projection,o.brightness=e.brightness;const n=(s,i)=>{o.reloadCallback&&(delete o.reloadCallback,this.loadTile(e,t)),t(s,i);};\"parsing\"===o.status?o.reloadCallback=n:\"done\"===o.status&&this.loadTile(e,t);}}abortTile(e,t){const s=e.uid;this.loading[s]&&delete this.loading[s],t();}removeTile(e,t){const s=this.loaded,i=e.uid;s&&s[i]&&delete s[i],t();}}class Se{constructor(t){this.self=t,this.actor=new e.ec(t,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.imageRasterizer=new e.I,this.projections={},this.defaultProjection=e.bP({name:\"mercator\"}),this.workerSourceTypes={vector:c,geojson:xe,\"batched-model\":be},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(e,t)=>{if(this.workerSourceTypes[e])throw new Error(`Worker source with name \"${e}\" already registered.`);this.workerSourceTypes[e]=t;},this.self.registerRTLTextPlugin=t=>{if(e.ed.isParsed())throw new Error(\"RTL text plugin already registered.\");e.ed.applyArabicShaping=t.applyArabicShaping,e.ed.processBidirectionalText=t.processBidirectionalText,e.ed.processStyledBidirectionalText=t.processStyledBidirectionalText;};}clearCaches(e,t,s){delete this.layerIndexes[e],delete this.availableImages[e],delete this.workerSources[e],delete this.demWorkerSources[e],delete this.rasterArrayWorkerSource,s();}checkIfReady(e,t,s){s();}setReferrer(e,t){this.referrer=t;}spriteLoaded(t,{scope:s,isLoaded:i}){if(this.isSpriteLoaded[t]||(this.isSpriteLoaded[t]={}),this.isSpriteLoaded[t][s]=i,this.workerSources[t]&&this.workerSources[t][s])for(const o in this.workerSources[t][s]){const n=this.workerSources[t][s][o];for(const t in n){const s=n[t];s instanceof c&&(s.isSpriteLoaded=i,s.fire(new e.z(\"isSpriteLoaded\")));}}}setImages(e,{scope:t,images:s},i){if(this.availableImages[e]||(this.availableImages[e]={}),this.availableImages[e][t]=s,this.workerSources[e]&&this.workerSources[e][t]){for(const i in this.workerSources[e][t]){const o=this.workerSources[e][t][i];for(const e in o)o[e].availableImages=s;}i();}else i();}setProjection(t,s){this.projections[t]=e.bP(s);}setBrightness(e,t,s){this.brightness=t,s();}setLayers(e,t,s){this.getLayerIndex(e,t.scope).replace(t.layers,t.options),s();}updateLayers(e,t,s){this.getLayerIndex(e,t.scope).update(t.layers,t.removedIds,t.options),s();}loadTile(e,t,s){t.projection=this.projections[e]||this.defaultProjection,this.getWorkerSource(e,t.type,t.source,t.scope).loadTile(t,s);}loadDEMTile(e,t,s){this.getDEMWorkerSource(e,t.source,t.scope).loadTile(t,s);}decodeRasterArray(e,t,s){this.getRasterArrayWorkerSource().decodeRasterArray(t,s);}reloadTile(e,t,s){t.projection=this.projections[e]||this.defaultProjection,this.getWorkerSource(e,t.type,t.source,t.scope).reloadTile(t,s);}abortTile(e,t,s){this.getWorkerSource(e,t.type,t.source,t.scope).abortTile(t,s);}removeTile(e,t,s){this.getWorkerSource(e,t.type,t.source,t.scope).removeTile(t,s);}removeSource(e,t,s){if(!(this.workerSources[e]&&this.workerSources[e][t.scope]&&this.workerSources[e][t.scope][t.type]&&this.workerSources[e][t.scope][t.type][t.source]))return;const i=this.workerSources[e][t.scope][t.type][t.source];delete this.workerSources[e][t.scope][t.type][t.source],void 0!==i.removeSource?i.removeSource(t,s):s();}loadWorkerSource(e,t,s){try{this.self.importScripts(t.url),s();}catch(e){s(e.toString());}}syncRTLPluginState(t,s,i){try{e.ed.setState(s);const t=e.ed.getPluginURL();if(e.ed.isLoaded()&&!e.ed.isParsed()&&null!=t){this.self.importScripts(t);const s=e.ed.isParsed();i(s?void 0:new Error(`RTL Text Plugin failed to import scripts from ${t}`),s);}}catch(e){i(e.toString());}}setDracoUrl(e,t){this.dracoUrl=t;}getAvailableImages(e,t){this.availableImages[e]||(this.availableImages[e]={});let s=this.availableImages[e][t];return s||(s=[]),s}getLayerIndex(e,t){this.layerIndexes[e]||(this.layerIndexes[e]={});let s=this.layerIndexes[e][t];return s||(s=this.layerIndexes[e][t]=new o,s.scope=t),s}getWorkerSource(e,t,s,i){return this.workerSources[e]||(this.workerSources[e]={}),this.workerSources[e][i]||(this.workerSources[e][i]={}),this.workerSources[e][i][t]||(this.workerSources[e][i][t]={}),this.isSpriteLoaded[e]||(this.isSpriteLoaded[e]={}),this.workerSources[e][i][t][s]||(this.workerSources[e][i][t][s]=new this.workerSourceTypes[t]({send:(t,s,i,o,n,r)=>{this.actor.send(t,s,i,e,n,r);},scheduler:this.actor.scheduler},this.getLayerIndex(e,i),this.getAvailableImages(e,i),this.isSpriteLoaded[e][i],void 0,this.brightness)),this.workerSources[e][i][t][s]}rasterizeImages(e,t,s){const{imageTasks:i,scope:o}=t,n={};for(const t in i){const{image:s,imageIdWithOptions:r}=i[t];n[t]=this.imageRasterizer.rasterize(r,s,o,e);}s(void 0,n);}removeRasterizedImages(e,t,s){const{imageIds:i,scope:o}=t;this.imageRasterizer.removeImagesFromCacheByIds(i,o,e),s();}getDEMWorkerSource(e,t,s){return this.demWorkerSources[e]||(this.demWorkerSources[e]={}),this.demWorkerSources[e][s]||(this.demWorkerSources[e][s]={}),this.demWorkerSources[e][s][t]||(this.demWorkerSources[e][s][t]=new h),this.demWorkerSources[e][s][t]}getRasterArrayWorkerSource(){return this.rasterArrayWorkerSource||(this.rasterArrayWorkerSource=new u),this.rasterArrayWorkerSource}enforceCacheSizeLimit(t,s){e.ee(s);}getWorkerPerformanceMetrics(e,t,s){s(void 0,void 0);}}return \"undefined\"!=typeof WorkerGlobalScope&&\"undefined\"!=typeof self&&self instanceof WorkerGlobalScope&&(self.worker=new Se(self)),Se}));\n\ndefine([\"./shared\"],(function(e){var t=\"3.9.4\";const i={create:\"create\",load:\"load\",fullLoad:\"fullLoad\"},o={mark(e){performance.mark(e);},measure(e,t,i){performance.measure(e,t,i);}};function s(t){const i=t.name.split(\"?\")[0];return e.a(i)&&i.includes(\"mapbox-gl.js\")?\"javascript\":e.a(i)&&i.includes(\"mapbox-gl.css\")?\"css\":e.b(i)?\"fontRange\":e.c(i)?\"sprite\":e.i(i)?\"style\":e.d(i)?\"tilejson\":\"other\"}var r,a={},n=function(){if(r)return a;function e(e){return !t(e)}function t(t){return \"undefined\"==typeof window||\"undefined\"==typeof document?\"not a browser\":function(){if(!(\"Worker\"in window&&\"Blob\"in window&&\"URL\"in window))return !1;var e,t,i=new Blob([\"\"],{type:\"text/javascript\"}),o=URL.createObjectURL(i);try{t=new Worker(o),e=!0;}catch(t){e=!1;}return t&&t.terminate(),URL.revokeObjectURL(o),e}()?function(){var e=document.createElement(\"canvas\");e.width=e.height=1;var t=e.getContext(\"2d\");if(!t)return !1;var i=t.getImageData(0,0,1,1);return i&&i.width===e.width}()?(void 0===i[o=t&&t.failIfMajorPerformanceCaveat]&&(i[o]=function(t){var i,o=function(t){var i=document.createElement(\"canvas\"),o=Object.create(e.webGLContextAttributes);return o.failIfMajorPerformanceCaveat=t,i.getContext(\"webgl2\",o)}(t);if(!o)return !1;try{i=o.createShader(o.VERTEX_SHADER);}catch(e){return !1}return !(!i||o.isContextLost())&&(o.shaderSource(i,\"void main() {}\"),o.compileShader(i),!0===o.getShaderParameter(i,o.COMPILE_STATUS))}(o)),i[o]?document.documentMode?\"insufficient ECMAScript 6 support\":void 0:\"insufficient WebGL2 support\"):\"insufficient Canvas/getImageData support\":\"insufficient worker support\";var o;}r=1,a.supported=e,a.notSupportedReason=t;var i={};return e.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0},a}();function l(e,t,i){const o=document.createElement(e);return null!=t&&(o.className=t),i&&i.appendChild(o),o}function c(e,t,i){const o=document.createElementNS(\"http://www.w3.org/2000/svg\",e);for(const e of Object.keys(t))o.setAttributeNS(null,e,String(t[e]));return i&&i.appendChild(o),o}const h=\"undefined\"!=typeof document?document.documentElement&&document.documentElement.style:null,u=h&&void 0!==h.userSelect?\"userSelect\":\"WebkitUserSelect\";let d;function _(){h&&u&&(d=h[u],h[u]=\"none\");}function p(){h&&u&&(h[u]=d);}function f(e){e.preventDefault(),e.stopPropagation(),window.removeEventListener(\"click\",f,!0);}function m(){window.addEventListener(\"click\",f,!0),window.setTimeout((()=>{window.removeEventListener(\"click\",f,!0);}),0);}function g(e,t){const i=e.getBoundingClientRect();return x(e,i,t)}function v(e,t){const i=e.getBoundingClientRect(),o=[];for(let s=0;s<t.length;s++)o.push(x(e,i,t[s]));return o}function y(e){return void 0!==window.InstallTrigger&&2===e.button&&e.ctrlKey&&window.navigator.platform.toUpperCase().indexOf(\"MAC\")>=0?0:e.button}function x(t,i,o){const s=t.offsetWidth===i.width?1:t.offsetWidth/i.width;return new e.P((o.clientX-i.left)*s,(o.clientY-i.top)*s)}const b=\"01\",w=\"NO_ACCESS_TOKEN\";class T{constructor(e,t,i){this._transformRequestFn=e,this._customAccessToken=t,this._silenceAuthErrors=!!i,this._createSkuToken();}_createSkuToken(){const e=function(){let e=\"\";for(let t=0;t<10;t++)e+=\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"[Math.floor(62*Math.random())];return {token:[\"1\",b,e].join(\"\"),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=e.token,this._skuTokenExpiresAt=e.tokenExpiresAt;}_isSkuTokenExpired(){return Date.now()>this._skuTokenExpiresAt}transformRequest(e,t){return this._transformRequestFn&&this._transformRequestFn(e,t)||{url:e}}normalizeStyleURL(i,o){if(!e.f(i))return i;const s=S(i);return s.params.push(`sdk=js-${t}`),s.path=`/styles/v1${s.path}`,this._makeAPIURL(s,this._customAccessToken||o)}normalizeGlyphsURL(t,i){if(!e.f(t))return t;const o=S(t);return o.path=`/fonts/v1${o.path}`,this._makeAPIURL(o,this._customAccessToken||i)}normalizeModelURL(t,i){if(!e.f(t))return t;const o=S(t);return o.path=`/models/v1${o.path}`,this._makeAPIURL(o,this._customAccessToken||i)}normalizeSourceURL(t,i,o,s){if(!e.f(t))return t;const r=S(t);return r.path=`/v4/${r.authority}.json`,r.params.push(\"secure\"),o&&r.params.push(`language=${o}`),s&&r.params.push(`worldview=${s}`),this._makeAPIURL(r,this._customAccessToken||i)}normalizeIconsetURL(t,i){const o=S(t);return e.f(t)?(o.path=`/styles/v1${o.path}/iconset.pbf`,this._makeAPIURL(o,this._customAccessToken||i)):C(o)}normalizeSpriteURL(t,i,o,s){const r=S(t);return e.f(t)?(r.path=`/styles/v1${r.path}/sprite${i}${o}`,this._makeAPIURL(r,this._customAccessToken||s)):(r.path+=`${i}${o}`,C(r))}normalizeTileURL(t,i,o){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!e.f(t))return t;const s=S(t);s.path=s.path.replace(/(\\.(png|jpg)\\d*)(?=$)/,`${i||o&&\"raster\"!==s.authority&&512===o?\"@2x\":\"\"}${e.m.supported?\".webp\":\"$1\"}`),\"raster\"===s.authority?s.path=`/${e.e.RASTER_URL_PREFIX}${s.path}`:\"rasterarrays\"===s.authority?s.path=`/${e.e.RASTERARRAYS_URL_PREFIX}${s.path}`:\"3dtiles\"===s.authority?s.path=`/${e.e.TILES3D_URL_PREFIX}${s.path}`:(s.path=s.path.replace(/^.+\\/v4\\//,\"/\"),s.path=`/${e.e.TILE_URL_VERSION}${s.path}`);const r=this._customAccessToken||function(e){for(const t of e){const e=t.match(/^access_token=(.*)$/);if(e)return e[1]}return null}(s.params)||e.e.ACCESS_TOKEN;return e.e.REQUIRE_ACCESS_TOKEN&&r&&this._skuToken&&s.params.push(`sku=${this._skuToken}`),this._makeAPIURL(s,r)}canonicalizeTileURL(t,i){const o=S(t);if(!o.path.match(/^(\\/v4\\/|\\/(raster|rasterarrays)\\/v1\\/)/)||!o.path.match(/\\.[\\w]+$/))return t;let s=\"mapbox://\";o.path.match(/^\\/raster\\/v1\\//)?s+=`raster/${o.path.replace(`/${e.e.RASTER_URL_PREFIX}/`,\"\")}`:o.path.match(/^\\/rasterarrays\\/v1\\//)?s+=`rasterarrays/${o.path.replace(`/${e.e.RASTERARRAYS_URL_PREFIX}/`,\"\")}`:s+=`tiles/${o.path.replace(`/${e.e.TILE_URL_VERSION}/`,\"\")}`;let r=o.params;return i&&(r=r.filter((e=>!e.match(/^access_token=/)))),r.length&&(s+=`?${r.join(\"&\")}`),s}canonicalizeTileset(t,i){const o=!!i&&e.f(i),s=[];for(const i of t.tiles||[])e.h(i)?s.push(this.canonicalizeTileURL(i,o)):s.push(i);return s}_makeAPIURL(t,i){const o=\"See https://docs.mapbox.com/api/overview/#access-tokens-and-token-scopes\",s=S(e.e.API_URL);if(t.protocol=s.protocol,t.authority=s.authority,\"http\"===t.protocol){const e=t.params.indexOf(\"secure\");e>=0&&t.params.splice(e,1);}if(\"/\"!==s.path&&(t.path=`${s.path}${t.path}`),!e.e.REQUIRE_ACCESS_TOKEN)return C(t);if(i=i||e.e.ACCESS_TOKEN,!this._silenceAuthErrors){if(!i)throw new Error(`An API access token is required to use Mapbox GL. ${o}`);if(\"s\"===i[0])throw new Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${o}`)}return t.params=t.params.filter((e=>-1===e.indexOf(\"access_token\"))),t.params.push(`access_token=${i||\"\"}`),C(t)}}const E=/^(\\w+):\\/\\/([^/?]*)(\\/[^?]+)?\\??(.+)?/;function S(e){const t=e.match(E);if(!t)throw new Error(\"Unable to parse URL object\");return {protocol:t[1],authority:t[2],path:t[3]||\"/\",params:t[4]?t[4].split(\"&\"):[]}}function C(e){const t=e.params.length?`?${e.params.join(\"&\")}`:\"\";return `${e.protocol}://${e.authority}${e.path}${t}`}const I=\"mapbox.eventData\";function R(t){if(!t)return null;const i=t.split(\".\");if(!i||3!==i.length)return null;try{return JSON.parse(e.j(i[1]))}catch(e){return null}}class D{constructor(e){this.type=e,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null;}getStorageKey(t){const i=R(e.e.ACCESS_TOKEN);let o=\"\";return o=i&&i.u?e.k(i.u):e.e.ACCESS_TOKEN||\"\",t?`${I}.${t}:${o}`:`${I}:${o}`}fetchEventData(){const t=e.s(\"localStorage\"),i=this.getStorageKey(),o=this.getStorageKey(\"uuid\");if(t)try{const e=localStorage.getItem(i);e&&(this.eventData=JSON.parse(e));const t=localStorage.getItem(o);t&&(this.anonId=t);}catch(t){e.w(\"Unable to read from LocalStorage\");}}saveEventData(){const t=e.s(\"localStorage\"),i=this.getStorageKey(),o=this.getStorageKey(\"uuid\"),s=this.anonId;if(t&&s)try{localStorage.setItem(o,s),Object.keys(this.eventData).length>=1&&localStorage.setItem(i,JSON.stringify(this.eventData));}catch(t){e.w(\"Unable to write to LocalStorage\");}}processRequests(e){}postEvent(t,i,o,s){if(!e.e.EVENTS_URL)return;const r=S(e.e.EVENTS_URL);r.params.push(`access_token=${s||e.e.ACCESS_TOKEN||\"\"}`);const a={event:this.type,created:new Date(t).toISOString()},n=i?e.l(a,i):a,l={url:C(r),headers:{\"Content-Type\":\"text/plain\"},body:JSON.stringify([n])};this.pendingRequest=e.p(l,(e=>{this.pendingRequest=null,o(e),this.saveEventData(),this.processRequests(s);}));}queueRequest(e,t){this.queue.push(e),this.processRequests(t);}}const L=new class extends D{constructor(e){super(\"appUserTurnstile\"),this._customAccessToken=e;}postTurnstileEvent(t,i){e.e.EVENTS_URL&&e.e.ACCESS_TOKEN&&Array.isArray(t)&&t.some((t=>e.f(t)||e.h(t)))&&this.queueRequest(Date.now(),i);}processRequests(i){if(this.pendingRequest||0===this.queue.length)return;this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();const o=R(e.e.ACCESS_TOKEN),s=o?o.u:e.e.ACCESS_TOKEN;let r=s!==this.eventData.tokenU;e.v(this.anonId)||(this.anonId=e.u(),r=!0);const a=this.queue.shift();if(this.eventData.lastSuccess){const e=new Date(this.eventData.lastSuccess),t=new Date(a),i=(a-this.eventData.lastSuccess)/864e5;r=r||i>=1||i<-1||e.getDate()!==t.getDate();}else r=!0;r?this.postEvent(a,{sdkIdentifier:\"mapbox-gl-js\",sdkVersion:t,skuId:b,\"enabled.telemetry\":!1,userId:this.anonId},(e=>{e||(this.eventData.lastSuccess=a,this.eventData.tokenU=s);}),i):this.processRequests();}},A=L.postTurnstileEvent.bind(L),z=new class extends D{constructor(){super(\"map.load\"),this.success={},this.skuToken=\"\";}postMapLoadEvent(t,i,o,s){this.skuToken=i,this.errorCb=s,e.e.EVENTS_URL&&(o||e.e.ACCESS_TOKEN?this.queueRequest({id:t,timestamp:Date.now()},o):this.errorCb(new Error(w)));}processRequests(i){if(this.pendingRequest||0===this.queue.length)return;const{id:o,timestamp:s}=this.queue.shift();o&&this.success[o]||(this.anonId||this.fetchEventData(),e.v(this.anonId)||(this.anonId=e.u()),this.postEvent(s,{sdkIdentifier:\"mapbox-gl-js\",sdkVersion:t,skuId:b,skuToken:this.skuToken,userId:this.anonId},(e=>{e?this.errorCb(e):o&&(this.success[o]=!0);}),i));}remove(){this.errorCb=null;}},P=z.postMapLoadEvent.bind(z),M=new class extends D{constructor(){super(\"style.load\"),this.eventIdPerMapInstanceMap=new Map,this.mapInstanceIdMap=new WeakMap;}getMapInstanceId(t){let i=this.mapInstanceIdMap.get(t);return i||(i=e.u(),this.mapInstanceIdMap.set(t,i)),i}getEventId(e){const t=this.eventIdPerMapInstanceMap.get(e)||0;return this.eventIdPerMapInstanceMap.set(e,t+1),t}postStyleLoadEvent(t,i){const{map:o,style:s,importedStyles:r}=i;if(!e.e.EVENTS_URL||!t&&!e.e.ACCESS_TOKEN)return;const a=this.getMapInstanceId(o),n={mapInstanceId:a,eventId:this.getEventId(a),style:s};r.length&&(n.importedStyles=r),this.queueRequest({timestamp:Date.now(),payload:n},t);}processRequests(e){if(this.pendingRequest||0===this.queue.length)return;const{timestamp:t,payload:i}=this.queue.shift();this.postEvent(t,i,(()=>{}),e);}},O=M.postStyleLoadEvent.bind(M),F=new class extends D{constructor(){super(\"gljs.performance\");}postPerformanceEvent(t,i){e.e.EVENTS_URL&&(t||e.e.ACCESS_TOKEN)&&this.queueRequest({timestamp:Date.now(),performanceData:i},t);}processRequests(o){if(this.pendingRequest||0===this.queue.length)return;const{timestamp:r,performanceData:a}=this.queue.shift(),n=function(o){const r=performance.getEntriesByType(\"resource\"),a=performance.getEntriesByType(\"mark\"),n=function(e){const t={};if(e)for(const i in e)if(\"other\"!==i)for(const o of e[i]){const e=`${i}ResolveRangeMin`,s=`${i}ResolveRangeMax`,r=`${i}RequestCount`,a=`${i}RequestCachedCount`;t[e]=Math.min(t[e]||1/0,o.startTime),t[s]=Math.max(t[s]||-1/0,o.responseEnd);const n=e=>{void 0===t[e]&&(t[e]=0),++t[e];};void 0!==o.transferSize&&0===o.transferSize&&n(a),n(r);}return t}(function(e,t){const i={};if(e)for(const o of e){const e=t(o);void 0===i[e]&&(i[e]=[]),i[e].push(o);}return i}(r,s)),l=window.devicePixelRatio,c=navigator.connection||navigator.mozConnection||navigator.webkitConnection,h=c?c.effectiveType:void 0,u={counters:[],metadata:[],attributes:[]},d=(e,t,i)=>{null!=i&&e.push({name:t,value:i.toString()});};for(const e in n)d(u.counters,e,n[e]);if(o.interactionRange[0]!==1/0&&o.interactionRange[1]!==-1/0&&(d(u.counters,\"interactionRangeMin\",o.interactionRange[0]),d(u.counters,\"interactionRangeMax\",o.interactionRange[1])),a)for(const e of Object.keys(i)){const t=i[e],o=a.find((e=>e.name===t));o&&d(u.counters,t,o.startTime);}return d(u.counters,\"visibilityHidden\",o.visibilityHidden),d(u.attributes,\"style\",function(t){if(t)for(const i of t){const t=i.name.split(\"?\")[0];if(e.i(t)){const e=t.split(\"/\").slice(-2);if(2===e.length)return `mapbox://styles/${e[0]}/${e[1]}`}}}(r)),d(u.attributes,\"terrainEnabled\",o.terrainEnabled?\"true\":\"false\"),d(u.attributes,\"fogEnabled\",o.fogEnabled?\"true\":\"false\"),d(u.attributes,\"projection\",o.projection),d(u.attributes,\"zoom\",o.zoom),d(u.metadata,\"devicePixelRatio\",l),d(u.metadata,\"connectionEffectiveType\",h),d(u.metadata,\"navigatorUserAgent\",navigator.userAgent),d(u.metadata,\"screenWidth\",window.screen.width),d(u.metadata,\"screenHeight\",window.screen.height),d(u.metadata,\"windowWidth\",window.innerWidth),d(u.metadata,\"windowHeight\",window.innerHeight),d(u.metadata,\"mapWidth\",o.width/l),d(u.metadata,\"mapHeight\",o.height/l),d(u.metadata,\"webglRenderer\",o.renderer),d(u.metadata,\"webglVendor\",o.vendor),d(u.metadata,\"sdkVersion\",t),d(u.metadata,\"sdkIdentifier\",\"mapbox-gl-js\"),u}(a);for(const e of n.metadata);for(const e of n.counters);for(const e of n.attributes);this.postEvent(r,n,(()=>{}),o);}},k=F.postPerformanceEvent.bind(F),B=new class extends D{constructor(){super(\"map.auth\"),this.success={},this.skuToken=\"\";}getSession(t,i,o,s){if(!e.e.API_URL||!e.e.SESSION_PATH)return;const r=S(e.e.API_URL+e.e.SESSION_PATH);r.params.push(`sku=${i||\"\"}`),r.params.push(`access_token=${s||e.e.ACCESS_TOKEN||\"\"}`);const a={url:C(r),headers:{\"Content-Type\":\"text/plain\"}};this.pendingRequest=e.g(a,(e=>{this.pendingRequest=null,o(e),this.saveEventData(),this.processRequests(s);}));}getSessionAPI(t,i,o,s){this.skuToken=i,this.errorCb=s,e.e.SESSION_PATH&&e.e.API_URL&&(o||e.e.ACCESS_TOKEN?this.queueRequest({id:t,timestamp:Date.now()},o):this.errorCb(new Error(w)));}processRequests(e){if(this.pendingRequest||0===this.queue.length)return;const{id:t,timestamp:i}=this.queue.shift();t&&this.success[t]||this.getSession(i,this.skuToken,(e=>{e?this.errorCb(e):t&&(this.success[t]=!0);}),e);}remove(){this.errorCb=null;}},N=B.getSessionAPI.bind(B),U=new Set;function G(e,t){t?U.add(e):U.delete(e);}class j{constructor(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSourceCaches={},this._updatedPaintProps=new Set,this._updatedImages=new Set;}isDirty(){return this._changed}setDirty(){this._changed=!0;}getUpdatedSourceCaches(){return this._updatedSourceCaches}updateSourceCache(e,t){this._updatedSourceCaches[e]=t,this.setDirty();}discardSourceCacheUpdate(e){delete this._updatedSourceCaches[e];}updateLayer(e){const t=e.scope;this._updatedLayers[t]=this._updatedLayers[t]||new Set,this._updatedLayers[t].add(e.id),this.setDirty();}removeLayer(e){const t=e.scope;this._removedLayers[t]=this._removedLayers[t]||{},this._updatedLayers[t]=this._updatedLayers[t]||new Set,this._removedLayers[t][e.id]=e,this._updatedLayers[t].delete(e.id),this._updatedPaintProps.delete(e.fqid),this.setDirty();}getRemovedLayer(e){return this._removedLayers[e.scope]?this._removedLayers[e.scope][e.id]:null}discardLayerRemoval(e){this._removedLayers[e.scope]&&delete this._removedLayers[e.scope][e.id];}getLayerUpdatesByScope(){const e={};for(const t in this._updatedLayers)e[t]=e[t]||{},e[t].updatedIds=Array.from(this._updatedLayers[t].values());for(const t in this._removedLayers)e[t]=e[t]||{},e[t].removedIds=Object.keys(this._removedLayers[t]);return e}getUpdatedPaintProperties(){return this._updatedPaintProps}updatePaintProperties(e){this._updatedPaintProps.add(e.fqid),this.setDirty();}getUpdatedImages(){return Array.from(this._updatedImages.values())}updateImage(e){this._updatedImages.add(e),this.setDirty();}resetUpdatedImages(){this._updatedImages.clear();}reset(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSourceCaches={},this._updatedPaintProps.clear(),this._updatedImages.clear();}}function V(e){const{userImage:t}=e;return !!(t&&t.render&&t.render())&&(e.data.replace(new Uint8Array(t.data.buffer)),!0)}class q extends e.E{constructor(t){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded={},this.requestors=[],this.patterns={},this.atlasImage={},this.atlasTexture={},this.dirty=!0,this.spriteFormat=t,\"raster\"!==t&&e.t()&&(this.imageRasterizerDispatcher=new e.D(e.x(),this,\"Image Rasterizer Worker\",1));}get imageRasterizer(){return this._imageRasterizer||(this._imageRasterizer=new e.I),this._imageRasterizer}createScope(t){this.images[t]={},this.loaded[t]=!1,this.updatedImages[t]={},this.patterns[t]={},this.callbackDispatchedThisFrame[t]={},this.atlasImage[t]=new e.r({width:1,height:1});}isLoaded(){for(const e in this.loaded)if(!this.loaded[e])return !1;return !0}setLoaded(e,t){if(this.loaded[t]!==e&&(this.loaded[t]=e,e)){for(const{ids:e,callback:i}of this.requestors)this._notify(e,t,i);this.requestors=[];}}hasImage(e,t){return !!this.getImage(e,t)}getImage(e,t){return this.images[t][e]}addImage(e,t,i){this._validate(e,i)&&(this.images[t][e]=i);}_validate(t,i){let o=!0;return this._validateStretch(i.stretchX,i.data&&i.data.width)||(this.fire(new e.y(new Error(`Image \"${t}\" has invalid \"stretchX\" value`))),o=!1),this._validateStretch(i.stretchY,i.data&&i.data.height)||(this.fire(new e.y(new Error(`Image \"${t}\" has invalid \"stretchY\" value`))),o=!1),this._validateContent(i.content,i)||(this.fire(new e.y(new Error(`Image \"${t}\" has invalid \"content\" value`))),o=!1),o}_validateStretch(e,t){if(!e)return !0;let i=0;for(const o of e){if(o[0]<i||o[1]<o[0]||t<o[1])return !1;i=o[1];}return !0}_validateContent(e,t){if(!e)return !0;if(4!==e.length)return !1;if(!t.usvg){if(e[0]<0||t.data.width<e[0])return !1;if(e[1]<0||t.data.height<e[1])return !1;if(e[2]<0||t.data.width<e[2])return !1;if(e[3]<0||t.data.height<e[3])return !1}return !(e[2]<e[0]||e[3]<e[1])}updateImage(e,t,i){i.version=this.images[t][e].version+1,this.images[t][e]=i,this.updatedImages[t][e]=!0,this.removeFromImageRasterizerCache(e,t);}removeFromImageRasterizerCache(t,i){\"raster\"!==this.spriteFormat&&(e.t()?this.imageRasterizerDispatcher.getActor().send(\"removeRasterizedImages\",{imageIds:[t],scope:i}):this.imageRasterizer.removeImagesFromCacheByIds([t],i));}removeImage(e,t){const i=this.images[t][e];delete this.images[t][e],delete this.patterns[t][e],this.removeFromImageRasterizerCache(e,t),i.userImage&&i.userImage.onRemove&&i.userImage.onRemove();}listImages(e){return Object.keys(this.images[e])}getImages(e,t,i){let o=!0;const s=!!this.loaded[t];if(!s)for(const i of e)this.images[t][i]||(o=!1);s||o?this._notify(e,t,i):this.requestors.push({ids:e,scope:t,callback:i});}rasterizeImages({scope:t,imageTasks:i},o){const s={};for(const e in i){const o=i[e],r=this.getImage(o.id,t);r&&(s[e]={image:r,imageIdWithOptions:o});}e.t()?this.imageRasterizerDispatcher.getActor().send(\"rasterizeImages\",{imageTasks:s,scope:t},o):this.rasterizeImagesInMainThread({imageTasks:s,scope:t},o);}rasterizeImagesInMainThread(e,t){const{imageTasks:i,scope:o}=e,s={};for(const e in i){const{image:t,imageIdWithOptions:r}=i[e];s[e]=this.imageRasterizer.rasterize(r,t,o,\"\");}t(void 0,s);}getUpdatedImages(e){return this.updatedImages[e]}_notify(t,i,o){const s={};for(const o of t){this.images[i][o]||this.fire(new e.z(\"styleimagemissing\",{id:o}));const t=this.images[i][o];t?s[o]={data:t.usvg?null:t.data.clone(),pixelRatio:t.pixelRatio,sdf:t.sdf,usvg:t.usvg,version:t.version,stretchX:t.stretchX,stretchY:t.stretchY,content:t.content,hasRenderCallback:Boolean(t.userImage&&t.userImage.render)}:e.w(`Image \"${o}\" could not be loaded. Please make sure you have added the image with map.addImage() or a \"sprite\" property in your style. You can provide missing images by listening for the \"styleimagemissing\" map event.`);}o(null,s);}getPixelSize(e){const{width:t,height:i}=this.atlasImage[e];return {width:t,height:i}}getPattern(t,i,o){const s=this.patterns[i][t],r=this.getImage(t,i);if(!r)return null;if(s&&s.position.version===r.version)return s.position;if(s)s.position.version=r.version;else {r.usvg&&!r.data&&(r.data=this.imageRasterizer.rasterize(e.A.from(t).getPrimary(),r,i,\"\"));const o={w:r.data.width+2*e.B,h:r.data.height+2*e.B,x:0,y:0},s=new e.F(o,r,e.B);this.patterns[i][t]={bin:o,position:s};}return this._updatePatternAtlas(i,o),this.patterns[i][t].position}bind(t,i){const o=t.gl;let s=this.atlasTexture[i];s?this.dirty&&(s.update(this.atlasImage[i]),this.dirty=!1):(s=new e.T(t,this.atlasImage[i],o.RGBA8),this.atlasTexture[i]=s),s.bind(o.LINEAR,o.CLAMP_TO_EDGE);}_updatePatternAtlas(t,i){const o=[];for(const e in this.patterns[t])o.push(this.patterns[t][e].bin);const{w:s,h:r}=e.C(o),a=this.atlasImage[t];a.resize({width:s||1,height:r||1});for(const o in this.patterns[t]){const{bin:s,position:r}=this.patterns[t][o];let n=r.padding;const l=s.x+n,c=s.y+n,h=this.images[t][o].data,u=h.width,d=h.height;n=n>1?n-1:n,e.r.copy(h,a,{x:0,y:0},{x:l,y:c},{width:u,height:d},i),e.r.copy(h,a,{x:0,y:d-n},{x:l,y:c-n},{width:u,height:n},i),e.r.copy(h,a,{x:0,y:0},{x:l,y:c+d},{width:u,height:n},i),e.r.copy(h,a,{x:u-n,y:0},{x:l-n,y:c},{width:n,height:d},i),e.r.copy(h,a,{x:0,y:0},{x:l+u,y:c},{width:n,height:d},i),e.r.copy(h,a,{x:u-n,y:d-n},{x:l-n,y:c-n},{width:n,height:n},i),e.r.copy(h,a,{x:0,y:d-n},{x:l+u,y:c-n},{width:n,height:n},i),e.r.copy(h,a,{x:0,y:0},{x:l+u,y:c+d},{width:n,height:n},i),e.r.copy(h,a,{x:u-n,y:0},{x:l-n,y:c+d},{width:n,height:n},i);}this.dirty=!0;}beginFrame(){for(const e in this.images)this.callbackDispatchedThisFrame[e]={};}dispatchRenderCallbacks(e,t){for(const i of e){if(this.callbackDispatchedThisFrame[t][i])continue;this.callbackDispatchedThisFrame[t][i]=!0;const e=this.images[t][i];V(e)&&this.updateImage(i,t,e);}}}function H(t){const i=t.key,o=t.value,s=t.valueSpec||{},r=t.objectElementValidators||{},a=t.style,n=t.styleSpec;let l=[];const c=e.H(o);if(\"object\"!==c)return [new e.V(i,o,`object expected, ${c} found`)];for(const t in o){const c=t.split(\".\")[0];let h;r[c]?h=r[c]:s[c]?h=_e:r[\"*\"]?h=r[\"*\"]:s[\"*\"]&&(h=_e),h?l=l.concat(h({key:(i?`${i}.`:i)+t,value:o[t],valueSpec:s[c]||s[\"*\"],style:a,styleSpec:n,object:o,objectKey:t},o)):l.push(new e.G(i,o[t],`unknown property \"${t}\"`));}for(const t in s)r[t]||s[t].required&&void 0===s[t].default&&void 0===o[t]&&l.push(new e.V(i,o,`missing required property \"${t}\"`));return l}function Z(t){const i=t.value,o=t.valueSpec,s=t.style,r=t.styleSpec,a=t.key,n=t.arrayElementValidator||_e;if(\"array\"!==e.H(i))return [new e.V(a,i,`array expected, ${e.H(i)} found`)];if(o.length&&i.length!==o.length)return [new e.V(a,i,`array length ${o.length} expected, length ${i.length} found`)];if(o[\"min-length\"]&&i.length<o[\"min-length\"])return [new e.V(a,i,`array length at least ${o[\"min-length\"]} expected, length ${i.length} found`)];let l={type:o.value,values:o.values,minimum:o.minimum,maximum:o.maximum,function:void 0};r.$version<7&&(l.function=o.function),\"object\"===e.H(o.value)&&(l=o.value);let c=[];for(let e=0;e<i.length;e++)c=c.concat(n({array:i,arrayIndex:e,value:i[e],valueSpec:l,style:s,styleSpec:r,key:`${a}[${e}]`},!0));return c}function W(t){const i=t.key,o=t.value,s=t.valueSpec;let r=e.H(o);if(\"number\"===r&&o!=o&&(r=\"NaN\"),\"number\"!==r)return [new e.V(i,o,`number expected, ${r} found`)];if(\"minimum\"in s){let r=s.minimum;if(\"array\"===e.H(s.minimum)&&(r=s.minimum[t.arrayIndex]),o<r)return [new e.V(i,o,`${o} is less than the minimum value ${r}`)]}if(\"maximum\"in s){let r=s.maximum;if(\"array\"===e.H(s.maximum)&&(r=s.maximum[t.arrayIndex]),o>r)return [new e.V(i,o,`${o} is greater than the maximum value ${r}`)]}return []}function $(t){const i=t.valueSpec,o=e.K(t.value.type);let s,r,a,n={};const l=\"categorical\"!==o&&void 0===t.value.property,c=!l,h=\"array\"===e.H(t.value.stops)&&\"array\"===e.H(t.value.stops[0])&&\"object\"===e.H(t.value.stops[0][0]),u=H({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if(\"identity\"===o)return [new e.V(t.key,t.value,'identity function may not have a \"stops\" property')];let i=[];const s=t.value;return i=i.concat(Z({key:t.key,value:s,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:d})),\"array\"===e.H(s)&&0===s.length&&i.push(new e.V(t.key,s,\"array must have at least one stop\")),i},default:function(e){return _e({key:e.key,value:e.value,valueSpec:i,style:e.style,styleSpec:e.styleSpec})}}});return \"identity\"===o&&l&&u.push(new e.V(t.key,t.value,'missing required property \"property\"')),\"identity\"===o||t.value.stops||u.push(new e.V(t.key,t.value,'missing required property \"stops\"')),\"exponential\"===o&&t.valueSpec.expression&&!e.L(t.valueSpec)&&u.push(new e.V(t.key,t.value,\"exponential functions not supported\")),t.styleSpec.$version>=8&&(c&&!e.M(t.valueSpec)?u.push(new e.V(t.key,t.value,\"property functions not supported\")):l&&!e.N(t.valueSpec)&&u.push(new e.V(t.key,t.value,\"zoom functions not supported\"))),\"categorical\"!==o&&!h||void 0!==t.value.property||u.push(new e.V(t.key,t.value,'\"property\" property is required')),u;function d(t){let o=[];const s=t.value,l=t.key;if(\"array\"!==e.H(s))return [new e.V(l,s,`array expected, ${e.H(s)} found`)];if(2!==s.length)return [new e.V(l,s,`array length 2 expected, length ${s.length} found`)];if(h){if(\"object\"!==e.H(s[0]))return [new e.V(l,s,`object expected, ${e.H(s[0])} found`)];if(void 0===s[0].zoom)return [new e.V(l,s,\"object stop key must have zoom\")];if(void 0===s[0].value)return [new e.V(l,s,\"object stop key must have value\")];const i=e.K(s[0].zoom);if(\"number\"!=typeof i)return [new e.V(l,s[0].zoom,\"stop zoom values must be numbers\")];if(a&&a>i)return [new e.V(l,s[0].zoom,\"stop zoom values must appear in ascending order\")];i!==a&&(a=i,r=void 0,n={}),o=o.concat(H({key:`${l}[0]`,value:s[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:W,value:_}}));}else o=o.concat(_({key:`${l}[0]`,value:s[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},s));return e.O(e.Q(s[1]))?o.concat([new e.V(`${l}[1]`,s[1],\"expressions are not allowed in function stops.\")]):o.concat(_e({key:`${l}[1]`,value:s[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function _(t,a){const l=e.H(t.value),c=e.K(t.value),h=null!==t.value?t.value:a;if(s){if(l!==s)return [new e.V(t.key,h,`${l} stop domain type must match previous stop domain type ${s}`)]}else s=l;if(\"number\"!==l&&\"string\"!==l&&\"boolean\"!==l&&\"number\"!=typeof c&&\"string\"!=typeof c&&\"boolean\"!=typeof c)return [new e.V(t.key,h,\"stop domain value must be a number, string, or boolean\")];if(\"number\"!==l&&\"categorical\"!==o){let s=`number expected, ${l} found`;return e.M(i)&&void 0===o&&(s+='\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'),[new e.V(t.key,h,s)]}return \"categorical\"!==o||\"number\"!==l||\"number\"==typeof c&&isFinite(c)&&Math.floor(c)===c?\"categorical\"!==o&&\"number\"===l&&\"number\"==typeof c&&\"number\"==typeof r&&void 0!==r&&c<r?[new e.V(t.key,h,\"stop domain values must appear in ascending order\")]:(r=c,\"categorical\"===o&&c in n?[new e.V(t.key,h,\"stop domain values must be unique\")]:(n[c]=!0,[])):[new e.V(t.key,h,`integer expected, found ${String(c)}`)]}}function X(t){const i=(\"property\"===t.expressionContext?e.S:e.U)(e.Q(t.value),t.valueSpec);if(\"error\"===i.result)return i.value.map((i=>new e.V(`${t.key}${i.key}`,t.value,i.message)));const o=i.value.expression||i.value._styleExpression.expression;if(\"property\"===t.expressionContext&&\"text-font\"===t.propertyKey&&!o.outputDefined())return [new e.V(t.key,t.value,`Invalid data expression for \"${t.propertyKey}\". Output values must be contained as literals within the expression.`)];if(\"property\"===t.expressionContext&&\"layout\"===t.propertyType&&!e.W(o))return [new e.V(t.key,t.value,'\"feature-state\" data expressions are not supported with layout properties.')];if(\"filter\"===t.expressionContext)return K(o,t);if(t.expressionContext&&0===t.expressionContext.indexOf(\"cluster\")){if(!e.X(o,[\"zoom\",\"feature-state\"]))return [new e.V(t.key,t.value,'\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];if(\"cluster-initial\"===t.expressionContext&&!e.Y(o))return [new e.V(t.key,t.value,\"Feature data expressions are not supported with initial expression part of cluster properties.\")]}return []}function K(t,i){const o=new Set([\"zoom\",\"feature-state\",\"pitch\",\"distance-from-center\"]);if(i.valueSpec&&i.valueSpec.expression)for(const e of i.valueSpec.expression.parameters)o.delete(e);if(0===o.size)return [];const s=[];return t instanceof e.Z&&o.has(t.name)?[new e.V(i.key,i.value,`[\"${t.name}\"] expression is not supported in a filter for a ${i.object.type} layer with id: ${i.object.id}`)]:(t.eachChild((e=>{s.push(...K(e,i));})),s)}function Y(t){const i=t.key,o=t.value,s=t.valueSpec,r=[];return Array.isArray(s.values)?-1===s.values.indexOf(e.K(o))&&r.push(new e.V(i,o,`expected one of [${s.values.join(\", \")}], ${JSON.stringify(o)} found`)):-1===Object.keys(s.values).indexOf(e.K(o))&&r.push(new e.V(i,o,`expected one of [${Object.keys(s.values).join(\", \")}], ${JSON.stringify(o)} found`)),r}function J(t){return e.$(e.Q(t.value))?X(e.J({},t,{expressionContext:\"filter\",valueSpec:t.styleSpec[`filter_${t.layerType||\"fill\"}`]})):Q(t)}function Q(t){const i=t.value,o=t.key;if(\"array\"!==e.H(i))return [new e.V(o,i,`array expected, ${e.H(i)} found`)];const s=t.styleSpec;let r,a=[];if(i.length<1)return [new e.V(o,i,\"filter array must have at least 1 element\")];switch(a=a.concat(Y({key:`${o}[0]`,value:i[0],valueSpec:s.filter_operator,style:t.style,styleSpec:t.styleSpec})),e.K(i[0])){case\"<\":case\"<=\":case\">\":case\">=\":i.length>=2&&\"$type\"===e.K(i[1])&&a.push(new e.V(o,i,`\"$type\" cannot be use with operator \"${i[0]}\"`));case\"==\":case\"!=\":3!==i.length&&a.push(new e.V(o,i,`filter array for operator \"${i[0]}\" must have 3 elements`));case\"in\":case\"!in\":i.length>=2&&(r=e.H(i[1]),\"string\"!==r&&a.push(new e.V(`${o}[1]`,i[1],`string expected, ${r} found`)));for(let n=2;n<i.length;n++)r=e.H(i[n]),\"$type\"===e.K(i[1])?a=a.concat(Y({key:`${o}[${n}]`,value:i[n],valueSpec:s.geometry_type,style:t.style,styleSpec:t.styleSpec})):\"string\"!==r&&\"number\"!==r&&\"boolean\"!==r&&a.push(new e.V(`${o}[${n}]`,i[n],`string, number, or boolean expected, ${r} found`));break;case\"any\":case\"all\":case\"none\":for(let e=1;e<i.length;e++)a=a.concat(Q({key:`${o}[${e}]`,value:i[e],style:t.style,styleSpec:t.styleSpec}));break;case\"has\":case\"!has\":r=e.H(i[1]),2!==i.length?a.push(new e.V(o,i,`filter array for \"${i[0]}\" operator must have 2 elements`)):\"string\"!==r&&a.push(new e.V(`${o}[1]`,i[1],`string expected, ${r} found`));}return a}function ee(t,i){const o=t.key,s=t.style,r=t.layer,a=t.styleSpec,n=t.value,l=t.objectKey,c=a[`${i}_${t.layerType}`];if(!c)return [];const h=l.match(/^(.*)-use-theme$/);if(\"paint\"===i&&h&&c[h[1]])return _e({key:o,value:n,valueSpec:{type:\"string\"},style:s,styleSpec:a});const u=l.match(/^(.*)-transition$/);if(\"paint\"===i&&u&&c[u[1]]&&c[u[1]].transition)return _e({key:o,value:n,valueSpec:a.transition,style:s,styleSpec:a});const d=t.valueSpec||c[l];if(!d)return [new e.G(o,n,`unknown property \"${l}\"`)];let _;if(\"string\"===e.H(n)&&e.M(d)&&!d.tokens&&(_=/^{([^}]+)}$/.exec(n))){const t=`\\`{ \"type\": \"identity\", \"property\": ${_?JSON.stringify(_[1]):'\"_\"'} }\\``;return [new e.V(o,n,`\"${l}\" does not support interpolation syntax\\nUse an identity property function instead: ${t}.`)]}const p=[];if(\"symbol\"===t.layerType)\"text-field\"!==l||!s||s.glyphs||s.imports||p.push(new e.V(o,n,'use of \"text-field\" requires a style \"glyphs\" property')),\"text-font\"===l&&e.a0(e.Q(n))&&\"identity\"===e.K(n.type)&&p.push(new e.V(o,n,'\"text-font\" does not support identity functions'));else if(\"model\"===t.layerType&&\"paint\"===i&&r&&r.layout&&r.layout.hasOwnProperty(\"model-id\")&&e.M(d)&&(e.a1(d)||e.N(d))){const t=e.S(e.Q(n),d),i=t.value.expression||t.value._styleExpression.expression;i&&!e.X(i,[\"measure-light\"])&&(\"model-emissive-strength\"===l&&e.Y(i)&&e.W(i)||p.push(new e.V(o,n,`${l} does not support measure-light expressions when the model layer source is vector tile or GeoJSON.`)));}return p.concat(_e({key:t.key,value:n,valueSpec:d,style:s,styleSpec:a,expressionContext:\"property\",propertyType:i,propertyKey:l}))}function te(e){return ee(e,\"paint\")}function ie(e){return ee(e,\"layout\")}function oe(t){let i=[];const o=t.value,s=t.key,r=t.style,a=t.styleSpec;o.type||o.ref||i.push(new e.V(s,o,'either \"type\" or \"ref\" is required'));let n=e.K(o.type);const l=e.K(o.ref);if(o.id){const a=e.K(o.id);for(let n=0;n<t.arrayIndex;n++){const t=r.layers[n];e.K(t.id)===a&&i.push(new e.V(s,o.id,`duplicate layer id \"${o.id}\", previously used at line ${t.id.__line__}`));}}if(\"ref\"in o){let t;[\"type\",\"source\",\"source-layer\",\"filter\",\"layout\"].forEach((t=>{t in o&&i.push(new e.V(s,o[t],`\"${t}\" is prohibited for ref layers`));})),r.layers.forEach((i=>{e.K(i.id)===l&&(t=i);})),t?t.ref?i.push(new e.V(s,o.ref,\"ref cannot reference another ref layer\")):n=e.K(t.type):\"string\"==typeof l&&i.push(new e.V(s,o.ref,`ref layer \"${l}\" not found`));}else if(\"background\"!==n&&\"sky\"!==n&&\"slot\"!==n)if(o.source){const t=r.sources&&r.sources[o.source],a=t&&e.K(t.type);t?\"vector\"===a&&\"raster\"===n?i.push(new e.V(s,o.source,`layer \"${o.id}\" requires a raster source`)):\"raster\"===a&&\"raster\"!==n?i.push(new e.V(s,o.source,`layer \"${o.id}\" requires a vector source`)):\"vector\"!==a||o[\"source-layer\"]?\"raster-dem\"===a&&\"hillshade\"!==n?i.push(new e.V(s,o.source,\"raster-dem source can only be used with layer type 'hillshade'.\")):\"raster-array\"!==a||[\"raster\",\"raster-particle\"].includes(n)?\"line\"!==n||!o.paint||!o.paint[\"line-gradient\"]&&!o.paint[\"line-trim-offset\"]||\"geojson\"===a&&t.lineMetrics?\"raster-particle\"===n&&\"raster-array\"!==a&&i.push(new e.V(s,o.source,`layer \"${o.id}\" requires a 'raster-array' source.`)):i.push(new e.V(s,o,`layer \"${o.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`)):i.push(new e.V(s,o.source,\"raster-array source can only be used with layer type 'raster'.\")):i.push(new e.V(s,o,`layer \"${o.id}\" must specify a \"source-layer\"`)):i.push(new e.V(s,o.source,`source \"${o.source}\" not found`));}else i.push(new e.V(s,o,'missing required property \"source\"'));return i=i.concat(H({key:s,value:o,valueSpec:a.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\"*\":()=>[],type:()=>_e({key:`${s}.type`,value:o.type,valueSpec:a.layer.type,style:t.style,styleSpec:t.styleSpec,object:o,objectKey:\"type\"}),filter:t=>J(e.J({layerType:n},t)),layout:t=>H({layer:o,key:t.key,value:t.value,valueSpec:{},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\"*\":t=>ie(e.J({layerType:n},t))}}),paint:t=>H({layer:o,key:t.key,value:t.value,valueSpec:{},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\"*\":t=>te(e.J({layerType:n,layer:o},t))}})}})),i}function se(t){const i=t.value,o=t.key,s=e.H(i);return \"string\"!==s?[new e.V(o,i,`string expected, ${s} found`)]:[]}const re={promoteId:function({key:t,value:i}){if(\"string\"===e.H(i))return se({key:t,value:i});{const e=[];for(const o in i)e.push(...se({key:`${t}.${o}`,value:i[o]}));return e}}};function ae(t){const i=t.value,o=t.key,s=t.styleSpec,r=t.style;if(!i.type)return [new e.V(o,i,'\"type\" is required')];const a=e.K(i.type);let n=[];switch([\"vector\",\"raster\",\"raster-dem\",\"raster-array\"].includes(a)&&(i.url||i.tiles||n.push(new e.G(o,i,'Either \"url\" or \"tiles\" is required.'))),a){case\"vector\":case\"raster\":case\"raster-dem\":case\"raster-array\":return n=n.concat(H({key:o,value:i,valueSpec:s[`source_${a.replace(\"-\",\"_\")}`],style:t.style,styleSpec:s,objectElementValidators:re})),n;case\"geojson\":if(n=H({key:o,value:i,valueSpec:s.source_geojson,style:r,styleSpec:s,objectElementValidators:re}),i.cluster)for(const e in i.clusterProperties){const[t,s]=i.clusterProperties[e],r=\"string\"==typeof t?[t,[\"accumulated\"],[\"get\",e]]:t;n.push(...X({key:`${o}.${e}.map`,value:s,expressionContext:\"cluster-map\"})),n.push(...X({key:`${o}.${e}.reduce`,value:r,expressionContext:\"cluster-reduce\"}));}return n;case\"video\":return H({key:o,value:i,valueSpec:s.source_video,style:r,styleSpec:s});case\"image\":return H({key:o,value:i,valueSpec:s.source_image,style:r,styleSpec:s});case\"canvas\":return [new e.V(o,null,\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\",\"source.canvas\")];default:return Y({key:`${o}.type`,value:i.type,valueSpec:{values:ne(s)},style:r,styleSpec:s})}}function ne(e){return e.source.reduce(((t,i)=>{const o=e[i];return \"enum\"===o.type.type&&(t=t.concat(Object.keys(o.type.values))),t}),[])}function le(t){const i=t.value,o=t.styleSpec,s=o.light,r=t.style;let a=[];const n=e.H(i);if(void 0===i)return a;if(\"object\"!==n)return a=a.concat([new e.V(\"light\",i,`object expected, ${n} found`)]),a;for(const t in i){const n=t.match(/^(.*)-transition$/),l=t.match(/^(.*)-use-theme$/);a=a.concat(l&&s[l[1]]?_e({key:t,value:i[t],valueSpec:{type:\"string\"},style:r,styleSpec:o}):n&&s[n[1]]&&s[n[1]].transition?_e({key:t,value:i[t],valueSpec:o.transition,style:r,styleSpec:o}):s[t]?_e({key:t,value:i[t],valueSpec:s[t],style:r,styleSpec:o}):[new e.V(t,i[t],`unknown property \"${t}\"`)]);}return a}function ce(t){const i=t.value;let o=[];if(!i)return o;const s=e.H(i);if(\"object\"!==s)return o=o.concat([new e.V(\"light-3d\",i,`object expected, ${s} found`)]),o;const r=t.styleSpec,a=r[\"light-3d\"],n=t.key,l=t.style,c=t.style.lights;for(const t of [\"type\",\"id\"])if(!(t in i))return o=o.concat([new e.V(\"light-3d\",i,`missing property ${t} on light`)]),o;if(i.type&&c)for(let s=0;s<t.arrayIndex;s++){const t=e.K(i.type),r=c[s];e.K(r.type)===t&&o.push(new e.V(n,i.id,`duplicate light type \"${i.type}\", previously defined at line ${r.id.__line__}`));}const h=`properties_light_${i.type}`;if(!(h in r))return o=o.concat([new e.V(\"light-3d\",i,`Invalid light type ${i.type}`)]),o;const u=r[h];for(const s in i)if(\"properties\"===s){const a=i[s],n=e.H(a);if(\"object\"!==n)return o=o.concat([new e.V(\"properties\",a,`object expected, ${n} found`)]),o;for(const i in a)o=o.concat(u[i]?_e({key:i,value:a[i],valueSpec:u[i],style:l,styleSpec:r}):[new e.G(t.key,a[i],`unknown property \"${i}\"`)]);}else {const t=s.match(/^(.*)-transition$/),n=s.match(/^(.*)-use-theme$/);o=o.concat(n&&a[n[1]]?_e({key:s,value:i[s],valueSpec:{type:\"string\"},style:l,styleSpec:r}):t&&a[t[1]]&&a[t[1]].transition?_e({key:s,value:i[s],valueSpec:r.transition,style:l,styleSpec:r}):a[s]?_e({key:s,value:i[s],valueSpec:a[s],style:l,styleSpec:r}):[new e.G(s,i[s],`unknown property \"${s}\"`)]);}return o}function he(t){const i=t.value,o=t.key,s=t.style,r=t.styleSpec,a=r.terrain;let n=[];const l=e.H(i);if(void 0===i)return n;if(\"null\"===l)return n;if(\"object\"!==l)return n=n.concat([new e.V(\"terrain\",i,`object expected, ${l} found`)]),n;for(const t in i){const o=t.match(/^(.*)-transition$/),l=t.match(/^(.*)-use-theme$/);n=n.concat(l&&a[l[1]]?_e({key:t,value:i[t],valueSpec:{type:\"string\"},style:s,styleSpec:r}):o&&a[o[1]]&&a[o[1]].transition?_e({key:t,value:i[t],valueSpec:r.transition,style:s,styleSpec:r}):a[t]?_e({key:t,value:i[t],valueSpec:a[t],style:s,styleSpec:r}):[new e.G(t,i[t],`unknown property \"${t}\"`)]);}if(i.source){const t=s.sources&&s.sources[i.source],r=t&&e.K(t.type);t?\"raster-dem\"!==r&&n.push(new e.V(o,i.source,`terrain cannot be used with a source of type ${String(r)}, it only be used with a \"raster-dem\" source type`)):n.push(new e.V(o,i.source,`source \"${i.source}\" not found`));}else n.push(new e.V(o,i,'terrain is missing required property \"source\"'));return n}function ue(t){const i=t.value,o=t.style,s=t.styleSpec,r=s.fog;let a=[];const n=e.H(i);if(void 0===i)return a;if(\"object\"!==n)return a=a.concat([new e.V(\"fog\",i,`object expected, ${n} found`)]),a;for(const t in i){const n=t.match(/^(.*)-transition$/),l=t.match(/^(.*)-use-theme$/);a=a.concat(l&&r[l[1]]?_e({key:t,value:i[t],valueSpec:{type:\"string\"},style:o,styleSpec:s}):n&&r[n[1]]&&r[n[1]].transition?_e({key:t,value:i[t],valueSpec:s.transition,style:o,styleSpec:s}):r[t]?_e({key:t,value:i[t],valueSpec:r[t],style:o,styleSpec:s}):[new e.G(t,i[t],`unknown property \"${t}\"`)]);}return a}const de={\"*\":()=>[],array:Z,boolean:function(t){const i=t.value,o=t.key,s=e.H(i);return \"boolean\"!==s?[new e.V(o,i,`boolean expected, ${s} found`)]:[]},number:W,color:function(t){const i=t.key,o=t.value,s=e.H(o);return \"string\"!==s?[new e.V(i,o,`color expected, ${s} found`)]:null===e._.parseCSSColor(o)?[new e.V(i,o,`color expected, \"${o}\" found`)]:[]},enum:Y,filter:J,function:$,layer:oe,object:H,source:ae,model:e.a2,light:le,\"light-3d\":ce,terrain:he,fog:ue,string:se,formatted:function(e){return 0===se(e).length?[]:X(e)},resolvedImage:function(e){return 0===se(e).length?[]:X(e)},projection:function(t){const i=t.value,o=t.styleSpec,s=o.projection,r=t.style;let a=[];const n=e.H(i);if(\"object\"===n)for(const e in i)a=a.concat(_e({key:e,value:i[e],valueSpec:s[e],style:r,styleSpec:o}));else \"string\"!==n&&(a=a.concat([new e.V(\"projection\",i,`object or string expected, ${n} found`)]));return a},import:function(t){const{value:i,styleSpec:o}=t,{data:s,...r}=i;Object.defineProperty(r,\"__line__\",{value:i.__line__,enumerable:!1});let a=H(e.J({},t,{value:r,valueSpec:o.import}));return \"\"===e.K(r.id)&&a.push(new e.V(`${t.key}.id`,r,\"import id can't be an empty string\")),s&&(a=a.concat(fe(s,o,{key:`${t.key}.data`}))),a}};function _e(t,i=!1){const o=t.value,s=t.valueSpec,r=t.styleSpec;if(s.expression&&e.a0(e.K(o)))return $(t);if(s.expression&&e.O(e.Q(o)))return X(t);if(s.type&&de[s.type]){const o=de[s.type](t);return !0===i&&o.length>0&&\"array\"===e.H(t.value)?X(t):o}return H(e.J({},t,{valueSpec:s.type?r[s.type]:s}))}function pe(t){const i=t.value,o=t.key,s=se(t);return s.length||(-1===i.indexOf(\"{fontstack}\")&&s.push(new e.V(o,i,'\"glyphs\" url must include a \"{fontstack}\" token')),-1===i.indexOf(\"{range}\")&&s.push(new e.V(o,i,'\"glyphs\" url must include a \"{range}\" token'))),s}function fe(t,i=e.a3,o={}){return _e({key:o.key||\"\",value:t,valueSpec:i.$root,styleSpec:i,style:t,objectElementValidators:{glyphs:pe,\"*\":()=>[]}})}function me(t,i=e.a3){return De(fe(t,i))}const ge=e=>De(ae(e)),ve=e=>De(le(e)),ye=e=>De(ce(e)),xe=e=>De(he(e)),be=e=>De(ue(e)),we=t=>De(function(t){const i=t.value,o=t.style,s=t.styleSpec,r=s.snow;let a=[];const n=e.H(i);if(void 0===i)return a;if(\"object\"!==n)return a=a.concat([new e.V(\"snow\",i,`object expected, ${n} found`)]),a;for(const t in i){const n=t.match(/^(.*)-transition$/);a=a.concat(n&&r[n[1]]&&r[n[1]].transition?_e({key:t,value:i[t],valueSpec:s.transition,style:o,styleSpec:s}):r[t]?_e({key:t,value:i[t],valueSpec:r[t],style:o,styleSpec:s}):[new e.G(t,i[t],`unknown property \"${t}\"`)]);}return a}(t)),Te=t=>De(function(t){const i=t.value,o=t.style,s=t.styleSpec,r=s.rain;let a=[];const n=e.H(i);if(void 0===i)return a;if(\"object\"!==n)return a=a.concat([new e.V(\"rain\",i,`object expected, ${n} found`)]),a;for(const t in i){const n=t.match(/^(.*)-transition$/);a=a.concat(n&&r[n[1]]&&r[n[1]].transition?_e({key:t,value:i[t],valueSpec:s.transition,style:o,styleSpec:s}):r[t]?_e({key:t,value:i[t],valueSpec:r[t],style:o,styleSpec:s}):[new e.G(t,i[t],`unknown property \"${t}\"`)]);}return a}(t)),Ee=e=>De(oe(e)),Se=e=>De(J(e)),Ce=e=>De(te(e)),Ie=e=>De(ie(e)),Re=t=>De(e.a2(t));function De(e){return e.slice().sort(((e,t)=>e.line&&t.line?e.line-t.line:0))}function Le(t,i){let o=!1;if(i&&i.length)for(const s of i)s instanceof e.G?e.w(s.message):(t.fire(new e.y(new Error(s.message))),o=!0);return o}let Ae;class ze extends e.E{constructor(t,i=\"flat\"){super(),this._transitionable=new e.a4(Ae||(Ae=new e.a5({anchor:new e.a6(e.a3.light.anchor),position:new e.a7(e.a3.light.position),color:new e.a6(e.a3.light.color),intensity:new e.a6(e.a3.light.intensity)}))),this.setLight(t,i),this._transitioning=this._transitionable.untransitioned();}getLight(){return this._transitionable.serialize()}setLight(e,t,i={}){this._validate(ve,e,i)||(this._transitionable.setTransitionOrValue(e),this.id=t);}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning);}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e);}_validate(t,i,o){return (!o||!1!==o.validate)&&Le(this,t.call(me,e.l({value:i,style:{glyphs:!0,sprite:!0},styleSpec:e.a3})))}}let Pe=class extends e.E{constructor(t,i,o,s){super(),this.scope=o,this._transitionable=new e.a4(new e.a5({source:new e.a6(e.a3.terrain.source),exaggeration:new e.a6(e.a3.terrain.exaggeration)}),o,s),this._transitionable.setTransitionOrValue(t,s),this._transitioning=this._transitionable.untransitioned(),this.drapeRenderMode=i;}get(){return this._transitionable.serialize()}set(e,t){this._transitionable.setTransitionOrValue(e,t);}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning);}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e);}getExaggeration(t){return this._transitioning.possiblyEvaluate(new e.a8(t)).get(\"exaggeration\")}getAttenuationRange(){if(!this.isZoomDependent())return null;const t=this._transitionable._values.exaggeration;if(!t)return null;const i=t.value.expression;if(!i)return null;let o=-1,s=-1,r=1;for(const t of i.zoomStops)r=i.evaluate(new e.a8(t)),r>.01?(o=t,s=-1):s=t;return r<.01&&o>0&&s>o?[o,s]:null}isZoomDependent(){const t=this._transitionable._values.exaggeration;return null!=t&&null!=t.value&&null!=t.value.expression&&t.value.expression instanceof e.a9}};const Me=45,Oe=65,Fe=.05;function ke(t,i,o,s){const r=e.ac(Me,Oe,o),[a,n]=Be(t,s);let l=1-Math.min(1,Math.exp((i-a)/(n-a)*-6));return l*=l*l,l=Math.min(1,1.00747*l),l*r*t.alpha}function Be(e,t){const i=.5/Math.tan(.5*t);return [e.range[0]+i,e.range[1]+i]}function Ne(t,i,o,s,r){const a=e.ab.vec3.transformMat4([],[i,o,s],r.mercatorFogMatrix);return ke(t,e.ab.vec3.length(a),r.pitch,r._fov)}function Ue(t,i,o,s,r,a,n){const l=[[o,s,0],[r,s,0],[r,a,0],[o,a,0]];let c=Number.MAX_VALUE,h=-Number.MAX_VALUE;for(const t of l){const o=e.ab.vec3.transformMat4([],t,i),s=e.ab.vec3.length(o);c=Math.min(c,s),h=Math.max(h,s);}return [ke(t,c,n.pitch,n._fov),ke(t,h,n.pitch,n._fov)]}class Ge extends e.E{constructor(t,i,o,s){super();const r=new e.a5({range:new e.a6(e.a3.fog.range),color:new e.a6(e.a3.fog.color),\"color-use-theme\":new e.a6({type:\"string\",\"property-type\":\"data-constant\",default:\"default\"}),\"high-color\":new e.a6(e.a3.fog[\"high-color\"]),\"high-color-use-theme\":new e.a6({type:\"string\",\"property-type\":\"data-constant\",default:\"default\"}),\"space-color\":new e.a6(e.a3.fog[\"space-color\"]),\"space-color-use-theme\":new e.a6({type:\"string\",\"property-type\":\"data-constant\",default:\"default\"}),\"horizon-blend\":new e.a6(e.a3.fog[\"horizon-blend\"]),\"star-intensity\":new e.a6(e.a3.fog[\"star-intensity\"]),\"vertical-range\":new e.a6(e.a3.fog[\"vertical-range\"])});this._transitionable=new e.a4(r,o,new Map(s)),this.set(t,s),this._transitioning=this._transitionable.untransitioned(),this._transform=i,this.properties=new e.ad(r),this.scope=o;}get state(){const t=this._transform,i=\"globe\"===t.projection.name,o=e.ae(t.zoom),s=this.properties.get(\"range\"),r=[.5,3];return {range:i?[e.af(r[0],s[0],o),e.af(r[1],s[1],o)]:s,horizonBlend:this.properties.get(\"horizon-blend\"),alpha:this.properties.get(\"color\").a}}get(){return this._transitionable.serialize()}set(t,i,o={}){if(this._validate(be,t,o))return;const s=e.l({},t);for(const t of Object.keys(e.a3.fog))void 0===s[t]&&(s[t]=e.a3.fog[t].default);this._options=s,this._transitionable.setTransitionOrValue(this._options,i);}getOpacity(t){if(!this._transform.projection.supportsFog)return 0;const i=this.properties&&this.properties.get(\"color\")||1;return (\"globe\"===this._transform.projection.name?1:e.ac(Me,Oe,t))*i.a}getOpacityAtLatLng(t,i){return this._transform.projection.supportsFog?function(t,i,o){const s=e.aa.fromLngLat(i),r=o.elevation?o.elevation.getAtPointOrZero(s):0;return Ne(t,s.x,s.y,r,o)}(this.state,t,i):0}getOpacityForTile(t){if(!this._transform.projection.supportsFog)return [1,1];const i=this._transform.calculateFogTileMatrix(t.toUnwrapped());return Ue(this.state,i,0,0,e.ag,e.ag,this._transform)}getOpacityForBounds(e,t,i,o,s){return this._transform.projection.supportsFog?Ue(this.state,e,t,i,o,s,this._transform):[1,1]}getFovAdjustedRange(e){return this._transform.projection.supportsFog?Be(this.state,e):[0,1]}isVisibleOnFrustum(t){if(!this._transform.projection.supportsFog)return !1;const i=[4,5,6,7];for(const o of i){const i=t.points[o];let s;if(i[2]>=0)s=i;else {const r=t.points[o-4];s=e.ah(r,i,r[2]/(r[2]-i[2]));}if(Ne(this.state,s[0],s[1],0,this._transform)>=Fe)return !0}return !1}updateConfig(e){this._transitionable.setTransitionOrValue(this._options,new Map(e));}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning);}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e);}_validate(t,i,o){return (!o||!1!==o.validate)&&Le(this,t.call(me,e.l({value:i,style:{glyphs:!0,sprite:!0},styleSpec:e.a3})))}}let je,Ve,qe,He,Ze=class extends e.E{constructor(t,i,o,s){super();const r=je||(je=new e.a5({density:new e.a6(e.a3.snow.density),intensity:new e.a6(e.a3.snow.intensity),color:new e.a6(e.a3.snow.color),opacity:new e.a6(e.a3.snow.opacity),vignette:new e.a6(e.a3.snow.vignette),\"vignette-color\":new e.a6(e.a3.snow[\"vignette-color\"]),\"center-thinning\":new e.a6(e.a3.snow[\"center-thinning\"]),direction:new e.a6(e.a3.snow.direction),\"flake-size\":new e.a6(e.a3.snow[\"flake-size\"])}));this._transitionable=new e.a4(r,o,new Map(s)),this.set(t,s),this._transitioning=this._transitionable.untransitioned(),this.properties=new e.ad(r),this.scope=o;}get state(){const t=this.properties.get(\"opacity\"),i=this.properties.get(\"color\"),o=this.properties.get(\"direction\"),s=e.ai(o[0]),r=-Math.max(e.ai(o[1]),.01),a=[Math.cos(s)*Math.cos(r),Math.sin(s)*Math.cos(r),Math.sin(r)],n=this.properties.get(\"vignette\"),l=this.properties.get(\"vignette-color\");return l.a=n,{density:this.properties.get(\"density\"),intensity:this.properties.get(\"intensity\"),color:new e.aj(i.r,i.g,i.b,i.a*t),direction:a,centerThinning:this.properties.get(\"center-thinning\"),flakeSize:this.properties.get(\"flake-size\"),vignetteColor:l}}get(){return this._transitionable.serialize()}set(t,i,o={}){if(this._validate(we,t,o))return;const s=e.l({},t);for(const t of Object.keys(e.a3.snow))void 0===s[t]&&(s[t]=e.a3.snow[t].default);this._options=s,this._transitionable.setTransitionOrValue(this._options,i);}updateConfig(e){this._transitionable.setTransitionOrValue(this._options,new Map(e));}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning);}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e);}_validate(t,i,o){return (!o||!1!==o.validate)&&Le(this,t.call(me,e.l({value:i,style:{glyphs:!0,sprite:!0},styleSpec:e.a3})))}},We=class extends e.E{constructor(t,i,o,s){super();const r=Ve||(Ve=new e.a5({density:new e.a6(e.a3.rain.density),intensity:new e.a6(e.a3.rain.intensity),color:new e.a6(e.a3.rain.color),opacity:new e.a6(e.a3.rain.opacity),vignette:new e.a6(e.a3.rain.vignette),\"vignette-color\":new e.a6(e.a3.rain[\"vignette-color\"]),\"center-thinning\":new e.a6(e.a3.rain[\"center-thinning\"]),direction:new e.a6(e.a3.rain.direction),\"droplet-size\":new e.a6(e.a3.rain[\"droplet-size\"]),\"distortion-strength\":new e.a6(e.a3.rain[\"distortion-strength\"])}));this._transitionable=new e.a4(r,o,new Map(s)),this.set(t,s),this._transitioning=this._transitionable.untransitioned(),this.properties=new e.ad(r),this.scope=o;}get state(){const t=this.properties.get(\"opacity\"),i=this.properties.get(\"color\"),o=this.properties.get(\"direction\"),s=e.ai(o[0]),r=-Math.max(e.ai(o[1]),.01),a=[Math.cos(s)*Math.cos(r),Math.sin(s)*Math.cos(r),Math.sin(r)],n=this.properties.get(\"vignette-color\");return n.a=this.properties.get(\"vignette\"),{density:this.properties.get(\"density\"),intensity:this.properties.get(\"intensity\"),color:new e.aj(i.r,i.g,i.b,i.a*t),direction:a,centerThinning:this.properties.get(\"center-thinning\"),dropletSize:this.properties.get(\"droplet-size\"),distortionStrength:this.properties.get(\"distortion-strength\"),vignetteColor:n}}get(){return this._transitionable.serialize()}set(t,i,o={}){if(this._validate(Te,t,o))return;const s=e.l({},t);for(const t of Object.keys(e.a3.rain))void 0===s[t]&&(s[t]=e.a3.rain[t].default);this._options=s,this._transitionable.setTransitionOrValue(this._options,i);}updateConfig(e){this._transitionable.setTransitionOrValue(this._options,new Map(e));}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning);}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e);}_validate(t,i,o){return (!o||!1!==o.validate)&&Le(this,t.call(me,e.l({value:i,style:{glyphs:!0,sprite:!0},styleSpec:e.a3})))}};class $e extends e.E{constructor(t,i,o,s){super(),this.scope=o,this._options=t,this.properties=new e.ad(i),this._transitionable=new e.a4(i,o,new Map(s)),this._transitionable.setTransitionOrValue(t.properties),this._transitioning=this._transitionable.untransitioned();}updateConfig(e){this._transitionable.setTransitionOrValue(this._options.properties,new Map(e));}updateTransitions(e){this._transitioning=this._transitionable.transitioned(e,this._transitioning);}hasTransition(){return this._transitioning.hasTransition()}recalculate(e){this.properties=this._transitioning.possiblyEvaluate(e);}get(){return this._options.properties=this._transitionable.serialize(),this._options}set(e,t){this._options=e,this._transitionable.setTransitionOrValue(e.properties,t);}shadowsEnabled(){return !!this.properties&&!0===this.properties.get(\"cast-shadows\")}}class Xe{constructor(e,t,i,o){this.screenBounds=e,this.cameraPoint=t,this._screenRaycastCache={},this._cameraRaycastCache={},this.isAboveHorizon=i,this.screenGeometry=this.bufferedScreenGeometry(0),this.screenGeometryMercator=this._bufferedScreenMercator(0,o);}static createFromScreenPoints(t,i){let o,s;if(t instanceof e.P||\"number\"==typeof t[0]){const r=e.P.convert(t);o=[r],s=i.isPointAboveHorizon(r);}else {const r=e.P.convert(t[0]),a=e.P.convert(t[1]);o=[r,a],s=e.al(r,a).every((e=>i.isPointAboveHorizon(e)));}return new Xe(o,i.getCameraPoint(),s,i)}isPointQuery(){return 1===this.screenBounds.length}bufferedScreenGeometry(t){return e.al(this.screenBounds[0],1===this.screenBounds.length?this.screenBounds[0]:this.screenBounds[1],t)}bufferedCameraGeometry(t){const i=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new e.P(1,1)):this.screenBounds[1],s=e.al(i,o,0,!1);return this.cameraPoint.y>o.y&&(this.cameraPoint.x>i.x&&this.cameraPoint.x<o.x?s.splice(3,0,this.cameraPoint):this.cameraPoint.x>=o.x?s[2]=this.cameraPoint:this.cameraPoint.x<=i.x&&(s[3]=this.cameraPoint)),e.am(s,t)}bufferedCameraGeometryGlobe(t){const i=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new e.P(1,1)):this.screenBounds[1],s=e.al(i,o,t),r=this.cameraPoint.clone();switch(3*((r.y>i.y)+(r.y>o.y))+((r.x>i.x)+(r.x>o.x))){case 0:s[0]=r,s[4]=r.clone();break;case 1:s.splice(1,0,r);break;case 2:s[1]=r;break;case 3:s.splice(4,0,r);break;case 5:s.splice(2,0,r);break;case 6:s[3]=r;break;case 7:s.splice(3,0,r);break;case 8:s[2]=r;}return s}containsTile(t,i,o,s=0){const r=t.queryPadding/i._pixelsPerMercatorPixel+1,a=o?this._bufferedCameraMercator(r,i):this._bufferedScreenMercator(r,i);let n=t.tileID.wrap+(a.unwrapped?s:0);const l=a.polygon.map((i=>e.an(t.tileTransform,i,n)));if(!e.ao(l,0,0,e.ag,e.ag))return;n=t.tileID.wrap+(this.screenGeometryMercator.unwrapped?s:0);const c=this.screenGeometryMercator.polygon.map((i=>e.ap(t.tileTransform,i,n))),h=c.map((t=>new e.P(t[0],t[1]))),u=i.getFreeCameraOptions().position||new e.aa(0,0,0),d=e.ap(t.tileTransform,u,n),_=c.map((t=>{const i=e.ab.vec3.sub(t,t,d);return e.ab.vec3.normalize(i,i),new e.aq(d,i)})),p=e.ar(t,1,i.zoom)*i._pixelsPerMercatorPixel;return {queryGeometry:this,tilespaceGeometry:h,tilespaceRays:_,bufferedTilespaceGeometry:l,bufferedTilespaceBounds:(f=e.as(l),f.min.x=e.aw(f.min.x,0,e.ag),f.min.y=e.aw(f.min.y,0,e.ag),f.max.x=e.aw(f.max.x,0,e.ag),f.max.y=e.aw(f.max.y,0,e.ag),f),tile:t,tileID:t.tileID,pixelToTileUnitsFactor:p};var f;}_bufferedScreenMercator(e,t){const i=Je(e);if(this._screenRaycastCache[i])return this._screenRaycastCache[i];{let o;return o=\"globe\"===t.projection.name?this._projectAndResample(this.bufferedScreenGeometry(e),t):{polygon:this.bufferedScreenGeometry(e).map((e=>t.pointCoordinate3D(e))),unwrapped:!0},this._screenRaycastCache[i]=o,o}}_bufferedCameraMercator(e,t){const i=Je(e);if(this._cameraRaycastCache[i])return this._cameraRaycastCache[i];{let o;return o=\"globe\"===t.projection.name?this._projectAndResample(this.bufferedCameraGeometryGlobe(e),t):{polygon:this.bufferedCameraGeometry(e).map((e=>t.pointCoordinate3D(e))),unwrapped:!0},this._cameraRaycastCache[i]=o,o}}_projectAndResample(t,i){const o=function(t,i){const o=e.ab.mat4.multiply([],i.pixelMatrix,i.globeMatrix),s=[0,-e.ax,0,1],r=[0,e.ax,0,1],a=[0,0,0,1];e.ab.vec4.transformMat4(s,s,o),e.ab.vec4.transformMat4(r,r,o),e.ab.vec4.transformMat4(a,a,o);const n=new e.P(s[0]/s[3],s[1]/s[3]),l=new e.P(r[0]/r[3],r[1]/r[3]),c=e.au(t,n)&&s[3]<a[3],h=e.au(t,l)&&r[3]<a[3];if(!c&&!h)return null;const u=function(e,t,i){for(let o=1;o<e.length;o++){const s=Ye(t.pointCoordinate3D(e[o-1]).x),r=Ye(t.pointCoordinate3D(e[o]).x);if(i<0){if(s<r)return {idx:o,t:-s/(r-1-s)}}else if(r<s)return {idx:o,t:(1-s)/(r+1-s)}}return null}(t,i,c?-1:1);if(!u)return null;const{idx:d,t:_}=u;let p=d>1?Ke(t.slice(0,d),i):[],f=d<t.length?Ke(t.slice(d),i):[];p=p.map((t=>new e.P(Ye(t.x),t.y))),f=f.map((t=>new e.P(Ye(t.x),t.y)));const m=[...p];0===m.length&&m.push(f[f.length-1]);const g=e.af(m[m.length-1].y,(0===f.length?p[0]:f[0]).y,_);let v;return v=c?[new e.P(0,g),new e.P(0,0),new e.P(1,0),new e.P(1,g)]:[new e.P(1,g),new e.P(1,1),new e.P(0,1),new e.P(0,g)],m.push(...v),0===f.length?m.push(p[0]):m.push(...f),{polygon:m.map((t=>new e.aa(t.x,t.y))),unwrapped:!1}}(t,i);if(o)return o;const s=function(t,i){let o=!1,s=-1/0,r=0;for(let e=0;e<t.length-1;e++)t[e].x>s&&(s=t[e].x,r=e);for(let e=0;e<t.length-1;e++){const i=(r+e)%(t.length-1),s=t[i],a=t[i+1];Math.abs(s.x-a.x)>.5&&(s.x<a.x?(s.x+=1,0===i&&(t[t.length-1].x+=1)):(a.x+=1,i+1===t.length-1&&(t[0].x+=1)),o=!0);}const a=e.at(i.center.lng);return o&&a<Math.abs(a-1)&&t.forEach((e=>{e.x-=1;})),{polygon:t,unwrapped:o}}(Ke(t,i).map((t=>new e.P(Ye(t.x),t.y))),i);return {polygon:s.polygon.map((t=>new e.aa(t.x,t.y))),unwrapped:s.unwrapped}}}function Ke(t,i){return e.av(t,(e=>{const t=i.pointCoordinate3D(e);e.x=t.x,e.y=t.y;}),1/256)}function Ye(e){return e<0?1+e%1:e%1}function Je(e){return 100*e|0}function Qe(t,i,o,s,r){const a=function(o,s){if(o)return r(o);if(s){if(t.url&&s.tiles&&t.tiles&&delete t.tiles,s.variants){if(!Array.isArray(s.variants))return r(new Error(\"variants must be an array\"));for(const t of s.variants){if(null==t||\"object\"!=typeof t||t.constructor!==Object)return r(new Error(\"variant must be an object\"));if(!Array.isArray(t.capabilities))return r(new Error(\"capabilities must be an array\"));if(1===t.capabilities.length&&\"meshopt\"===t.capabilities[0]){s=e.l(s,t);break}}}const o=e.ay(e.l({},s,t),[\"tilejson\",\"tiles\",\"minzoom\",\"maxzoom\",\"attribution\",\"mapbox_logo\",\"bounds\",\"scheme\",\"tileSize\",\"encoding\",\"vector_layers\",\"raster_layers\",\"worldview_options\",\"worldview_default\",\"worldview\"]);o.tiles=i.canonicalizeTileset(o,t.url),r(null,o);}},n=function(e,t,i){if(!e)return null;if(!t&&!i)return e;i=i||e.worldview_default;const o=Object.values(e.language||{});if(0===o.length)return null;const s=Object.values(e.worldview||{});if(0===s.length)return null;const r=o.every((e=>e===t)),a=s.every((e=>e===i));return r&&a?e:t in(e.language_options||{})||i in(e.worldview_options||{})?null:e.language_options&&e.worldview_options?e:null}(t.data,o,s);return n?e.q.frame((()=>a(null,n))):t.url?e.n(i.transformRequest(i.normalizeSourceURL(t.url,null,o,s),e.R.Source),a):e.q.frame((()=>{const{data:e,...i}=t;a(null,i);}))}class et{constructor(t,i,o){this.bounds=e.az.convert(this.validateBounds(t)),this.minzoom=i||0,this.maxzoom=o||24;}validateBounds(e){return Array.isArray(e)&&4===e.length?[Math.max(-180,e[0]),Math.max(-90,e[1]),Math.min(180,e[2]),Math.min(90,e[3])]:[-180,-90,180,90]}contains(t){const i=Math.pow(2,t.z),o=Math.floor(e.at(this.bounds.getWest())*i),s=Math.floor(e.aA(this.bounds.getNorth())*i),r=Math.ceil(e.at(this.bounds.getEast())*i),a=Math.ceil(e.aA(this.bounds.getSouth())*i);return t.x>=o&&t.x<r&&t.y>=s&&t.y<a}}class tt extends e.E{constructor(t,i,o,s){if(super(),this.id=t,this.dispatcher=o,this.type=\"vector\",this.minzoom=0,this.maxzoom=22,this.scheme=\"xyz\",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,e.l(this,e.ay(i,[\"url\",\"scheme\",\"tileSize\",\"promoteId\"])),this._options=e.l({type:\"vector\"},i),this._collectResourceTiming=!!i.collectResourceTiming,512!==this.tileSize)throw new Error(\"vector tile sources must have a tileSize of 512\");this.setEventedParent(s),this._tileWorkers={},this._deduped=new e.aB;}load(t){this._loaded=!1,this.fire(new e.z(\"dataloading\",{dataType:\"source\"}));const i=Array.isArray(this.map._language)?this.map._language.join():this.map._language,o=this.map.getWorldview();this._tileJSONRequest=Qe(this._options,this.map._requestManager,i,o,((s,r)=>{if(this._tileJSONRequest=null,this._loaded=!0,s)i&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${i}`),o&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${o}`),this.fire(new e.y(s));else if(r){if(e.l(this,r),this.hasWorldviews=!!r.worldview_options,r.worldview_default&&(this.worldviewDefault=r.worldview_default),r.vector_layers){this.vectorLayers=r.vector_layers,this.vectorLayerIds=[],this.localizableLayerIds=new Set;for(const e of r.vector_layers)this.vectorLayerIds.push(e.id),r.worldview&&r.worldview[e.source]&&this.localizableLayerIds.add(e.id);}r.bounds&&(this.tileBounds=new et(r.bounds,this.minzoom,this.maxzoom)),A(r.tiles,this.map._requestManager._customAccessToken),this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"content\"}));}t&&t(s);}));}loaded(){return this._loaded}hasTile(e){return !this.tileBounds||this.tileBounds.contains(e.canonical)}onAdd(e){this.map=e,this.load();}reload(){this.cancelTileJSONRequest();const t=e.aC(this.id,this.scope);this.load((()=>this.map.style.clearSource(t)));}setTiles(e){return this._options.tiles=e,this.reload(),this}setUrl(e){return this.url=e,this._options.url=e,this.reload(),this}onRemove(e){this.cancelTileJSONRequest();}serialize(){return e.l({},this._options)}loadTile(t,i){const o=t.tileID.canonical.url(this.tiles,this.scheme),s=this.map._requestManager.normalizeTileURL(o),r=this.map._requestManager.transformRequest(s,e.R.Tile),a=this.map.style?this.map.style.getLut(this.scope):null,n=a?{image:a.image.clone()}:null,l={request:r,data:void 0,uid:t.uid,tileID:t.tileID,tileZoom:t.tileZoom,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,lut:n,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,scope:this.scope,pixelRatio:e.q.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:t.isSymbolTile,brightness:this.map.style&&this.map.style.getBrightness()||0,extraShadowCaster:t.isExtraShadowCaster,tessellationStep:this.map._tessellationStep,scaleFactor:this.map.getScaleFactor()};if(this.hasWorldviews&&e.f(o)&&(l.worldview=this.map.getWorldview()||this.worldviewDefault,l.localizableLayerIds=this.localizableLayerIds),l.request.collectResourceTiming=this._collectResourceTiming,t.actor&&\"expired\"!==t.state)\"loading\"===t.state?t.reloadCallback=i:t.request=t.actor.send(\"reloadTile\",l,c.bind(this));else if(t.actor=this._tileWorkers[s]=this._tileWorkers[s]||this.dispatcher.getActor(),this.dispatcher.ready)t.request=t.actor.send(\"loadTile\",l,c.bind(this),void 0,!0);else {const i=e.aD.call({deduped:this._deduped},l,((e,i)=>{e||!i?c.call(this,e):(l.data={cacheControl:i.cacheControl,expires:i.expires,rawData:i.rawData.slice(0)},t.actor&&t.actor.send(\"loadTile\",l,c.bind(this),void 0,!0));}),!0);t.request={cancel:i};}function c(o,s){return delete t.request,t.aborted?i(null):o&&404!==o.status?i(o):(s&&s.resourceTiming&&(t.resourceTiming=s.resourceTiming),this.map._refreshExpiredTiles&&s&&t.setExpiryData(s),t.loadVectorData(s,this.map.painter),e.aE(this.dispatcher),i(null),void(t.reloadCallback&&(this.loadTile(t,t.reloadCallback),t.reloadCallback=null)))}}abortTile(e){e.request&&(e.request.cancel(),delete e.request),e.actor&&e.actor.send(\"abortTile\",{uid:e.uid,type:this.type,source:this.id,scope:this.scope});}unloadTile(e,t){e.actor&&e.actor.send(\"removeTile\",{uid:e.uid,type:this.type,source:this.id,scope:this.scope}),e.destroy();}hasTransition(){return !1}afterUpdate(){this._tileWorkers={};}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}}class it extends e.E{constructor(t,i,o,s){super(),this.id=t,this.dispatcher=o,this.setEventedParent(s),this.type=\"raster\",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=\"xyz\",this.tileSize=512,this._loaded=!1,this._options=e.l({type:\"raster\"},i),e.l(this,e.ay(i,[\"url\",\"scheme\",\"tileSize\"]));}load(t){this._loaded=!1,this.fire(new e.z(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=Qe(this._options,this.map._requestManager,null,null,((i,o)=>{this._tileJSONRequest=null,this._loaded=!0,i?this.fire(new e.y(i)):o&&(e.l(this,o),o.raster_layers&&(this.rasterLayers=o.raster_layers,this.rasterLayerIds=this.rasterLayers.map((e=>e.id))),o.bounds&&(this.tileBounds=new et(o.bounds,this.minzoom,this.maxzoom)),A(o.tiles),this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"content\"}))),t&&t(i);}));}loaded(){return this._loaded}onAdd(e){this.map=e,this.load();}reload(){this.cancelTileJSONRequest();const t=e.aC(this.id,this.scope);this.load((()=>this.map.style.clearSource(t)));}setTiles(e){return this._options.tiles=e,this.reload(),this}setUrl(e){return this.url=e,this._options.url=e,this.reload(),this}onRemove(e){this.cancelTileJSONRequest();}serialize(){return e.l({},this._options)}hasTile(e){return !this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(t,i){const o=e.q.devicePixelRatio>=2,s=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme),o,this.tileSize);t.request=e.o(this.map._requestManager.transformRequest(s,e.R.Tile),((o,s,r,a)=>(delete t.request,t.aborted?(t.state=\"unloaded\",i(null)):o?(t.state=\"errored\",i(o)):s?(this.map._refreshExpiredTiles&&t.setExpiryData({cacheControl:r,expires:a}),t.setTexture(s,this.map.painter),t.state=\"loaded\",e.aE(this.dispatcher),void i(null)):i(null))));}abortTile(e,t){e.request&&(e.request.cancel(),delete e.request),t&&t();}unloadTile(t,i){t.texture&&t.texture instanceof e.T?(t.destroy(!0),t.texture&&t.texture instanceof e.T&&this.map.painter.saveTileTexture(t.texture)):t.destroy(),i&&i();}hasTransition(){return !1}cancelTileJSONRequest(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}}class ot extends it{constructor(t,i,o,s){super(t,i,o,s),this.type=\"raster-array\",this.maxzoom=22,this._options=e.l({type:\"raster-array\"},i);}triggerRepaint(e){const t=this.map.painter._terrain,i=this.map.style.getSourceCache(this.id);t&&t.enabled&&i&&t._clearRenderCacheForTile(i.id,e.tileID),this.map.triggerRepaint();}loadTile(t,i){const o=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize),s=this.map._requestManager.transformRequest(o,e.R.Tile);t.requestParams=s,t.actor||(t.actor=this.dispatcher.getActor()),t.request=t.fetchHeader(void 0,((e,o,s,r)=>{if(delete t.request,t.aborted)return t.state=\"unloaded\",i(null);if(e){if(20===e.code)return;return t.state=\"errored\",i(e)}this.map._refreshExpiredTiles&&t.setExpiryData({cacheControl:s,expires:r}),t.state=\"empty\",i(null);}));}unloadTile(t,i){const o=t.texture;o&&o instanceof e.T?(t.destroy(!0),this.map.painter.saveTileTexture(o)):(t.destroy(),t.flushQueues(),t._isHeaderLoaded=!1,delete t._mrt,delete t.textureDescriptor),t.fbo&&(t.fbo.destroy(),delete t.fbo),delete t.request,delete t.requestParams,delete t.neighboringTiles,t.state=\"unloaded\";}prepareTile(t,i,o){t._isHeaderLoaded&&(\"empty\"!==t.state&&(t.state=\"reloading\"),t.fetchBand(i,o,((i,o)=>{if(i)return t.state=\"errored\",this.fire(new e.y(i)),void this.triggerRepaint(t);o&&(t.setTexture(o,this.map.painter),t.state=\"loaded\",this.triggerRepaint(t));})));}getInitialBand(e){if(!this.rasterLayers)return 0;const t=this.rasterLayers.find((({id:t})=>t===e)),i=t&&t.fields,o=i&&i.bands&&i.bands;return o?o[0]:0}getTextureDescriptor(t,i,o){if(!t)return;const s=i.sourceLayer||this.rasterLayerIds&&this.rasterLayerIds[0];if(!s)return;let r=null;i instanceof e.aH?r=i.paint.get(\"raster-array-band\"):i instanceof e.aI&&(r=i.paint.get(\"raster-particle-array-band\"));const a=r||this.getInitialBand(s);if(null!=a)if(t.textureDescriptor){if(!t.updateNeeded(s,a)||o)return Object.assign({},t.textureDescriptor,{texture:t.texture})}else this.prepareTile(t,s,a);}}const st={vector:tt,raster:it,\"raster-dem\":class extends it{constructor(t,i,o,s){super(t,i,o,s),this.type=\"raster-dem\",this.maxzoom=22,this._options=e.l({type:\"raster-dem\"},i),this.encoding=i.encoding||\"mapbox\";}loadTile(t,i){const o=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function s(e,o){e&&(t.state=\"errored\",i(e)),o&&(t.dem=o,t.dem.onDeserialize(),t.needsHillshadePrepare=!0,t.needsDEMTextureUpload=!0,t.state=\"loaded\",i(null));}t.request=e.o(this.map._requestManager.transformRequest(o,e.R.Tile),function(o,r,a,n){if(delete t.request,t.aborted)t.state=\"unloaded\",i(null);else if(o)t.state=\"errored\",i(o);else if(r){this.map._refreshExpiredTiles&&t.setExpiryData({cacheControl:a,expires:n});const i=ImageBitmap&&r instanceof ImageBitmap&&e.t(),o=1-(r.width-e.aF(r.width))/2;o<1||t.neighboringTiles||(t.neighboringTiles=this._getNeighboringTiles(t.tileID));const l=i?r:e.q.getImageData(r,o),c={uid:t.uid,coord:t.tileID,source:this.id,scope:this.scope,rawImageData:l,encoding:this.encoding,padding:o};t.actor&&\"expired\"!==t.state||(t.actor=this.dispatcher.getActor(),t.actor.send(\"loadDEMTile\",c,s.bind(this),void 0,!0));}}.bind(this));}_getNeighboringTiles(t){const i=t.canonical,o=Math.pow(2,i.z),s=(i.x-1+o)%o,r=0===i.x?t.wrap-1:t.wrap,a=(i.x+1+o)%o,n=i.x+1===o?t.wrap+1:t.wrap,l={};return l[new e.aG(t.overscaledZ,r,i.z,s,i.y).key]={backfilled:!1},l[new e.aG(t.overscaledZ,n,i.z,a,i.y).key]={backfilled:!1},i.y>0&&(l[new e.aG(t.overscaledZ,r,i.z,s,i.y-1).key]={backfilled:!1},l[new e.aG(t.overscaledZ,t.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},l[new e.aG(t.overscaledZ,n,i.z,a,i.y-1).key]={backfilled:!1}),i.y+1<o&&(l[new e.aG(t.overscaledZ,r,i.z,s,i.y+1).key]={backfilled:!1},l[new e.aG(t.overscaledZ,t.wrap,i.z,i.x,i.y+1).key]={backfilled:!1},l[new e.aG(t.overscaledZ,n,i.z,a,i.y+1).key]={backfilled:!1}),l}},\"raster-array\":ot,geojson:class extends e.E{constructor(t,i,o,s){super(),this.id=t,this.type=\"geojson\",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._loaded=!1,this.actor=o.getActor(),this.setEventedParent(s),this._data=i.data,this._options=e.l({},i),this._collectResourceTiming=i.collectResourceTiming,void 0!==i.maxzoom&&(this.maxzoom=i.maxzoom),void 0!==i.minzoom&&(this.minzoom=i.minzoom),i.type&&(this.type=i.type),i.attribution&&(this.attribution=i.attribution),this.promoteId=i.promoteId;const r=e.ag/this.tileSize;this.workerOptions=e.l({source:this.id,scope:this.scope,cluster:i.cluster||!1,geojsonVtOptions:{buffer:(void 0!==i.buffer?i.buffer:128)*r,tolerance:(void 0!==i.tolerance?i.tolerance:.375)*r,extent:e.ag,maxZoom:this.maxzoom,lineMetrics:i.lineMetrics||!1,generateId:i.generateId||!1},superclusterOptions:{maxZoom:void 0!==i.clusterMaxZoom?i.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,i.clusterMinPoints||2),extent:e.ag,radius:(void 0!==i.clusterRadius?i.clusterRadius:50)*r,log:!1,generateId:i.generateId||!1},clusterProperties:i.clusterProperties,filter:i.filter,dynamic:i.dynamic},i.workerOptions);}onAdd(e){this.map=e,this.setData(this._data);}setData(e){return this._data=e,this._updateWorkerData(),this}updateData(t){if(!this._options.dynamic)return this.fire(new e.y(new Error(\"Can't call updateData on a GeoJSON source with dynamic set to false.\")));if(\"string\"!=typeof t&&(\"Feature\"===t.type&&(t={type:\"FeatureCollection\",features:[t]}),\"FeatureCollection\"!==t.type))return this.fire(new e.y(new Error(\"Data to update should be a feature or a feature collection.\")));if(this._coalesce&&\"string\"!=typeof t&&\"string\"!=typeof this._data&&\"FeatureCollection\"===this._data.type){const e=new Map;for(const t of this._data.features)e.set(t.id,t);for(const i of t.features)e.set(i.id,i);this._data.features=[...e.values()];}else this._data=t;return this._updateWorkerData(!0),this}getClusterExpansionZoom(e,t){return this.actor.send(\"geojson.getClusterExpansionZoom\",{clusterId:e,source:this.id,scope:this.scope},t),this}getClusterChildren(e,t){return this.actor.send(\"geojson.getClusterChildren\",{clusterId:e,source:this.id,scope:this.scope},t),this}getClusterLeaves(e,t,i,o){return this.actor.send(\"geojson.getClusterLeaves\",{source:this.id,scope:this.scope,clusterId:e,limit:t,offset:i},o),this}_updateWorkerData(t=!1){if(this._pendingLoad)return void(this._coalesce=!0);this.fire(new e.z(\"dataloading\",{dataType:\"source\"})),this._loaded=!1;const i=e.l({append:t},this.workerOptions);i.scope=this.scope;const o=this._data;\"string\"==typeof o?(i.request=this.map._requestManager.transformRequest(e.q.resolveURL(o),e.R.Source),i.request.collectResourceTiming=this._collectResourceTiming):i.data=JSON.stringify(o),this._pendingLoad=this.actor.send(`${this.type}.loadData`,i,((i,o)=>{if(this._loaded=!0,this._pendingLoad=null,i)this.fire(new e.y(i));else {const i={dataType:\"source\",sourceDataType:this._metadataFired?\"content\":\"metadata\"};this._collectResourceTiming&&o&&o.resourceTiming&&o.resourceTiming[this.id]&&(i.resourceTiming=o.resourceTiming[this.id]),t&&(this._partialReload=!0),this.fire(new e.z(\"data\",i)),this._partialReload=!1,this._metadataFired=!0;}this._coalesce&&(this._updateWorkerData(t),this._coalesce=!1);}));}loaded(){return this._loaded}loadTile(t,i){const o=t.actor?\"reloadTile\":\"loadTile\";t.actor=this.actor;const s=this.map.style?this.map.style.getLut(this.scope):null,r=s?{image:s.image.clone()}:null,a=this._partialReload,n={type:this.type,uid:t.uid,tileID:t.tileID,tileZoom:t.tileZoom,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,lut:r,scope:this.scope,pixelRatio:e.q.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,brightness:this.map.style&&this.map.style.getBrightness()||0,scaleFactor:this.map.getScaleFactor(),partial:a};t.request=this.actor.send(o,n,((e,s)=>a&&!s?(t.state=\"loaded\",i(null)):(delete t.request,t.destroy(),t.aborted?i(null):e?i(e):(t.loadVectorData(s,this.map.painter,\"reloadTile\"===o),i(null)))),void 0,\"loadTile\"===o);}abortTile(e){e.request&&(e.request.cancel(),delete e.request),e.aborted=!0;}unloadTile(e,t){this.actor.send(\"removeTile\",{uid:e.uid,type:this.type,source:this.id,scope:this.scope}),e.destroy();}onRemove(e){this._pendingLoad&&this._pendingLoad.cancel();}serialize(){return e.l({},this._options,{type:this.type,data:this._data})}hasTransition(){return !1}},video:class extends e.aJ{constructor(e,t,i,o){super(e,t,i,o),this.roundZoom=!0,this.type=\"video\",this.options=t;}load(){this._loaded=!1;const t=this.options;this.urls=[];for(const i of t.urls)this.urls.push(this.map._requestManager.transformRequest(i,e.R.Source).url);e.aK(this.urls,((t,i)=>{this._loaded=!0,t?this.fire(new e.y(t)):i&&(this.video=i,this.video.loop=!0,this.video.setAttribute(\"playsinline\",\"\"),this.video.addEventListener(\"playing\",(()=>{this.map.triggerRepaint();})),this.map&&this.video.play(),this._finishLoading());}));}pause(){this.video&&this.video.pause();}play(){this.video&&this.video.play();}seek(t){if(this.video){const i=this.video.seekable;t<i.start(0)||t>i.end(0)?this.fire(new e.y(new e.V(`sources.${this.id}`,null,`Playback for this video can be set only between the ${i.start(0)} and ${i.end(0)}-second mark.`))):this.video.currentTime=t;}}getVideo(){return this.video}onAdd(e){this.map||(this.map=e,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)));}prepare(){if(0===Object.keys(this.tiles).length||this.video.readyState<2)return;const t=this.map.painter.context,i=t.gl;this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new e.T(t,this.video,i.RGBA8),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._prepareData(t);}serialize(){return {type:\"video\",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:e.aJ,model:class extends e.E{constructor(e,t,i,o){super(),this.id=e,this.type=\"model\",this.models=[],this._loaded=!1,this._options=t;}load(){const t=[];for(const i in this._options.models){const o=this._options.models[i],s=e.aM(this.map._requestManager.transformRequest(o.uri,e.R.Model).url).then((t=>{if(!t)return;const s=e.aN(t),r=new e.aO(i,o.position,o.orientation,s);r.computeBoundsAndApplyParent(),this.models.push(r);})).catch((t=>{this.fire(new e.y(new Error(`Could not load model ${i} from ${o.uri}: ${t.message}`)));}));t.push(s);}return Promise.allSettled(t).then((()=>{this._loaded=!0,this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"}));})).catch((t=>{this.fire(new e.y(new Error(`Could not load models: ${t.message}`)));}))}onAdd(e){this.map=e,this.load();}hasTransition(){return !1}loaded(){return this._loaded}getModels(){return this.models}loadTile(e,t){}serialize(){return {type:\"model\"}}},\"batched-model\":class extends e.E{constructor(e,t,i,o){super(),this.type=\"batched-model\",this.id=e,this.tileSize=512,this._options=t,this.tiles=this._options.tiles,this.maxzoom=t.maxzoom||19,this.minzoom=t.minzoom||0,this.roundZoom=!0,this.usedInConflation=!0,this.dispatcher=i,this.reparseOverscaled=!1,this.scheme=\"xyz\",this._loaded=!1,this.setEventedParent(o);}onAdd(e){this.map=e,this.load();}load(t){this._loaded=!1,this.fire(new e.z(\"dataloading\",{dataType:\"source\"}));const i=Array.isArray(this.map._language)?this.map._language.join():this.map._language,o=this.map.getWorldview();this._tileJSONRequest=Qe(this._options,this.map._requestManager,i,o,((s,r)=>{this._tileJSONRequest=null,this._loaded=!0,s?(i&&console.warn(`Ensure that your requested language string is a valid BCP-47 code or list of codes. Found: ${i}`),o&&2!==o.length&&console.warn(`Requested worldview strings must be a valid ISO alpha-2 code. Found: ${o}`),this.fire(new e.y(s))):r&&(e.l(this,r),r.bounds&&(this.tileBounds=new et(r.bounds,this.minzoom,this.maxzoom)),A(r.tiles,this.map._requestManager._customAccessToken),this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"content\"}))),t&&t(s);}));}hasTransition(){return !1}hasTile(e){return !this.tileBounds||this.tileBounds.contains(e.canonical)}loaded(){return this._loaded}loadTile(t,i){const o=this.map._requestManager.normalizeTileURL(t.tileID.canonical.url(this.tiles,this.scheme)),s={request:this.map._requestManager.transformRequest(o,e.R.Tile),data:void 0,uid:t.uid,tileID:t.tileID,tileZoom:t.tileZoom,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,scope:this.scope,showCollisionBoxes:this.map.showCollisionBoxes,isSymbolTile:t.isSymbolTile,brightness:this.map.style&&this.map.style.getBrightness()||0,lut:null,maxZoom:null,promoteId:null,pixelRatio:null,scaleFactor:null};if(t.actor&&\"expired\"!==t.state)if(\"loading\"===t.state)t.reloadCallback=i;else {if(t.buckets){const e=Object.values(t.buckets);for(const t of e)t.dirty=!0;return void(t.state=\"loaded\")}t.request=t.actor.send(\"reloadTile\",s,r.bind(this));}else t.actor=this.dispatcher.getActor(),t.request=t.actor.send(\"loadTile\",s,r.bind(this),void 0,!0);function r(e,o){return t.aborted?i(null):e&&404!==e.status?i(e):(this.map._refreshExpiredTiles&&o&&t.setExpiryData(o),t.loadModelData(o,this.map.painter),t.state=\"loaded\",void i(null))}}serialize(){return e.l({},this._options)}},canvas:class extends e.aJ{constructor(t,i,o,s){super(t,i,o,s),i.coordinates?Array.isArray(i.coordinates)&&4===i.coordinates.length&&!i.coordinates.some((e=>!Array.isArray(e)||2!==e.length||e.some((e=>\"number\"!=typeof e))))||this.fire(new e.y(new e.V(`sources.${t}`,null,'\"coordinates\" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new e.y(new e.V(`sources.${t}`,null,'missing required property \"coordinates\"'))),i.animate&&\"boolean\"!=typeof i.animate&&this.fire(new e.y(new e.V(`sources.${t}`,null,'optional \"animate\" property must be a boolean value'))),i.canvas?\"string\"==typeof i.canvas||i.canvas instanceof HTMLCanvasElement||this.fire(new e.y(new e.V(`sources.${t}`,null,'\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new e.y(new e.V(`sources.${t}`,null,'missing required property \"canvas\"'))),this.options=i,this.animate=void 0===i.animate||i.animate;}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new e.y(new Error(\"Canvas dimensions cannot be less than or equal to zero.\"))):(this.play=function(){this._playing=!0,this.map.triggerRepaint();},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1);},this._finishLoading());}getCanvas(){return this.canvas}onAdd(e){this.map=e,this.load(),this.canvas&&this.animate&&this.play();}onRemove(e){this.pause();}prepare(){let t=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,t=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,t=!0),this._hasInvalidDimensions())return;if(0===Object.keys(this.tiles).length)return;const i=this.map.painter.context;this.texture?!t&&!this._playing||this.texture instanceof e.aL||this.texture.update(this.canvas,{premultiply:!0}):this.texture=new e.T(i,this.canvas,i.gl.RGBA8,{premultiply:!0}),this._prepareData(i);}serialize(){return {type:\"canvas\",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const e of [this.canvas.width,this.canvas.height])if(isNaN(e)||e<=0)return !0;return !1}},custom:class extends e.E{constructor(t,i,o,s){super(),this.id=t,this.type=\"custom\",this._dataType=\"raster\",this._dispatcher=o,this._implementation=i,this.setEventedParent(s),this.scheme=\"xyz\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this._loaded=!1,this.roundZoom=!0,this._implementation||this.fire(new e.y(new Error(`Missing implementation for ${this.id} custom source`))),this._implementation.loadTile||this.fire(new e.y(new Error(`Missing loadTile implementation for ${this.id} custom source`))),this._implementation.bounds&&(this.tileBounds=new et(this._implementation.bounds,this.minzoom,this.maxzoom)),i.update=this._update.bind(this),i.clearTiles=this._clearTiles.bind(this),i.coveringTiles=this._coveringTiles.bind(this),e.l(this,e.ay(i,[\"dataType\",\"scheme\",\"minzoom\",\"maxzoom\",\"tileSize\",\"attribution\",\"minTileCacheSize\",\"maxTileCacheSize\"]));}serialize(){return e.ay(this,[\"type\",\"scheme\",\"minzoom\",\"maxzoom\",\"tileSize\",\"attribution\"])}load(){this._loaded=!0,this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"content\"}));}loaded(){return this._loaded}onAdd(t){this.map=t,this._loaded=!1,this.fire(new e.z(\"dataloading\",{dataType:\"source\"})),this._implementation.onAdd&&this._implementation.onAdd(t),this.load();}onRemove(e){this._implementation.onRemove&&this._implementation.onRemove(e);}hasTile(e){if(this._implementation.hasTile){const{x:t,y:i,z:o}=e.canonical;return this._implementation.hasTile({x:t,y:i,z:o})}return !this.tileBounds||this.tileBounds.contains(e.canonical)}loadTile(e,t){const{x:i,y:o,z:s}=e.tileID.canonical,r=new AbortController;e.request=Promise.resolve(this._implementation.loadTile({x:i,y:o,z:s},{signal:r.signal})).then(function(i){return delete e.request,e.aborted?(e.state=\"unloaded\",t(null)):void 0===i?(e.state=\"errored\",t(null)):null===i?(this.loadTileData(e,{width:this.tileSize,height:this.tileSize,data:null}),e.state=\"loaded\",t(null)):function(e){return e instanceof ImageData||e instanceof HTMLCanvasElement||e instanceof ImageBitmap||e instanceof HTMLImageElement}(i)?(this.loadTileData(e,i),e.state=\"loaded\",void t(null)):(e.state=\"errored\",t(new Error(`Can't infer data type for ${this.id}, only raster data supported at the moment`)))}.bind(this)).catch((i=>{20!==i.code&&(e.state=\"errored\",t(i));})),e.request.cancel=()=>r.abort();}loadTileData(e,t){e.setTexture(t,this.map.painter);}unloadTile(t,i){if(t.texture&&t.texture instanceof e.T?(t.destroy(!0),t.texture&&t.texture instanceof e.T&&this.map.painter.saveTileTexture(t.texture)):t.destroy(),this._implementation.unloadTile){const{x:e,y:i,z:o}=t.tileID.canonical;this._implementation.unloadTile({x:e,y:i,z:o});}i&&i();}abortTile(e,t){e.request&&e.request.cancel&&(e.request.cancel(),delete e.request),t&&t();}hasTransition(){return !1}_coveringTiles(){return this.map.transform.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,roundZoom:this.roundZoom}).map((e=>({x:e.canonical.x,y:e.canonical.y,z:e.canonical.z})))}_clearTiles(){const t=e.aC(this.id,this.scope);this.map.style.clearSource(t);}_update(){this.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"content\"}));}}},rt=function(t,i,o,s){const r=new st[i.type](t,i,o,s);if(r.id!==t)throw new Error(`Expected Source id to be ${t} instead of ${r.id}`);return e.aP([\"load\",\"abort\",\"unload\",\"serialize\",\"prepare\"],r),r};function at(e,t,i,o,s=!1){const r=t.sourceCache.transform,a=t.sourceCache.tilesIn(e,t.has3DLayers,s);a.sort(ct);const n=[];for(const e of a){const a=e.tile.queryRenderedFeatures(t,e,i,o,r,s);Object.keys(a).length&&n.push({wrappedTileID:e.tile.tileID.wrapped().key,queryResults:a});}return 0===n.length?{}:function(e){const t={},i={};for(const o of e){const e=o.queryResults,s=o.wrappedTileID,r=i[s]=i[s]||{};for(const i in e){const o=e[i],s=r[i]=r[i]||{},a=t[i]=t[i]||[];for(const e of o)s[e.featureIndex]||(s[e.featureIndex]=!0,a.push(e));}}return t}(n)}function nt(e,t,i,o,s){const r={},a=o.queryRenderedSymbols(e),n=[];for(const e of Object.keys(a).map(Number))n.push(s[e]);n.sort(ct);for(const e of n){const o=e.featureIndex.lookupSymbolFeatures(a[e.bucketInstanceId],e.bucketIndex,e.sourceLayerIndex,t,i);for(const t in o){const i=r[t]=r[t]||[],s=o[t];s.sort(((t,i)=>{const o=e.featureSortOrder;if(o){const e=o.indexOf(t.featureIndex);return o.indexOf(i.featureIndex)-e}return i.featureIndex-t.featureIndex}));for(const e of s)i.push(e);}}return r}function lt(e,t){const i=e.getRenderableIds().map((t=>e.getTileByID(t))),o=[],s={};for(let e=0;e<i.length;e++){const r=i[e],a=r.tileID.canonical.key;s[a]||(s[a]=!0,r.querySourceFeatures(o,t));}return o}function ct(e,t){const i=e.tileID,o=t.tileID;return i.overscaledZ-o.overscaledZ||i.canonical.y-o.canonical.y||i.wrap-o.wrap||i.canonical.x-o.canonical.x}function ht(e,t){const i={};if(!t)return i;for(const o of e){const e=o.layerIds.map((e=>t.getLayer(e))).filter(Boolean);if(0!==e.length){o.layers=e,o.stateDependentLayerIds&&(o.stateDependentLayers=o.stateDependentLayerIds.map((t=>e.filter((e=>e.id===t))[0])));for(const t of e)i[t.fqid]=o;}}return i}const ut=32,dt=33,_t=new Uint16Array(8184);for(let e=0;e<2046;e++){let t=e+2,i=0,o=0,s=0,r=0,a=0,n=0;for(1&t?s=r=a=ut:i=o=n=ut;(t>>=1)>1;){const e=i+s>>1,l=o+r>>1;1&t?(s=i,r=o,i=a,o=n):(i=s,o=r,s=a,r=n),a=e,n=l;}const l=4*e;_t[l+0]=i,_t[l+1]=o,_t[l+2]=s,_t[l+3]=r;}const pt=new Uint16Array(2178),ft=new Uint8Array(1089),mt=new Uint16Array(1089);function gt(e){return 0===e?-.03125:32===e?.03125:0}const vt=(()=>({type:2,extent:e.ag,loadGeometry:()=>[[new e.P(0,0),new e.P(e.ag+1,0),new e.P(e.ag+1,e.ag+1),new e.P(0,e.ag+1),new e.P(0,0)]]}))();class yt{constructor(t,i,o,s,r){this.tileID=t,this.uid=e.aV(),this.uses=0,this.tileSize=i,this.tileZoom=o,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=r,s&&s.style&&(this._lastUpdatedBrightness=s.style.getBrightness()),this.expiredRequestCount=0,this.state=\"loading\",s&&s.transform&&(this.projection=s.transform.projection);}registerFadeDuration(t){const i=t+this.timeAdded;i<e.q.now()||this.fadeEndTime&&i<this.fadeEndTime||(this.fadeEndTime=i);}wasRequested(){return \"errored\"===this.state||\"loaded\"===this.state||\"reloading\"===this.state}get tileTransform(){return this._tileTransform||(this._tileTransform=e.aQ(this.tileID.canonical,this.projection)),this._tileTransform}loadVectorData(t,i,o){if(this.unloadVectorData(),this.state=\"loaded\",t){t.featureIndex&&(this.latestFeatureIndex=t.featureIndex,t.rawTileData?(this.latestRawTileData=t.rawTileData,this.latestFeatureIndex.rawTileData=t.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=t.collisionBoxArray,this.buckets=ht(t.buckets,i.style),this.hasSymbolBuckets=!1;for(const t in this.buckets){const i=this.buckets[t];if(i instanceof e.aX){if(this.hasSymbolBuckets=!0,!o)break;i.justReloaded=!0;}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const t in this.buckets){const i=this.buckets[t];if(i instanceof e.aX&&i.hasRTLText){this.hasRTLText=!0,e.aY();break}}this.queryPadding=0;for(const e in this.buckets){const t=this.buckets[e],o=i.style.getOwnLayer(e);if(!o)continue;const s=o.queryRadius(t);this.queryPadding=Math.max(this.queryPadding,s);}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage),t.lineAtlas&&(this.lineAtlas=t.lineAtlas),this._lastUpdatedBrightness=t.brightness;}else this.collisionBoxArray=new e.aW;}unloadVectorData(){if(this.hasData()){for(const e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.lineAtlasTexture&&this.lineAtlasTexture.destroy(),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this._tileDebugIndexBuffer&&(this._tileDebugIndexBuffer.destroy(),this._tileDebugIndexBuffer=null),this._globeTileDebugBorderBuffer&&(this._globeTileDebugBorderBuffer.destroy(),this._globeTileDebugBorderBuffer=null),this._tileDebugTextBuffer&&(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),this._tileDebugTextBuffer=null),this._globeTileDebugTextBuffer&&(this._globeTileDebugTextBuffer.destroy(),this._globeTileDebugTextBuffer=null),this.latestFeatureIndex=null,this.state=\"unloaded\";}}loadModelData(e,t,i){e&&(e.resourceTiming&&(this.resourceTiming=e.resourceTiming),this.buckets={...this.buckets,...ht(e.buckets,t.style)},e.featureIndex&&(this.latestFeatureIndex=e.featureIndex));}getBucket(e){return this.buckets[e.fqid]}upload(t){for(const e in this.buckets){const i=this.buckets[e];i.uploadPending()&&i.upload(t);}const i=t.gl,o=this.imageAtlas;if(o&&!o.uploaded){const s=!!Object.keys(o.patternPositions).length;this.imageAtlasTexture=new e.T(t,o.image,i.RGBA8,{useMipmap:s}),this.imageAtlas.uploaded=!0;}this.glyphAtlasImage&&(this.glyphAtlasTexture=new e.T(t,this.glyphAtlasImage,i.R8),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new e.T(t,this.lineAtlas.image,i.R8),this.lineAtlas.uploaded=!0);}prepare(e,t,i){if(this.imageAtlas&&this.imageAtlasTexture&&this.imageAtlas.patchUpdatedImages(e,this.imageAtlasTexture,i),!t||!this.latestFeatureIndex||!this.latestFeatureIndex.rawTileData)return;const o=t.style.getBrightness();(this._lastUpdatedBrightness||o)&&(this._lastUpdatedBrightness&&o&&Math.abs(this._lastUpdatedBrightness-o)<.001||(this.updateBuckets(t,this._lastUpdatedBrightness!==o),this._lastUpdatedBrightness=o));}queryRenderedFeatures(t,i,o,s,r,a){if(!this.latestFeatureIndex||!this.latestFeatureIndex.rawTileData&&!this.latestFeatureIndex.is3DTile)return {};const n=function(t,i){const o=e.ab.mat4.fromScaling([],[.5*t.width,.5*-t.height,1]);return e.ab.mat4.translate(o,o,[1,-1,0]),e.ab.mat4.multiply(o,o,t.calculateProjMatrix(i.toUnwrapped())),Float32Array.from(o)}(r,this.tileID);return this.latestFeatureIndex.query(t,{tilespaceGeometry:i,pixelPosMatrix:n,transform:s,availableImages:o,tileTransform:this.tileTransform})}querySourceFeatures(t,i){const o=this.latestFeatureIndex;if(!o||!o.rawTileData)return;const s=o.loadVTLayers(),r=i?i.sourceLayer:\"\",a=s._geojsonTileLayer||s[r];if(!a)return;const n=e.aZ(i&&i.filter),{z:l,x:c,y:h}=this.tileID.canonical,u={z:l,x:c,y:h};for(let i=0;i<a.length;i++){const s=a.feature(i);if(n.needGeometry){const t=e.a_(s,!0);if(!n.filter(new e.a8(this.tileID.overscaledZ),t,this.tileID.canonical))continue}else if(!n.filter(new e.a8(this.tileID.overscaledZ),s))continue;const d=o.getId(s,r),_=new e.a$(s,l,c,h,d);_.tile=u,t.push(_);}}hasData(){return \"loaded\"===this.state||\"reloading\"===this.state||\"expired\"===this.state}patternsLoaded(){return !!this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length}setExpiryData(t){const i=this.expirationTime;if(t.cacheControl){const i=e.b0(t.cacheControl);i[\"max-age\"]&&(this.expirationTime=Date.now()+1e3*i[\"max-age\"]);}else t.expires&&(this.expirationTime=new Date(t.expires).getTime());if(this.expirationTime){const e=Date.now();let t=!1;if(this.expirationTime>e)t=!1;else if(i)if(this.expirationTime<i)t=!0;else {const o=this.expirationTime-i;o?this.expirationTime=e+Math.max(o,3e4):t=!0;}else t=!0;t?(this.expiredRequestCount++,this.state=\"expired\"):this.expiredRequestCount=0;}}getExpiryTimeout(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-(new Date).getTime(),Math.pow(2,31)-1)}refreshFeatureState(e){this.latestFeatureIndex&&(this.latestFeatureIndex.rawTileData||this.latestFeatureIndex.is3DTile)&&e&&this.updateBuckets(e);}updateBuckets(t,i){if(!this.latestFeatureIndex)return;if(!t.style)return;const o=this.latestFeatureIndex.loadVTLayers(),s=t.style.listImages(),r=t.style.getBrightness();for(const a in this.buckets){if(!t.style.hasLayer(a))continue;const n=this.buckets[a],l=n.layers[0],c=l.sourceLayer||\"_geojsonTileLayer\",h=o[c],u=t.style.getLayerSourceCache(l);let d={};u&&(d=u._state.getState(c,void 0));const _=this.imageAtlas&&this.imageAtlas.patternPositions||{},p=Object.keys(d).length>0&&!i;p&&!n.stateDependentLayers.length&&!i||n.update(d,h,s,_,p?n.stateDependentLayers:n.layers,i,r),(n instanceof e.b1||n instanceof e.b2)&&t._terrain&&t._terrain.enabled&&u&&n.programConfigurations.needsUpload&&t._terrain._clearRenderCacheForTile(u.id,this.tileID);const f=t&&t.style&&t.style.getOwnLayer(a);f&&(this.queryPadding=Math.max(this.queryPadding,f.queryRadius(n)));}}holdingForFade(){return void 0!==this.symbolFadeHoldUntil}symbolFadeFinished(){return !this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<e.q.now()}clearFadeHold(){this.symbolFadeHoldUntil=void 0;}setHoldDuration(t){this.symbolFadeHoldUntil=e.q.now()+t;}setTexture(t,i){const o=i.context,s=o.gl;this.texture=this.texture||i.getTileTexture(t.width),this.texture&&this.texture instanceof e.T?this.texture.update(t):(this.texture=new e.T(o,t,s.RGBA8,{useMipmap:!0}),this.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE));}setDependencies(e,t){const i={};for(const e of t)i[e]=!0;this.dependencies[e]=i;}hasDependency(e,t){for(const i of e){const e=this.dependencies[i];if(e)for(const i of t)if(e[i])return !0}return !1}clearQueryDebugViz(){}_makeDebugTileBoundsBuffers(t,i){if(!i||\"mercator\"===i.name||this._tileDebugBuffer)return;const o=e.b3(vt,this.tileID.canonical,this.tileTransform)[0],s=new e.b4,r=new e.b5;for(let e=0;e<o.length;e++){const{x:t,y:i}=o[e];s.emplaceBack(t,i),r.emplaceBack(e);}r.emplaceBack(0),this._tileDebugIndexBuffer=t.createIndexBuffer(r),this._tileDebugBuffer=t.createVertexBuffer(s,e.b6.members),this._tileDebugSegments=e.b7.simpleSegment(0,0,s.length,r.length);}_makeTileBoundsBuffers(t,i){if(this._tileBoundsBuffer||!i||\"mercator\"===i.name)return;const o=e.b3(vt,this.tileID.canonical,this.tileTransform)[0];let s,r;if(this.isRaster){const t=function(t,i){const o=e.aQ(t,i),s=Math.pow(2,t.z);for(let r=0;r<dt;r++)for(let a=0;a<dt;a++){const n=e.aR((t.x+(a+gt(a))/ut)/s),l=e.aS((t.y+(r+gt(r))/ut)/s),c=i.project(n,l),h=r*dt+a;pt[2*h+0]=Math.round((c.x*o.scale-o.x)*e.ag),pt[2*h+1]=Math.round((c.y*o.scale-o.y)*e.ag);}ft.fill(0),mt.fill(0);for(let e=2045;e>=0;e--){const t=4*e,i=_t[t+0],o=_t[t+1],s=_t[t+2],r=_t[t+3],a=i+s>>1,n=o+r>>1,l=a+n-o,c=n+i-a,h=o*dt+i,u=r*dt+s,d=n*dt+a,_=Math.hypot((pt[2*h+0]+pt[2*u+0])/2-pt[2*d+0],(pt[2*h+1]+pt[2*u+1])/2-pt[2*d+1])>=16;ft[d]=ft[d]||(_?1:0),e<1022&&(ft[d]=ft[d]||ft[(o+c>>1)*dt+(i+l>>1)]||ft[(r+c>>1)*dt+(s+l>>1)]);}const r=new e.aT,a=new e.aU;let n=0;function l(t,i){const o=i*dt+t;return 0===mt[o]&&(r.emplaceBack(pt[2*o+0],pt[2*o+1],t*e.ag/ut,i*e.ag/ut),mt[o]=++n),mt[o]-1}function c(e,t,i,o,s,r){const n=e+i>>1,h=t+o>>1;if(Math.abs(e-s)+Math.abs(t-r)>1&&ft[h*dt+n])c(s,r,e,t,n,h),c(i,o,s,r,n,h);else {const n=l(e,t),c=l(i,o),h=l(s,r);a.emplaceBack(n,c,h);}}return c(0,0,ut,ut,ut,0),c(ut,ut,0,0,0,ut),{vertices:r,indices:a}}(this.tileID.canonical,i);s=t.vertices,r=t.indices;}else {s=new e.aT,r=new e.aU;for(const{x:e,y:t}of o)s.emplaceBack(e,t,0,0);const t=e.b8(s.int16,void 0,4);for(let e=0;e<t.length;e+=3)r.emplaceBack(t[e],t[e+1],t[e+2]);}this._tileBoundsBuffer=t.createVertexBuffer(s,e.b9.members),this._tileBoundsIndexBuffer=t.createIndexBuffer(r),this._tileBoundsSegments=e.b7.simpleSegment(0,0,s.length,r.length);}_makeGlobeTileDebugBuffers(t,i){const o=i.projection;if(!o||\"globe\"!==o.name||i.freezeTileCoverage)return;const s=this.tileID.canonical,r=e.ba(s,i),a=e.bb(r),n=e.ae(i.zoom);let l;n>0&&(l=e.ab.mat4.invert(new Float64Array(16),i.globeMatrix)),this._makeGlobeTileDebugBorderBuffer(t,s,i,a,l,n),this._makeGlobeTileDebugTextBuffer(t,s,i,a,l,n);}_globePoint(t,i,o,s,r,a,n){let l=e.bc(t,i,o);if(a){const r=1<<o.z,c=e.at(s.center.lng),h=e.aA(s.center.lat),u=(o.x+.5)/r-c;let d=0;u>.5?d=-1:u<-.5&&(d=1);let _=(t/e.ag+o.x)/r+d,p=(i/e.ag+o.y)/r;_=(_-c)*s._pixelsPerMercatorPixel+c,p=(p-h)*s._pixelsPerMercatorPixel+h;const f=[_*s.worldSize,p*s.worldSize,0];e.ab.vec3.transformMat4(f,f,a),l=e.bd(l,f,n);}return e.ab.vec3.transformMat4(l,l,r)}_makeGlobeTileDebugBorderBuffer(t,i,o,s,r,a){const n=new e.b4,l=new e.b5,c=new e.be,h=(e,t,h,u,d)=>{const _=(h-e)/(d-1),p=(u-t)/(d-1),f=n.length;for(let h=0;h<d;h++){const u=e+h*_,d=t+h*p;n.emplaceBack(u,d);const m=this._globePoint(u,d,i,o,s,r,a);c.emplaceBack(m[0],m[1],m[2]),l.emplaceBack(f+h);}},u=e.ag;h(0,0,u,0,16),h(u,0,u,u,16),h(u,u,0,u,16),h(0,u,0,0,16),this._tileDebugIndexBuffer=t.createIndexBuffer(l),this._tileDebugBuffer=t.createVertexBuffer(n,e.b6.members),this._globeTileDebugBorderBuffer=t.createVertexBuffer(c,e.bf.members),this._tileDebugSegments=e.b7.simpleSegment(0,0,n.length,l.length);}_makeGlobeTileDebugTextBuffer(t,i,o,s,r,a){const n=e.ag/4,l=new e.b4,c=new e.aU,h=new e.be,u=25;c.reserve(32),l.reserve(u),h.reserve(u);const d=(e,t)=>u*e+t;for(let e=0;e<u;e++){const t=e*n;for(let e=0;e<u;e++){const c=e*n;l.emplaceBack(c,t);const u=this._globePoint(c,t,i,o,s,r,a);h.emplaceBack(u[0],u[1],u[2]);}}for(let e=0;e<4;e++)for(let t=0;t<4;t++){const i=d(e,t),o=d(e,t+1),s=d(e+1,t),r=d(e+1,t+1);c.emplaceBack(i,o,s),c.emplaceBack(s,o,r);}this._tileDebugTextIndexBuffer=t.createIndexBuffer(c),this._tileDebugTextBuffer=t.createVertexBuffer(l,e.b6.members),this._globeTileDebugTextBuffer=t.createVertexBuffer(h,e.bf.members),this._tileDebugTextSegments=e.b7.simpleSegment(0,0,u,32);}destroy(t=!1){for(const e in this.buckets)this.buckets[e].destroy();this.buckets={},this.imageAtlas&&(this.imageAtlas=null),this.lineAtlas&&(this.lineAtlas=null),this.imageAtlasTexture&&(this.imageAtlasTexture.destroy(),delete this.imageAtlasTexture),this.glyphAtlasTexture&&(this.glyphAtlasTexture.destroy(),delete this.glyphAtlasTexture),this.lineAtlasTexture&&(this.lineAtlasTexture.destroy(),delete this.lineAtlasTexture),this._tileBoundsBuffer&&(this._tileBoundsBuffer.destroy(),this._tileBoundsIndexBuffer.destroy(),this._tileBoundsSegments.destroy(),this._tileBoundsBuffer=null),this._tileDebugBuffer&&(this._tileDebugBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this._tileDebugIndexBuffer&&(this._tileDebugIndexBuffer.destroy(),this._tileDebugIndexBuffer=null),this._globeTileDebugBorderBuffer&&(this._globeTileDebugBorderBuffer.destroy(),this._globeTileDebugBorderBuffer=null),this._tileDebugTextBuffer&&(this._tileDebugTextBuffer.destroy(),this._tileDebugTextSegments.destroy(),this._tileDebugTextIndexBuffer.destroy(),this._tileDebugTextBuffer=null),this._globeTileDebugTextBuffer&&(this._globeTileDebugTextBuffer.destroy(),this._globeTileDebugTextBuffer=null),!t&&this.texture&&this.texture instanceof e.T&&(this.texture.destroy(),delete this.texture),this.hillshadeFBO&&(this.hillshadeFBO.destroy(),delete this.hillshadeFBO),this.dem&&delete this.dem,this.neighboringTiles&&delete this.neighboringTiles,this.demTexture&&(this.demTexture.destroy(),delete this.demTexture),this.rasterParticleState&&(this.rasterParticleState.destroy(),delete this.rasterParticleState),this.latestFeatureIndex=null,this.state=\"unloaded\";}}e.bg.setPbf(e.bh);class xt extends yt{constructor(e,t,i,o,s){super(e,t,i,o,s),this._workQueue=[],this._fetchQueue=[],this._isHeaderLoaded=!1;}setTexture(t,i){const o=i.context,s=o.gl;this.texture=this.texture||i.getTileTexture(t.width),this.texture&&this.texture instanceof e.T?this.texture.update(t,{premultiply:!1}):this.texture=new e.T(o,t,s.RGBA8,{premultiply:!1});}flushQueues(){for(;this._workQueue.length;)this._workQueue.pop()();for(;this._fetchQueue.length;)this._fetchQueue.pop()();}fetchHeader(t=16384,i){const o=this._mrt=new e.bg(30),s=Object.assign({},this.requestParams,{headers:{Range:\"bytes=0-\"+(t-1)}});return this.entireBuffer=null,this.request=e.bi(s,((e,s,r,a)=>{if(e)i(e);else try{const e=o.getHeaderLength(s);if(e>t)return void(this.request=this.fetchHeader(e,i));o.parseHeader(s),this._isHeaderLoaded=!0;let n=0;for(const e of Object.values(o.layers))n=Math.max(n,e.dataIndex[e.dataIndex.length-1].last_byte);s.byteLength>=n&&(this.entireBuffer=s),i(null,this.entireBuffer||s,r,a);}catch(e){i(e);}})),this.request}fetchBand(t,i,o){const s=this._mrt;if(!this._isHeaderLoaded||!s)return void o(new Error(\"Tile header is not ready\"));const r=this.actor;if(!r)return void o(new Error(\"Can't fetch tile band without an actor\"));let a;const n=(e,s)=>{a.complete(e,s),e?o(e):(this.updateTextureDescriptor(t,i),o(null,this.textureDescriptor&&this.textureDescriptor.img));},l=(e,t)=>{if(e)return o(e);const i=r.send(\"decodeRasterArray\",{buffer:t,task:a},n,void 0,!0);this._workQueue.push((()=>{i&&i.cancel(),a.cancel();}));},c=s.getLayer(t);if(!c)return void o(new Error(`Unknown sourceLayer \"${t}\"`));if(c.hasDataForBand(i))return this.updateTextureDescriptor(t,i),void o(null,this.textureDescriptor?this.textureDescriptor.img:null);const h=c.getDataRange([i]);if(a=s.createDecodingTask(h),!a||a.tasks.length)if(this.flushQueues(),this.entireBuffer)l(null,this.entireBuffer.slice(h.firstByte,h.lastByte+1));else {const t=Object.assign({},this.requestParams,{headers:{Range:`bytes=${h.firstByte}-${h.lastByte}`}}),i=e.bi(t,l);this._fetchQueue.push((()=>{i.cancel(),a.cancel();}));}else o(null);}updateNeeded(e,t){return (!this.textureDescriptor||this.textureDescriptor.band!==t||this.textureDescriptor.layer!==e)&&\"errored\"!==this.state}updateTextureDescriptor(t,i){if(!this._mrt)return;const o=this._mrt.getLayer(t);if(!o||!o.hasBand(i)||!o.hasDataForBand(i))return;const{bytes:s,tileSize:r,buffer:a,offset:n,scale:l}=o.getBandView(i),c=r+2*a,h={data:s,width:c,height:c},u=this.texture;u&&u instanceof e.T&&u.update(h,{premultiply:!1}),this.textureDescriptor={layer:t,band:i,img:h,buffer:a,offset:n,tileSize:r,format:o.pixelFormat,mix:[l,256*l,65536*l,16777216*l]};}}class bt{constructor(e,t){this.max=e,this.onRemove=t,this.reset();}reset(){for(const e in this.data)for(const t of this.data[e])t.timeout&&clearTimeout(t.timeout),this.onRemove(t.value);return this.data={},this.order=[],this}add(e,t,i){const o=e.wrapped().key;void 0===this.data[o]&&(this.data[o]=[]);const s={value:t,timeout:void 0};if(void 0!==i&&(s.timeout=setTimeout((()=>{this.remove(e,s);}),i)),this.data[o].push(s),this.order.push(o),this.order.length>this.max){const e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e);}return this}has(e){return e.wrapped().key in this.data}getAndRemove(e){return this.has(e)?this._getAndRemoveByKey(e.wrapped().key):null}_getAndRemoveByKey(e){const t=this.data[e].shift();return t.timeout&&clearTimeout(t.timeout),0===this.data[e].length&&delete this.data[e],this.order.splice(this.order.indexOf(e),1),t.value}getByKey(e){const t=this.data[e];return t?t[0].value:null}get(e){return this.has(e)?this.data[e.wrapped().key][0].value:null}remove(e,t){if(!this.has(e))return this;const i=e.wrapped().key,o=void 0===t?0:this.data[i].indexOf(t),s=this.data[i][o];return this.data[i].splice(o,1),s.timeout&&clearTimeout(s.timeout),0===this.data[i].length&&delete this.data[i],this.onRemove(s.value),this.order.splice(this.order.indexOf(i),1),this}setMaxSize(e){for(this.max=e;this.order.length>this.max;){const e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e);}return this}filter(e){const t=[];for(const i in this.data)for(const o of this.data[i])e(o.value)||t.push(o);for(const e of t)this.remove(e.value.tileID,e);}}class wt{constructor(){this.state={},this.stateChanges={},this.deletedStates={};}updateState(t,i,o){const s=String(i);if(this.stateChanges[t]=this.stateChanges[t]||{},this.stateChanges[t][s]=this.stateChanges[t][s]||{},e.l(this.stateChanges[t][s],o),null===this.deletedStates[t]){this.deletedStates[t]={};for(const e in this.state[t])e!==s&&(this.deletedStates[t][e]=null);}else if(this.deletedStates[t]&&null===this.deletedStates[t][s]){this.deletedStates[t][s]={};for(const e in this.state[t][s])o[e]||(this.deletedStates[t][s][e]=null);}else for(const e in o)this.deletedStates[t]&&this.deletedStates[t][s]&&null===this.deletedStates[t][s][e]&&delete this.deletedStates[t][s][e];}removeFeatureState(e,t,i){if(null===this.deletedStates[e])return;const o=String(t);if(this.deletedStates[e]=this.deletedStates[e]||{},i&&void 0!==t)null!==this.deletedStates[e][o]&&(this.deletedStates[e][o]=this.deletedStates[e][o]||{},this.deletedStates[e][o][i]=null);else if(void 0!==t)if(this.stateChanges[e]&&this.stateChanges[e][o])for(i in this.deletedStates[e][o]={},this.stateChanges[e][o])this.deletedStates[e][o][i]=null;else this.deletedStates[e][o]=null;else this.deletedStates[e]=null;}getState(t,i){const o=this.state[t]||{},s=this.stateChanges[t]||{},r=this.deletedStates[t];if(null===r)return {};if(void 0!==i){const t=String(i),a=e.l({},o[t],s[t]);if(r){const e=r[i];if(null===e)return {};for(const t in e)delete a[t];}return a}const a=e.l({},o,s);if(r)for(const e in r)delete a[e];return a}initializeTileState(e,t){e.refreshFeatureState(t);}coalesceChanges(t,i){const o={};for(const t in this.stateChanges){this.state[t]=this.state[t]||{};const i={};for(const o in this.stateChanges[t])this.state[t][o]||(this.state[t][o]={}),e.l(this.state[t][o],this.stateChanges[t][o]),i[o]=this.state[t][o];o[t]=i;}for(const t in this.deletedStates){this.state[t]=this.state[t]||{};const i={};if(null===this.deletedStates[t])for(const e in this.state[t])i[e]={},this.state[t][e]={};else for(const e in this.deletedStates[t]){if(null===this.deletedStates[t][e])this.state[t][e]={};else if(this.state[t][e])for(const i of Object.keys(this.deletedStates[t][e]))delete this.state[t][e][i];i[e]=this.state[t][e];}o[t]=o[t]||{},e.l(o[t],i);}if(this.stateChanges={},this.deletedStates={},0!==Object.keys(o).length)for(const e in t)t[e].refreshFeatureState(i);}}class Tt extends e.E{constructor(e,t,i){super(),this.id=e,this._onlySymbols=i,t.on(\"data\",(e=>{\"source\"===e.dataType&&\"metadata\"===e.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&\"source\"===e.dataType&&\"content\"===e.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform));})),t.on(\"error\",(()=>{this._sourceErrored=!0;})),this._source=t,this._tiles={},this._cache=new bt(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=t.minTileCacheSize,this._maxTileCacheSize=t.maxTileCacheSize,this._loadedParentTiles={},this.castsShadows=!1,this.tileCoverLift=0,this._coveredTiles={},this._shadowCasterTiles={},this._state=new wt,this._isRaster=\"raster\"===this._source.type||\"raster-dem\"===this._source.type||\"raster-array\"===this._source.type||\"custom\"===this._source.type&&\"raster\"===this._source._dataType;}onAdd(e){this.map=e,this._minTileCacheSize=void 0===this._minTileCacheSize&&e?e._minTileCacheSize:this._minTileCacheSize,this._maxTileCacheSize=void 0===this._maxTileCacheSize&&e?e._maxTileCacheSize:this._maxTileCacheSize;}loaded(){if(this._sourceErrored)return !0;if(!this._sourceLoaded)return !1;if(!this._source.loaded())return !1;for(const e in this._tiles){const t=this._tiles[e];if(\"loaded\"!==t.state&&\"errored\"!==t.state)return !1}return !0}getSource(){return this._source}pause(){this._paused=!0;}resume(){if(!this._paused)return;const e=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,e&&this.reload(),this.transform&&this.update(this.transform);}_loadTile(e,t){return e.isSymbolTile=this._onlySymbols,e.isExtraShadowCaster=this._shadowCasterTiles[e.tileID.key],this._source.loadTile(e,t)}_unloadTile(e){if(this._source.unloadTile)return this._source.unloadTile(e)}_abortTile(e){if(this._source.abortTile)return this._source.abortTile(e)}serialize(){return this._source.serialize()}prepare(e){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const t in this._tiles){const i=this._tiles[t];i.upload(e),i.prepare(this.map.style.imageManager,this.map?this.map.painter:null,this._source.scope);}}getIds(){return e.bj(this._tiles).map((e=>e.tileID)).sort(Et).map((e=>e.key))}getRenderableIds(t,i){const o=[];for(const e in this._tiles)this._isIdRenderable(+e,t,i)&&o.push(this._tiles[e]);return t?o.sort(((t,i)=>{const o=t.tileID,s=i.tileID,r=new e.P(o.canonical.x,o.canonical.y)._rotate(this.transform.angle),a=new e.P(s.canonical.x,s.canonical.y)._rotate(this.transform.angle);return o.overscaledZ-s.overscaledZ||a.y-r.y||a.x-r.x})).map((e=>e.tileID.key)):o.map((e=>e.tileID)).sort(Et).map((e=>e.key))}hasRenderableParent(e){const t=this.findLoadedParent(e,0);return !!t&&this._isIdRenderable(t.tileID.key)}_isIdRenderable(e,t,i){return this._tiles[e]&&this._tiles[e].hasData()&&!this._coveredTiles[e]&&(t||!this._tiles[e].holdingForFade())&&(i||!this._shadowCasterTiles[e])}reload(){if(this._paused)this._shouldReloadOnResume=!0;else {this._cache.reset();for(const e in this._tiles)\"errored\"!==this._tiles[e].state&&this._reloadTile(+e,\"reloading\");}}_reloadTile(e,t){const i=this._tiles[e];i&&(\"loading\"!==i.state&&(i.state=t),this._loadTile(i,this._tileLoaded.bind(this,i,e,t)));}_tileLoaded(t,i,o,s){if(s)if(t.state=\"errored\",404!==s.status)this._source.fire(new e.y(s,{tile:t}));else {if(this._source.fire(new e.z(\"data\",{dataType:\"source\",sourceDataType:\"error\",sourceId:this._source.id,tile:t})),!(t.tileID.key in this._loadedParentTiles))return;if(\"raster-dem\"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){const e=this.map.painter.terrain;this.update(this.transform,e.getScaledDemTileSize(),!0),e.resetTileLookupCache(this.id);}else this.update(this.transform);}else t.timeAdded=e.q.now(),\"expired\"===o&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(i,t),\"raster-dem\"===this._source.type&&t.dem&&this._backfillDEM(t),this._state.initializeTileState(t,this.map?this.map.painter:null),this._source.fire(new e.z(\"data\",{dataType:\"source\",tile:t,coord:t.tileID,sourceCacheId:this.id}));}_backfillDEM(e){const t=this.getRenderableIds();for(let o=0;o<t.length;o++){const s=t[o];if(e.neighboringTiles&&e.neighboringTiles[s]){const t=this.getTileByID(s);i(e,t),i(t,e);}}function i(e,t){if(!e.dem||e.dem.borderReady)return;e.needsHillshadePrepare=!0,e.needsDEMTextureUpload=!0;let i=t.tileID.canonical.x-e.tileID.canonical.x;const o=t.tileID.canonical.y-e.tileID.canonical.y,s=Math.pow(2,e.tileID.canonical.z),r=t.tileID.key;0===i&&0===o||Math.abs(o)>1||(Math.abs(i)>1&&(1===Math.abs(i+s)?i+=s:1===Math.abs(i-s)&&(i-=s)),t.dem&&e.dem&&(e.dem.backfillBorder(t.dem,i,o),e.neighboringTiles&&e.neighboringTiles[r]&&(e.neighboringTiles[r].backfilled=!0)));}}getTile(e){return this.getTileByID(e.key)}getTileByID(e){return this._tiles[e]}_retainLoadedChildren(e,t,i,o){for(const s in this._tiles){let r=this._tiles[s];if(o[s]||!r.hasData()||r.tileID.overscaledZ<=t||r.tileID.overscaledZ>i)continue;let a=r.tileID;for(;r&&r.tileID.overscaledZ>t+1;){const e=r.tileID.scaledTo(r.tileID.overscaledZ-1);r=this._tiles[e.key],r&&r.hasData()&&(a=e);}let n=a;for(;n.overscaledZ>t;)if(n=n.scaledTo(n.overscaledZ-1),e[n.key]){o[a.key]=a;break}}}findLoadedParent(e,t){if(e.key in this._loadedParentTiles){const i=this._loadedParentTiles[e.key];return i&&i.tileID.overscaledZ>=t?i:null}for(let i=e.overscaledZ-1;i>=t;i--){const t=e.scaledTo(i),o=this._getLoadedTile(t);if(o)return o}}_getLoadedTile(e){const t=this._tiles[e.key];return t&&t.hasData()?t:this._cache.getByKey(this._source.reparseOverscaled?e.wrapped().key:e.canonical.key)}updateCacheSize(e,t){t=t||this._source.tileSize;const i=Math.ceil(e.width/t)+1,o=Math.ceil(e.height/t)+1,s=Math.floor(i*o*5),r=\"number\"==typeof this._minTileCacheSize?Math.max(this._minTileCacheSize,s):s,a=\"number\"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,r):r;this._cache.setMaxSize(a);}handleWrapJump(e){const t=Math.round((e-(void 0===this._prevLng?e:this._prevLng))/360);if(this._prevLng=e,t){const e={};for(const i in this._tiles){const o=this._tiles[i];o.tileID=o.tileID.unwrapTo(o.tileID.wrap+t),e[o.tileID.key]=o;}this._tiles=e;for(const e in this._timers)clearTimeout(this._timers[e]),delete this._timers[e];for(const e in this._tiles)this._setTileReloadTimer(+e,this._tiles[e]);}}update(t,i,o,s){if(this.transform=t,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage)return;if(this.usedForTerrain&&!o)return;this.updateCacheSize(t,i),\"globe\"!==this.transform.projection.name&&this.handleWrapJump(this.transform.center.lng),this._shadowCasterTiles={},this._coveredTiles={};const r=\"batched-model\"===this._source.type;let a,n=this._source.maxzoom;const l=this.map&&this.map.painter?this.map.painter._terrain:null;if(l&&l.sourceCache===this&&l.attenuationRange()){const e=l.attenuationRange()[0],t=Math.floor(e)-Math.log2(l.getDemUpscale());n>t&&(n=t);}if(this.used||this.usedForTerrain){if(this._source.tileID)a=t.getVisibleUnwrappedCoordinates(this._source.tileID).map((t=>new e.aG(t.canonical.z,t.wrap,t.canonical.z,t.canonical.x,t.canonical.y)));else if(0!==this.tileCoverLift){const s=t.clone();s.tileCoverLift=this.tileCoverLift,a=s.coveringTiles({tileSize:i||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:n,roundZoom:this._source.roundZoom&&!o,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain,calculateQuadrantVisibility:r}),this._source.minzoom<=1&&\"globe\"===t.projection.name&&(a.push(new e.aG(1,0,1,0,0)),a.push(new e.aG(1,0,1,1,0)),a.push(new e.aG(1,0,1,0,1)),a.push(new e.aG(1,0,1,1,1)));}else if(a=t.coveringTiles({tileSize:i||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:n,roundZoom:this._source.roundZoom&&!o,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain,calculateQuadrantVisibility:r}),this._source.hasTile){const e=this._source.hasTile.bind(this._source);a=a.filter((t=>e(t)));}}else a=[];if(a.length>0&&this.castsShadows&&s&&\"globe\"!==this.transform.projection.name&&!this.usedForTerrain&&!St(this._source.type)){const e=t.coveringZoomLevel({tileSize:i||this._source.tileSize,roundZoom:this._source.roundZoom&&!o}),n=Math.min(e,this._source.maxzoom);if(r){const e=t.extendTileCover(a,n);for(const t of e)a.push(t);}else {const e=t.extendTileCover(a,n,s);for(const t of e)this._shadowCasterTiles[t.key]=!0,a.push(t);}}const c=this._updateRetainedTiles(a);if(St(this._source.type)&&0!==a.length){const t={},i={},o=Object.keys(c);for(const s of o){const o=c[s],r=this._tiles[s];if(!r||r.fadeEndTime&&r.fadeEndTime<=e.q.now())continue;const a=this.findLoadedParent(o,Math.max(o.overscaledZ-Tt.maxOverzooming,this._source.minzoom));a&&(this._addTile(a.tileID),t[a.tileID.key]=a.tileID),i[s]=o;}const s=a[a.length-1].overscaledZ;for(const e in this._tiles){const t=this._tiles[e];if(c[e]||!t.hasData())continue;let o=t.tileID;for(;o.overscaledZ>s;){o=o.scaledTo(o.overscaledZ-1);const s=this._tiles[o.key];if(s&&s.hasData()&&i[o.key]){c[e]=t.tileID;break}}}for(const e in t)c[e]||(this._coveredTiles[e]=!0,c[e]=t[e]);}for(const e in c)this._tiles[e].clearFadeHold();const h=e.bk(this._tiles,c);for(const e of h){const t=this._tiles[e];t.hasSymbolBuckets&&!t.holdingForFade()?t.setHoldDuration(this.map._fadeDuration):t.hasSymbolBuckets&&!t.symbolFadeFinished()||this._removeTile(+e);}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate();}releaseSymbolFadeTiles(){for(const e in this._tiles)this._tiles[e].holdingForFade()&&this._removeTile(+e);}_updateRetainedTiles(e){const t={};if(0===e.length)return t;const i={},o=e.reduce(((e,t)=>Math.min(e,t.overscaledZ)),1/0),s=e[0].overscaledZ,r=Math.max(s-Tt.maxOverzooming,this._source.minzoom),a=Math.max(s+Tt.maxUnderzooming,this._source.minzoom),n={};for(const i of e){const e=this._addTile(i);t[i.key]=i,e.hasData()||o<this._source.maxzoom&&(n[i.key]=i);}this._retainLoadedChildren(n,o,a,t);for(const o of e){let e=this._tiles[o.key];if(e.hasData())continue;if(o.canonical.z>=this._source.maxzoom){const e=o.children(this._source.maxzoom)[0],i=this.getTile(e);if(i&&i.hasData()){t[e.key]=e;continue}}else {const e=o.children(this._source.maxzoom);if(t[e[0].key]&&t[e[1].key]&&t[e[2].key]&&t[e[3].key])continue}let s=e.wasRequested();for(let a=o.overscaledZ-1;a>=r;--a){const r=o.scaledTo(a);if(i[r.key])break;if(i[r.key]=!0,e=this.getTile(r),!e&&s&&(e=this._addTile(r)),e&&(t[r.key]=r,s=e.wasRequested(),e.hasData()))break}}return t}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const e in this._tiles){const t=[];let i,o=this._tiles[e].tileID;for(;o.overscaledZ>0;){if(o.key in this._loadedParentTiles){i=this._loadedParentTiles[o.key];break}t.push(o.key);const e=o.scaledTo(o.overscaledZ-1);if(i=this._getLoadedTile(e),i)break;o=e;}for(const e of t)this._loadedParentTiles[e]=i;}}_addTile(t){let i=this._tiles[t.key];if(i)return !0!==i.isExtraShadowCaster||!!this._shadowCasterTiles[t.key]||this._reloadTile(t.key,\"reloading\"),i;i=this._cache.getAndRemove(t),i&&(this._setTileReloadTimer(t.key,i),i.tileID=t,this._state.initializeTileState(i,this.map?this.map.painter:null),this._cacheTimers[t.key]&&(clearTimeout(this._cacheTimers[t.key]),delete this._cacheTimers[t.key],this._setTileReloadTimer(t.key,i)));const o=Boolean(i);if(!o){const e=this.map?this.map.painter:null,o=this._source.tileSize*t.overscaleFactor();i=\"raster-array\"===this._source.type?new xt(t,o,this.transform.tileZoom,e,this._isRaster):new yt(t,o,this.transform.tileZoom,e,this._isRaster),this._loadTile(i,this._tileLoaded.bind(this,i,t.key,i.state));}return i?(i.uses++,this._tiles[t.key]=i,o||this._source.fire(new e.z(\"dataloading\",{tile:i,coord:i.tileID,dataType:\"source\"})),i):null}_setTileReloadTimer(e,t){e in this._timers&&(clearTimeout(this._timers[e]),delete this._timers[e]);const i=t.getExpiryTimeout();i&&(this._timers[e]=setTimeout((()=>{this._reloadTile(e,\"expired\"),delete this._timers[e];}),i));}_removeTile(e){const t=this._tiles[e];t&&(t.uses--,delete this._tiles[e],this._timers[e]&&(clearTimeout(this._timers[e]),delete this._timers[e]),t.uses>0||(t.hasData()&&\"reloading\"!==t.state||\"empty\"===t.state?this._cache.add(t.tileID,t,t.getExpiryTimeout()):(t.aborted=!0,this._abortTile(t),this._unloadTile(t))));}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const e in this._tiles)this._removeTile(+e);this._source._clear&&this._source._clear(),this._cache.reset(),this.map&&this.usedForTerrain&&this.map.painter.terrain&&this.map.painter.terrain.resetTileLookupCache(this.id);}tilesIn(t,i,o){const s=[],r=this.transform;if(!r)return s;const a=\"globe\"===r.projection.name,n=e.at(r.center.lng);for(const l in this._tiles){const c=this._tiles[l];if(o&&c.clearQueryDebugViz(),c.holdingForFade())continue;let h;if(a){const t=c.tileID.canonical;if(0===t.z){const i=[Math.abs(e.aw(n,...Ct(t,-1))-n),Math.abs(e.aw(n,...Ct(t,1))-n)];h=[0,2*i.indexOf(Math.min(...i))-1];}else {const i=[Math.abs(e.aw(n,...Ct(t,-1))-n),Math.abs(e.aw(n,...Ct(t,0))-n),Math.abs(e.aw(n,...Ct(t,1))-n)];h=[i.indexOf(Math.min(...i))-1];}}else h=[0];for(const e of h){const o=t.containsTile(c,r,i,e);o&&s.push(o);}}return s}getShadowCasterCoordinates(){return this._getRenderableCoordinates(!1,!0)}getVisibleCoordinates(e){return this._getRenderableCoordinates(e)}_getRenderableCoordinates(e,t){const i=this.getRenderableIds(e,t).map((e=>this._tiles[e].tileID)),o=\"globe\"===this.transform.projection.name;for(const e of i)e.projMatrix=this.transform.calculateProjMatrix(e.toUnwrapped()),e.expandedProjMatrix=o?this.transform.calculateProjMatrix(e.toUnwrapped(),!1,!0):e.projMatrix;return i}sortCoordinatesByDistance(e){const t=e.slice(),i=this.transform._camera.position,o=this.transform._camera.forward(),s={};for(const e of t){const t=1/(1<<e.canonical.z);s[e.key]=((e.canonical.x+.5)*t+e.wrap-i[0])*o[0]+((e.canonical.y+.5)*t-i[1])*o[1]-i[2]*o[2];}return t.sort(((e,t)=>s[e.key]-s[t.key])),t}hasTransition(){if(this._source.hasTransition())return !0;if(St(this._source.type))for(const t in this._tiles){const i=this._tiles[t];if(void 0!==i.fadeEndTime&&i.fadeEndTime>=e.q.now())return !0}return !1}setFeatureState(e,t,i){this._state.updateState(e=e||\"_geojsonTileLayer\",t,i);}removeFeatureState(e,t,i){this._state.removeFeatureState(e=e||\"_geojsonTileLayer\",t,i);}getFeatureState(e,t){return this._state.getState(e=e||\"_geojsonTileLayer\",t)}setDependencies(e,t,i){const o=this._tiles[e];o&&o.setDependencies(t,i);}reloadTilesForDependencies(e,t){for(const i in this._tiles)this._tiles[i].hasDependency(e,t)&&this._reloadTile(+i,\"reloading\");this._cache.filter((i=>!i.hasDependency(e,t)));}_preloadTiles(t,i){if(!this._sourceLoaded){const e=()=>{this._sourceLoaded&&(this._source.off(\"data\",e),this._preloadTiles(t,i));};return void this._source.on(\"data\",e)}const o=new Map,s=Array.isArray(t)?t:[t],r=this.map.painter.terrain,a=this.usedForTerrain&&r?r.getScaledDemTileSize():this._source.tileSize;for(const e of s){const t=e.coveringTiles({tileSize:a,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!this.usedForTerrain,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain});for(const e of t)o.set(e.key,e);this.usedForTerrain&&e.updateElevation(!1);}const n=Array.from(o.values());e.bl(n,((e,t)=>{const i=new yt(e,this._source.tileSize*e.overscaleFactor(),this.transform.tileZoom,this.map.painter,this._isRaster);this._loadTile(i,(e=>{\"raster-dem\"===this._source.type&&i.dem&&this._backfillDEM(i),t(e,i);}));}),i);}}function Et(e,t){const i=Math.abs(2*e.wrap)-+(e.wrap<0),o=Math.abs(2*t.wrap)-+(t.wrap<0);return e.overscaledZ-t.overscaledZ||o-i||t.canonical.y-e.canonical.y||t.canonical.x-e.canonical.x}function St(e){return \"raster\"===e||\"image\"===e||\"video\"===e||\"custom\"===e}function Ct(e,t){const i=1<<e.z;return [e.x/i+t,(e.x+1)/i+t]}Tt.maxOverzooming=10,Tt.maxUnderzooming=3;class It{constructor(e){this.style=e,this.layersGotHidden=!1,this.layers=[];}processLayersChanged(){this.layers=[];const e=!1,t=!1;for(const i in this.style._mergedLayers){const o=this.style._mergedLayers[i];if(\"fill-extrusion\"===o.type)this.layers.push({layer:o,visible:e,visibilityChanged:t});else if(\"model\"===o.type){const i=this.style.getLayerSource(o);i&&\"batched-model\"===i.type&&this.layers.push({layer:o,visible:e,visibilityChanged:t});}}}onNewFrame(e){this.layersGotHidden=!1;for(const t of this.layers){const i=t.layer;let o=!1;\"fill-extrusion\"===i.type?o=!i.isHidden(e)&&i.paint.get(\"fill-extrusion-opacity\")>0:\"model\"===i.type&&(o=!i.isHidden(e)&&i.paint.get(\"model-opacity\").constantOr(1)>0),this.layersGotHidden=this.layersGotHidden||!o&&t.visible,t.visible=o;}}updateZOffset(e,t){this.currentBuildingBuckets=[];for(const e of this.layers){const i=e.layer,o=this.style.getLayerSourceCache(i);let s=1;\"fill-extrusion\"===i.type&&(s=e.visible?i.paint.get(\"fill-extrusion-vertical-scale\"):0);let r=o?o.getTile(t):null;if(!r&&o&&t.canonical.z>o.getSource().minzoom){let e=t.scaledTo(Math.min(o.getSource().maxzoom,t.overscaledZ-1));for(;e.overscaledZ>=o.getSource().minzoom&&(r=o.getTile(e),!r&&0!==e.overscaledZ);)e=e.scaledTo(e.overscaledZ-1);}this.currentBuildingBuckets.push({bucket:r?r.getBucket(i):null,tileID:r?r.tileID:t,verticalScale:s});}e.hasAnyZOffset=!1;let i=!1;for(let o=0;o<e.symbolInstances.length;o++){const s=e.symbolInstances.get(o),r=s.zOffset,a=this._getHeightAtTileOffset(t,s.tileAnchorX,s.tileAnchorY);s.zOffset=a!==Number.NEGATIVE_INFINITY?a:r,i||r===s.zOffset||(i=!0),e.hasAnyZOffset||0===s.zOffset||(e.hasAnyZOffset=!0);}i&&(e.zOffsetBuffersNeedUpload=!0,e.zOffsetSortDirty=!0);}_mapCoordToOverlappingTile(t,i,o,s){let r=i,a=o;if(t.canonical.z!==s.canonical.z){const n=s.canonical,l=1/(1<<t.canonical.z-n.z);r=(i+t.canonical.x*e.ag)*l-n.x*e.ag|0,a=(o+t.canonical.y*e.ag)*l-n.y*e.ag|0;}return {tileX:r,tileY:a}}_getHeightAtTileOffset(e,t,i){let o,s;for(let r=0;r<this.layers.length;++r){if(\"fill-extrusion\"!==this.layers[r].layer.type)continue;const{bucket:a,tileID:n,verticalScale:l}=this.currentBuildingBuckets[r];if(!a)continue;const{tileX:c,tileY:h}=this._mapCoordToOverlappingTile(e,t,i,n),u=a.getHeightAtTileCoord(c,h);u&&void 0!==u.height&&(u.hidden?o=u.height:s=Math.max(u.height*l,s||0));}if(void 0!==s)return s;for(let s=0;s<this.layers.length;++s){const r=this.layers[s];if(\"model\"!==r.layer.type||!r.visible)continue;const{bucket:a,tileID:n}=this.currentBuildingBuckets[s];if(!a)continue;const{tileX:l,tileY:c}=this._mapCoordToOverlappingTile(e,t,i,n),h=a.getHeightAtTileCoord(l,c);if(h&&!h.hidden)return void 0===h.height&&void 0!==o?Math.min(h.maxHeight,o)*h.verticalScale:h.height?h.height*h.verticalScale:Number.NEGATIVE_INFINITY}return this.layersGotHidden?0:Number.NEGATIVE_INFINITY}}function Rt(t,i){const o={};for(const e in t)\"ref\"!==e&&(o[e]=t[e]);return e.bm.forEach((e=>{e in i&&(o[e]=i[e]);})),o}function Dt(e){e=e.slice();const t=Object.create(null);for(let i=0;i<e.length;i++)t[e[i].id]=e[i];for(let i=0;i<e.length;i++)\"ref\"in e[i]&&(e[i]=Rt(e[i],t[e[i].ref]));return e}const Lt={setStyle:\"setStyle\",addLayer:\"addLayer\",removeLayer:\"removeLayer\",setPaintProperty:\"setPaintProperty\",setLayoutProperty:\"setLayoutProperty\",setSlot:\"setSlot\",setFilter:\"setFilter\",addSource:\"addSource\",removeSource:\"removeSource\",setGeoJSONSourceData:\"setGeoJSONSourceData\",setLayerZoomRange:\"setLayerZoomRange\",setLayerProperty:\"setLayerProperty\",setCenter:\"setCenter\",setZoom:\"setZoom\",setBearing:\"setBearing\",setPitch:\"setPitch\",setSprite:\"setSprite\",setGlyphs:\"setGlyphs\",setTransition:\"setTransition\",setLight:\"setLight\",setTerrain:\"setTerrain\",setFog:\"setFog\",setSnow:\"setSnow\",setRain:\"setRain\",setCamera:\"setCamera\",setLights:\"setLights\",setProjection:\"setProjection\",addImport:\"addImport\",removeImport:\"removeImport\",updateImport:\"updateImport\"};function At(e,t,i){i.push({command:Lt.addSource,args:[e,t[e]]});}function zt(e,t,i){t.push({command:Lt.removeSource,args:[e]}),i[e]=!0;}function Pt(e,t,i,o){zt(e,i,o),At(e,t,i);}function Mt(t,i,o){let s;for(s in t[o])if(t[o].hasOwnProperty(s)&&\"data\"!==s&&!e.bn(t[o][s],i[o][s]))return !1;for(s in i[o])if(i[o].hasOwnProperty(s)&&\"data\"!==s&&!e.bn(t[o][s],i[o][s]))return !1;return !0}function Ot(t,i,o,s,r,a){let n;for(n in i=i||{},t=t||{})t.hasOwnProperty(n)&&(e.bn(t[n],i[n])||o.push({command:a,args:[s,n,i[n],r]}));for(n in i)i.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(e.bn(t[n],i[n])||o.push({command:a,args:[s,n,i[n],r]}));}function Ft(e){return e.id}function kt(e,t){return e[t.id]=t,e}class Bt{constructor(e,t){this.reset(e,t);}reset(e,t){this.points=e||[],this._distances=[0];for(let e=1;e<this.points.length;e++)this._distances[e]=this._distances[e-1]+this.points[e].dist(this.points[e-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(t||0,.5*this.length),this.paddedLength=this.length-2*this.padding;}lerp(t){if(1===this.points.length)return this.points[0];t=e.aw(t,0,1);let i=1,o=this._distances[i];const s=t*this.paddedLength+this.padding;for(;o<s&&i<this._distances.length;)o=this._distances[++i];const r=i-1,a=this._distances[r],n=o-a,l=n>0?(s-a)/n:0;return this.points[r].mult(1-l).add(this.points[i].mult(l))}}class Nt{constructor(e,t,i){const o=this.boxCells=[],s=this.circleCells=[];this.xCellCount=Math.ceil(e/i),this.yCellCount=Math.ceil(t/i);for(let e=0;e<this.xCellCount*this.yCellCount;e++)o.push([]),s.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=e,this.height=t,this.xScale=this.xCellCount/e,this.yScale=this.yCellCount/t,this.boxUid=0,this.circleUid=0;}keysLength(){return this.boxKeys.length+this.circleKeys.length}insert(e,t,i,o,s){this._forEachCell(t,i,o,s,this._insertBoxCell,this.boxUid++),this.boxKeys.push(e),this.bboxes.push(t),this.bboxes.push(i),this.bboxes.push(o),this.bboxes.push(s);}insertCircle(e,t,i,o){this._forEachCell(t-o,i-o,t+o,i+o,this._insertCircleCell,this.circleUid++),this.circleKeys.push(e),this.circles.push(t),this.circles.push(i),this.circles.push(o);}_insertBoxCell(e,t,i,o,s,r){this.boxCells[s].push(r);}_insertCircleCell(e,t,i,o,s,r){this.circleCells[s].push(r);}_query(e,t,i,o,s,r){if(i<0||e>this.width||o<0||t>this.height)return !s&&[];const a=[];if(e<=0&&t<=0&&this.width<=i&&this.height<=o){if(s)return !0;for(let e=0;e<this.boxKeys.length;e++)a.push({key:this.boxKeys[e],x1:this.bboxes[4*e],y1:this.bboxes[4*e+1],x2:this.bboxes[4*e+2],y2:this.bboxes[4*e+3]});for(let e=0;e<this.circleKeys.length;e++){const t=this.circles[3*e],i=this.circles[3*e+1],o=this.circles[3*e+2];a.push({key:this.circleKeys[e],x1:t-o,y1:i-o,x2:t+o,y2:i+o});}return r?a.filter(r):a}return this._forEachCell(e,t,i,o,this._queryCell,a,{hitTest:s,seenUids:{box:{},circle:{}}},r),s?a.length>0:a}_queryCircle(e,t,i,o,s){const r=e-i,a=e+i,n=t-i,l=t+i;if(a<0||r>this.width||l<0||n>this.height)return !o&&[];const c=[];return this._forEachCell(r,n,a,l,this._queryCellCircle,c,{hitTest:o,circle:{x:e,y:t,radius:i},seenUids:{box:{},circle:{}}},s),o?c.length>0:c}query(e,t,i,o,s){return this._query(e,t,i,o,!1,s)}hitTest(e,t,i,o,s){return this._query(e,t,i,o,!0,s)}hitTestCircle(e,t,i,o){return this._queryCircle(e,t,i,!0,o)}_queryCell(e,t,i,o,s,r,a,n){const l=a.seenUids,c=this.boxCells[s];if(null!==c){const s=this.bboxes;for(const h of c)if(!l.box[h]){l.box[h]=!0;const c=4*h;if(e<=s[c+2]&&t<=s[c+3]&&i>=s[c+0]&&o>=s[c+1]&&(!n||n(this.boxKeys[h]))){if(a.hitTest)return r.push(!0),!0;r.push({key:this.boxKeys[h],x1:s[c],y1:s[c+1],x2:s[c+2],y2:s[c+3]});}}}const h=this.circleCells[s];if(null!==h){const s=this.circles;for(const c of h)if(!l.circle[c]){l.circle[c]=!0;const h=3*c;if(this._circleAndRectCollide(s[h],s[h+1],s[h+2],e,t,i,o)&&(!n||n(this.circleKeys[c]))){if(a.hitTest)return r.push(!0),!0;{const e=s[h],t=s[h+1],i=s[h+2];r.push({key:this.circleKeys[c],x1:e-i,y1:t-i,x2:e+i,y2:t+i});}}}}}_queryCellCircle(e,t,i,o,s,r,a,n){const l=a.circle,c=a.seenUids,h=this.boxCells[s];if(null!==h){const e=this.bboxes;for(const t of h)if(!c.box[t]){c.box[t]=!0;const i=4*t;if(this._circleAndRectCollide(l.x,l.y,l.radius,e[i+0],e[i+1],e[i+2],e[i+3])&&(!n||n(this.boxKeys[t])))return r.push(!0),!0}}const u=this.circleCells[s];if(null!==u){const e=this.circles;for(const t of u)if(!c.circle[t]){c.circle[t]=!0;const i=3*t;if(this._circlesCollide(e[i],e[i+1],e[i+2],l.x,l.y,l.radius)&&(!n||n(this.circleKeys[t])))return r.push(!0),!0}}}_forEachCell(e,t,i,o,s,r,a,n){const l=this._convertToXCellCoord(e),c=this._convertToYCellCoord(t),h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(o);for(let d=l;d<=h;d++)for(let l=c;l<=u;l++)if(s.call(this,e,t,i,o,this.xCellCount*l+d,r,a,n))return}_convertToXCellCoord(e){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(e*this.xScale)))}_convertToYCellCoord(e){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(e*this.yScale)))}_circlesCollide(e,t,i,o,s,r){const a=o-e,n=s-t,l=i+r;return l*l>a*a+n*n}_circleAndRectCollide(e,t,i,o,s,r,a){const n=(r-o)/2,l=Math.abs(e-(o+n));if(l>n+i)return !1;const c=(a-s)/2,h=Math.abs(t-(s+c));if(h>c+i)return !1;if(l<=n||h<=c)return !0;const u=l-n,d=h-c;return u*u+d*d<=i*i}}const Ut={unknown:0,flipRequired:1,flipNotRequired:2},Gt=Math.tan(85*Math.PI/180);function jt(t,i,o,s,r,a,n){const l=e.ab.mat4.create();if(o)if(\"globe\"===a.name){const t=e.bo(r,i);e.ab.mat4.multiply(l,l,t);}else {const t=e.ab.mat2.invert([],n);l[0]=t[0],l[1]=t[1],l[4]=t[2],l[5]=t[3],s||e.ab.mat4.rotateZ(l,l,r.angle);}else e.ab.mat4.multiply(l,r.labelPlaneMatrix,t);return l}function Vt(e,t,i,o,s,r,a){const n=jt(e,t,i,o,s,r,a);return \"globe\"===r.name&&i||(n[2]=n[6]=n[10]=n[14]=0),n}function qt(t,i,o,s,r,a,n){if(o){if(\"globe\"===a.name){const l=jt(t,i,o,s,r,a,n);return e.ab.mat4.invert(l,l),e.ab.mat4.multiply(l,t,l),l}{const i=e.ab.mat4.clone(t),o=e.ab.mat4.identity([]);return o[0]=n[0],o[1]=n[1],o[4]=n[2],o[5]=n[3],e.ab.mat4.multiply(i,i,o),s||e.ab.mat4.rotateZ(i,i,-r.angle),i}}return r.glCoordMatrix}function Ht(t,i,o,s){const r=[t,i,o,1];o?e.ab.vec4.transformMat4(r,r,s):ii(r,r,s);const a=r[3];return r[0]/=a,r[1]/=a,r[2]/=a,r}function Zt(e,t){return Math.min(.5+e/t*.5,1.5)}function Wt(e,t){const i=e[0]/e[3],o=e[1]/e[3];return i>=-t[0]&&i<=t[0]&&o>=-t[1]&&o<=t[1]}function $t(t,i,o,s,r,a,n,l,c,h){const u=o.transform,d=s?t.textSizeData:t.iconSizeData,_=e.bp(d,o.transform.zoom),p=\"globe\"===u.projection.name,f=[256/o.width*2+1,256/o.height*2+1],m=s?t.text.dynamicLayoutVertexArray:t.icon.dynamicLayoutVertexArray;m.clear();let g=null;p&&(g=s?t.text.globeExtVertexArray:t.icon.globeExtVertexArray);const v=t.lineVertexArray,y=s?t.text.placedSymbolArray:t.icon.placedSymbolArray,x=o.transform.width/o.transform.height;let b,w=!1;for(let s=0;s<y.length;s++){const p=y.get(s),{numGlyphs:T,writingMode:E}=p;if(E!==e.bq.vertical||w||b===e.bq.horizontal||(w=!0),b=E,(p.hidden||E===e.bq.vertical)&&!w){ti(T,m);continue}w=!1;const S=new e.P(p.tileAnchorX,p.tileAnchorY);let{x:C,y:I,z:R}=u.projection.projectTilePoint(S.x,S.y,h.canonical);if(c){const[e,t,i]=c(S);C+=e,I+=t,R+=i;}const D=[C,I,R,1];if(e.ab.vec4.transformMat4(D,D,i),!Wt(D,f)){ti(T,m);continue}const L=D[3],A=Zt(o.transform.getCameraToCenterDistance(u.projection),L),z=e.br(d,_,p),P=n?z/A:z*A,M=Ht(C,I,R,r);if(M[3]<=0){ti(T,m);continue}let O={};const F=n?null:c,k=Yt(p,P,!1,l,i,r,a,t.glyphOffsetArray,v,m,g,M,S,O,x,F,u.projection,h,n);w=k.useVertical,F&&k.needsFlipping&&(O={}),(k.notEnoughRoom||w||k.needsFlipping&&Yt(p,P,!0,l,i,r,a,t.glyphOffsetArray,v,m,g,M,S,O,x,F,u.projection,h,n).notEnoughRoom)&&ti(T,m);}s?(t.text.dynamicLayoutVertexBuffer.updateData(m),g&&t.text.globeExtVertexBuffer&&t.text.globeExtVertexBuffer.updateData(g)):(t.icon.dynamicLayoutVertexBuffer.updateData(m),g&&t.icon.globeExtVertexBuffer&&t.icon.globeExtVertexBuffer.updateData(g));}function Xt(e,t,i,o,s,r,a,n,l,c,h,u,d,_,p,f){const{lineStartIndex:m,glyphStartIndex:g,segment:v}=n,y=g+n.numGlyphs,x=m+n.lineLength,b=t.getoffsetX(g),w=t.getoffsetX(y-1),T=ei(e*b,i,o,s,r,a,v,m,x,l,c,h,u,d,!0,_,p,f);if(!T)return null;const E=ei(e*w,i,o,s,r,a,v,m,x,l,c,h,u,d,!0,_,p,f);return E?{first:T,last:E}:null}function Kt(t,i,o,s){return t===e.bq.horizontal&&Math.abs(s)>Math.abs(o)?{useVertical:!0}:t===e.bq.vertical?s>0?{needsFlipping:!0}:null:i!==Ut.unknown&&function(e,t){return 0===e||Math.abs(t/e)>Gt}(o,s)?i===Ut.flipRequired?{needsFlipping:!0}:null:o<0?{needsFlipping:!0}:null}function Yt(t,i,o,s,r,a,n,l,c,h,u,d,_,p,f,m,g,v,y){const x=i/24,b=t.lineOffsetX*x,w=t.lineOffsetY*x,{lineStartIndex:T,glyphStartIndex:E,numGlyphs:S,segment:C,writingMode:I,flipState:R}=t,D=T+t.lineLength,L=t=>{if(u){const[i,o,s]=t.up,r=h.length;e.bs(u,r+0,i,o,s),e.bs(u,r+1,i,o,s),e.bs(u,r+2,i,o,s),e.bs(u,r+3,i,o,s);}const[i,o,s]=t.point;e.bt(h,i,o,s,t.angle);};if(S>1){const e=Xt(x,l,b,w,o,d,_,t,c,a,p,m,!1,g,v,y);if(!e)return {notEnoughRoom:!0};if(s&&!o){let[i,o,s]=e.first.point,[r,a,l]=e.last.point;[i,o]=Ht(i,o,s,n),[r,a]=Ht(r,a,l,n);const c=Kt(I,R,(r-i)*f,a-o);if(t.flipState=c&&c.needsFlipping?Ut.flipRequired:Ut.flipNotRequired,c)return c}L(e.first);for(let e=E+1;e<E+S-1;e++){const t=ei(x*l.getoffsetX(e),b,w,o,d,_,C,T,D,c,a,p,m,!1,!1,g,v,y);if(!t)return h.length-=4*(e-E),{notEnoughRoom:!0};L(t);}L(e.last);}else {if(s&&!o){const i=Ht(_.x,_.y,0,r),o=T+C+1,s=new e.P(c.getx(o),c.gety(o)),a=Ht(s.x,s.y,0,r),n=a[3]>0?a:Qt(_,s,i,1,r,void 0,g,v.canonical),l=Kt(I,R,(n[0]-i[0])*f,n[1]-i[1]);if(t.flipState=l&&l.needsFlipping?Ut.flipRequired:Ut.flipNotRequired,l)return l}const i=ei(x*l.getoffsetX(E),b,w,o,d,_,C,T,D,c,a,p,m,!1,!1,g,v,y);if(!i)return {notEnoughRoom:!0};L(i);}return {}}function Jt(e,t,i,o,s){const{x:r,y:a,z:n}=o.projectTilePoint(e.x,e.y,t);if(!s)return Ht(r,a,n,i);const[l,c,h]=s(e);return Ht(r+l,a+c,n+h,i)}function Qt(t,i,o,s,r,a,n,l){const c=Jt(t.sub(i)._unit()._add(t),l,r,n,a);return e.ab.vec3.sub(c,o,c),e.ab.vec3.normalize(c,c),e.ab.vec3.scaleAndAdd(c,o,c,s)}function ei(t,i,o,s,r,a,n,l,c,h,u,d,_,p,f,m,g,v){const y=s?t-i:t+i;let x=y>0?1:-1,b=0;s&&(x*=-1,b=Math.PI),x<0&&(b+=Math.PI);let w=l+n+(x>0?0:1)|0,T=r,E=r,S=0,C=0;const I=Math.abs(y),R=[],D=[];let L=a,A=L;const z=()=>Qt(A,L,E,I-S+1,u,_,m,g.canonical);for(;S+C<=I;){if(w+=x,w<l||w>=c)return null;if(E=T,A=L,R.push(E),p&&D.push(A),L=new e.P(h.getx(w),h.gety(w)),T=d[w],!T){const e=Jt(L,g.canonical,u,m,_);T=e[3]>0?d[w]=e:z();}S+=C,C=e.ab.vec3.distance(E,T);}f&&_&&(d[w]&&(T=z(),C=e.ab.vec3.distance(E,T)),d[w]=T);const P=(I-S)/C,M=L.sub(A)._mult(P)._add(A),O=e.ab.vec3.sub([],T,E),F=e.ab.vec3.scaleAndAdd([],E,O,P);let k=[0,0,1],B=O[0],N=O[1];if(v&&(k=m.upVector(g.canonical,M.x,M.y),0!==k[0]||0!==k[1]||1!==k[2])){const t=[k[2],0,-k[0]],i=e.ab.vec3.cross([],k,t);e.ab.vec3.normalize(t,t),e.ab.vec3.normalize(i,i),B=e.ab.vec3.dot(O,t),N=e.ab.vec3.dot(O,i);}if(o){const t=e.ab.vec3.cross([],k,O);e.ab.vec3.normalize(t,t),e.ab.vec3.scaleAndAdd(F,F,t,o*x);}const U=b+Math.atan2(N,B);return R.push(F),p&&D.push(M),{point:F,angle:U,path:R,tilePath:D,up:k}}function ti(e,t){const i=t.length,o=i+4*e;t.resize(o),t.float32.fill(-1/0,4*i,4*o);}function ii(e,t,i){const o=t[0],s=t[1];return e[0]=i[0]*o+i[4]*s+i[12],e[1]=i[1]*o+i[5]*s+i[13],e[3]=i[3]*o+i[7]*s+i[15],e}const oi=100;class si{constructor(e,t,i=new Nt(e.width+200,e.height+200,25),o=new Nt(e.width+200,e.height+200,25)){this.transform=e,this.grid=i,this.ignoredGrid=o,this.pitchfactor=Math.cos(e._pitch)*e.cameraToCenterDistance,this.screenRightBoundary=e.width+oi,this.screenBottomBoundary=e.height+oi,this.gridRightBoundary=e.width+200,this.gridBottomBoundary=e.height+200,this.fogState=t;}placeCollisionBox(e,t,i,o,s,r,a,n){let l=i.projectedAnchorX,c=i.projectedAnchorY,h=i.projectedAnchorZ;const u=i.elevation,d=i.tileID,_=e.getProjection();if(u&&d){const[e,t,o]=_.upVector(d.canonical,i.tileAnchorX,i.tileAnchorY),s=_.upVectorScale(d.canonical,this.transform.center.lat,this.transform.worldSize).metersToTile;l+=e*u*s,c+=t*u*s,h+=o*u*s;}const p=this.projectAndGetPerspectiveRatio(a,l,c,h,i.tileID,\"globe\"===_.name||!!u||this.transform.pitch>0,_),f=r*p.perspectiveRatio,m=(i.x1*t+o.x-i.padding)*f+p.point.x,g=(i.y1*t+o.y-i.padding)*f+p.point.y,v=(i.x2*t+o.x+i.padding)*f+p.point.x,y=(i.y2*t+o.y+i.padding)*f+p.point.y,x=p.perspectiveRatio<=.55||p.occluded;return !this.isInsideGrid(m,g,v,y)||!s&&this.grid.hitTest(m,g,v,y,n)||x?{box:[],offscreen:!1,occluded:p.occluded}:{box:[m,g,v,y],offscreen:this.isOffscreen(m,g,v,y),occluded:!1}}placeCollisionCircles(t,i,o,s,r,a,n,l,c,h,u,d,_,p,f){const m=[],g=this.transform.elevation,v=t.getProjection(),y=g?g.getAtTileOffsetFunc(f,this.transform.center.lat,this.transform.worldSize,v):null,x=new e.P(o.tileAnchorX,o.tileAnchorY);let{x:b,y:w,z:T}=v.projectTilePoint(x.x,x.y,f.canonical);if(y){const[e,t,i]=y(x);b+=e,w+=t,T+=i;}const E=\"globe\"===v.name,S=this.projectAndGetPerspectiveRatio(n,b,w,T,f,E||!!g||this.transform.pitch>0,v),{perspectiveRatio:C}=S,I=(u?a/C:a*C)/e.bw,R=Ht(b,w,T,l),D=S.signedDistanceFromCamera>0?Xt(I,r,o.lineOffsetX*I,o.lineOffsetY*I,!1,R,x,o,s,l,{},g&&!u?y:null,u&&!!g,v,f,u):null;let L=!1,A=!1,z=!0;if(D&&!S.occluded){const t=.5*_*C+p,o=new e.P(-100,-100),s=new e.P(this.screenRightBoundary,this.screenBottomBoundary),r=new Bt,{first:a,last:n}=D,l=a.path.length;let u=[];for(let e=l-1;e>=1;e--)u.push(a.path[e]);for(let e=1;e<n.path.length;e++)u.push(n.path[e]);const f=2.5*t;c&&(u=u.map((([e,t,i],o)=>(y&&!E&&(i=y(o<l-1?a.tilePath[l-1-o]:n.tilePath[o-l+2])[2]),Ht(e,t,i,c)))),u.some((e=>e[3]<=0))&&(u=[]));let g=[];if(u.length>0){let t=1/0,i=-1/0,r=1/0,a=-1/0;for(const e of u)t=Math.min(t,e[0]),r=Math.min(r,e[1]),i=Math.max(i,e[0]),a=Math.max(a,e[1]);i>=o.x&&t<=s.x&&a>=o.y&&r<=s.y&&(g=[u.map((t=>new e.P(t[0],t[1])))],(t<o.x||i>s.x||r<o.y||a>s.y)&&(g=e.bu(g,o.x,o.y,s.x,s.y)));}for(const e of g){r.reset(e,.25*t);let o=0;o=r.length<=.5*t?1:Math.ceil(r.paddedLength/f)+1;for(let e=0;e<o;e++){const s=e/Math.max(o-1,1),a=r.lerp(s),n=a.x+oi,l=a.y+oi;m.push(n,l,t,0);const c=n-t,u=l-t,_=n+t,p=l+t;if(z=z&&this.isOffscreen(c,u,_,p),A=A||this.isInsideGrid(c,u,_,p),!i&&this.grid.hitTestCircle(n,l,t,d)&&(L=!0,!h))return {circles:[],offscreen:!1,collisionDetected:L,occluded:!1}}}}return {circles:!h&&L||!A?[]:m,offscreen:z,collisionDetected:L,occluded:S.occluded}}queryRenderedSymbols(t){if(0===t.length||0===this.grid.keysLength()&&0===this.ignoredGrid.keysLength())return {};const i=[];let o=1/0,s=1/0,r=-1/0,a=-1/0;for(const n of t){const t=new e.P(n.x+oi,n.y+oi);o=Math.min(o,t.x),s=Math.min(s,t.y),r=Math.max(r,t.x),a=Math.max(a,t.y),i.push(t);}const n=this.grid.query(o,s,r,a).concat(this.ignoredGrid.query(o,s,r,a)),l={},c={};for(const t of n){const o=t.key;if(void 0===l[o.bucketInstanceId]&&(l[o.bucketInstanceId]={}),l[o.bucketInstanceId][o.featureIndex])continue;const s=[new e.P(t.x1,t.y1),new e.P(t.x2,t.y1),new e.P(t.x2,t.y2),new e.P(t.x1,t.y2)];e.bv(i,s)&&(l[o.bucketInstanceId][o.featureIndex]=!0,void 0===c[o.bucketInstanceId]&&(c[o.bucketInstanceId]=[]),c[o.bucketInstanceId].push(o.featureIndex));}return c}insertCollisionBox(e,t,i,o,s){(t?this.ignoredGrid:this.grid).insert({bucketInstanceId:i,featureIndex:o,collisionGroupID:s},e[0],e[1],e[2],e[3]);}insertCollisionCircles(e,t,i,o,s){const r=t?this.ignoredGrid:this.grid,a={bucketInstanceId:i,featureIndex:o,collisionGroupID:s};for(let t=0;t<e.length;t+=4)r.insertCircle(a,e[t],e[t+1],e[t+2]);}projectAndGetPerspectiveRatio(t,i,o,s,r,a,n){const l=[i,o,s,1];let c=!1;if(s||this.transform.pitch>0){if(e.ab.vec4.transformMat4(l,l,t),this.fogState&&r&&\"globe\"!==n.name){const t=function(t,i,o,s,r,a){const n=a.calculateFogTileMatrix(r),l=[i,o,s];return e.ab.vec3.transformMat4(l,l,n),ke(t,e.ab.vec3.length(l),a.pitch,a._fov)}(this.fogState,i,o,s,r.toUnwrapped(),this.transform);c=t>.9;}}else ii(l,l,t);const h=l[3];return {point:new e.P((l[0]/h+1)/2*this.transform.width+oi,(-l[1]/h+1)/2*this.transform.height+oi),perspectiveRatio:Math.min(.5+this.transform.getCameraToCenterDistance(n)/h*.5,1.5),signedDistanceFromCamera:h,occluded:a&&l[2]>h||c}}isOffscreen(e,t,i,o){return i<oi||e>=this.screenRightBoundary||o<oi||t>this.screenBottomBoundary}isInsideGrid(e,t,i,o){return i>=0&&e<this.gridRightBoundary&&o>=0&&t<this.gridBottomBoundary}getViewportMatrix(){const t=e.ab.mat4.identity([]);return e.ab.mat4.translate(t,t,[-100,-100,0]),t}}function ri(t,i,o){const s=i.createTileMatrix(t,t.worldSize,o.toUnwrapped());return e.ab.mat4.multiply(new Float32Array(16),t.projMatrix,s)}function ai(e,t,i){if(t.projection.name===i.projection.name)return e.projMatrix;const o=i.clone();return o.setProjection(t.projection),ri(o,t.getProjection(),e)}function ni(e,t,i){return t.name===i.projection.name?e.projMatrix:ri(i,t,e)}class li{constructor(e,t,i,o){this.opacity=e?Math.max(0,Math.min(1,e.opacity+(e.placed?t:-t))):o&&i?1:0,this.placed=i;}isHidden(){return 0===this.opacity&&!this.placed}}class ci{constructor(e,t,i,o,s,r=!1){this.text=new li(e?e.text:null,t,i,s),this.icon=new li(e?e.icon:null,t,o,s),this.clipped=r;}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class hi{constructor(e,t,i,o=!1){this.text=e,this.icon=t,this.skipFade=i,this.clipped=o;}}class ui{constructor(){this.invProjMatrix=e.ab.mat4.create(),this.viewportMatrix=e.ab.mat4.create(),this.circles=[];}}class di{constructor(e,t,i,o,s){this.bucketInstanceId=e,this.featureIndex=t,this.sourceLayerIndex=i,this.bucketIndex=o,this.tileID=s;}}class _i{constructor(e){this.crossSourceCollisions=e,this.maxGroupID=0,this.collisionGroups={};}get(e){if(this.crossSourceCollisions)return {ID:0,predicate:null};if(!this.collisionGroups[e]){const t=++this.maxGroupID;this.collisionGroups[e]={ID:t,predicate:e=>e.collisionGroupID===t};}return this.collisionGroups[e]}}function pi(t,i,o,s,r){const{horizontalAlign:a,verticalAlign:n}=e.bD(t),l=-(a-.5)*i,c=-(n-.5)*o,h=e.bC(t,s);return new e.P(l+h[0]*r,c+h[1]*r)}function fi(t,i,o,s,r){const a=new e.P(t,i);return o&&a._rotate(s?r:-r),a}class mi{constructor(e,t,i,o,s,r){this.transform=e.clone(),this.projection=e.projection.name,this.collisionIndex=new si(this.transform,s),this.buildingIndex=r,this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=t,this.retainedQueryData={},this.collisionGroups=new _i(i),this.collisionCircleArrays={},this.prevPlacement=o,o&&(o.prevPlacement=void 0),this.placedOrientations={};}getBucketParts(t,i,o,s,r=1){const a=o.getBucket(i),n=o.latestFeatureIndex;if(!a||!n||i.fqid!==a.layerIds[0])return;const l=a.layers[0].layout,c=a.layers[0].paint,h=o.collisionBoxArray,u=Math.pow(2,this.transform.zoom-o.tileID.overscaledZ),d=o.tileSize/e.ag,_=o.tileID.toUnwrapped();this.transform.setProjection(a.projection);const p=(f=o.tileID,m=a.getProjection(),g=this.transform,m.name===this.projection?g.calculateProjMatrix(f.toUnwrapped()):ri(g,m,f));var f,m,g;const v=\"map\"===l.get(\"text-pitch-alignment\"),y=\"map\"===l.get(\"text-rotation-alignment\");i.compileFilter(i.options);const x=i.dynamicFilter(),b=i.dynamicFilterNeedsFeature(),w=this.transform.calculatePixelsToTileUnitsMatrix(o),T=Vt(p,o.tileID.canonical,v,y,this.transform,a.getProjection(),w);let E=null;if(v){const t=qt(p,o.tileID.canonical,v,y,this.transform,a.getProjection(),w);E=e.ab.mat4.multiply([],this.transform.labelPlaneMatrix,t);}let S=null;x&&o.latestFeatureIndex&&(S={unwrappedTileID:_,dynamicFilter:x,dynamicFilterNeedsFeature:b}),this.retainedQueryData[a.bucketInstanceId]=new di(a.bucketInstanceId,n,a.sourceLayerIndex,a.index,o.tileID);const[C,I]=a.layers[0].layout.get(\"text-size-scale-range\"),R=e.aw(r,C,I),[D,L]=l.get(\"icon-size-scale-range\"),A=e.aw(r,D,L),z={bucket:a,layout:l,paint:c,posMatrix:p,textLabelPlaneMatrix:T,labelToScreenMatrix:E,clippingData:S,scale:u,textPixelRatio:d,holdingForFade:o.holdingForFade(),collisionBoxArray:h,partiallyEvaluatedTextSize:e.bp(a.textSizeData,this.transform.zoom,R),partiallyEvaluatedIconSize:e.bp(a.iconSizeData,this.transform.zoom,A),collisionGroup:this.collisionGroups.get(a.sourceID),latestFeatureIndex:o.latestFeatureIndex};if(s)for(const e of a.sortKeyRanges){const{sortKey:i,symbolInstanceStart:o,symbolInstanceEnd:s}=e;t.push({sortKey:i,symbolInstanceStart:o,symbolInstanceEnd:s,parameters:z});}else t.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:z});}attemptAnchorPlacement(e,t,i,o,s,r,a,n,l,c,h,u,d,_,p,f,m,g){const{textOffset0:v,textOffset1:y,crossTileID:x}=u,b=[v,y],w=pi(e,i,o,b,s),T=this.collisionIndex.placeCollisionBox(_,s,t,fi(w.x,w.y,r,a,this.transform.angle),h,n,l,c.predicate);if(f){const e=_.getSymbolInstanceIconSize(g,this.transform.zoom,u.placedIconSymbolIndex);if(0===this.collisionIndex.placeCollisionBox(_,e,f,fi(w.x,w.y,r,a,this.transform.angle),h,n,l,c.predicate).box.length)return}if(T.box.length>0){let t;return this.prevPlacement&&this.prevPlacement.variableOffsets[x]&&this.prevPlacement.placements[x]&&this.prevPlacement.placements[x].text&&(t=this.prevPlacement.variableOffsets[x].anchor),this.variableOffsets[x]={textOffset:b,width:i,height:o,anchor:e,textScale:s,prevAnchor:t},this.markUsedJustification(_,e,u,p),_.allowVerticalPlacement&&(this.markUsedOrientation(_,p,u),this.placedOrientations[x]=p),{shift:w,placedGlyphBoxes:T}}}placeLayerBucketPart(t,i,o,s,r=1){const{bucket:a,layout:n,paint:l,posMatrix:c,textLabelPlaneMatrix:h,labelToScreenMatrix:u,clippingData:d,textPixelRatio:_,holdingForFade:p,collisionBoxArray:f,partiallyEvaluatedTextSize:m,partiallyEvaluatedIconSize:g,collisionGroup:v,latestFeatureIndex:y}=t.parameters,x=n.get(\"text-optional\"),b=n.get(\"icon-optional\"),w=n.get(\"text-allow-overlap\"),T=n.get(\"icon-allow-overlap\"),E=\"map\"===n.get(\"text-rotation-alignment\"),S=\"map\"===n.get(\"text-pitch-alignment\"),C=n.get(\"symbol-z-elevate\"),I=l.get(\"symbol-z-offset\"),R=\"sea\"===n.get(\"symbol-elevation-reference\"),[D,L]=n.get(\"text-size-scale-range\"),[A,z]=n.get(\"icon-size-scale-range\"),P=e.aw(r,D,L),M=e.aw(r,A,z);this.transform.setProjection(a.projection);let O=w&&(T||!a.hasIconData()||b),F=T&&(w||!a.hasTextData()||x);const k=!I.isConstant();!a.collisionArrays&&f&&a.deserializeCollisionBoxes(f),o&&s&&a.updateCollisionDebugBuffers(this.transform.zoom,f,P,M);const B=(t,s,l)=>{const{crossTileID:f,numVerticalGlyphVertices:C}=t;let D=null;if(d&&d.dynamicFilterNeedsFeature||k){const e=this.retainedQueryData[a.bucketInstanceId];D=y.loadFeature({featureIndex:t.featureIndex,bucketIndex:e.bucketIndex,sourceLayerIndex:e.sourceLayerIndex,layoutVertexArrayOffset:0});}if(d&&!(0,d.dynamicFilter)({zoom:this.transform.zoom,pitch:this.transform.pitch},D,this.retainedQueryData[a.bucketInstanceId].tileID.canonical,new e.P(t.tileAnchorX,t.tileAnchorY),this.transform.calculateDistanceTileData(d.unwrappedTileID)))return this.placements[f]=new hi(!1,!1,!1,!0),void i.add(f);const L=I.evaluate(D,{});if(i.has(f))return;if(p)return void(this.placements[f]=new hi(!1,!1,!1));let A=!1,z=!1,P=!0,M=!1,B=!1,N=null,U={box:null,offscreen:null,occluded:null},G={box:null,offscreen:null,occluded:null},j=null,V=null,q=null,H=0,Z=0,W=0;l.textFeatureIndex?H=l.textFeatureIndex:t.useRuntimeCollisionCircles&&(H=t.featureIndex),l.verticalTextFeatureIndex&&(Z=l.verticalTextFeatureIndex);const $=e=>{e.tileID=this.retainedQueryData[a.bucketInstanceId].tileID;const i=this.transform.elevation;e.elevation=R?L:L+(i?i.getAtTileOffset(e.tileID,e.tileAnchorX,e.tileAnchorY):0),e.elevation+=t.zOffset;},X=l.textBox;if(X){$(X);const i=i=>{let o=e.bq.horizontal;if(a.allowVerticalPlacement&&!i&&this.prevPlacement){const e=this.prevPlacement.placedOrientations[f];e&&(this.placedOrientations[f]=e,o=e,this.markUsedOrientation(a,o,t));}return o},o=(t,i)=>{if(a.allowVerticalPlacement&&C>0&&l.verticalTextBox){for(const o of a.writingModes)if(o===e.bq.vertical?(U=i(),G=U):U=t(),U&&U.box&&U.box.length)break}else U=t();};if(n.get(\"text-variable-anchor\")){let r=n.get(\"text-variable-anchor\");if(this.prevPlacement&&this.prevPlacement.variableOffsets[f]){const e=this.prevPlacement.variableOffsets[f];r.indexOf(e.anchor)>0&&(r=r.filter((t=>t!==e.anchor)),r.unshift(e.anchor));}const h=(e,i,o)=>{const n=a.getSymbolInstanceTextSize(m,t,this.transform.zoom,s),l=(e.x2-e.x1)*n+2*e.padding,h=(e.y2-e.y1)*n+2*e.padding,u=t.hasIconTextFit&&!T?i:null;u&&$(u);let d={box:[],offscreen:!1,occluded:!1};const p=w?2*r.length:r.length;for(let i=0;i<p;++i){const p=this.attemptAnchorPlacement(r[i%r.length],e,l,h,n,E,S,_,c,v,i>=r.length,t,s,a,o,u,m,g);if(p&&(d=p.placedGlyphBoxes,d&&d.box&&d.box.length)){A=!0,N=p.shift;break}}return d};o((()=>h(X,l.iconBox,e.bq.horizontal)),(()=>{const t=l.verticalTextBox;return t&&$(t),a.allowVerticalPlacement&&!(U&&U.box&&U.box.length)&&C>0&&t?h(t,l.verticalIconBox,e.bq.vertical):{box:null,offscreen:null,occluded:null}})),U&&(A=U.box,P=U.offscreen,M=U.occluded);const u=i(!(!U||!U.box));if(!A&&this.prevPlacement){const e=this.prevPlacement.variableOffsets[f];e&&(this.variableOffsets[f]=e,this.markUsedJustification(a,e.anchor,t,u));}}else {const n=(i,o)=>{const n=a.getSymbolInstanceTextSize(m,t,this.transform.zoom,s,r),l=this.collisionIndex.placeCollisionBox(a,n,i,new e.P(0,0),w,_,c,v.predicate);return l&&l.box&&l.box.length&&(this.markUsedOrientation(a,o,t),this.placedOrientations[f]=o),l};o((()=>n(X,e.bq.horizontal)),(()=>{const t=l.verticalTextBox;return a.allowVerticalPlacement&&C>0&&t?($(t),n(t,e.bq.vertical)):{box:null,offscreen:null,occluded:null}})),i(!!(U&&U.box&&U.box.length));}}if(j=U,A=j&&j.box&&j.box.length>0,P=j&&j.offscreen,M=j&&j.occluded,t.useRuntimeCollisionCircles){const i=a.text.placedSymbolArray.get(t.centerJustifiedTextSymbolIndex>=0?t.centerJustifiedTextSymbolIndex:t.verticalPlacedTextSymbolIndex),s=e.br(a.textSizeData,m,i),r=n.get(\"text-padding\");V=this.collisionIndex.placeCollisionCircles(a,w,i,a.lineVertexArray,a.glyphOffsetArray,s,c,h,u,o,S,v.predicate,t.collisionCircleDiameter*s/e.bw,r,this.retainedQueryData[a.bucketInstanceId].tileID),A=w||V.circles.length>0&&!V.collisionDetected,P=P&&V.offscreen,M=V.occluded;}if(l.iconFeatureIndex&&(W=l.iconFeatureIndex),l.iconBox){const i=i=>{$(i);const o=t.hasIconTextFit&&N?fi(N.x,N.y,E,S,this.transform.angle):new e.P(0,0),s=a.getSymbolInstanceIconSize(g,this.transform.zoom,t.placedIconSymbolIndex);return this.collisionIndex.placeCollisionBox(a,s,i,o,T,_,c,v.predicate)};G&&G.box&&G.box.length&&l.verticalIconBox?(q=i(l.verticalIconBox),z=q.box.length>0):(q=i(l.iconBox),z=q.box.length>0),P=P&&q.offscreen,B=q.occluded;}const K=x||0===t.numHorizontalGlyphVertices&&0===C,Y=b||0===t.numIconVertices;if(K||Y?Y?K||(z=z&&A):A=z&&A:z=A=z&&A,A&&j&&j.box&&this.collisionIndex.insertCollisionBox(j.box,n.get(\"text-ignore-placement\"),a.bucketInstanceId,G&&G.box&&Z?Z:H,v.ID),z&&q&&this.collisionIndex.insertCollisionBox(q.box,n.get(\"icon-ignore-placement\"),a.bucketInstanceId,W,v.ID),V&&(A&&this.collisionIndex.insertCollisionCircles(V.circles,n.get(\"text-ignore-placement\"),a.bucketInstanceId,H,v.ID),o)){const e=a.bucketInstanceId;let t=this.collisionCircleArrays[e];void 0===t&&(t=this.collisionCircleArrays[e]=new ui);for(let e=0;e<V.circles.length;e+=4)t.circles.push(V.circles[e+0]),t.circles.push(V.circles[e+1]),t.circles.push(V.circles[e+2]),t.circles.push(V.collisionDetected?1:0);}const J=\"globe\"!==a.projection.name;O=O&&(J||!M),F=F&&(J||!B),this.placements[f]=new hi(A||O,z||F,P||a.justReloaded),i.add(f);};if(C&&this.buildingIndex&&(this.buildingIndex.updateZOffset(a,this.retainedQueryData[a.bucketInstanceId].tileID),a.updateZOffset()),a.sortFeaturesByY){const t=a.getSortedSymbolIndexes(this.transform.angle);for(let e=t.length-1;e>=0;--e){const i=t[e];B(a.symbolInstances.get(i),i,a.collisionArrays[i]);}a.hasAnyZOffset&&e.w(`${a.layerIds[0]} layer symbol-z-elevate: symbols are not sorted by elevation if symbol-z-order is evaluated to viewport-y`);}else if(a.hasAnyZOffset){const e=a.getSortedIndexesByZOffset();for(let t=0;t<e.length;++t){const i=e[t];B(a.symbolInstances.get(i),i,a.collisionArrays[i]);}}else for(let e=t.symbolInstanceStart;e<t.symbolInstanceEnd;e++)B(a.symbolInstances.get(e),e,a.collisionArrays[e]);if(o&&a.bucketInstanceId in this.collisionCircleArrays){const t=this.collisionCircleArrays[a.bucketInstanceId];e.ab.mat4.invert(t.invProjMatrix,c),t.viewportMatrix=this.collisionIndex.getViewportMatrix();}a.justReloaded=!1;}markUsedJustification(t,i,o,s){const{leftJustifiedTextSymbolIndex:r,centerJustifiedTextSymbolIndex:a,rightJustifiedTextSymbolIndex:n,verticalPlacedTextSymbolIndex:l,crossTileID:c}=o,h=e.bB(i),u=s===e.bq.vertical?l:\"left\"===h?r:\"center\"===h?a:\"right\"===h?n:-1;r>=0&&(t.text.placedSymbolArray.get(r).crossTileID=u>=0&&r!==u?0:c),a>=0&&(t.text.placedSymbolArray.get(a).crossTileID=u>=0&&a!==u?0:c),n>=0&&(t.text.placedSymbolArray.get(n).crossTileID=u>=0&&n!==u?0:c),l>=0&&(t.text.placedSymbolArray.get(l).crossTileID=u>=0&&l!==u?0:c);}markUsedOrientation(t,i,o){const s=i===e.bq.horizontal||i===e.bq.horizontalOnly?i:0,r=i===e.bq.vertical?i:0,{leftJustifiedTextSymbolIndex:a,centerJustifiedTextSymbolIndex:n,rightJustifiedTextSymbolIndex:l,verticalPlacedTextSymbolIndex:c}=o,h=t.text.placedSymbolArray;a>=0&&(h.get(a).placedOrientation=s),n>=0&&(h.get(n).placedOrientation=s),l>=0&&(h.get(l).placedOrientation=s),c>=0&&(h.get(c).placedOrientation=r);}commit(e){this.commitTime=e,this.zoomAtLastRecencyCheck=this.transform.zoom;const t=this.prevPlacement;let i=!1;this.prevZoomAdjustment=t?t.zoomAdjustment(this.transform.zoom):0;const o=t?t.symbolFadeChange(e):1,s=t?t.opacities:{},r=t?t.variableOffsets:{},a=t?t.placedOrientations:{};for(const e in this.placements){const t=this.placements[e],r=s[e];r?(this.opacities[e]=new ci(r,o,t.text,t.icon,null,t.clipped),i=i||t.text!==r.text.placed||t.icon!==r.icon.placed):(this.opacities[e]=new ci(null,o,t.text,t.icon,t.skipFade,t.clipped),i=i||t.text||t.icon);}for(const e in s){const t=s[e];if(!this.opacities[e]){const s=new ci(t,o,!1,!1);s.isHidden()||(this.opacities[e]=s,i=i||t.text.placed||t.icon.placed);}}for(const e in r)this.variableOffsets[e]||!this.opacities[e]||this.opacities[e].isHidden()||(this.variableOffsets[e]=r[e]);for(const e in a)this.placedOrientations[e]||!this.opacities[e]||this.opacities[e].isHidden()||(this.placedOrientations[e]=a[e]);i?this.lastPlacementChangeTime=e:\"number\"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=t?t.lastPlacementChangeTime:e);}updateLayerOpacities(e,t,i,o){const s=new Set;for(const r of t){const t=r.getBucket(e);t&&r.latestFeatureIndex&&e.fqid===t.layerIds[0]&&(this.updateBucketOpacities(t,s,r,r.collisionBoxArray,i,o,r.tileID,e.scope),t.layers[0].layout.get(\"symbol-z-elevate\")&&this.buildingIndex&&(this.buildingIndex.updateZOffset(t,r.tileID),t.updateZOffset()));}}updateBucketOpacities(t,i,o,s,r,a,n,l){t.hasTextData()&&t.text.opacityVertexArray.clear(),t.hasIconData()&&t.icon.opacityVertexArray.clear(),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexArray.clear(),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexArray.clear();const c=t.layers[0].layout,h=t.layers[0].paint,u=!!t.layers[0].dynamicFilter(),d=new ci(null,0,!1,!1,!0),_=c.get(\"text-allow-overlap\"),p=c.get(\"icon-allow-overlap\"),f=c.get(\"text-variable-anchor\"),m=\"map\"===c.get(\"text-rotation-alignment\"),g=\"map\"===c.get(\"text-pitch-alignment\"),v=h.get(\"symbol-z-offset\"),y=\"sea\"===c.get(\"symbol-elevation-reference\"),x=!v.isConstant(),b=new ci(null,0,_&&(p||!t.hasIconData()||c.get(\"icon-optional\")),p&&(_||!t.hasTextData()||c.get(\"text-optional\")),!0);!t.collisionArrays&&s&&(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData())&&t.deserializeCollisionBoxes(s);const w=(e,t,i)=>{for(let o=0;o<t/4;o++)e.opacityVertexArray.emplaceBack(i);};let T=0;a&&t.updateReplacement(n,a);for(let s=0;s<t.symbolInstances.length;s++){const c=t.symbolInstances.get(s),{numHorizontalGlyphVertices:h,numVerticalGlyphVertices:_,crossTileID:p,numIconVertices:E,tileAnchorX:S,tileAnchorY:C}=c;let I=null;const R=this.retainedQueryData[t.bucketInstanceId];x&&c&&R&&(I=o.latestFeatureIndex.loadFeature({featureIndex:c.featureIndex,bucketIndex:R.bucketIndex,sourceLayerIndex:R.sourceLayerIndex,layoutVertexArrayOffset:0}));const D=v.evaluate(I,{}),L=i.has(p);let A=this.opacities[p];L?A=d:A||(A=b,this.opacities[p]=A),i.add(p);const z=h>0||_>0,P=E>0,M=this.placedOrientations[p],O=M===e.bq.vertical,F=M===e.bq.horizontal||M===e.bq.horizontalOnly;!z&&!P||A.isHidden()||T++;let k=!1;if((z||P)&&a)for(const i of t.activeReplacements){if(e.bx(i,r,e.by.Symbol,l))continue;if(i.min.x>S||S>i.max.x||i.min.y>C||C>i.max.y)continue;const t=e.bz(S,C,n.canonical,i.footprintTileId.canonical);if(k=e.bA(t,i.footprint),k)break}if(z){const e=k?Ci:Si(A.text);w(t.text,h,O?Ci:e),w(t.text,_,F?Ci:e);const i=A.text.isHidden(),{leftJustifiedTextSymbolIndex:o,centerJustifiedTextSymbolIndex:s,rightJustifiedTextSymbolIndex:r,verticalPlacedTextSymbolIndex:a}=c,n=t.text.placedSymbolArray,l=i||O?1:0;o>=0&&(n.get(o).hidden=l),s>=0&&(n.get(s).hidden=l),r>=0&&(n.get(r).hidden=l),a>=0&&(n.get(a).hidden=i||F?1:0);const u=this.variableOffsets[p];u&&this.markUsedJustification(t,u.anchor,c,M);const d=this.placedOrientations[p];d&&(this.markUsedJustification(t,\"left\",c,d),this.markUsedOrientation(t,d,c));}if(P){const e=k?Ci:Si(A.icon),{placedIconSymbolIndex:i,verticalPlacedIconSymbolIndex:o}=c,s=t.icon.placedSymbolArray,r=A.icon.isHidden()?1:0;i>=0&&(w(t.icon,E,O?Ci:e),s.get(i).hidden=r),o>=0&&(w(t.icon,c.numVerticalIconVertices,F?Ci:e),s.get(o).hidden=r);}if(t.hasIconCollisionBoxData()||t.hasTextCollisionBoxData()){const i=t.collisionArrays[s];if(i){let o=new e.P(0,0),s=!0;if(i.textBox||i.verticalTextBox){if(f){const e=this.variableOffsets[p];e?(o=pi(e.anchor,e.width,e.height,e.textOffset,e.textScale),m&&o._rotate(g?this.transform.angle:-this.transform.angle)):s=!1;}u&&(s=!A.clipped),i.textBox&&gi(t.textCollisionBox.collisionVertexArray,A.text.placed,!s||O,D,y,o.x,o.y),i.verticalTextBox&&gi(t.textCollisionBox.collisionVertexArray,A.text.placed,!s||F,D,y,o.x,o.y);}const r=s&&Boolean(!F&&i.verticalIconBox);i.iconBox&&gi(t.iconCollisionBox.collisionVertexArray,A.icon.placed,r,D,y,c.hasIconTextFit?o.x:0,c.hasIconTextFit?o.y:0),i.verticalIconBox&&gi(t.iconCollisionBox.collisionVertexArray,A.icon.placed,!r,D,y,c.hasIconTextFit?o.x:0,c.hasIconTextFit?o.y:0);}}}if(t.fullyClipped=0===T,t.sortFeatures(this.transform.angle),this.retainedQueryData[t.bucketInstanceId]&&(this.retainedQueryData[t.bucketInstanceId].featureSortOrder=t.featureSortOrder),t.hasTextData()&&t.text.opacityVertexBuffer&&t.text.opacityVertexBuffer.updateData(t.text.opacityVertexArray),t.hasIconData()&&t.icon.opacityVertexBuffer&&t.icon.opacityVertexBuffer.updateData(t.icon.opacityVertexArray),t.hasIconCollisionBoxData()&&t.iconCollisionBox.collisionVertexBuffer&&t.iconCollisionBox.collisionVertexBuffer.updateData(t.iconCollisionBox.collisionVertexArray),t.hasTextCollisionBoxData()&&t.textCollisionBox.collisionVertexBuffer&&t.textCollisionBox.collisionVertexBuffer.updateData(t.textCollisionBox.collisionVertexArray),t.bucketInstanceId in this.collisionCircleArrays){const e=this.collisionCircleArrays[t.bucketInstanceId];t.placementInvProjMatrix=e.invProjMatrix,t.placementViewportMatrix=e.viewportMatrix,t.collisionCircleArray=e.circles,delete this.collisionCircleArrays[t.bucketInstanceId];}}symbolFadeChange(e){return 0===this.fadeDuration?1:(e-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(e){return Math.max(0,(this.transform.zoom-e)/1.5)}hasTransitions(e){return this.stale||e-this.lastPlacementChangeTime<this.fadeDuration}stillRecent(e,t){const i=this.zoomAtLastRecencyCheck===t?1-this.zoomAdjustment(t):1;return this.zoomAtLastRecencyCheck=t,this.commitTime+this.fadeDuration*i>e}setStale(){this.stale=!0;}}function gi(e,t,i,o,s,r,a){e.emplaceBack(t?1:0,i?1:0,r||0,a||0,o,s?1:0),e.emplaceBack(t?1:0,i?1:0,r||0,a||0,o,s?1:0),e.emplaceBack(t?1:0,i?1:0,r||0,a||0,o,s?1:0),e.emplaceBack(t?1:0,i?1:0,r||0,a||0,o,s?1:0);}const vi=Math.pow(2,25),yi=Math.pow(2,24),xi=Math.pow(2,17),bi=Math.pow(2,16),wi=Math.pow(2,9),Ti=Math.pow(2,8),Ei=Math.pow(2,1);function Si(e){if(0===e.opacity&&!e.placed)return 0;if(1===e.opacity&&e.placed)return 4294967295;const t=e.placed?1:0,i=Math.floor(127*e.opacity);return i*vi+t*yi+i*xi+t*bi+i*wi+t*Ti+i*Ei+t}const Ci=0;class Ii{constructor(e){this._sortAcrossTiles=\"viewport-y\"!==e.layout.get(\"symbol-z-order\")&&void 0!==e.layout.get(\"symbol-sort-key\").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs=new Set,this._bucketParts=[];}continuePlacement(e,t,i,o,s,r){const a=this._bucketParts;for(;this._currentTileIndex<e.length;)if(t.getBucketParts(a,o,e[this._currentTileIndex],this._sortAcrossTiles,r),this._currentTileIndex++,s())return !0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,a.sort(((e,t)=>e.sortKey-t.sortKey)));this._currentPartIndex<a.length;){const e=a[this._currentPartIndex];if(t.placeLayerBucketPart(e,this._seenCrossTileIDs,i,0===e.symbolInstanceStart,r),this._currentPartIndex++,s())return !0}return !1}}class Ri{constructor(e,t,i,o,s,r,a,n,l){this.placement=new mi(e,s,r,a,n,l),this._currentPlacementIndex=t.length-1,this._forceFullPlacement=i,this._showCollisionBoxes=o,this._done=!1;}isDone(){return this._done}continuePlacement(t,i,o,s,r){const a=e.q.now(),n=()=>{const t=e.q.now()-a;return !this._forceFullPlacement&&t>2};for(;this._currentPlacementIndex>=0;){const a=i[t[this._currentPlacementIndex]],l=this.placement.collisionIndex.transform.zoom;if(\"symbol\"===a.type&&(!a.minzoom||a.minzoom<=l)&&(!a.maxzoom||a.maxzoom>l)){const t=a,i=t.layout.get(\"symbol-z-elevate\"),l=void 0!==t.layout.get(\"symbol-sort-key\").constantOr(1),c=t.layout.get(\"symbol-z-order\"),h=\"viewport-y\"===c||\"auto\"===c&&!(\"viewport-y\"!==c&&l),u=t.layout.get(\"text-allow-overlap\")||t.layout.get(\"icon-allow-overlap\")||t.layout.get(\"text-ignore-placement\")||t.layout.get(\"icon-ignore-placement\"),d=h&&u,_=this._inProgressLayer=this._inProgressLayer||new Ii(t),p=e.aC(a.source,a.scope);if(_.continuePlacement(i||d?s[p]:o[p],this.placement,this._showCollisionBoxes,a,n,r))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=!0;}commit(e){return this.placement.commit(e),this.placement}}const Di=512/e.ag/2;class Li{constructor(t,i,o){this.tileID=t,this.bucketInstanceId=o,this.index=new e.bE(i.length,16,Int32Array),this.keys=[],this.crossTileIDs=[];const s=t.canonical.x*e.ag,r=t.canonical.y*e.ag;for(let e=0;e<i.length;e++){const{key:t,crossTileID:o,tileAnchorX:a,tileAnchorY:n}=i.get(e),l=Math.floor((s+a)*Di),c=Math.floor((r+n)*Di);this.index.add(l,c),this.keys.push(t),this.crossTileIDs.push(o);}this.index.finish();}findMatches(t,i,o){const s=this.tileID.canonical.z<i.canonical.z?1:Math.pow(2,this.tileID.canonical.z-i.canonical.z),r=Di/Math.pow(2,i.canonical.z-this.tileID.canonical.z),a=i.canonical.x*e.ag,n=i.canonical.y*e.ag;for(let e=0;e<t.length;e++){const i=t.get(e);if(i.crossTileID)continue;const{key:l,tileAnchorX:c,tileAnchorY:h}=i,u=Math.floor((a+c)*r),d=Math.floor((n+h)*r),_=this.index.range(u-s,d-s,u+s,d+s);for(const e of _){const t=this.crossTileIDs[e];if(this.keys[e]===l&&!o.has(t)){o.add(t),i.crossTileID=t;break}}}}}class Ai{constructor(){this.maxCrossTileID=0;}generate(){return ++this.maxCrossTileID}}class zi{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0;}handleWrapJump(e){const t=Math.round((e-this.lng)/360);if(0!==t)for(const e in this.indexes){const i=this.indexes[e],o={};for(const e in i){const s=i[e];s.tileID=s.tileID.unwrapTo(s.tileID.wrap+t),o[s.tileID.key]=s;}this.indexes[e]=o;}this.lng=e;}addBucket(e,t,i){if(this.indexes[e.overscaledZ]&&this.indexes[e.overscaledZ][e.key]){if(this.indexes[e.overscaledZ][e.key].bucketInstanceId===t.bucketInstanceId)return !1;this.removeBucketCrossTileIDs(e.overscaledZ,this.indexes[e.overscaledZ][e.key]);}for(let e=0;e<t.symbolInstances.length;e++)t.symbolInstances.get(e).crossTileID=0;this.usedCrossTileIDs[e.overscaledZ]||(this.usedCrossTileIDs[e.overscaledZ]=new Set);const o=this.usedCrossTileIDs[e.overscaledZ];for(const i in this.indexes){const s=this.indexes[i];if(Number(i)>e.overscaledZ)for(const i in s){const r=s[i];r.tileID.isChildOf(e)&&r.findMatches(t.symbolInstances,e,o);}else {const r=s[e.scaledTo(Number(i)).key];r&&r.findMatches(t.symbolInstances,e,o);}}for(let e=0;e<t.symbolInstances.length;e++){const s=t.symbolInstances.get(e);s.crossTileID||(s.crossTileID=i.generate(),o.add(s.crossTileID));}return void 0===this.indexes[e.overscaledZ]&&(this.indexes[e.overscaledZ]={}),this.indexes[e.overscaledZ][e.key]=new Li(e,t.symbolInstances,t.bucketInstanceId),!0}removeBucketCrossTileIDs(e,t){for(const i of t.crossTileIDs)this.usedCrossTileIDs[e].delete(i);}removeStaleBuckets(e){let t=!1;for(const i in this.indexes){const o=this.indexes[i];for(const s in o)e[o[s].bucketInstanceId]||(this.removeBucketCrossTileIDs(i,o[s]),delete o[s],t=!0);}return t}}class Pi{constructor(){this.layerIndexes={},this.crossTileIDs=new Ai,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={};}addLayer(e,t,i,o){let s=this.layerIndexes[e.fqid];void 0===s&&(s=this.layerIndexes[e.fqid]=new zi);let r=!1;const a={};\"globe\"!==o.name&&s.handleWrapJump(i);for(const i of t){const t=i.getBucket(e);t&&e.fqid===t.layerIds[0]&&(t.bucketInstanceId||(t.bucketInstanceId=++this.maxBucketInstanceId),s.addBucket(i.tileID,t,this.crossTileIDs)&&(r=!0),a[t.bucketInstanceId]=!0);}return s.removeStaleBuckets(a)&&(r=!0),r}pruneUnusedLayers(e){const t={};e.forEach((e=>{t[e]=!0;}));for(const e in this.layerIndexes)t[e]||delete this.layerIndexes[e];}}const Mi=771;class Oi{constructor(e,t,i,o){this.blendFunction=e,this.blendColor=t,this.mask=i,this.blendEquation=o;}}Oi.Replace=[1,0,1,0],Oi.disabled=new Oi(Oi.Replace,e.aj.transparent,[!1,!1,!1,!1]),Oi.unblended=new Oi(Oi.Replace,e.aj.transparent,[!0,!0,!0,!0]),Oi.alphaBlended=new Oi([1,Mi,1,Mi],e.aj.transparent,[!0,!0,!0,!0]),Oi.alphaBlendedNonPremultiplied=new Oi([770,Mi,770,Mi],e.aj.transparent,[!0,!0,!0,!0]),Oi.multiply=new Oi([774,0,774,0],e.aj.transparent,[!0,!0,!0,!0]);class Fi{constructor(e,t,i){this.func=e,this.mask=t,this.range=i;}}Fi.ReadOnly=!1,Fi.ReadWrite=!0,Fi.disabled=new Fi(519,Fi.ReadOnly,[0,1]);const ki=7680;class Bi{constructor(e,t,i,o,s,r){this.test=e,this.ref=t,this.mask=i,this.fail=o,this.depthFail=s,this.pass=r;}}Bi.disabled=new Bi({func:519,mask:0},0,0,ki,ki,ki);const Ni=1029,Ui=2305;class Gi{constructor(e,t,i){this.enable=e,this.mode=t,this.frontFace=i;}}function ji(t,i){const o=e.bG(t,3);e.ab.mat4.fromQuat(t,i),e.bI(t,3,o);}function Vi(t,i){const o=e.ab.quat.identity([]);return e.ab.quat.rotateZ(o,o,-i),e.ab.quat.rotateX(o,o,-t),o}function qi(t,i){const o=[t[0],t[1],0],s=[i[0],i[1],0];if(e.ab.vec3.length(o)>=1e-15){const t=e.ab.vec3.normalize([],o);e.ab.vec3.scale(s,t,e.ab.vec3.dot(s,t)),i[0]=s[0],i[1]=s[1];}const r=e.ab.vec3.cross([],i,t);if(e.ab.vec3.len(r)<1e-15)return null;const a=Math.atan2(-r[1],r[0]);return Vi(Math.atan2(Math.sqrt(t[0]*t[0]+t[1]*t[1]),-t[2]),a)}Gi.disabled=new Gi(!1,Ni,Ui),Gi.backCCW=new Gi(!0,Ni,Ui),Gi.backCW=new Gi(!0,Ni,2304),Gi.frontCW=new Gi(!0,1028,2304),Gi.frontCCW=new Gi(!0,1028,Ui);class Hi{constructor(e,t){this.position=e,this.orientation=t;}get position(){return this._position}set position(t){if(t){const i=t instanceof e.aa?t:new e.aa(t[0],t[1],t[2]);this._renderWorldCopies&&(i.x=e.bF(i.x,0,1)),this._position=i;}else this._position=null;}lookAtPoint(t,i){if(this.orientation=null,!this.position)return;const o=this.position,s=this._elevation?this._elevation.getAtPointOrZero(e.aa.fromLngLat(t)):0,r=e.aa.fromLngLat(t,s),a=[r.x-o.x,r.y-o.y,r.z-o.z];i||(i=[0,0,1]),i[2]=Math.abs(i[2]),this.orientation=qi(a,i);}setPitchBearing(t,i){this.orientation=Vi(e.ai(t),e.ai(-i));}}class Zi{constructor(t,i){this._transform=e.ab.mat4.identity([]),this.orientation=i,this.position=t;}get mercatorPosition(){const t=this.position;return new e.aa(t[0],t[1],t[2])}get position(){const t=e.bG(this._transform,3);return [t[0],t[1],t[2]]}set position(t){var i;t&&e.bI(this._transform,3,[(i=t)[0],i[1],i[2],1]);}get orientation(){return this._orientation}set orientation(t){this._orientation=t||e.ab.quat.identity([]),t&&ji(this._transform,this._orientation);}getPitchBearing(){const e=this.forward(),t=this.right();return {bearing:Math.atan2(-t[1],t[0]),pitch:Math.atan2(Math.sqrt(e[0]*e[0]+e[1]*e[1]),-e[2])}}setPitchBearing(e,t){this._orientation=Vi(e,t),ji(this._transform,this._orientation);}forward(){const t=e.bG(this._transform,2);return [-t[0],-t[1],-t[2]]}up(){const t=e.bG(this._transform,1);return [-t[0],-t[1],-t[2]]}right(){const t=e.bG(this._transform,0);return [t[0],t[1],t[2]]}getCameraToWorld(t,i){const o=new Float64Array(16);return e.ab.mat4.invert(o,this.getWorldToCamera(t,i)),o}getCameraToWorldMercator(){return this._transform}getWorldToCameraPosition(t,i,o){const s=this.position;e.ab.vec3.scale(s,s,-t);const r=new Float64Array(16);return e.ab.mat4.fromScaling(r,[o,o,o]),e.ab.mat4.translate(r,r,s),r[10]*=i,r}getWorldToCamera(t,i){const o=new Float64Array(16),s=new Float64Array(4),r=this.position;return e.ab.quat.conjugate(s,this._orientation),e.ab.vec3.scale(r,r,-t),e.ab.mat4.fromQuat(o,s),e.ab.mat4.translate(o,o,r),o[1]*=-1,o[5]*=-1,o[9]*=-1,o[13]*=-1,o[8]*=i,o[9]*=i,o[10]*=i,o[11]*=i,o}getCameraToClipPerspective(t,i,o,s){const r=new Float64Array(16);return e.ab.mat4.perspective(r,t,i,o,s),r}getCameraToClipOrthographic(t,i,o,s,r,a){const n=new Float64Array(16);return e.ab.mat4.ortho(n,t,i,o,s,r,a),n}getDistanceToElevation(t,i=!1){const o=0===t?0:e.bH(t,i?e.aS(this.position[1]):this.position[1]),s=this.forward();return (o-this.position[2])/s[2]}clone(){return new Zi([...this.position],[...this.orientation])}}const Wi={BaseColor:5,MetallicRoughness:6,Normal:7,Occlusion:8,Emission:9,LUT:10,ShadowMap0:11};class $i{constructor(e=0,t=0,i=0,o=0){if(isNaN(e)||e<0||isNaN(t)||t<0||isNaN(i)||i<0||isNaN(o)||o<0)throw new Error(\"Invalid value for edge-insets, top, bottom, left and right must all be numbers\");this.top=e,this.bottom=t,this.left=i,this.right=o;}interpolate(t,i,o){return null!=i.top&&null!=t.top&&(this.top=e.af(t.top,i.top,o)),null!=i.bottom&&null!=t.bottom&&(this.bottom=e.af(t.bottom,i.bottom,o)),null!=i.left&&null!=t.left&&(this.left=e.af(t.left,i.left,o)),null!=i.right&&null!=t.right&&(this.right=e.af(t.right,i.right,o)),this}getCenter(t,i){const o=e.aw((this.left+t-this.right)/2,0,t),s=e.aw((this.top+i-this.bottom)/2,0,i);return new e.P(o,s)}equals(e){return this.top===e.top&&this.bottom===e.bottom&&this.left===e.left&&this.right===e.right}clone(){return new $i(this.top,this.bottom,this.left,this.right)}toJSON(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}const Xi=(e,t,i)=>(1-i)*e+i*t,Ki=e=>e*e*e*e*e;class Yi{constructor(t,i,o,s,r,a,n){this.tileSize=512,this._renderWorldCopies=void 0===r||r,this._minZoom=t||0,this._maxZoom=i||22,this._minPitch=o??0,this._maxPitch=s??60,this.setProjection(a),this.setMaxBounds(n),this.width=0,this.height=0,this._center=new e.bO(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._nearZ=0,this._farZ=0,this._unmodified=!0,this._edgeInsets=new $i,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._expandedProjMatrixCache={},this._distanceTileDataCache={},this._camera=new Zi,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference=\"ground\",this._pixelsPerMercatorPixel=1,this.globeRadius=0,this.globeCenterInViewSpace=[0,0,0],this._tileCoverLift=0,this.freezeTileCoverage=!1,this._horizonShift=.1,this._orthographicProjectionAtLowPitch=!1;}clone(){const e=new Yi(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies,this.getProjection());return e._elevation=this._elevation,e._centerAltitude=this._centerAltitude,e._centerAltitudeValidForExaggeration=this._centerAltitudeValidForExaggeration,e.tileSize=this.tileSize,e.mercatorFromTransition=this.mercatorFromTransition,e.width=this.width,e.height=this.height,e.cameraElevationReference=this.cameraElevationReference,e._center=this._center,e._setZoom(this.zoom),e._seaLevelZoom=this._seaLevelZoom,e.angle=this.angle,e._fov=this._fov,e._pitch=this._pitch,e._nearZ=this._nearZ,e._farZ=this._farZ,e._averageElevation=this._averageElevation,e._orthographicProjectionAtLowPitch=this._orthographicProjectionAtLowPitch,e._unmodified=this._unmodified,e._edgeInsets=this._edgeInsets.clone(),e._camera=this._camera.clone(),e._calcMatrices(),e.freezeTileCoverage=this.freezeTileCoverage,e.frustumCorners=this.frustumCorners,e}get isOrthographic(){return \"globe\"!==this.projection.name&&this._orthographicProjectionAtLowPitch&&this.pitch<15}get elevation(){return this._elevation}set elevation(e){this._elevation!==e&&(this._elevation=e,this._updateCameraOnTerrain(),this._calcMatrices());}get depthOcclusionForSymbolsAndCircles(){return \"globe\"!==this.projection.name&&!this.isOrthographic}updateElevation(e,t=!1){const i=this._elevation&&this._elevation.exaggeration()!==this._centerAltitudeValidForExaggeration;(null==this._seaLevelZoom||i)&&this._updateCameraOnTerrain(),(e||i)&&this._constrainCamera(t),this._calcMatrices();}getProjection(){return e.ay(this.projection,[\"name\",\"center\",\"parallels\"])}setProjection(t){this.projectionOptions=t||{name:\"mercator\"};const i=this.projection?this.getProjection():void 0;this.projection=e.bP(this.projectionOptions);const o=this.getProjection(),s=!e.bn(i,o);return s&&this._calcMatrices(),this.mercatorFromTransition=!1,s}setOrthographicProjectionAtLowPitch(e){return this._orthographicProjectionAtLowPitch!==e&&(this._orthographicProjectionAtLowPitch=e,this._calcMatrices(),!0)}setMercatorFromTransition(){const t=this.projection.name;this.mercatorFromTransition=!0,this.projectionOptions={name:\"mercator\"},this.projection=e.bP({name:\"mercator\"});const i=t!==this.projection.name;return i&&this._calcMatrices(),i}get minZoom(){return this._minZoom}set minZoom(e){this._minZoom!==e&&(this._minZoom=e,this.zoom=Math.max(this.zoom,e));}get maxZoom(){return this._maxZoom}set maxZoom(e){this._maxZoom!==e&&(this._maxZoom=e,this.zoom=Math.min(this.zoom,e));}get minPitch(){return this._minPitch}set minPitch(e){this._minPitch!==e&&(this._minPitch=e,this.pitch=Math.max(this.pitch,e));}get maxPitch(){return this._maxPitch}set maxPitch(e){this._maxPitch!==e&&(this._maxPitch=e,this.pitch=Math.min(this.pitch,e));}get renderWorldCopies(){return this._renderWorldCopies&&!0===this.projection.supportsWorldCopies}set renderWorldCopies(e){void 0===e?e=!0:null===e&&(e=!1),this._renderWorldCopies=e;}get worldSize(){return this.tileSize*this.scale}get cameraWorldSizeForFog(){const e=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(e))}get cameraWorldSize(){const e=Math.max(this._camera.getDistanceToElevation(this._averageElevation,!0),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(e))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return e.bH(1,this.center.lat)*this.cameraWorldSizeForFog}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new e.P(this.width,this.height)}get bearing(){return e.bF(this.rotation,-180,180)}set bearing(e){this.rotation=e;}get rotation(){return -this.angle/Math.PI*180}set rotation(t){const i=-t*Math.PI/180;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=e.ab.mat2.create(),e.ab.mat2.rotate(this.rotationMatrix,this.rotationMatrix,this.angle));}get pitch(){return this._pitch/Math.PI*180}set pitch(t){const i=e.aw(t,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices());}get aspect(){return this.width/this.height}get fov(){return this._fov/Math.PI*180}get fovX(){return this._fov}get fovY(){const e=1/Math.tan(.5*this.fovX);return 2*Math.atan(1/this.aspect/e)}set fov(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=e.ai(t),this._calcMatrices());}get averageElevation(){return this._averageElevation}set averageElevation(e){this._averageElevation=e,this._calcFogMatrices(),this._distanceTileDataCache={};}get zoom(){return this._zoom}set zoom(e){const t=Math.min(Math.max(e,this.minZoom),this.maxZoom);this._zoom!==t&&(this._unmodified=!1,this._setZoom(t),this._updateSeaLevelZoom(),this._constrain(),this._calcMatrices());}_setZoom(e){this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom;}get tileCoverLift(){return this._tileCoverLift}set tileCoverLift(e){this._tileCoverLift!==e&&(this._tileCoverLift=e);}_updateCameraOnTerrain(){const e=this.elevation?this.elevation.getAtPoint(this.locationCoordinate(this.center),Number.NEGATIVE_INFINITY):Number.NEGATIVE_INFINITY,t=this.elevation&&e===Number.NEGATIVE_INFINITY&&this.elevation.visibleDemTiles.length>0&&this.elevation.exaggeration()>0&&this._centerAltitudeValidForExaggeration;if(!this._elevation||e===Number.NEGATIVE_INFINITY&&(!t||!this._centerAltitude))return this._centerAltitude=0,this._seaLevelZoom=null,void(this._centerAltitudeValidForExaggeration=void 0);const i=this._elevation;t||this._centerAltitude&&this._centerAltitudeValidForExaggeration&&i.exaggeration()&&this._centerAltitudeValidForExaggeration!==i.exaggeration()?(this._centerAltitude=this._centerAltitude/this._centerAltitudeValidForExaggeration*i.exaggeration(),this._centerAltitudeValidForExaggeration=i.exaggeration()):(this._centerAltitude=e||0,this._centerAltitudeValidForExaggeration=i.exaggeration()),this._updateSeaLevelZoom();}_updateSeaLevelZoom(){void 0!==this._centerAltitudeValidForExaggeration&&(this._seaLevelZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize));}sampleAverageElevation(){if(!this._elevation)return 0;const t=this._elevation,i=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],o=this.horizonLineFromTop();let s=0,r=0;for(let a=0;a<i.length;a++){const n=new e.P(i[a][0]*this.width,o+i[a][1]*(this.height-o)),l=t.pointCoordinate(n);if(!l)continue;const c=1/Math.hypot(l[0]-this._camera.position[0],l[1]-this._camera.position[1]);s+=l[3]*c,r+=c;}return 0===r?NaN:s/r}get center(){return this._center}set center(e){e.lat===this._center.lat&&e.lng===this._center.lng||(this._unmodified=!1,this._center=e,this._terrainEnabled()&&(\"ground\"===this.cameraElevationReference?this._updateCameraOnTerrain():this._updateZoomFromElevation()),this._constrain(),this._calcMatrices());}_updateZoomFromElevation(){if(null==this._seaLevelZoom||!this._elevation)return;const e=this._seaLevelZoom,t=this._elevation.getAtPointOrZero(this.locationCoordinate(this.center)),i=this.pixelsPerMeter/this.worldSize*t,o=this._mercatorZfromZoom(e),s=this._mercatorZfromZoom(this._maxZoom),r=Math.max(o-i,s);this._setZoom(this._zoomFromMercatorZ(r));}get padding(){return this._edgeInsets.toJSON()}set padding(e){this._edgeInsets.equals(e)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,e,1),this._calcMatrices());}computeZoomRelativeTo(t){const i=this.rayIntersectionCoordinate(this.pointRayIntersection(this.centerPoint,t.toAltitude()));let o;o=t.z<this._camera.position[2]?[i.x,i.y,i.z]:[t.x,t.y,t.z];const s=e.ab.vec3.length(e.ab.vec3.sub([],this._camera.position,o));return e.aw(this._zoomFromMercatorZ(s),this._minZoom,this._maxZoom)}setFreeCameraOptions(t){if(!this.height)return;if(!t.position&&!t.orientation)return;this._updateCameraState();let i=!1;if(t.orientation&&!e.ab.quat.exactEquals(t.orientation,this._camera.orientation)&&(i=this._setCameraOrientation(t.orientation)),t.position){const o=[t.position.x,t.position.y,t.position.z];e.ab.vec3.exactEquals(o,this._camera.position)||(this._setCameraPosition(o),i=!0);}i&&(this._updateStateFromCamera(),this.recenterOnTerrain());}getFreeCameraOptions(){this._updateCameraState();const t=this._camera.position,i=new Hi;return i.position=new e.aa(t[0],t[1],t[2]),i.orientation=this._camera.orientation,i._elevation=this.elevation,i._renderWorldCopies=this.renderWorldCopies,i}_setCameraOrientation(t){if(!e.ab.quat.length(t))return !1;e.ab.quat.normalize(t,t);const i=e.ab.vec3.transformQuat([],[0,0,-1],t),o=e.ab.vec3.transformQuat([],[0,-1,0],t);if(o[2]<0)return !1;const s=qi(i,o);return !!s&&(this._camera.orientation=s,!0)}_setCameraPosition(t){const i=this.zoomScale(this.minZoom)*this.tileSize,o=this.zoomScale(this.maxZoom)*this.tileSize,s=this.cameraToCenterDistance;t[2]=e.aw(t[2],s/o,s/i),this._camera.position=t;}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}get fovAboveCenter(){return this._fov*(.5+this.centerOffset.y/this.height)}isPaddingEqual(e){return this._edgeInsets.equals(e)}interpolatePadding(e,t,i){this._unmodified=!1,this._edgeInsets.interpolate(e,t,i),this._constrain(),this._calcMatrices();}coveringZoomLevel(e){const t=(e.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/e.tileSize));return Math.max(0,t)}getVisibleUnwrappedCoordinates(t){const i=[new e.bQ(0,t)];if(this.renderWorldCopies){const o=this.pointCoordinate(new e.P(0,0)),s=this.pointCoordinate(new e.P(this.width,0)),r=this.pointCoordinate(new e.P(this.width,this.height)),a=this.pointCoordinate(new e.P(0,this.height)),n=Math.floor(Math.min(o.x,s.x,r.x,a.x)),l=Math.floor(Math.max(o.x,s.x,r.x,a.x)),c=1;for(let o=n-c;o<=l+c;o++)0!==o&&i.push(new e.bQ(o,t));}return i}isLODDisabled(e){return (!e||this.pitch<=60)&&this._edgeInsets.top<=this._edgeInsets.bottom&&!this._elevation&&!this.projection.isReprojectedInTileSpace}extendTileCover(t,i,o){let s=[];const r=void 0!==o,a=!r;if(a&&this.zoom<i)return s;if(r&&0===o[0]&&0===o[1])return s;const n=new Set,l=(t,i,o,r,a)=>{const l=e.c5(i,t,o,r,a);n.has(l)||(s.push(new e.aG(t,i,o,r,a)),n.add(l));};for(let e=0;e<t.length;e++){const s=t[e];if(a&&s.canonical.z!==i)continue;const n=s.canonical,c=s.overscaledZ,h=s.wrap,u=1<<n.z,d=n.x+1<u,_=n.x>0,p=n.y+1<u,f=n.y>0,m=s.wrap-(_?0:1),g=s.wrap+(d?0:1),v=_?n.x-1:u-1,y=d?n.x+1:0;if(r)o[0]<0?(l(c,g,n.z,y,n.y),o[1]<0&&p&&(l(c,h,n.z,n.x,n.y+1),l(c,g,n.z,y,n.y+1)),o[1]>0&&f&&(l(c,h,n.z,n.x,n.y-1),l(c,g,n.z,y,n.y-1))):o[0]>0?(l(c,m,n.z,v,n.y),o[1]<0&&p&&(l(c,h,n.z,n.x,n.y+1),l(c,m,n.z,v,n.y+1)),o[1]>0&&f&&(l(c,h,n.z,n.x,n.y-1),l(c,m,n.z,v,n.y-1))):o[1]<0&&p?l(c,h,n.z,n.x,n.y+1):f&&l(c,h,n.z,n.x,n.y-1);else {const e=s.visibleQuadrants;1&e&&(l(c,m,n.z,v,n.y),f&&(l(c,h,n.z,n.x,n.y-1),l(c,m,n.z,v,n.y-1))),2&e&&(l(c,g,n.z,y,n.y),f&&(l(c,h,n.z,n.x,n.y-1),l(c,g,n.z,y,n.y-1))),4&e&&(l(c,m,n.z,v,n.y),p&&(l(c,h,n.z,n.x,n.y+1),l(c,m,n.z,v,n.y+1))),8&e&&(l(c,g,n.z,y,n.y),p&&(l(c,h,n.z,n.x,n.y+1),l(c,g,n.z,y,n.y+1)));}}const c=[];for(const e of s)s.some((t=>e.isChildOf(t)))||c.push(e);if(s=c.filter((e=>!t.some((t=>!!(e.overscaledZ<i&&t.isChildOf(e))||e.equals(t)||e.isChildOf(t))))),a){const e=1<<i,t=\"globe\"===this.projection.name?this._camera.mercatorPosition:this.pointCoordinate(this.getCameraPoint()),o=[e*t.x,e*t.y],r=4,a=r*r;s=s.filter((e=>{const t=e.canonical.x+.5-o[0],i=e.canonical.y+.5-o[1];return t*t+i*i<a}));}return s}coveringTiles(t){let i=this.coveringZoomLevel(t);const o=i,s=this.elevation&&this.elevation.exaggeration(),r=s&&!t.isTerrainDEM,a=\"mercator\"===this.projection.name;if(void 0!==t.minzoom&&i<t.minzoom)return [];void 0!==t.maxzoom&&i>t.maxzoom&&(i=t.maxzoom);const n=this.locationCoordinate(this.center),l=this.center.lat,c=1<<i,h=[c*n.x,c*n.y,0],u=\"globe\"===this.projection.name,d=!u,_=e.bR.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,i,d),p=u?this._camera.mercatorPosition:this.pointCoordinate(this.getCameraPoint()),f=c*e.bH(1,this.center.lat),m=this._camera.position[2]/e.bH(1,this.center.lat),g=[c*p.x,c*p.y,m*(d?1:f)],v=u||s,y=this.cameraToCenterDistance/t.tileSize*(t.roundZoom?1:.502),x=this.isLODDisabled(!0)?i:0;let b;if(this._elevation&&t.isTerrainDEM)b=1e4*this._elevation.exaggeration();else if(this._elevation){const e=this._elevation.getMinMaxForVisibleTiles();b=e?e.max:this._centerAltitude;}else b=this._centerAltitude;const w=t.isTerrainDEM?-b:this._elevation?this._elevation.getMinElevationBelowMSL():0,T=this.projection.isReprojectedInTileSpace?e.bS(this):1,E=t=>{const i=1/4e4,o=new e.aa(t.x+i,t.y,t.z),s=new e.aa(t.x,t.y+i,t.z),r=t.toLngLat(),a=o.toLngLat(),n=s.toLngLat(),l=this.locationCoordinate(r),c=this.locationCoordinate(a),h=this.locationCoordinate(n),u=Math.hypot(c.x-l.x,c.y-l.y),d=Math.hypot(h.x-l.x,h.y-l.y);return Math.sqrt(u*d)*T/i},S=t=>{const i=b,o=w;return {aabb:e.bV(this,c,0,0,0,t,o,i,this.projection),zoom:0,x:0,y:0,minZ:o,maxZ:i,wrap:t,fullyVisible:!1}},C=[];let I=[];const R=i,D=t.reparseOverscaled?o:i,L=(m-this._centerAltitude)*f,A=e=>{if(!this._elevation||!e.tileID||!a)return;const t=this._elevation.getMinMaxForTile(e.tileID),i=e.aabb;t?(i.min[2]=t.min,i.max[2]=t.max,i.center[2]=(i.min[2]+i.max[2])/2):(e.shouldSplit=P(e),e.shouldSplit||(i.min[2]=i.max[2]=i.center[2]=this._centerAltitude));},z=(e,t)=>{if(.707*t<e)return 1;const i=t/e;return i/(1.4144271570014144+(Math.pow(1.1,i-1.4144271570014144+1)-1)/(1.1-1)-1)},P=t=>{if(t.zoom<x)return !0;if(t.zoom===R)return !1;if(null!=t.shouldSplit)return t.shouldSplit;const i=t.aabb.distanceX(g),s=t.aabb.distanceY(g);let n=L,c=1;if(u){n=t.aabb.distanceZ(g);const i=Math.pow(2,t.zoom),o=e.aS((t.y+1)/i),s=e.aS(t.y/i),r=Math.min(Math.max(l,o),s),a=e.c9(r)/e.c9(l);if(c=r===l?1/Math.max(1,this._mercatorScaleRatio-.3):Math.min(1,a/this._mercatorScaleRatio),this.zoom<=e.c6&&t.zoom===R-1&&a>=.9)return !0}else if(r&&(n=t.aabb.distanceZ(g)*f),this.projection.isReprojectedInTileSpace&&o<=5){const i=Math.pow(2,t.zoom),o=E(new e.aa((t.x+.5)/i,(t.y+.5)/i));c=o>.85?1:o;}if(!a){const e=Math.sqrt(i*i+s*s+n*n);let o=(1<<R-t.zoom)*y*c;return o*=z(Math.max(n,L),e),e<o}let d=Number.MAX_VALUE,_=0;const p=t.aabb.getCorners(),m=[];for(const t of p){e.ab.vec3.sub(m,t,g),u||(r?m[2]*=f:m[2]=L);const i=e.ab.vec3.dot(m,this._camera.forward());i<d&&(d=i,_=Math.abs(m[2]));}let v=(1<<R-t.zoom)*y*c;if(v*=z(Math.max(_,L),d),d<v)return !0;const b=t.aabb.closestPoint(h);return b[0]===h[0]&&b[1]===h[1]};if(this.renderWorldCopies)for(let e=1;e<=3;e++)C.push(S(-e)),C.push(S(e));for(C.push(S(0));C.length>0;){const o=C.pop(),s=o.x,n=o.y;let l=o.fullyVisible;const d=()=>\"globe\"===this.projection.name&&(0===o.y||o.y===(1<<o.zoom)-1);if(!l){let t=v?o.aabb.intersects(_):o.aabb.intersectsFlat(_);if(0===t&&d()){const i=new e.bT(o.zoom,s,n);t=e.bU(this,c,i,!0).intersects(_);}if(0===t)continue;l=2===t;}if(o.zoom!==R&&P(o))for(let t=0;t<4;t++){const i=(s<<1)+t%2,h=(n<<1)+(t>>1),d={aabb:a?o.aabb.quadrant(t):e.bV(this,c,o.zoom+1,i,h,o.wrap,o.minZ,o.maxZ,this.projection),zoom:o.zoom+1,x:i,y:h,wrap:o.wrap,fullyVisible:l,tileID:void 0,shouldSplit:void 0,minZ:o.minZ,maxZ:o.maxZ};r&&!u&&(d.tileID=new e.aG(o.zoom+1===R?D:o.zoom+1,o.wrap,o.zoom+1,i,h),A(d)),C.push(d);}else {const r=o.zoom===R?D:o.zoom;if(t.minzoom&&t.minzoom>r)continue;let a=0;if(!l){let i=v?o.aabb.intersectsPrecise(_):o.aabb.intersectsPreciseFlat(_);if(0===i&&d()){const t=new e.bT(o.zoom,s,n);i=e.bU(this,c,t,!0).intersectsPrecise(_);}if(0===i)continue;if(t.calculateQuadrantVisibility)if(_.containsPoint(o.aabb.center))a=15;else for(let e=0;e<4;e++)0!==o.aabb.quadrant(e).intersects(_)&&(a|=1<<e);}const u=h[0]-(.5+s+(o.wrap<<o.zoom))*(1<<i-o.zoom),p=h[1]-.5-n,f=o.tileID?o.tileID:new e.aG(r,o.wrap,o.zoom,s,n);t.calculateQuadrantVisibility&&(f.visibleQuadrants=a),I.push({tileID:f,distanceSq:u*u+p*p});}}if(this.fogCullDistSq){const i=this.fogCullDistSq,o=this.horizonLineFromTop();I=I.filter((s=>{const r=[0,0,0,1],a=[e.ag,e.ag,0,1],n=this.calculateFogTileMatrix(s.tileID.toUnwrapped());e.ab.vec4.transformMat4(r,r,n),e.ab.vec4.transformMat4(a,a,n);const l=e.ab.vec4.min([],r,a),c=e.ab.vec4.max([],r,a),h=e.bW(l,c);if(0===h)return !0;let u=!1;const d=this._elevation;if(d&&h>i&&0!==o){const i=this.calculateProjMatrix(s.tileID.toUnwrapped());let r;t.isTerrainDEM||(r=d.getMinMaxForTile(s.tileID)),r||(r={min:w,max:b});const a=e.c7(this.rotation),n=[a[0]*e.ag,a[1]*e.ag,r.max];e.ab.vec3.transformMat4(n,n,i),u=(1-n[1])*this.height*.5<o;}return h<i||u}));}return I.sort(((e,t)=>e.distanceSq-t.distanceSq)).map((e=>e.tileID))}resize(e,t){this.width=e,this.height=t,this.pixelsToGLUnits=[2/e,-2/t],this._constrain(),this._calcMatrices();}get unmodified(){return this._unmodified}zoomScale(e){return Math.pow(2,e)}scaleZoom(e){return Math.log(e)/Math.LN2}project(t){const i=e.aw(t.lat,-e.bX,e.bX),o=this.projection.project(t.lng,i);return new e.P(o.x*this.worldSize,o.y*this.worldSize)}unproject(e){return this.projection.unproject(e.x/this.worldSize,e.y/this.worldSize)}get point(){return this.project(this.center)}get pointMerc(){return this.point._div(this.worldSize)}get pixelsPerMeterRatio(){return this.pixelsPerMeter/e.bH(1,this.center.lat)/this.worldSize}setLocationAtPoint(t,i){let o,s;const r=this.centerPoint;if(\"globe\"===this.projection.name){const e=this.worldSize;o=(i.x-r.x)/e,s=(i.y-r.y)/e;}else {const e=this.pointCoordinate(i),t=this.pointCoordinate(r);o=e.x-t.x,s=e.y-t.y;}const a=this.locationCoordinate(t);this.setLocation(new e.aa(a.x-o,a.y-s));}setLocation(e){this.center=this.coordinateLocation(e),this.projection.wrap&&(this.center=this.center.wrap());}locationPoint(e){return this.projection.locationPoint(this,e)}locationPoint3D(e){return this.projection.locationPoint(this,e,!0)}pointLocation(e){return this.coordinateLocation(this.pointCoordinate(e))}pointLocation3D(e){return this.coordinateLocation(this.pointCoordinate3D(e))}locationCoordinate(t,i){const o=i?e.bH(i,t.lat):void 0,s=this.projection.project(t.lng,t.lat);return new e.aa(s.x,s.y,o)}coordinateLocation(e){return this.projection.unproject(e.x,e.y)}pointRayIntersection(t,i){const o=null!=i?i:this._centerAltitude,s=[t.x,t.y,0,1],r=[t.x,t.y,1,1];e.ab.vec4.transformMat4(s,s,this.pixelMatrixInverse),e.ab.vec4.transformMat4(r,r,this.pixelMatrixInverse);const a=r[3];e.ab.vec4.scale(s,s,1/s[3]),e.ab.vec4.scale(r,r,1/a);const n=s[2],l=r[2];return {p0:s,p1:r,t:n===l?0:(o-n)/(l-n)}}screenPointToMercatorRay(t){const i=[t.x,t.y,0,1],o=[t.x,t.y,1,1];return e.ab.vec4.transformMat4(i,i,this.pixelMatrixInverse),e.ab.vec4.transformMat4(o,o,this.pixelMatrixInverse),e.ab.vec4.scale(i,i,1/i[3]),e.ab.vec4.scale(o,o,1/o[3]),i[2]=e.bH(i[2],this._center.lat)*this.worldSize,o[2]=e.bH(o[2],this._center.lat)*this.worldSize,e.ab.vec4.scale(i,i,1/this.worldSize),e.ab.vec4.scale(o,o,1/this.worldSize),new e.aq([i[0],i[1],i[2]],e.ab.vec3.normalize([],e.ab.vec3.sub([],o,i)))}rayIntersectionCoordinate(t){const{p0:i,p1:o,t:s}=t,r=e.bH(i[2],this._center.lat),a=e.bH(o[2],this._center.lat);return new e.aa(e.af(i[0],o[0],s)/this.worldSize,e.af(i[1],o[1],s)/this.worldSize,e.af(r,a,s))}pointCoordinate(e,t=this._centerAltitude){return this.projection.pointCoordinate(this,e.x,e.y,t)}pointCoordinate3D(t){if(!this.elevation)return this.pointCoordinate(t);let i=this.projection.pointCoordinate3D(this,t.x,t.y);if(i)return new e.aa(i[0],i[1],i[2]);let o=0,s=this.horizonLineFromTop();if(t.y>s)return this.pointCoordinate(t);const r=.02*s,a=t.clone();for(let t=0;t<10&&s-o>r;t++){a.y=e.af(o,s,.66);const t=this.projection.pointCoordinate3D(this,a.x,a.y);t?(s=a.y,i=t):o=a.y;}return i?new e.aa(i[0],i[1],i[2]):this.pointCoordinate(t)}isPointAboveHorizon(e){return this.projection.isPointAboveHorizon(this,e)}isPointOnSurface(t){if(t.y<0||t.y>this.height||t.x<0||t.x>this.width)return !1;if(this.elevation||this.zoom>=e.bY)return !this.isPointAboveHorizon(t);const i=this.pointCoordinate(t);return i.y>=0&&i.y<=1}_coordinatePoint(t,i){const o=i&&this.elevation?this.elevation.getAtPointOrZero(t,this._centerAltitude):this._centerAltitude,s=[t.x*this.worldSize,t.y*this.worldSize,o+t.toAltitude(),1];return e.ab.vec4.transformMat4(s,s,this.pixelMatrix),s[3]>0?new e.P(s[0]/s[3],s[1]/s[3]):new e.P(Number.MAX_VALUE,Number.MAX_VALUE)}_getBoundsNonRectangular(){const{top:t,left:i}=this._edgeInsets,o=this.height-this._edgeInsets.bottom,s=this.width-this._edgeInsets.right,r=this.pointLocation3D(new e.P(i,t)),a=this.pointLocation3D(new e.P(s,t)),n=this.pointLocation3D(new e.P(s,o)),l=this.pointLocation3D(new e.P(i,o));let c=Math.min(r.lng,a.lng,n.lng,l.lng),h=Math.max(r.lng,a.lng,n.lng,l.lng),u=Math.min(r.lat,a.lat,n.lat,l.lat),d=Math.max(r.lat,a.lat,n.lat,l.lat);const _=Math.pow(2,-this.zoom)/16*270,p=\"globe\"===this.projection.name?1:4,f=(t,i,o,s,r)=>{const a=(t+o)/2,n=(i+s)/2,l=new e.P(a,n),{lng:m,lat:g}=this.pointLocation3D(l),v=Math.max(0,c-m,u-g,m-h,g-d);c=Math.min(c,m),h=Math.max(h,m),u=Math.min(u,g),d=Math.max(d,g),(r<p||v>_)&&(f(t,i,a,n,r+1),f(a,n,o,s,r+1));};if(f(i,t,s,t,1),f(s,t,s,o,1),f(s,o,i,o,1),f(i,o,i,t,1),\"globe\"===this.projection.name){const[t,i]=e.bZ(this);t?(d=90,h=180,c=-180):i&&(u=-90,h=180,c=-180);}return new e.az(new e.bO(c,u),new e.bO(h,d))}_getBoundsRectangular(t,i){const{top:o,left:s}=this._edgeInsets,r=this.height-this._edgeInsets.bottom,a=this.width-this._edgeInsets.right,n=new e.P(s,o),l=new e.P(a,o),c=new e.P(a,r),h=new e.P(s,r);let u=this.pointCoordinate(n,t),d=this.pointCoordinate(l,t);const _=this.pointCoordinate(c,i),p=this.pointCoordinate(h,i),f=(e,t)=>(t.y-e.y)/(t.x-e.x);return u.y>1&&d.y>=0?u=new e.aa((1-p.y)/f(p,u)+p.x,1):u.y<0&&d.y<=1&&(u=new e.aa(-p.y/f(p,u)+p.x,0)),d.y>1&&u.y>=0?d=new e.aa((1-_.y)/f(_,d)+_.x,1):d.y<0&&u.y<=1&&(d=new e.aa(-_.y/f(_,d)+_.x,0)),(new e.az).extend(this.coordinateLocation(u)).extend(this.coordinateLocation(d)).extend(this.coordinateLocation(p)).extend(this.coordinateLocation(_))}_getBoundsRectangularTerrain(){const e=this.elevation;if(!e.visibleDemTiles.length||e.isUsingMockSource())return this._getBoundsRectangular(0,0);const t=e.visibleDemTiles.reduce(((e,t)=>{if(t.dem){const i=t.dem.tree;e.min=Math.min(e.min,i.minimums[0]),e.max=Math.max(e.max,i.maximums[0]);}return e}),{min:Number.MAX_VALUE,max:0});return this._getBoundsRectangular(t.min*e.exaggeration(),t.max*e.exaggeration())}getBounds(){return \"mercator\"===this.projection.name||\"equirectangular\"===this.projection.name?this._terrainEnabled()?this._getBoundsRectangularTerrain():this._getBoundsRectangular(0,0):this._getBoundsNonRectangular()}horizonLineFromTop(e=!0){const t=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))-this.centerOffset.y,i=this.height/2-t*(1-this._horizonShift);return e?Math.max(0,i):i}getMaxBounds(){return this.maxBounds}setMaxBounds(t){this.maxBounds=t,this.minLat=-e.bX,this.maxLat=e.bX,this.minLng=-180,this.maxLng=180,t&&(this.minLat=t.getSouth(),this.maxLat=t.getNorth(),this.minLng=t.getWest(),this.maxLng=t.getEast(),this.maxLng<this.minLng&&(this.maxLng+=360)),this.worldMinX=e.at(this.minLng)*this.tileSize,this.worldMaxX=e.at(this.maxLng)*this.tileSize,this.worldMinY=e.aA(this.maxLat)*this.tileSize,this.worldMaxY=e.aA(this.minLat)*this.tileSize,this._constrain();}calculatePosMatrix(e,t){return this.projection.createTileMatrix(this,t,e)}calculateDistanceTileData(t){const i=t.key,o=this._distanceTileDataCache;if(o[i])return o[i];const s=t.canonical,r=1/this.height,a=this.cameraWorldSize,n=a/this.zoomScale(s.z),l=(s.x+Math.pow(2,s.z)*t.wrap)*n,c=s.y*n,h=this.point;h.x*=a/this.worldSize,h.y*=a/this.worldSize;const u=this.angle,d=Math.sin(-u),_=-Math.cos(-u);return o[i]={bearing:[d,_],center:[(h.x-l)*r,(h.y-c)*r],scale:n/e.ag*r},o[i]}calculateFogTileMatrix(t){const i=t.key,o=this._fogTileMatrixCache;if(o[i])return o[i];const s=this.projection.createTileMatrix(this,this.cameraWorldSizeForFog,t);return e.ab.mat4.multiply(s,this.worldToFogMatrix,s),o[i]=new Float32Array(s),o[i]}calculateProjMatrix(t,i=!1,o=!1){const s=t.key;let r;if(r=o?this._expandedProjMatrixCache:i?this._alignedProjMatrixCache:this._projMatrixCache,r[s])return r[s];const a=this.calculatePosMatrix(t,this.worldSize);let n;return n=this.projection.isReprojectedInTileSpace?this.mercatorMatrix:o?this.expandedFarZProjMatrix:i?this.alignedProjMatrix:this.projMatrix,e.ab.mat4.multiply(a,n,a),r[s]=new Float32Array(a),r[s]}calculatePixelsToTileUnitsMatrix(t){const i=t.tileID.key,o=this._pixelsToTileUnitsCache;if(o[i])return o[i];const s=e.b_(t,this);return o[i]=s,o[i]}customLayerMatrix(){return this.mercatorMatrix.slice()}globeToMercatorMatrix(){if(\"globe\"===this.projection.name){const t=1/this.worldSize,i=e.ab.mat4.fromScaling([],[t,t,t]);return e.ab.mat4.multiply(i,i,this.globeMatrix),i}}recenterOnTerrain(){if(!this._elevation||\"globe\"===this.projection.name)return;const t=this._elevation;this._updateCameraState();const i=e.bH(1,this._center.lat)*this.worldSize,o=this._computeCameraPosition(i),s=this._camera.forward(),r=e.bH(1,this._center.lat);o[2]/=r,s[2]/=r,e.ab.vec3.normalize(s,s);const a=t.raycast(o,s,t.exaggeration());if(a){const t=e.ab.vec3.scaleAndAdd([],o,s,a),i=new e.aa(t[0],t[1],e.bH(t[2],e.aS(t[1]))),n=(i.z+e.ab.vec3.length([i.x-o[0],i.y-o[1],i.z-o[2]*r]))*this._pixelsPerMercatorPixel;this._seaLevelZoom=this._zoomFromMercatorZ(n),this._centerAltitude=i.toAltitude(),this._center=this.coordinateLocation(i),this._updateZoomFromElevation(),this._constrain(),this._calcMatrices();}}_constrainCamera(t=!1){if(!this._elevation)return;const i=this._elevation,o=e.bH(1,this._center.lat)*this.worldSize,s=this._computeCameraPosition(o),r=i.getAtPointOrZero(new e.aa(...s)),a=this.pixelsPerMeter/this.worldSize*r,n=this._minimumHeightOverTerrain(),l=s[2]-a;if(l<=n)if(l<0||t){const t=this.locationCoordinate(this._center,this._centerAltitude),i=[s[0],s[1],t.z-s[2]],o=e.ab.vec3.length(i);i[2]-=(n-l)/this._pixelsPerMercatorPixel;const r=e.ab.vec3.length(i);if(0===r)return;e.ab.vec3.scale(i,i,o/r*this._pixelsPerMercatorPixel),this._camera.position=[s[0],s[1],t.z*this._pixelsPerMercatorPixel-i[2]],this._updateStateFromCamera();}else this._isCameraConstrained=!0;}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;const t=\"globe\"===this.projection.name||this.mercatorFromTransition;if(this.projection.isReprojectedInTileSpace||t){const i=this.center;return i.lat=e.aw(i.lat,this.minLat,this.maxLat),(this.maxBounds||!this.renderWorldCopies&&!t)&&(i.lng=e.aw(i.lng,this.minLng,this.maxLng)),this.center=i,void(this._constraining=!1)}const i=this._unmodified,{x:o,y:s}=this.point;let r=0,a=o,n=s;const l=this.width/2,c=this.height/2,h=this.worldMinY*this.scale,u=this.worldMaxY*this.scale;if(s-c<h&&(n=h+c),s+c>u&&(n=u-c),u-h<this.height&&(r=Math.max(r,this.height/(u-h)),n=(u+h)/2),this.maxBounds||!this._renderWorldCopies||!this.projection.wrap){const e=this.worldMinX*this.scale,t=this.worldMaxX*this.scale,i=this.worldSize/2-(e+t)/2;a=(o+i+this.worldSize)%this.worldSize-i,a-l<e&&(a=e+l),a+l>t&&(a=t-l),t-e<this.width&&(r=Math.max(r,this.width/(t-e)),a=(t+e)/2);}a===o&&n===s||(this.center=this.unproject(new e.P(a,n))),r&&(this.zoom+=this.scaleZoom(r)),this._constrainCamera(),this._unmodified=i,this._constraining=!1;}_minZoomForBounds(){let e=Math.max(0,this.scaleZoom(this.height/(this.worldMaxY-this.worldMinY)));return this.maxBounds&&(e=Math.max(e,this.scaleZoom(this.width/(this.worldMaxX-this.worldMinX)))),e}_maxCameraBoundsDistance(){return this._mercatorZfromZoom(this._minZoomForBounds())}_calcMatrices(){if(!this.height)return;const t=this.centerOffset,i=\"globe\"===this.projection.name,o=this.pixelsPerMeter;\"globe\"===this.projection.name&&(this._mercatorScaleRatio=e.bH(1,this.center.lat)/e.bH(1,e.c8));const s=e.b$(this.projection,this.zoom,this.width,this.height,1024);this._pixelsPerMercatorPixel=this.projection.pixelSpaceConversion(this.center.lat,this.worldSize,s),this.cameraToCenterDistance=.5/Math.tan(.5*this._fov)*this.height*this._pixelsPerMercatorPixel,this._updateCameraState(),this._farZ=this.projection.farthestPixelDistance(this),this._nearZ=this.height/50;const r=\"meters\"===this.projection.zAxisUnit?o:1,a=this._camera.getWorldToCamera(this.worldSize,r);let n;const l=this._camera.getCameraToClipPerspective(this._fov,this.width/this.height,this._nearZ,this._farZ);if(l[8]=2*-t.x/this.width,l[9]=2*t.y/this.height,this.isOrthographic){let e=.5*this.height/Math.tan(this._fov/2)*1*Math.tan(.5*this._fov),i=e*this.aspect,o=-i,s=-e;i-=t.x,o-=t.x,e+=t.y,s+=t.y,n=this._camera.getCameraToClipOrthographic(o,i,s,e,this._nearZ,this._farZ),((e,t,i,o)=>{for(let s=0;s<16;s++)e[s]=Xi(t[s],i[s],o);})(n,n,l,Ki(this.pitch>=15?1:this.pitch/15));}else n=l;const c=e.ab.mat4.mul([],l,a);let h=e.ab.mat4.mul([],n,a);if(this.projection.isReprojectedInTileSpace){const t=this.locationCoordinate(this.center),i=e.ab.mat4.identity([]);e.ab.mat4.translate(i,i,[t.x*this.worldSize,t.y*this.worldSize,0]),e.ab.mat4.multiply(i,i,e.c0(this)),e.ab.mat4.translate(i,i,[-t.x*this.worldSize,-t.y*this.worldSize,0]),e.ab.mat4.multiply(h,h,i),e.ab.mat4.multiply(c,c,i),this.inverseAdjustmentMatrix=e.c1(this);}else this.inverseAdjustmentMatrix=[1,0,0,1];if(this.mercatorMatrix=e.ab.mat4.scale([],h,[this.worldSize,this.worldSize,this.worldSize/r,1]),this.projMatrix=h,this.invProjMatrix=e.ab.mat4.invert(new Float64Array(16),this.projMatrix),i){const i=this._camera.getCameraToClipPerspective(this._fov,this.width/this.height,this._nearZ,1/0);i[8]=2*-t.x/this.width,i[9]=2*t.y/this.height,this.expandedFarZProjMatrix=e.ab.mat4.mul([],i,a);}else this.expandedFarZProjMatrix=this.projMatrix;const u=e.ab.mat4.invert([],n);this.frustumCorners=e.c2.fromInvProjectionMatrix(u,this.horizonLineFromTop(),this.height),this.cameraFrustum=e.bR.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,0,!i);const d=new Float32Array(16);e.ab.mat4.identity(d),e.ab.mat4.scale(d,d,[1,-1,1]),e.ab.mat4.rotateX(d,d,this._pitch),e.ab.mat4.rotateZ(d,d,this.angle);const _=e.ab.mat4.perspective(new Float32Array(16),this._fov,this.width/this.height,this._nearZ,this._farZ);this.starsProjMatrix=e.ab.mat4.clone(_);const p=(Math.PI/2-this._pitch)*(this.height/this._fov)*this._horizonShift;_[8]=2*-t.x/this.width,_[9]=2*(t.y+p)/this.height,this.skyboxMatrix=e.ab.mat4.multiply(d,_,d);const f=this.point,m=f.x,g=f.y,v=this.width%2/2,y=this.height%2/2,x=Math.cos(this.angle),b=Math.sin(this.angle),w=m-Math.round(m)+x*v+b*y,T=g-Math.round(g)+x*y+b*v,E=new Float64Array(h);if(e.ab.mat4.translate(E,E,[w>.5?w-1:w,T>.5?T-1:T,0]),this.alignedProjMatrix=E,h=e.ab.mat4.create(),e.ab.mat4.scale(h,h,[this.width/2,-this.height/2,1]),e.ab.mat4.translate(h,h,[1,-1,0]),this.labelPlaneMatrix=h,h=e.ab.mat4.create(),e.ab.mat4.scale(h,h,[1,-1,1]),e.ab.mat4.translate(h,h,[-1,-1,0]),e.ab.mat4.scale(h,h,[2/this.width,2/this.height,1]),this.glCoordMatrix=h,this.pixelMatrix=e.ab.mat4.multiply(new Float64Array(16),this.labelPlaneMatrix,c),this._calcFogMatrices(),this._distanceTileDataCache={},h=e.ab.mat4.invert(new Float64Array(16),this.pixelMatrix),!h)throw new Error(\"failed to invert matrix\");if(this.pixelMatrixInverse=h,\"globe\"===this.projection.name||this.mercatorFromTransition){this.globeMatrix=e.c3(this);const t=[this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]];this.globeCenterInViewSpace=e.ab.vec3.transformMat4(t,t,a),this.globeRadius=this.worldSize/2/Math.PI-1;}else this.globeMatrix=h;this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={},this._expandedProjMatrixCache={};}_calcFogMatrices(){this._fogTileMatrixCache={};const t=this.cameraWorldSizeForFog,i=this.cameraPixelsPerMeter,o=this._camera.position,s=1/this.height/this._pixelsPerMercatorPixel,r=[t,t,i];e.ab.vec3.scale(r,r,s),e.ab.vec3.scale(o,o,-1),e.ab.vec3.multiply(o,o,r);const a=e.ab.mat4.create();e.ab.mat4.translate(a,a,o),e.ab.mat4.scale(a,a,r),this.mercatorFogMatrix=a,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(t,i,s);}_computeCameraPosition(e){const t=(e=e||this.pixelsPerMeter)/this.pixelsPerMeter,i=this._camera.forward(),o=this.point,s=this._mercatorZfromZoom(this._seaLevelZoom?this._seaLevelZoom:this._zoom)*t-e/this.worldSize*this._centerAltitude;return [o.x/this.worldSize-i[0]*s,o.y/this.worldSize-i[1]*s,e/this.worldSize*this._centerAltitude-i[2]*s]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition());}_translateCameraConstrained(t){const i=this._maxCameraBoundsDistance()*Math.cos(this._pitch),o=this._camera.position[2],s=t[2];let r=1;this.projection.wrap&&(this.center=this.center.wrap()),s>0&&(r=Math.min((i-o)/s,1)),this._camera.position=e.ab.vec3.scaleAndAdd([],this._camera.position,t,r),this._updateStateFromCamera();}_updateStateFromCamera(){const t=this._camera.position,i=this._camera.forward(),{pitch:o,bearing:s}=this._camera.getPitchBearing(),r=e.bH(this._centerAltitude,this.center.lat)*this._pixelsPerMercatorPixel,a=this._mercatorZfromZoom(this._maxZoom)*Math.cos(e.ai(this._maxPitch)),n=Math.max((t[2]-r)/Math.cos(o),a),l=this._zoomFromMercatorZ(n);e.ab.vec3.scaleAndAdd(t,t,i,n),this._pitch=e.aw(o,e.ai(this.minPitch),e.ai(this.maxPitch)),this.angle=e.bF(s,-Math.PI,Math.PI),this._setZoom(e.aw(l,this._minZoom,this._maxZoom)),this._updateSeaLevelZoom(),this._center=this.coordinateLocation(new e.aa(t[0],t[1],t[2])),this._unmodified=!1,this._constrain(),this._calcMatrices();}_worldSizeFromZoom(e){return Math.pow(2,e)*this.tileSize}_mercatorZfromZoom(e){return this.cameraToCenterDistance/this._worldSizeFromZoom(e)}_minimumHeightOverTerrain(){const e=Math.min(null!=this._seaLevelZoom?this._seaLevelZoom:this._zoom,this._maxZoom)+4;return this._mercatorZfromZoom(e)}_zoomFromMercatorZ(e){return this.scaleZoom(this.cameraToCenterDistance/(e*this.tileSize))}zoomFromMercatorZAdjusted(t){let i=0,o=e.bY,s=0,r=1/0;for(;o-i>1e-6&&o>i;){const e=i+.5*(o-i),a=this.tileSize*Math.pow(2,e),n=this.getCameraToCenterDistance(this.projection,e,a),l=this.scaleZoom(n/(t*this.tileSize)),c=Math.abs(e-l);c<r&&(r=c,s=e),e<l?i=e:o=e;}return s}_terrainEnabled(){return !(!this._elevation||!this.projection.supportsTerrain&&(e.w(\"Terrain is not yet supported with alternate projections. Use mercator or globe to enable terrain.\"),1))}anyCornerOffEdge(t,i){const o=Math.min(t.x,i.x),s=Math.max(t.x,i.x),r=Math.min(t.y,i.y),a=Math.max(t.y,i.y);if(r<this.horizonLineFromTop(!1))return !0;if(\"mercator\"!==this.projection.name)return !1;const n=[new e.P(o,r),new e.P(s,a),new e.P(o,a),new e.P(s,r)],l=this.renderWorldCopies?-3:0,c=this.renderWorldCopies?4:1;for(const e of n){const t=this.pointRayIntersection(e);if(t.t<0)return !0;const i=this.rayIntersectionCoordinate(t);if(i.x<l||i.y<0||i.x>c||i.y>1)return !0}return !1}isHorizonVisible(){return this.pitch+e.c4(this.fovAboveCenter)>88||this.anyCornerOffEdge(new e.P(0,0),new e.P(this.width,this.height))}zoomDeltaToMovement(t,i){const o=e.ab.vec3.length(e.ab.vec3.sub([],this._camera.position,t)),s=this._zoomFromMercatorZ(o)+i;return o-this._mercatorZfromZoom(s)}getCameraPoint(){if(\"globe\"===this.projection.name){const t=function([t,i,o],s){const r=[t,i,o,1];e.ab.vec4.transformMat4(r,r,s);const a=r[3]=Math.max(r[3],1e-6);return r[0]/=a,r[1]/=a,r[2]/=a,r}([this.globeMatrix[12],this.globeMatrix[13],this.globeMatrix[14]],this.pixelMatrix);return new e.P(t[0],t[1])}{const t=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new e.P(0,t))}}getCameraToCenterDistance(t,i=this.zoom,o=this.worldSize){const s=e.b$(t,i,this.width,this.height,1024),r=t.pixelSpaceConversion(this.center.lat,o,s);let a=.5/Math.tan(.5*this._fov)*this.height*r;return this.isOrthographic&&(a=Xi(1,a,Ki(this.pitch>=15?1:this.pitch/15))),a}getWorldToCameraMatrix(){const t=this._camera.getWorldToCamera(this.worldSize,\"meters\"===this.projection.zAxisUnit?this.pixelsPerMeter:1);return \"globe\"===this.projection.name&&e.ab.mat4.multiply(t,t,this.globeMatrix),t}getFrustum(t){return e.bR.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,t,\"meters\"===this.projection.zAxisUnit)}}const Ji=(t,i)=>{if(i>0&&t.terrain&&e.w(\"Cutoff is currently disabled on terrain\"),i<=0||t.terrain)return {shouldRenderCutoff:!1,uniformValues:{u_cutoff_params:[0,0,0,1]}};const o=t.transform,s=Math.max(Math.abs(o._zoom-(t.minCutoffZoom-1)),1),r=o.isLODDisabled(!1)?e.ac(60,45,o.pitch):e.ac(30,15,o.pitch),a=o._farZ-o._nearZ,n=i*o.height,l=((1-(c=r))*o.cameraToCenterDistance+c*(o._farZ+n))*s;var c;return {shouldRenderCutoff:r<1,uniformValues:{u_cutoff_params:[o._nearZ,o._farZ,(l-o._nearZ)/a,(l-n-o._nearZ)/a]}}},Qi={cascadeCount:2,normalOffset:3,shadowMapResolution:2048};class eo{constructor(e,t){this.aabb=e,this.lastCascade=t;}}class to{add(e,t){const i=this.receivers[e.key];void 0!==i?(i.aabb.min[0]=Math.min(i.aabb.min[0],t.min[0]),i.aabb.min[1]=Math.min(i.aabb.min[1],t.min[1]),i.aabb.min[2]=Math.min(i.aabb.min[2],t.min[2]),i.aabb.max[0]=Math.max(i.aabb.max[0],t.max[0]),i.aabb.max[1]=Math.max(i.aabb.max[1],t.max[1]),i.aabb.max[2]=Math.max(i.aabb.max[2],t.max[2])):this.receivers[e.key]=new eo(t,null);}clear(){this.receivers={};}get(e){return this.receivers[e.key]}computeRequiredCascades(t,i,o){const s=e.cd.fromPoints(t.points);let r=0;for(const t in this.receivers){const a=this.receivers[t];if(!a)continue;if(!s.intersectsAabb(a.aabb))continue;a.aabb.min=s.closestPoint(a.aabb.min),a.aabb.max=s.closestPoint(a.aabb.max);const n=a.aabb.getCorners();for(let t=0;t<o.length;t++){let s=!0;for(const r of n){const a=[r[0]*i,r[1]*i,r[2]];if(e.ab.vec3.transformMat4(a,a,o[t].matrix),a[0]<-1||a[0]>1||a[1]<-1||a[1]>1){s=!1;break}}if(a.lastCascade=t,r=Math.max(r,t),s)break}}return r+1}}class io{constructor(e){this.painter=e,this._enabled=!1,this._shadowLayerCount=0,this._numCascadesToRender=0,this._cascades=[],this._groundShadowTiles=[],this._receivers=new to,this._depthMode=new Fi(e.context.gl.LEQUAL,Fi.ReadWrite,[0,1]),this._uniformValues={u_light_matrix_0:new Float32Array(16),u_light_matrix_1:new Float32Array(16),u_shadow_intensity:0,u_fade_range:[0,0],u_shadow_normal_offset:[1,1,1],u_shadow_texel_size:1,u_shadow_map_resolution:1,u_shadow_direction:[0,0,1],u_shadow_bias:[36e-5,.0012,.012],u_shadowmap_0:0,u_shadowmap_1:0},this._forceDisable=!1,this.useNormalOffset=!1,e.tp.registerParameter(this,[\"Shadows\"],\"_forceDisable\",{label:\"forceDisable\"},(()=>{this.painter.style.map.triggerRepaint();})),e.tp.registerParameter(Qi,[\"Shadows\"],\"cascadeCount\",{min:1,max:2,step:1}),e.tp.registerParameter(Qi,[\"Shadows\"],\"normalOffset\",{min:0,max:10,step:.05}),e.tp.registerParameter(Qi,[\"Shadows\"],\"shadowMapResolution\",{min:32,max:2048,step:32}),e.tp.registerBinding(this,[\"Shadows\"],\"_numCascadesToRender\",{readonly:!0,label:\"numCascadesToRender\"});}destroy(){for(const e of this._cascades)e.texture.destroy(),e.framebuffer.destroy();this._cascades=[];}updateShadowParameters(t,i){const o=this.painter;if(this._enabled=!1,this._shadowLayerCount=0,this._receivers.clear(),!i||!i.properties)return;const s=i.properties.get(\"shadow-intensity\");if(!i.shadowsEnabled()||s<=0)return;if(this._shadowLayerCount=o.style.order.reduce(((e,i)=>{const s=o.style._mergedLayers[i];return e+(s.hasShadowPass()&&!s.isHidden(t.zoom)?1:0)}),0),this._enabled=this._shadowLayerCount>0,!this.enabled)return;const r=o.context,a=Qi.shadowMapResolution,n=Qi.shadowMapResolution;if(0===this._cascades.length||Qi.shadowMapResolution!==this._cascades[0].texture.size[0]){this._cascades=[];for(let t=0;t<Qi.cascadeCount;++t){const t=o._shadowMapDebug,i=r.gl,s=r.createFramebuffer(a,n,t,\"texture\"),l=new e.T(r,{width:a,height:n,data:null},i.DEPTH_COMPONENT16);if(s.depthAttachment.set(l.texture),t){const t=new e.T(r,{width:a,height:n,data:null},i.RGBA8);s.colorAttachment.set(t.texture);}this._cascades.push({framebuffer:s,texture:l,matrix:[],far:0,boundingSphereRadius:0,frustum:new e.bR,scale:0});}}this.shadowDirection=so(i);let l=0;if(t.elevation){const e=t.elevation,i=[1e4,-1e4];e.visibleDemTiles.filter((e=>e.dem)).forEach((e=>{const t=e.dem.tree;i[0]=Math.min(i[0],t.minimums[0]),i[1]=Math.max(i[1],t.maximums[0]);})),1e4!==i[0]&&(l=(i[1]-i[0])*e.exaggeration());}const c=1.5*t.cameraToCenterDistance,h=3*c,u=new Float64Array(16);for(let i=0;i<this._cascades.length;++i){const o=this._cascades[i];let s=t.height/50,r=1;1===Qi.cascadeCount?r=h:0===i?r=c:(s=c,r=h);const[a,n]=ao(t,this.shadowDirection,s,r,Qi.shadowMapResolution,l);o.scale=t.scale,o.matrix=a,o.boundingSphereRadius=n,e.ab.mat4.invert(u,o.matrix),o.frustum=e.bR.fromInvProjectionMatrix(u,1,0,!0),o.far=r;}const d=this._cascades.length-1;this._uniformValues.u_fade_range=[.75*this._cascades[d].far,this._cascades[d].far],this._uniformValues.u_shadow_intensity=s,this._uniformValues.u_shadow_direction=[this.shadowDirection[0],this.shadowDirection[1],this.shadowDirection[2]],this._uniformValues.u_shadow_texel_size=1/Qi.shadowMapResolution,this._uniformValues.u_shadow_map_resolution=Qi.shadowMapResolution,this._uniformValues.u_shadowmap_0=Wi.ShadowMap0,this._uniformValues.u_shadowmap_1=Wi.ShadowMap0+1,this._groundShadowTiles=o.transform.coveringTiles({tileSize:512,renderWorldCopies:!0});const _=o.transform.elevation;for(const e of this._groundShadowTiles){let t={min:0,max:0};if(_){const i=_.getMinMaxForTile(e);i&&(t=i);}this.addShadowReceiver(e.toUnwrapped(),t.min,t.max);}}get enabled(){return this._enabled&&!this._forceDisable}set enabled(e){this._enabled=e;}drawShadowPass(t,i){if(!this.enabled)return;const o=this.painter,s=o.context;this._numCascadesToRender=this._receivers.computeRequiredCascades(o.transform.getFrustum(0),o.transform.worldSize,this._cascades),s.viewport.set([0,0,Qi.shadowMapResolution,Qi.shadowMapResolution]);for(let r=0;r<this._numCascadesToRender;++r){o.currentShadowCascade=r,s.bindFramebuffer.set(this._cascades[r].framebuffer.framebuffer),s.clear({color:e.aj.white,depth:1});for(const e of t.order){const s=t._mergedLayers[e];if(!s.hasShadowPass()||s.isHidden(o.transform.zoom))continue;const r=t.getLayerSourceCache(s),a=r?i[r.id]:void 0;(\"model\"===s.type||a&&a.length)&&o.renderLayer(o,r,s,a);}}o.currentShadowCascade=0;}drawGroundShadows(){if(!this.enabled)return;const e=this.painter,t=e.style,i=e.context,o=t.directionalLight,s=t.ambientLight;if(!o||!s)return;const r=[],a=Ji(e,e.longestCutoffRange);a.shouldRenderCutoff&&r.push(\"RENDER_CUTOFF\"),r.push(\"RENDER_SHADOWS\",\"DEPTH_TEXTURE\"),this.useNormalOffset&&r.push(\"NORMAL_OFFSET\");const n=ro(t,o,s),l=new Fi(i.gl.LEQUAL,Fi.ReadOnly,e.depthRangeFor3D);for(const t of this._groundShadowTiles){const o=t.toUnwrapped(),s=e.isTileAffectedByFog(t),c=e.getOrCreateProgram(\"groundShadow\",{defines:r,overrideFog:s});this.setupShadows(o,c),e.uploadCommonUniforms(i,c,o,null,a);const h={u_matrix:e.transform.calculateProjMatrix(o),u_ground_shadow_factor:n};c.draw(e,i.gl.TRIANGLES,l,Bi.disabled,Oi.multiply,Gi.disabled,h,\"ground_shadow\",e.tileExtentBuffer,e.quadTriangleIndexBuffer,e.tileExtentSegments,{},e.transform.zoom,null,null);}}getShadowPassColorMode(){return this.painter._shadowMapDebug?Oi.unblended:Oi.disabled}getShadowPassDepthMode(){return this._depthMode}getShadowCastingLayerCount(){return this._shadowLayerCount}calculateShadowPassMatrixFromTile(t){const i=this.painter.transform,o=i.calculatePosMatrix(t,i.worldSize);return e.ab.mat4.multiply(o,this._cascades[this.painter.currentShadowCascade].matrix,o),Float32Array.from(o)}calculateShadowPassMatrixFromMatrix(t){return e.ab.mat4.multiply(t,this._cascades[this.painter.currentShadowCascade].matrix,t),Float32Array.from(t)}setupShadows(t,i,o,s=0){if(!this.enabled)return;const r=this.painter.transform,a=this.painter.context,n=a.gl,l=this._uniformValues,c=new Float64Array(16),h=r.calculatePosMatrix(t,r.worldSize);for(let t=0;t<this._cascades.length;t++)e.ab.mat4.multiply(c,this._cascades[t].matrix,h),l[0===t?\"u_light_matrix_0\":\"u_light_matrix_1\"]=Float32Array.from(c),a.activeTexture.set(n.TEXTURE0+Wi.ShadowMap0+t),this._cascades[t].texture.bind(n.NEAREST,n.CLAMP_TO_EDGE);if(this.useNormalOffset=!!o,this.useNormalOffset){const i=e.cc(t.canonical),a=2/r.tileSize*e.ag/Qi.shadowMapResolution,n=a*this._cascades[0].boundingSphereRadius,c=a*this._cascades[this._cascades.length-1].boundingSphereRadius,h=(\"vector-tile\"===o?1:3)/Math.pow(2,s-t.canonical.z-(1-r.zoom+Math.floor(r.zoom)));l.u_shadow_normal_offset=[i,n*h,c*h],l.u_shadow_bias=[6e-5,.0012,.012];}else l.u_shadow_bias=[36e-5,.0012,.012];i.setShadowUniformValues(a,l);}setupShadowsFromMatrix(t,i,o=!1){if(!this.enabled)return;const s=this.painter.context,r=s.gl,a=this._uniformValues,n=new Float64Array(16);for(let i=0;i<Qi.cascadeCount;i++)e.ab.mat4.multiply(n,this._cascades[i].matrix,t),a[0===i?\"u_light_matrix_0\":\"u_light_matrix_1\"]=Float32Array.from(n),s.activeTexture.set(r.TEXTURE0+Wi.ShadowMap0+i),this._cascades[i].texture.bind(r.NEAREST,r.CLAMP_TO_EDGE);if(this.useNormalOffset=o,o){const e=Qi.normalOffset;a.u_shadow_normal_offset=[1,e,e],a.u_shadow_bias=[6e-5,.0012,.012];}else a.u_shadow_bias=[36e-5,.0012,.012];i.setShadowUniformValues(s,a);}getShadowUniformValues(){return this._uniformValues}getCurrentCascadeFrustum(){return this._cascades[this.painter.currentShadowCascade].frustum}computeSimplifiedTileShadowVolume(t,i,o,s){if(s[2]>=0)return {};const r=function(t,i,o){const s=o/(1<<t.canonical.z);return new e.cd([t.canonical.x*s+t.wrap*o,t.canonical.y*s+t.wrap*o,0],[(t.canonical.x+1)*s+t.wrap*o,(t.canonical.y+1)*s+t.wrap*o,i])}(t,i,o).getCorners(),a=i/-s[2];s[0]<0?(e.ab.vec3.add(r[0],r[0],[s[0]*a,0,0]),e.ab.vec3.add(r[3],r[3],[s[0]*a,0,0])):s[0]>0&&(e.ab.vec3.add(r[1],r[1],[s[0]*a,0,0]),e.ab.vec3.add(r[2],r[2],[s[0]*a,0,0])),s[1]<0?(e.ab.vec3.add(r[0],r[0],[0,s[1]*a,0]),e.ab.vec3.add(r[1],r[1],[0,s[1]*a,0])):s[1]>0&&(e.ab.vec3.add(r[2],r[2],[0,s[1]*a,0]),e.ab.vec3.add(r[3],r[3],[0,s[1]*a,0]));const n={};return n.vertices=r,n.planes=[oo(r[1],r[0],r[4]),oo(r[2],r[1],r[5]),oo(r[3],r[2],r[6]),oo(r[0],r[3],r[7])],n}addShadowReceiver(t,i,o){this._receivers.add(t,e.cd.fromTileIdAndHeight(t,i,o));}getMaxCascadeForTile(e){const t=this._receivers.get(e);return t&&t.lastCascade?t.lastCascade:0}}function oo(t,i,o){const s=e.ab.vec3.sub([],o,i),r=e.ab.vec3.sub([],t,i),a=e.ab.vec3.cross([],s,r),n=e.ab.vec3.length(a);return 0===n?[0,0,1,0]:(e.ab.vec3.scale(a,a,1/n),[a[0],a[1],a[2],-e.ab.vec3.dot(a,i)])}function so(t){const i=t.properties.get(\"direction\"),o=e.cb(i.x,i.y,i.z);o[2]=e.aw(o[2],0,75);const s=e.ce([o[0],o[1],o[2]]);return e.ab.vec3.fromValues(s.x,s.y,s.z)}function ro(t,i,o){const s=\"none\"===i.properties.get(\"color-use-theme\"),r=i.properties.get(\"color\"),a=i.properties.get(\"intensity\"),n=i.properties.get(\"direction\"),l=[n.x,n.y,n.z],c=\"none\"===o.properties.get(\"color-use-theme\"),h=o.properties.get(\"color\"),u=o.properties.get(\"intensity\"),d=Math.max(e.ab.vec3.dot([0,0,1],l),0),_=[0,0,0];e.ab.vec3.scale(_,h.toRenderColor(c?null:t.getLut(i.scope)).toArray01Linear().slice(0,3),u);const p=[0,0,0];return e.ab.vec3.scale(p,r.toRenderColor(s?null:t.getLut(o.scope)).toArray01Linear().slice(0,3),d*a),e.cf([_[0]>0?_[0]/(_[0]+p[0]):0,_[1]>0?_[1]/(_[1]+p[1]):0,_[2]>0?_[2]/(_[2]+p[2]):0])}function ao(t,i,o,s,r,a){const n=t.zoom,l=t.scale,c=t.worldSize,h=1/c,u=t.aspect,d=Math.sqrt(1+u*u)*Math.tan(.5*t.fovX),_=d*d,p=s-o,f=s+o;let m,g;_>p/f?(m=s,g=s*d):(m=.5*f*(1+_),g=.5*Math.sqrt(p*p+2*(s*s+o*o)*_+f*f*_*_));const v=t.projection.pixelsPerMeter(t.center.lat,c),y=t._camera.getCameraToWorldMercator(),x=[0,0,-m*h];e.ab.vec3.transformMat4(x,x,y);let b=g*h;const w=t._edgeInsets;if(!(0===w.left&&0===w.top&&0===w.right&&0===w.bottom||w.left===w.right&&w.top===w.bottom)){const i=t._camera.getWorldToCamera(t.worldSize,\"meters\"===t.projection.zAxisUnit?v:1),r=t._camera.getCameraToClipPerspective(t._fov,t.width/t.height,o,s);r[8]=2*-t.centerOffset.x/t.width,r[9]=2*t.centerOffset.y/t.height;const a=new Float64Array(16);e.ab.mat4.mul(a,r,i);const h=new Float64Array(16);e.ab.mat4.invert(h,a);const u=e.bR.fromInvProjectionMatrix(h,c,n,!0);for(const i of u.points){const o=((T=i)[0]/=l,T[1]/=l,T[2]=e.bH(T[2],t._center.lat),T);b=Math.max(b,e.ab.vec3.len(e.ab.vec3.subtract([],x,o)));}}var T;b*=r/(r-1);const E=Math.acos(i[2]),S=Math.atan2(-i[0],-i[1]),C=new Zi;C.position=x,C.setPitchBearing(E,S);const I=C.getWorldToCamera(c,v),R=b*c,D=Math.min(t._mercatorZfromZoom(17)*c*-2,-2*R),L=C.getCameraToClipOrthographic(-R,R,-R,R,D,(R+a*v)/i[2]),A=new Float64Array(16);e.ab.mat4.multiply(A,L,I);const z=e.ab.vec3.fromValues(Math.floor(1e6*x[0])/1e6*c,Math.floor(1e6*x[1])/1e6*c,0),P=.5*r,M=[0,0,0];e.ab.vec3.transformMat4(M,z,A),e.ab.vec3.scale(M,M,P);const O=[Math.floor(M[0]),Math.floor(M[1]),Math.floor(M[2])],F=[0,0,0];e.ab.vec3.sub(F,M,O),e.ab.vec3.scale(F,F,-1/P);const k=new Float64Array(16);return e.ab.mat4.identity(k),e.ab.mat4.translate(k,k,F),e.ab.mat4.multiply(A,k,A),[A,R]}class no extends e.E{constructor(e){super(),this.requestManager=e,this.models={\"\":{}},this.numModelsLoading={};}loadModel(t,i){return e.aM(this.requestManager.transformRequest(i,e.R.Model).url).then((i=>{if(!i)return;const o=e.aN(i),s=new e.aO(t,void 0,void 0,o);return s.computeBoundsAndApplyParent(),s})).catch((o=>{if(o&&404===o.status)return null;this.fire(new e.y(new Error(`Could not load model ${t} from ${i}: ${o.message}`)));}))}load(t,i){this.models[i]||(this.models[i]={});const o=Object.keys(t);this.numModelsLoading[i]=(this.numModelsLoading[i]||0)+o.length;const s=[];for(const e of o)s.push(this.loadModel(e,t[e]));Promise.allSettled(s).then((t=>{for(let e=0;e<t.length;e++){const{status:s,value:r}=t[e];\"fulfilled\"===s&&r&&(this.models[i][o[e]]={model:r,numReferences:1});}this.numModelsLoading[i]-=o.length,this.fire(new e.z(\"data\",{dataType:\"style\"}));})).catch((t=>{this.fire(new e.y(new Error(`Could not load models: ${t.message}`)));}));}isLoaded(){for(const e in this.numModelsLoading)if(this.numModelsLoading[e]>0)return !1;return !0}hasModel(e,t){return !!this.getModel(e,t)}getModel(e,t){return this.models[t]||(this.models[t]={}),this.models[t][e]?this.models[t][e].model:void 0}addModel(e,t,i){this.models[i]||(this.models[i]={}),this.hasModel(e,i)&&this.models[i][e].numReferences++,this.load({[e]:this.requestManager.normalizeModelURL(t)},i);}addModels(e,t){this.models[t]||(this.models[t]={});const i={};for(const o in e)this.models[t][o]={},i[o]=this.requestManager.normalizeModelURL(e[o]);this.load(i,t);}addModelsFromBucket(e,t){this.models[t]||(this.models[t]={});const i={};for(const o of e)this.hasModel(o,t)?this.models[t][o].numReferences++:i[o]=this.requestManager.normalizeModelURL(o);this.load(i,t);}removeModel(e,t){if(this.models[t]&&this.models[t][e]&&(this.models[t][e].numReferences--,0===this.models[t][e].numReferences)){const i=this.models[t][e].model;delete this.models[t][e],i.destroy();}}listModels(e){return this.models[e]||(this.models[e]={}),Object.keys(this.models[e])}upload(e,t){this.models[t]||(this.models[t]={});for(const i in this.models[t])this.models[t][i].model&&this.models[t][i].model.upload(e.context);}}const lo=new e.a5({data:new e.a6(e.a3.colorTheme.data)}),co={\"mbx-indoor-active-floorplans\":{default:[\"literal\",[]]},\"mbx-indoor-underground\":{default:[\"literal\",!1]},\"mbx-indoor-loaded-levels\":{default:[\"literal\",[]]},\"mbx-indoor-level-height\":{default:[\"literal\",{}]},\"mbx-indoor-level-base\":{default:[\"literal\",{}]},\"mbx-indoor-level-selected\":{default:[\"literal\",{}]},\"mbx-indoor-level-overlapped\":{default:[\"literal\",{}]}};function ho(e){return e=e||{},Object.assign(e,co)}class uo extends e.E{constructor(t){super(),this.mergeFloors=!0,this._scope=void 0,this._queryFeatureSetId=void 0,this._buildingEntryFeatureSetId=void 0,this._selectedFloorplan=void 0,this._indoorData=void 0,this._selectedLevel=void 0,this._floorplanStates={},e.aP([\"_onLoad\",\"_onMove\",\"_checkFloorplanVisible\"],this),this._map=t,this._checkFloorplanVisible(!0),this._map.on(\"load\",this._onLoad),this._map.on(\"move\",this._onMove);}destroy(){this._map.indoor.off(\"load\",this._onLoad),this._map.indoor.off(\"move\",this._onMove),this._map=void 0;}_onLoad(){this._map.style.forEachFragmentStyle((t=>{t.stylesheet.indoor&&(this._queryFeatureSetId?this.fire(new e.y(new Error(\"Multiple indoor map styles detected, simultaneous usage is not allowed currently.\"))):(this._queryFeatureSetId=t.stylesheet.indoor.floorplanFeaturesetId,this._buildingEntryFeatureSetId=t.stylesheet.indoor.buildingFeaturesetId,this._scope=t.scope));})),this._queryFeatureSetId&&this._buildingEntryFeatureSetId&&this._map.addInteraction(\"mbx-indoor-buildingclick\",{type:\"click\",target:{featuresetId:this._buildingEntryFeatureSetId,importId:this._scope},handler:e=>(e.feature&&e.feature.properties.floorplan&&this.selectFloorplan(e.feature.properties.floorplan),!0)}),this._checkFloorplanVisible(!0);}_onMove(){this._checkFloorplanVisible(!1);}_checkFloorplanVisible(t){if(!this._queryFeatureSetId)return;if(!this._map.isStyleLoaded())return;if(this._map.transform.zoom<13)return;this._indoorData&&!function(e,t){const[i,o]=e,{center:s,radius:r}=t,[a,n]=s,l=Math.abs(i-a);return Math.sqrt((l>180?360-l:l)**2+(o-n)**2)<=r}([this._map.getCenter().lng,this._map.getCenter().lat],this._indoorData.circumCircle)&&(this._indoorData=void 0,this._selectedFloorplan=void 0,this._map.setConfigProperty(this._scope,\"mbx-indoor-underground\",!1),this._map.setConfigProperty(this._scope,\"mbx-indoor-active-floorplans\",[\"literal\",[]]),this.fire(new e.z(\"floorplangone\")));const i={target:{featuresetId:this._queryFeatureSetId,importId:this._scope}},o=new e.P(this._map.transform.width/2,this._map.transform.height/2),s=[new e.P(0,0),new e.P(this._map.transform.width,this._map.transform.height)],r=this._map.queryRenderedFeatures(t?s:o,i);r.length>0&&(this._selectedFloorplan&&r[0].properties.id===this._selectedFloorplan.properties.id||(this._selectedFloorplan=r[0],this._floorplanSelected(!1)));}_floorplanSelected(t){this._indoorData=JSON.parse(this._selectedFloorplan.properties[\"indoor-data\"]),this._indoorData.id=this._selectedFloorplan.properties.id,this._indoorData.circumCircle=function(e){const[[t,i],[o,s]]=e,r=(o-t+360)%360,a=r>180?360-r:r;return {center:[(t+a/2+360)%360,(i+s)/2],radius:Math.sqrt(a**2+(s-i)**2)/2}}(this._indoorData.extent),this._floorplanStates[this._indoorData.id]||(this._floorplanStates[this._indoorData.id]={});const i=this._floorplanStates[this._indoorData.id].selectedBuilding,o=this._floorplanStates[this._indoorData.id].selectedLevel;let s;if(this._map.setConfigProperty(this._scope,\"mbx-indoor-active-floorplans\",this._indoorData.floorplanIDs),this._selectedLevel)for(const e of this._indoorData.levels)e.id===this._selectedLevel.id&&(s=e.id);if(this.fire(new e.z(\"floorplanselected\",{buildings:this._indoorData.buildings,levels:this._indoorData.levels,selectedLevelId:s})),i){const e=this._indoorData.buildings.find((e=>e.id===i));this._buildingSelected(e,!1);}else this._indoorData.buildings.length>0&&this._buildingSelected(this._indoorData.buildings[0],!1);if(o){const e=this._indoorData.levels.find((e=>e.id===o));this._updateLevels(e,t);}else t&&this._indoorData[\"default-levels\"].length>0&&this.selectLevel(this._indoorData[\"default-levels\"][0]);}_buildingSelected(t,i){i&&t&&t.extent&&this._map.fitBounds(t.extent,{pitch:this._map.getPitch(),bearing:this._map.getBearing()}),this._floorplanStates[this._indoorData.id].selectedBuilding=t?t.id:void 0;const o=this._indoorData.levels.filter((e=>t.levels.includes(e.id)));this.fire(new e.z(\"buildingselected\",{buildingId:t.id,levels:o}));}_levelSelected(t){if(\"overview\"===t)this._updateLevels(void 0,!0);else {const e=this._indoorData.levels.find((e=>e.id===t));this._updateLevels(e,!0);}this.fire(new e.z(\"levelselected\",{levelId:\"overview\"===t?void 0:t}));}_updateLevels(e,t){if(!e)return this._map.setConfigProperty(this._scope,\"mbx-indoor-loaded-levels\",[\"literal\",[]]),this._map.setConfigProperty(this._scope,\"mbx-indoor-underground\",!1),this._floorplanStates[this._indoorData.id].selectedLevel=void 0,void(t&&this._indoorData.extent&&this._map.fitBounds(this._indoorData.extent,{pitch:this._map.getPitch(),bearing:this._map.getBearing()}));function i(e){const t=e.indexOf(\"/floor/\");if(-1===t)return e;const i=t+7,o=e.indexOf(\"/\",i);return -1===o?e.slice(i):e.slice(i,o)}this._selectedLevel=e,this._floorplanStates[this._indoorData.id].selectedLevel=e?e.id:void 0;const o=[],s={},r={},a={},n={};for(const t of this._indoorData.levels)if(o.push(t.id),s[t.id]=t.height,r[t.id]=t.base,e){if(this.mergeFloors){const o=i(e.id),s=i(t.id);a[t.id]=s===o?\"true\":\"false\";}else a[t.id]=t.id===e.id?\"true\":\"false\";n[t.id]=t.base<e.base?\"true\":\"false\";}else n[t.id]=!0;if(this._map.setConfigProperty(this._scope,\"mbx-indoor-loaded-levels\",[\"literal\",o]),this._map.setConfigProperty(this._scope,\"mbx-indoor-level-height\",[\"literal\",s]),this._map.setConfigProperty(this._scope,\"mbx-indoor-level-base\",[\"literal\",r]),this._map.setConfigProperty(this._scope,\"mbx-indoor-level-selected\",[\"literal\",a]),this._map.setConfigProperty(this._scope,\"mbx-indoor-level-overlapped\",[\"literal\",n]),e&&(this._map.setConfigProperty(this._scope,\"mbx-indoor-underground\",!!e.isUnderground),t&&e.extent)){const t=this._map.cameraForBounds(e.extent,{pitch:this._map.getPitch(),bearing:this._map.getBearing()}),i=this._map.getZoom(),o=t.zoom?Math.abs(i-t.zoom):0;this._map.fitBounds(e.extent,o>=1?{pitch:this._map.getPitch(),bearing:this._map.getBearing()}:{pitch:this._map.getPitch(),bearing:this._map.getBearing(),zoom:i});}}selectFloorplan(t){const i={target:{featuresetId:this._queryFeatureSetId,importId:this._scope}},o=[new e.P(0,0),new e.P(this._map.transform.width,this._map.transform.height)],s=this._map.queryRenderedFeatures(o,i);if(s.length>0)for(const e of s)if(JSON.parse(e.properties[\"indoor-data\"]).floorplanIDs.includes(t)){this._selectedFloorplan=e,this._floorplanSelected(!0);break}}selectBuilding(e){const t=this._indoorData.buildings.find((t=>t.id===e));this._buildingSelected(t,!0);}selectLevel(e){this._levelSelected(e);}}function _o(t){if(!t.metadata||!t.metadata.content_area)return;const i=e.q.devicePixelRatio,{left:o,top:s,width:r,height:a}=t.metadata.content_area,n=o*i,l=s*i;return [n,l,n+r*i,l+a*i]}function po(t){if(t)return t.map((([t,i])=>[t*e.q.devicePixelRatio,i*e.q.devicePixelRatio]))}const fo=(e,t)=>Le(e,t&&t.filter((e=>\"source.canvas\"!==e.identifier))),mo=e.ay(Lt,[\"addLayer\",\"removeLayer\",\"setLights\",\"setPaintProperty\",\"setLayoutProperty\",\"setSlot\",\"setFilter\",\"addSource\",\"removeSource\",\"setLayerZoomRange\",\"setLight\",\"setTransition\",\"setGeoJSONSourceData\",\"setTerrain\",\"setFog\",\"setSnow\",\"setRain\",\"setProjection\",\"setCamera\",\"addImport\",\"removeImport\",\"updateImport\"]),go=e.ay(Lt,[\"setCenter\",\"setZoom\",\"setBearing\",\"setPitch\"]),vo=new Set([\"background\",\"sky\",\"slot\",\"custom\"]),yo={version:8,layers:[],sources:{}},xo={duration:300,delay:0};class bo extends e.E{constructor(t,i={}){super(),this.map=t,this.scope=i.scope||\"\",this.globalId=null,this.fragments=[],this.importDepth=i.importDepth||0,this.importsCache=i.importsCache||new Map,this.resolvedImports=i.resolvedImports||new Set,this.transition=e.l({},xo),this._buildingIndex=new It(this),this.crossTileSymbolIndex=new Pi,this._mergedOrder=[],this._drapedFirstOrder=[],this._mergedLayers={},this._mergedSourceCaches={},this._mergedOtherSourceCaches={},this._mergedSymbolSourceCaches={},this._clipLayerPresent=!1,this._has3DLayers=!1,this._hasCircleLayers=!1,this._hasSymbolLayers=!1,this._changes=i.styleChanges||new j,this.dispatcher=i.dispatcher?i.dispatcher:new e.D(e.ci(),this),i.imageManager?this.imageManager=i.imageManager:(this.imageManager=new q(this.map._spriteFormat),this.imageManager.setEventedParent(this)),this.imageManager.createScope(this.scope),this.glyphManager=i.glyphManager?i.glyphManager:new e.cj(t._requestManager,i.localFontFamily?e.ck.all:i.localIdeographFontFamily?e.ck.ideographs:e.ck.none,i.localFontFamily||i.localIdeographFontFamily),i.modelManager?this.modelManager=i.modelManager:(this.modelManager=new no(t._requestManager),this.modelManager.setEventedParent(this)),this._layers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this._loaded=!1,this._precompileDone=!1,this._shouldPrecompile=!1,this._availableImages=[],this._order=[],this._markersNeedUpdate=!1,this.options=i.configOptions?i.configOptions:new Map,this._configDependentLayers=i.configDependentLayers?i.configDependentLayers:new Set,this._config=i.config,this._styleColorTheme={lut:null,lutLoading:!1,lutLoadingCorrelationID:0,colorTheme:null,colorThemeOverride:i.colorThemeOverride},this._styleColorThemeForScope={},this._initialConfig=i.initialConfig,this.dispatcher.broadcast(\"setReferrer\",e.cl());const o=this;this._rtlTextPluginCallback=bo.registerForPluginStateChange((t=>{o.dispatcher.broadcast(\"syncRTLPluginState\",{pluginStatus:t.pluginStatus,pluginURL:t.pluginURL},((t,i)=>{if(e.cm(t),i&&i.every((e=>e)))for(const e in o._sourceCaches){const t=o._sourceCaches[e],i=t.getSource().type;\"vector\"!==i&&\"geojson\"!==i||t.reload();}}));})),this.on(\"data\",(e=>{if(\"source\"!==e.dataType||\"metadata\"!==e.sourceDataType)return;const t=this.getOwnSource(e.sourceId);if(t&&t.vectorLayerIds)for(const e in this._layers){const i=this._layers[e];i.source===t.id&&this._validateLayer(i);}}));}load(e){return e?(\"string\"==typeof e?this.loadURL(e):this.loadJSON(e),this):this}_getGlobalId(t){if(!t)return null;if(\"string\"==typeof t){if(e.f(t))return t;const i=e.cn(t);if(!i.startsWith(\"http\"))try{return new URL(i,location.href).toString()}catch(e){return i}return i}return `json://${e.co(JSON.stringify(t))}`}_diffStyle(t,i,o){this.globalId=this._getGlobalId(t);const s=(e,t)=>{try{t(null,this.setState(e,o));}catch(e){t(e,!1);}};if(\"string\"==typeof t){const o=this.map._requestManager.normalizeStyleURL(t),r=this.map._requestManager.transformRequest(o,e.R.Style);e.n(r,((t,o)=>{t?this.fire(new e.y(t)):o&&s(o,i);}));}else \"object\"==typeof t&&s(t,i);}loadURL(t,i={}){this.fire(new e.z(\"dataloading\",{dataType:\"style\"}));const o=\"boolean\"==typeof i.validate?i.validate:!e.f(t);this.globalId=this._getGlobalId(t),t=this.map._requestManager.normalizeStyleURL(t,i.accessToken),this.resolvedImports.add(t);const s=this.importsCache.get(t);if(s)return this._load(s,o);const r=this.map._requestManager.transformRequest(t,e.R.Style);this._request=e.n(r,((i,s)=>{if(this._request=null,i)this.fire(new e.y(i));else if(s)return this.importsCache.set(t,s),this._load(s,o)}));}loadJSON(t,i={}){this.fire(new e.z(\"dataloading\",{dataType:\"style\"})),this.globalId=this._getGlobalId(t),this._request=e.q.frame((()=>{this._request=null,this._load(t,!1!==i.validate);}));}loadEmpty(){this.fire(new e.z(\"dataloading\",{dataType:\"style\"})),this._load(yo,!1);}_loadImports(t,i,o){if(this.importDepth>=4)return e.w(\"Style doesn't support nesting deeper than 5\"),Promise.resolve();const s=[];for(const e of t){const t=this._createFragmentStyle(e),r=new Promise((e=>{t.once(\"style.import.load\",e),t.once(\"error\",e);})).then((()=>this.mergeAll()));if(s.push(r),this.resolvedImports.has(e.url)){t.loadEmpty();continue}const a=e.data||this.importsCache.get(e.url);a?(t.loadJSON(a,{validate:i}),this._isInternalStyle(a)&&(t.globalId=null)):e.url?t.loadURL(e.url,{validate:i}):t.loadEmpty();const n={style:t,id:e.id,config:e.config};if(o){const e=this.fragments.findIndex((({id:e})=>e===o));this.fragments=this.fragments.slice(0,e).concat(n).concat(this.fragments.slice(e));}else this.fragments.push(n);}return Promise.allSettled(s)}getImportGlobalIds(e=this,t=new Set){for(const i of e.fragments)i.style.globalId&&t.add(i.style.globalId),this.getImportGlobalIds(i.style,t);return [...t.values()]}_createFragmentStyle(t){const i=this.scope?e.aC(t.id,this.scope):t.id;let o;const s=this._initialConfig&&this._initialConfig[i];(t.config||s)&&(o=e.l({},t.config,s));const r=new bo(this.map,{scope:i,styleChanges:this._changes,importDepth:this.importDepth+1,importsCache:this.importsCache,resolvedImports:new Set(this.resolvedImports),dispatcher:this.dispatcher,imageManager:this.imageManager,glyphManager:this.glyphManager,modelManager:this.modelManager,config:o,configOptions:this.options,colorThemeOverride:t[\"color-theme\"],configDependentLayers:this._configDependentLayers});return r.setEventedParent(this.map,{style:r}),r}_reloadImports(){this.mergeAll(),this._updateMapProjection(),this.updateConfigDependencies(),this.map._triggerCameraUpdate(this.camera),this.dispatcher.broadcast(\"setLayers\",{layers:this._serializeLayers(this._order),scope:this.scope,options:this.options}),this._shouldPrecompile=this.map._precompilePrograms&&this.isRootStyle();}_isInternalStyle(e){return this.isRootStyle()&&(e.fragment||!!e.schema&&!1!==e.fragment)}_load(t,i){const o=t.indoor?ho(t.schema):t.schema;if(this._isInternalStyle(t)){const o=e.l({},yo,{imports:[{id:\"basemap\",data:t,url:\"\"}]});return void this._load(o,i)}if(this.updateConfig(this._config,o),i&&fo(this,me(t)))return;this._loaded=!0,this.stylesheet=e.cp(t);const s=()=>{for(const e in t.sources)this.addSource(e,t.sources[e],{validate:!1,isInitialLoad:!0});t.sprite?this._loadIconset(t.sprite):(this.imageManager.setLoaded(!0,this.scope),this.dispatcher.broadcast(\"spriteLoaded\",{scope:this.scope,isLoaded:!0})),this.glyphManager.setURL(t.glyphs,this.scope);const o=Dt(this.stylesheet.layers);if(this._order=o.map((e=>e.id)),this.stylesheet.light&&e.w(\"The `light` root property is deprecated, prefer using `lights` with `flat` light type instead.\"),this.stylesheet.lights)if(1===this.stylesheet.lights.length&&\"flat\"===this.stylesheet.lights[0].type){const e=this.stylesheet.lights[0];this.light=new ze(e.properties,e.id);}else this.setLights(this.stylesheet.lights);this.light||(this.light=new ze(this.stylesheet.light)),this._layers={};for(const t of o){const i=e.cu(t,this.scope,this._styleColorTheme.lut,this.options);0!==i.configDependencies.size&&this._configDependentLayers.add(i.fqid),i.setEventedParent(this,{layer:{id:i.id}}),this._layers[i.id]=i;const o=this.getOwnLayerSourceCache(i),s=!!this.directionalLight&&this.directionalLight.shadowsEnabled();o&&i.canCastShadows()&&s&&(o.castsShadows=!0);}this.stylesheet.featuresets&&this.setFeaturesetSelectors(this.stylesheet.featuresets),this.stylesheet.models&&this.modelManager.addModels(this.stylesheet.models,this.scope);const s=this.stylesheet.terrain;s&&(this.checkCanvasFingerprintNoise(),this.disableElevatedTerrain||this.terrainSetForDrapingOnly()||this._createTerrain(s,1)),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this.stylesheet.snow&&this._createSnow(this.stylesheet.snow),this.stylesheet.rain&&this._createRain(this.stylesheet.rain),this.stylesheet.transition&&this.setTransition(this.stylesheet.transition),this.fire(new e.z(\"data\",{dataType:\"style\"}));const r=this.isRootStyle();t.imports?this._loadImports(t.imports,i).then((()=>{this._reloadImports(),this.fire(new e.z(r?\"style.load\":\"style.import.load\"));})):(this._reloadImports(),this.fire(new e.z(r?\"style.load\":\"style.import.load\")));};this._styleColorTheme.colorTheme=this.stylesheet[\"color-theme\"];const r=this._styleColorTheme.colorThemeOverride?this._styleColorTheme.colorThemeOverride:this._styleColorTheme.colorTheme;if(r){const t=this._evaluateColorThemeData(r);this._loadColorTheme(t).then((()=>{s();})).catch((t=>{e.w(`Couldn't load color theme from the stylesheet: ${t}`),s();}));}else this._styleColorTheme.lut=null,s();}isRootStyle(){return 0===this.importDepth}mergeAll(){let t,i,o,s,r,a,n,l,c,h;const u={};this.terrain&&this.terrain.scope!==this.scope&&delete this.terrain,this.forEachFragmentStyle((e=>{if(e.stylesheet){if(null!=e.light&&(t=e.light),e.stylesheet.lights)for(const t of e.stylesheet.lights)\"ambient\"===t.type&&null!=e.ambientLight&&(i=e.ambientLight),\"directional\"===t.type&&null!=e.directionalLight&&(o=e.directionalLight);s=this._prioritizeTerrain(s,e.terrain,e.stylesheet.terrain),e.stylesheet.fog&&null!=e.fog&&(r=e.fog),e.stylesheet.snow&&null!=e.snow&&(a=e.snow),e.stylesheet.rain&&null!=e.rain&&(n=e.rain),null!=e.stylesheet.camera&&(h=e.stylesheet.camera),null!=e.stylesheet.projection&&(l=e.stylesheet.projection),null!=e.stylesheet.transition&&(c=e.stylesheet.transition),u[e.scope]=e._styleColorTheme;}})),this.light=t,this.ambientLight=i,this.directionalLight=o,this.fog=r,this.snow=a,this.rain=n,this._styleColorThemeForScope=u,null===s?delete this.terrain:this.terrain=s,this.camera=h||{\"camera-projection\":\"perspective\"},this.projection=l||{name:\"mercator\"},this.transition=e.l({},xo,c),this.mergeSources(),this.mergeLayers();}forEachFragmentStyle(e){const t=i=>{for(const e of i.fragments)t(e.style);e(i);};t(this);}_prioritizeTerrain(e,t,i){const o=e&&0===e.drapeRenderMode;return null===i?t&&0===t.drapeRenderMode?t:o?e:null:null!=t&&(!e||o||t&&1===t.drapeRenderMode)?t:e}mergeTerrain(){let e;this.terrain&&this.terrain.scope!==this.scope&&delete this.terrain,this.forEachFragmentStyle((t=>{e=this._prioritizeTerrain(e,t.terrain,t.stylesheet.terrain);})),null===e?delete this.terrain:this.terrain=e;}mergeProjection(){let e;this.forEachFragmentStyle((t=>{null!=t.stylesheet.projection&&(e=t.stylesheet.projection);})),this.projection=e||{name:\"mercator\"};}mergeSources(){const t={},i={},o={};this.forEachFragmentStyle((s=>{for(const i in s._sourceCaches){const o=e.aC(i,s.scope);t[o]=s._sourceCaches[i];}for(const t in s._otherSourceCaches){const o=e.aC(t,s.scope);i[o]=s._otherSourceCaches[t];}for(const t in s._symbolSourceCaches){const i=e.aC(t,s.scope);o[i]=s._symbolSourceCaches[t];}})),this._mergedSourceCaches=t,this._mergedOtherSourceCaches=i,this._mergedSymbolSourceCaches=o;}mergeLayers(){const t={},i=[],o={};this._mergedSlots=[],this._has3DLayers=!1,this._hasCircleLayers=!1,this._hasSymbolLayers=!1,this.forEachFragmentStyle((o=>{for(const s of o._order){const r=o._layers[s];if(\"slot\"===r.type){const i=e.cq(s);if(t[i])continue;t[i]=[];}r.slot&&t[r.slot]?t[r.slot].push(r):i.push(r);}})),this._mergedOrder=[];const s=(i=[])=>{for(const r of i)if(\"slot\"===r.type){const i=e.cq(r.id);t[i]&&s(t[i]),this._mergedSlots.push(i);}else {const t=e.aC(r.id,r.scope);this._mergedOrder.push(t),o[t]=r,r.is3D()&&(this._has3DLayers=!0),\"circle\"===r.type&&(this._hasCircleLayers=!0),\"symbol\"===r.type&&(this._hasSymbolLayers=!0),\"clip\"===r.type&&(this._clipLayerPresent=!0);}};s(i),this._mergedOrder.sort(((e,t)=>{const i=o[e],s=o[t];return i.hasInitialOcclusionOpacityProperties?s.is3D()?1:0:i.is3D()&&s.hasInitialOcclusionOpacityProperties?-1:0})),this._mergedLayers=o,this.updateDrapeFirstLayers(),this._buildingIndex.processLayersChanged();}terrainSetForDrapingOnly(){return !!this.terrain&&0===this.terrain.drapeRenderMode}getCamera(){return this.stylesheet.camera}setCamera(t){return this.stylesheet.camera=e.l({},this.stylesheet.camera,t),this.camera=this.stylesheet.camera,this}_evaluateColorThemeData(t){return t.data?function(t,i,o){const s=e.l({},i);for(const t of Object.keys(e.a3.colorTheme))void 0===s[t]&&(s[t]=e.a3.colorTheme[t].default);const r=new e.a4(lo,t,new Map(o));return r.setTransitionOrValue(s,o),r.untransitioned().possiblyEvaluate(new e.a8(0))}(this.scope,t,this.options).get(\"data\"):null}_loadColorTheme(t){this._styleColorTheme.lutLoading=!0,this._styleColorTheme.lutLoadingCorrelationID+=1;const i=this._styleColorTheme.lutLoadingCorrelationID;return new Promise(((o,s)=>{const r=\"data:image/png;base64,\";if(!t||0===t.length)return this._styleColorTheme.lut=null,this._styleColorTheme.lutLoading=!1,void o();let a=t;a.startsWith(r)||(a=r+a);const n=\"mapbox-reserved-lut\",l=new Image;l.src=a,l.onerror=()=>{this._styleColorTheme.lutLoading=!1,s(new Error(\"Failed to load image data\"));},l.onload=()=>{if(this._styleColorTheme.lutLoadingCorrelationID!==i)return void o();this._styleColorTheme.lutLoading=!1;const{width:r,height:a,data:c}=e.q.getImageData(l);if(a>32)return void s(new Error(\"The height of the image must be less than or equal to 32 pixels.\"));if(r!==a*a)return void s(new Error(\"The width of the image must be equal to the height squared.\"));this.getImage(n)&&this.removeImage(n),this.addImage(n,{data:new e.r({width:r,height:a},c),pixelRatio:1,sdf:!1,usvg:!1,version:0});const h=this.imageManager.getImage(n,this.scope);h?(this._styleColorTheme.lut={image:h.data,data:t},o()):s(new Error(\"Missing LUT image.\"));};}))}getLut(e){const t=this._styleColorThemeForScope[e];return t?t.lut:null}setProjection(e){e?this.stylesheet.projection=e:delete this.stylesheet.projection,this.mergeProjection(),this._updateMapProjection();}applyProjectionUpdate(){this._loaded&&(this.dispatcher.broadcast(\"setProjection\",this.map.transform.projectionOptions),this.map.transform.projection.requiresDraping?(this.getTerrain()||this.stylesheet.terrain)&&!this.disableElevatedTerrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null,0));}_updateMapProjection(){this.isRootStyle()&&(this.map._useExplicitProjection?this.applyProjectionUpdate():this.map._prioritizeAndUpdateProjection(null,this.projection));}_loadSprite(t){this._spriteRequest=function(t,i,o){let s,r,a;const n=e.q.devicePixelRatio>1?\"@2x\":\"\";let l=e.n(i.transformRequest(i.normalizeSpriteURL(t,n,\".json\"),e.R.SpriteJSON),((e,t)=>{l=null,a||(a=e,s=t,h());})),c=e.o(i.transformRequest(i.normalizeSpriteURL(t,n,\".png\"),e.R.SpriteImage),((e,t)=>{c=null,a||(a=e,r=t,h());}));function h(){if(a)o(a);else if(s&&r){const t=e.q.getImageData(r),i={};for(const o in s){const{width:r,height:a,x:n,y:l,sdf:c,pixelRatio:h,stretchX:u,stretchY:d,content:_}=s[o],p=new e.r({width:r,height:a});e.r.copy(t,p,{x:n,y:l},{x:0,y:0},{width:r,height:a},null),i[o]={data:p,pixelRatio:h,sdf:c,stretchX:u,stretchY:d,content:_,usvg:!1};}o(null,i);}}return {cancel(){l&&(l.cancel(),l=null),c&&(c.cancel(),c=null);}}}(t,this.map._requestManager,((t,i)=>{if(this._spriteRequest=null,t)this.fire(new e.y(t));else if(i)for(const e in i)this.imageManager.addImage(e,this.scope,i[e]);this.imageManager.setLoaded(!0,this.scope),this._availableImages=this.imageManager.listImages(this.scope),this.dispatcher.broadcast(\"setImages\",{scope:this.scope,images:this._availableImages}),this.dispatcher.broadcast(\"spriteLoaded\",{scope:this.scope,isLoaded:!0}),this.fire(new e.z(\"data\",{dataType:\"style\"}));}));}_loadIconset(t){if(!e.f(t)&&\"icon_set\"!==this.map._spriteFormat||\"raster\"===this.map._spriteFormat)return void this._loadSprite(t);const i=\"auto\"===this.map._spriteFormat;var o,s;this._spriteRequest=(s=(o,s)=>{if(this._spriteRequest=null,o)i?this._loadSprite(t):this.fire(new e.y(o));else if(s)for(const e in s)this.imageManager.addImage(e,this.scope,s[e]);this.imageManager.setLoaded(!0,this.scope),this._availableImages=this.imageManager.listImages(this.scope),this.dispatcher.broadcast(\"setImages\",{scope:this.scope,images:this._availableImages}),this.dispatcher.broadcast(\"spriteLoaded\",{scope:this.scope,isLoaded:!0}),this.fire(new e.z(\"data\",{dataType:\"style\"}));},e.bi((o=this.map._requestManager).transformRequest(o.normalizeIconsetURL(t),e.R.Iconset),((t,i)=>{if(t)return void s(t);const o={},r=e.cg(new e.bh(i));for(const t of r.icons){const i={version:1,pixelRatio:e.q.devicePixelRatio,content:_o(t),stretchX:t.metadata?po(t.metadata.stretch_x_areas):void 0,stretchY:t.metadata?po(t.metadata.stretch_y_areas):void 0,sdf:!1,usvg:!0,icon:t};o[t.name]=i;}s(null,o);})));}_validateLayer(t){const i=this.getOwnSource(t.source);if(!i)return;const o=t.sourceLayer;o&&(\"geojson\"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(o))&&this.fire(new e.y(new Error(`Source layer \"${o}\" does not exist on source \"${i.id}\" as specified by style layer \"${t.id}\"`)));}loaded(){if(!this._loaded)return !1;if(Object.keys(this._changes.getUpdatedSourceCaches()).length)return !1;for(const e in this._sourceCaches)if(!this._sourceCaches[e].loaded())return !1;if(!this.imageManager.isLoaded())return !1;if(!this.modelManager.isLoaded())return !1;if(this._styleColorTheme.lutLoading)return !1;for(const{style:e}of this.fragments)if(!e.loaded())return !1;return !0}_serializeImports(){if(this.stylesheet.imports)return this.stylesheet.imports.map(((e,t)=>{const i=this.fragments[t];return i&&i.style&&(e.data=i.style.serialize()),e}))}_serializeSources(){const e={};for(const t in this._sourceCaches){const i=this._sourceCaches[t].getSource();e[i.id]||(e[i.id]=i.serialize());}return e}_serializeLayers(e){const t=[];for(const i of e){const e=this._layers[i];e&&\"custom\"!==e.type&&t.push(e.serialize());}return t}hasLightTransitions(){return !(!this.light||!this.light.hasTransition())||!(!this.ambientLight||!this.ambientLight.hasTransition())||!(!this.directionalLight||!this.directionalLight.hasTransition())}hasFogTransition(){return !!this.fog&&this.fog.hasTransition()}hasSnowTransition(){return !!this.snow&&this.snow.hasTransition()}hasRainTransition(){return !!this.rain&&this.rain.hasTransition()}hasTransitions(){if(this.hasLightTransitions())return !0;if(this.hasFogTransition())return !0;if(this.hasSnowTransition())return !0;if(this.hasRainTransition())return !0;for(const e in this._sourceCaches)if(this._sourceCaches[e].hasTransition())return !0;for(const e in this._layers)if(this._layers[e].hasTransition())return !0;return !1}get order(){return this.terrain?this._drapedFirstOrder:this._mergedOrder}_getOrder(e){return e?this.order:this._mergedOrder}isLayerDraped(e){return !!this.terrain&&e.isDraped(this.getLayerSourceCache(e))}_checkLoaded(){if(!this._loaded)throw new Error(\"Style is not done loading\")}_checkLayer(t){const i=this.getOwnLayer(t);if(i)return i;this.fire(new e.y(new Error(`The layer '${t}' does not exist in the map's style.`)));}_checkSource(t){const i=this.getOwnSource(t);if(i)return i;this.fire(new e.y(new Error(`The source '${t}' does not exist in the map's style.`)));}precompilePrograms(e,t){const i=this.map.painter;if(i)for(let o=e.minzoom||0;o<(e.maxzoom||25.5);o++){const o=e.getProgramIds();if(o)for(const s of o){const o=e.getDefaultProgramParams(s,t.zoom,this._styleColorTheme.lut);o&&(i.style=this,this.fog&&(i._fogVisible=!0,o.overrideFog=!0,i.getOrCreateProgram(s,o)),i._fogVisible=!1,o.overrideFog=!1,i.getOrCreateProgram(s,o),(this.stylesheet.terrain||this.stylesheet.projection&&\"globe\"===this.stylesheet.projection.name)&&(o.overrideRtt=!0,i.getOrCreateProgram(s,o)));}}}update(t){if(!this._loaded)return;this.ambientLight&&this.ambientLight.recalculate(t),this.directionalLight&&this.directionalLight.recalculate(t);const i=this.calculateLightsBrightness();t.brightness=i||0,i!==this._brightness&&(this._brightness=i,this.dispatcher.broadcast(\"setBrightness\",i));const o=this._changes.isDirty();let s=!1;if(this._changes.isDirty()){const e=this._changes.getLayerUpdatesByScope();for(const t in e){const{updatedIds:i,removedIds:o}=e[t];(i||o)&&(this._updateWorkerLayers(t,i,o),s=!0);}this.updateSourceCaches(),this._updateTilesForChangedImages(),this.updateLayers(t),this.light&&this.light.updateTransitions(t),this.ambientLight&&this.ambientLight.updateTransitions(t),this.directionalLight&&this.directionalLight.updateTransitions(t),this.fog&&this.fog.updateTransitions(t),this.snow&&this.snow.updateTransitions(t),this.rain&&this.rain.updateTransitions(t),this._changes.reset();}const r={};for(const e in this._mergedSourceCaches){const t=this._mergedSourceCaches[e];r[e]=t.used,t.used=!1,t.tileCoverLift=0;}for(const e of this._mergedOrder){const i=this._mergedLayers[e];if(i.recalculate(t,this._availableImages),!i.isHidden(t.zoom)){const e=this.getLayerSourceCache(i);e&&(e.used=!0,e.tileCoverLift=Math.max(e.tileCoverLift,i.tileCoverLift()));}!this._precompileDone&&this._shouldPrecompile&&(\"requestIdleCallback\"in window?requestIdleCallback((()=>{this.precompilePrograms(i,t);})):this.precompilePrograms(i,t));}this._shouldPrecompile&&(this._precompileDone=!0),this.terrain&&s&&this.mergeLayers();for(const t in r){const i=this._mergedSourceCaches[t];r[t]!==i.used&&i.getSource().fire(new e.z(\"data\",{sourceDataType:\"visibility\",dataType:\"source\",sourceId:i.getSource().id}));}this.light&&this.light.recalculate(t),this.terrain&&this.terrain.recalculate(t),this.fog&&this.fog.recalculate(t),this.snow&&this.snow.recalculate(t),this.rain&&this.rain.recalculate(t),this.z=t.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),o&&this.fire(new e.z(\"data\",{dataType:\"style\"}));}_updateTilesForChangedImages(){const e=this._changes.getUpdatedImages();if(e.length){for(const t in this._sourceCaches)this._sourceCaches[t].reloadTilesForDependencies([\"icons\",\"patterns\"],e);this._changes.resetUpdatedImages();}}_updateWorkerLayers(e,t,i){const o=this.getFragmentStyle(e);o&&this.dispatcher.broadcast(\"updateLayers\",{layers:t?o._serializeLayers(t):[],scope:e,removedIds:i||[],options:o.options});}setState(t,i){if(this._checkLoaded(),fo(this,me(t)))return !1;(t=e.cp(t)).layers=Dt(t.layers);const o=function(t,i){if(!t)return [{command:Lt.setStyle,args:[i]}];let o=[];try{if(!e.bn(t.version,i.version))return [{command:Lt.setStyle,args:[i]}];if(e.bn(t.center,i.center)||o.push({command:Lt.setCenter,args:[i.center]}),e.bn(t.zoom,i.zoom)||o.push({command:Lt.setZoom,args:[i.zoom]}),e.bn(t.bearing,i.bearing)||o.push({command:Lt.setBearing,args:[i.bearing]}),e.bn(t.pitch,i.pitch)||o.push({command:Lt.setPitch,args:[i.pitch]}),e.bn(t.sprite,i.sprite)||o.push({command:Lt.setSprite,args:[i.sprite]}),e.bn(t.glyphs,i.glyphs)||o.push({command:Lt.setGlyphs,args:[i.glyphs]}),e.bn(t.imports,i.imports)||function(t=[],i=[],o){i=i||[];const s=(t=t||[]).map(Ft),r=i.map(Ft),a=t.reduce(kt,{}),n=i.reduce(kt,{}),l=s.slice();let c,h,u,d;for(c=0,h=0;c<s.length;c++)u=s[c],n.hasOwnProperty(u)?h++:(o.push({command:Lt.removeImport,args:[u]}),l.splice(l.indexOf(u,h),1));for(c=0,h=0;c<r.length;c++)u=r[r.length-1-c],l[l.length-1-c]!==u&&(a.hasOwnProperty(u)?(o.push({command:Lt.removeImport,args:[u]}),l.splice(l.lastIndexOf(u,l.length-h),1)):h++,d=l[l.length-c],o.push({command:Lt.addImport,args:[n[u],d]}),l.splice(l.length-c,0,u));for(const t of i){const i=a[t.id];i&&!e.bn(i,t)&&o.push({command:Lt.updateImport,args:[t.id,t]});}}(t.imports,i.imports,o),e.bn(t.transition,i.transition)||o.push({command:Lt.setTransition,args:[i.transition]}),e.bn(t.light,i.light)||o.push({command:Lt.setLight,args:[i.light]}),e.bn(t.fog,i.fog)||o.push({command:Lt.setFog,args:[i.fog]}),e.bn(t.snow,i.snow)||o.push({command:Lt.setSnow,args:[i.snow]}),e.bn(t.rain,i.rain)||o.push({command:Lt.setRain,args:[i.rain]}),e.bn(t.projection,i.projection)||o.push({command:Lt.setProjection,args:[i.projection]}),e.bn(t.lights,i.lights)||o.push({command:Lt.setLights,args:[i.lights]}),e.bn(t.camera,i.camera)||o.push({command:Lt.setCamera,args:[i.camera]}),!e.bn(t[\"color-theme\"],i[\"color-theme\"]))return [{command:Lt.setStyle,args:[i]}];const s={},r=[];!function(t,i,o,s){let r;for(r in i=i||{},t=t||{})t.hasOwnProperty(r)&&(i.hasOwnProperty(r)||zt(r,o,s));for(r in i){if(!i.hasOwnProperty(r))continue;const a=i[r];t.hasOwnProperty(r)?e.bn(t[r],a)||(\"geojson\"===t[r].type&&\"geojson\"===a.type&&Mt(t,i,r)?o.push({command:Lt.setGeoJSONSourceData,args:[r,a.data]}):Pt(r,i,o,s)):At(r,i,o);}}(t.sources,i.sources,r,s);const a=[];t.layers&&t.layers.forEach((e=>{e.source&&s[e.source]?o.push({command:Lt.removeLayer,args:[e.id]}):a.push(e);}));let n=t.terrain;n&&s[n.source]&&(o.push({command:Lt.setTerrain,args:[void 0]}),n=void 0),o=o.concat(r),e.bn(n,i.terrain)||o.push({command:Lt.setTerrain,args:[i.terrain]}),function(t,i,o){i=i||[];const s=(t=t||[]).map(Ft),r=i.map(Ft),a=t.reduce(kt,{}),n=i.reduce(kt,{}),l=s.slice(),c=Object.create(null);let h,u,d,_,p,f,m;for(h=0,u=0;h<s.length;h++)d=s[h],n.hasOwnProperty(d)?u++:(o.push({command:Lt.removeLayer,args:[d]}),l.splice(l.indexOf(d,u),1));for(h=0,u=0;h<r.length;h++)d=r[r.length-1-h],l[l.length-1-h]!==d&&(a.hasOwnProperty(d)?(o.push({command:Lt.removeLayer,args:[d]}),l.splice(l.lastIndexOf(d,l.length-u),1)):u++,f=l[l.length-h],o.push({command:Lt.addLayer,args:[n[d],f]}),l.splice(l.length-h,0,d),c[d]=!0);for(h=0;h<r.length;h++)if(d=r[h],_=a[d],p=n[d],!c[d]&&!e.bn(_,p))if(e.bn(_.source,p.source)&&e.bn(_[\"source-layer\"],p[\"source-layer\"])&&e.bn(_.type,p.type)){for(m in Ot(_.layout,p.layout,o,d,null,Lt.setLayoutProperty),Ot(_.paint,p.paint,o,d,null,Lt.setPaintProperty),e.bn(_.slot,p.slot)||o.push({command:Lt.setSlot,args:[d,p.slot]}),e.bn(_.filter,p.filter)||o.push({command:Lt.setFilter,args:[d,p.filter]}),e.bn(_.minzoom,p.minzoom)&&e.bn(_.maxzoom,p.maxzoom)||o.push({command:Lt.setLayerZoomRange,args:[d,p.minzoom,p.maxzoom]}),_)_.hasOwnProperty(m)&&\"layout\"!==m&&\"paint\"!==m&&\"filter\"!==m&&\"metadata\"!==m&&\"minzoom\"!==m&&\"maxzoom\"!==m&&\"slot\"!==m&&(0===m.indexOf(\"paint.\")?Ot(_[m],p[m],o,d,m.slice(6),Lt.setPaintProperty):e.bn(_[m],p[m])||o.push({command:Lt.setLayerProperty,args:[d,m,p[m]]}));for(m in p)p.hasOwnProperty(m)&&!_.hasOwnProperty(m)&&\"layout\"!==m&&\"paint\"!==m&&\"filter\"!==m&&\"metadata\"!==m&&\"minzoom\"!==m&&\"maxzoom\"!==m&&\"slot\"!==m&&(0===m.indexOf(\"paint.\")?Ot(_[m],p[m],o,d,m.slice(6),Lt.setPaintProperty):e.bn(_[m],p[m])||o.push({command:Lt.setLayerProperty,args:[d,m,p[m]]}));}else o.push({command:Lt.removeLayer,args:[d]}),f=l[l.lastIndexOf(d)+1],o.push({command:Lt.addLayer,args:[p,f]});}(a,i.layers,o);}catch(e){console.warn(\"Unable to compute style diff:\",e),o=[{command:Lt.setStyle,args:[i]}];}return o}(this.serialize(),t).filter((e=>!(e.command in go)));if(0===o.length)return !1;const s=o.filter((e=>!(e.command in mo)));if(s.length>0)throw new Error(`Unimplemented: ${s.map((e=>e.command)).join(\", \")}.`);const r=[];return o.forEach((e=>{r.push(this[e.command].apply(this,e.args));})),i&&Promise.all(r).then(i),this.stylesheet=t,this.mergeAll(),this.dispatcher.broadcast(\"setLayers\",{layers:this._serializeLayers(this._order),scope:this.scope,options:this.options}),!0}addImage(t,i){return this.getImage(t)?this.fire(new e.y(new Error(\"An image with this name already exists.\"))):(this.imageManager.addImage(t,this.scope,i),this._afterImageUpdated(t),this)}updateImage(e,t,i=!1){this.imageManager.updateImage(e,this.scope,t),i&&this._afterImageUpdated(e);}getImage(e){return this.imageManager.getImage(e,this.scope)}removeImage(t){return this.getImage(t)?(this.imageManager.removeImage(t,this.scope),this._afterImageUpdated(t),this):this.fire(new e.y(new Error(\"No image with this name exists.\")))}_afterImageUpdated(t){this._availableImages=this.imageManager.listImages(this.scope),this._changes.updateImage(t),this.dispatcher.broadcast(\"setImages\",{scope:this.scope,images:this._availableImages}),this.fire(new e.z(\"data\",{dataType:\"style\"}));}listImages(){return this._checkLoaded(),this._availableImages.slice()}addModel(e,t,i={}){return this._checkLoaded(),this._validate(Re,`models.${e}`,t,null,i)||(this.modelManager.addModel(e,t,this.scope),this._changes.setDirty()),this}hasModel(e){return this.modelManager.hasModel(e,this.scope)}removeModel(t){return this.hasModel(t)?(this.modelManager.removeModel(t,this.scope),this):this.fire(new e.y(new Error(\"No model with this ID exists.\")))}listModels(){return this._checkLoaded(),this.modelManager.listModels(this.scope)}addSource(t,i,o={}){if(this._checkLoaded(),void 0!==this.getOwnSource(t))throw new Error(`There is already a source with ID \"${t}\".`);if(!i.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i).join(\", \")}.`);if([\"vector\",\"raster\",\"geojson\",\"video\",\"image\"].indexOf(i.type)>=0&&this._validate(ge,`sources.${t}`,i,null,o))return;this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);const s=rt(t,i,this.dispatcher,this);s.scope=this.scope,s.setEventedParent(this,(()=>({isSourceLoaded:this._isSourceCacheLoaded(s.id),source:s.serialize(),sourceId:s.id})));const r=t=>{const i=(t?\"symbol:\":\"other:\")+s.id,o=e.aC(i,this.scope),r=this._sourceCaches[i]=new Tt(o,s,t);(t?this._symbolSourceCaches:this._otherSourceCaches)[s.id]=r,r.onAdd(this.map);};r(!1),\"vector\"!==i.type&&\"geojson\"!==i.type||r(!0),s.onAdd&&s.onAdd(this.map),o.isInitialLoad||(this.mergeSources(),this._changes.setDirty());}removeSource(t){this._checkLoaded();const i=this.getOwnSource(t);if(!i)throw new Error(\"There is no source with this ID\");for(const i in this._layers)if(this._layers[i].source===t)return this.fire(new e.y(new Error(`Source \"${t}\" cannot be removed while layer \"${i}\" is using it.`)));if(this.terrain&&this.terrain.scope===this.scope&&this.terrain.get().source===t)return this.fire(new e.y(new Error(`Source \"${t}\" cannot be removed while terrain is using it.`)));const o=this.getOwnSourceCaches(t);for(const t of o){const i=e.cq(t.id);delete this._sourceCaches[i],this._changes.discardSourceCacheUpdate(t.id),t.fire(new e.z(\"data\",{sourceDataType:\"metadata\",dataType:\"source\",sourceId:t.getSource().id})),t.setEventedParent(null),t.clearTiles();}return delete this._otherSourceCaches[t],delete this._symbolSourceCaches[t],this.mergeSources(),i.setEventedParent(null),i.onRemove&&i.onRemove(this.map),this._changes.setDirty(),this}setGeoJSONSourceData(e,t){this._checkLoaded(),this.getOwnSource(e).setData(t),this._changes.setDirty();}getOwnSource(e){const t=this.getOwnSourceCache(e);return t&&t.getSource()}getOwnSources(){const e=[];for(const t in this._otherSourceCaches){const i=this.getOwnSourceCache(t);i&&e.push(i.getSource());}return e}areTilesLoaded(){const e=this._mergedSourceCaches;for(const t in e){const i=e[t]._tiles;for(const e in i){const t=i[e];if(\"loaded\"!==t.state&&\"errored\"!==t.state)return !1}}return !0}setLights(t){if(this._checkLoaded(),!t)return delete this.ambientLight,void delete this.directionalLight;const i=this._getTransitionParameters();for(const o of t){if(this._validate(ye,\"lights\",o))return;switch(o.type){case\"ambient\":if(this.ambientLight){const e=this.ambientLight;e.set(o),e.updateTransitions(i);}else this.ambientLight=new $e(o,qe||(qe=new e.a5({color:new e.a6(e.a3.properties_light_ambient.color),\"color-use-theme\":new e.a6({type:\"string\",default:\"default\",\"property-type\":\"data-constant\"}),intensity:new e.a6(e.a3.properties_light_ambient.intensity)})),this.scope,this.options);break;case\"directional\":if(this.directionalLight){const e=this.directionalLight;e.set(o),e.updateTransitions(i);}else this.directionalLight=new $e(o,He||(He=new e.a5({direction:new e.ak(e.a3.properties_light_directional.direction),color:new e.a6(e.a3.properties_light_directional.color),\"color-use-theme\":new e.a6({type:\"string\",default:\"default\",\"property-type\":\"data-constant\"}),intensity:new e.a6(e.a3.properties_light_directional.intensity),\"cast-shadows\":new e.a6(e.a3.properties_light_directional[\"cast-shadows\"]),\"shadow-quality\":new e.a6(e.a3.properties_light_directional[\"shadow-quality\"]),\"shadow-intensity\":new e.a6(e.a3.properties_light_directional[\"shadow-intensity\"])})),this.scope,this.options);}}const o=new e.a8(this.z||0,i);this.ambientLight&&this.ambientLight.recalculate(o),this.directionalLight&&this.directionalLight.recalculate(o),this._brightness=this.calculateLightsBrightness(),this.dispatcher.broadcast(\"setBrightness\",this._brightness);}calculateLightsBrightness(){const t=this.directionalLight,i=this.ambientLight;if(!t||!i)return;const o=e=>.2126*(e[0]<=.03928?e[0]/12.92:Math.pow((e[0]+.055)/1.055,2.4))+.7152*(e[1]<=.03928?e[1]/12.92:Math.pow((e[1]+.055)/1.055,2.4))+.0722*(e[2]<=.03928?e[2]/12.92:Math.pow((e[2]+.055)/1.055,2.4)),s=t.properties.get(\"color\").toRenderColor(null).toArray01(),r=t.properties.get(\"intensity\"),a=t.properties.get(\"direction\"),n=1-e.cb(a.x,a.y,a.z)[2]/90,l=o(s)*r*n,c=i.properties.get(\"color\").toRenderColor(null).toArray01(),h=i.properties.get(\"intensity\"),u=o(c)*h;return Number(((l+u)/2).toFixed(6))}getBrightness(){return this._brightness}getLights(){if(!this.enable3dLights())return null;const e=[];return this.directionalLight&&e.push(this.directionalLight.get()),this.ambientLight&&e.push(this.ambientLight.get()),e}enable3dLights(){return !!this.ambientLight&&!!this.directionalLight}getFragmentStyle(t){if(!t)return this;if(e.cr(t)){const i=e.cs(t),o=this.fragments.find((({id:e})=>e===i));if(!o)throw new Error(`Style import '${t}' not found`);const s=e.cq(t);return o.style.getFragmentStyle(s)}{const e=this.fragments.find((({id:e})=>e===t));if(!e)throw new Error(`Style import '${t}' not found`);return e.style}}setFeaturesetSelectors(t){if(!t)return;const i={},o=(e,t=\"\")=>`${e}::${t}`;this.featuresetSelectors={};for(const s in t){const r=this.featuresetSelectors[s]=[];for(const a of t[s].selectors){if(a.featureNamespace){const t=this.getOwnLayer(a.layer);if(!t){e.w(`Layer is undefined for selector: ${a.layer}`);continue}const r=o(t.source,t.sourceLayer);if(r in i&&i[r]!==a.featureNamespace){e.w(`\"featureNamespace ${a.featureNamespace} of featureset ${s}'s selector is not associated to the same source, skip this selector`);continue}i[r]=a.featureNamespace;}let t;if(a.properties)for(const i in a.properties){const o=e.U(a.properties[i]);\"success\"===o.result&&(t=t||{},t[i]=o.value);}r.push({layerId:a.layer,namespace:a.featureNamespace,properties:t});}}}getFeaturesetDescriptors(e){const t=this.getFragmentStyle(e);if(!t||!t.stylesheet.featuresets)return [];const i=[];for(const e in t.stylesheet.featuresets)i.push({featuresetId:e,importId:t.scope?t.scope:void 0});return i}getFeaturesetLayers(t,i){const o=this.getFragmentStyle(i),s=o.stylesheet.featuresets;if(!s||!s[t])return this.fire(new e.y(new Error(`The featureset '${t}' does not exist in the map's style and cannot be queried.`))),[];const r=[];for(const e of s[t].selectors){const t=o.getOwnLayer(e.layer);t&&r.push(t);}return r}getConfigProperty(t,i){const o=this.getFragmentStyle(t);if(!o)return null;const s=e.aC(i,o.scope),r=o.options.get(s),a=r?r.value||r.default:null;return a?a.serialize():null}setConfigProperty(t,i,o){const s=this.getFragmentStyle(t);if(!s)return;const r=s.stylesheet.indoor?ho(s.stylesheet.schema):s.stylesheet.schema;if(!r||!r[i])return;const a=e.U(o);if(\"success\"!==a.result)return void fo(this,a.value);const n=a.value.expression,l=e.aC(i,s.scope),c=s.options.get(l);if(!c)return;let h;const{minValue:u,maxValue:d,stepValue:_,type:p,values:f}=r[i],m=e.U(r[i].default);\"success\"===m.result&&(h=m.value.expression),h?(this.options.set(l,{...c,value:n,default:h,minValue:u,maxValue:d,stepValue:_,type:p,values:f}),this.updateConfigDependencies(i)):this.fire(new e.y(new Error(`No schema defined for the config option \"${i}\" in the \"${t}\" fragment.`)));}getConfig(t){const i=this.getFragmentStyle(t);if(!i)return null;const o=i.stylesheet.schema;if(!o)return null;const s={};for(const t in o){const o=e.aC(t,i.scope),r=i.options.get(o),a=r?r.value||r.default:null;s[t]=a?a.serialize():null;}return s}setConfig(e,t){const i=this.getFragmentStyle(e);i&&(i.updateConfig(t,i.stylesheet.schema),this.updateConfigDependencies());}getSchema(e){const t=this.getFragmentStyle(e);return t?t.stylesheet.schema:null}setSchema(e,t){const i=this.getFragmentStyle(e);i&&(i.stylesheet.schema=t,i.updateConfig(i._config,t),this.updateConfigDependencies());}updateConfig(t,i){if(this._config=t,t||i)if(i)for(const o in i){let s,r;const a=e.U(i[o].default);if(\"success\"===a.result&&(s=a.value.expression),t&&void 0!==t[o]){const i=e.U(t[o]);\"success\"===i.result&&(r=i.value.expression);}const{minValue:n,maxValue:l,stepValue:c,type:h,values:u}=i[o];if(s){const t=e.aC(o,this.scope);this.options.set(t,{default:s,value:r,minValue:n,maxValue:l,stepValue:c,type:h,values:u});}else this.fire(new e.y(new Error(`No schema defined for config option \"${o}\".`)));}else this.fire(new e.y(new Error(\"Attempting to set config for a style without schema.\")));}updateConfigDependencies(e){for(const t of this._configDependentLayers){const i=this.getLayer(t);if(i){if(e&&!i.configDependencies.has(e))continue;i.possiblyEvaluateVisibility(),this._updateLayer(i);}}this.ambientLight&&this.ambientLight.updateConfig(this.options),this.directionalLight&&this.directionalLight.updateConfig(this.options),this.fog&&this.fog.updateConfig(this.options),this.snow&&this.snow.updateConfig(this.options),this.rain&&this.rain.updateConfig(this.options),this.forEachFragmentStyle((e=>{const t=e._styleColorTheme.colorThemeOverride?e._styleColorTheme.colorThemeOverride:e._styleColorTheme.colorTheme;if(t){const i=e._evaluateColorThemeData(t);(!e._styleColorTheme.lut&&\"\"!==i||e._styleColorTheme.lut&&i!==e._styleColorTheme.lut.data)&&e.setColorTheme(t);}})),this._changes.setDirty();}addLayer(t,i,o={}){this._checkLoaded();const s=t.id;if(this._layers[s])return void this.fire(new e.y(new Error(`Layer with id \"${s}\" already exists on this map`)));let r;if(\"custom\"===t.type){if(fo(this,e.ct(t)))return;r=e.cu(t,this.scope,this._styleColorTheme.lut,this.options);}else {if(\"object\"==typeof t.source&&(this.addSource(s,t.source),t=e.cp(t),t=e.l(t,{source:s})),this._validate(Ee,`layers.${s}`,t,{arrayIndex:-1},o))return;r=e.cu(t,this.scope,this._styleColorTheme.lut,this.options),this._validateLayer(r),r.setEventedParent(this,{layer:{id:s}});}0!==r.configDependencies.size&&this._configDependentLayers.add(r.fqid);let a=this._order.length;if(i){const t=this._order.indexOf(i);if(-1===t)return void this.fire(new e.y(new Error(`Layer with id \"${i}\" does not exist on this map.`)));r.slot===this._layers[i].slot?a=t:e.w(`Layer with id \"${i}\" has a different slot. Layers can only be rearranged within the same slot.`);}this._order.splice(a,0,s),this._layerOrderChanged=!0,this._layers[s]=r;const n=this.getOwnLayerSourceCache(r),l=!!this.directionalLight&&this.directionalLight.shadowsEnabled();n&&r.canCastShadows()&&l&&(n.castsShadows=!0);const c=this._changes.getRemovedLayer(r);if(c&&r.source&&n&&\"custom\"!==r.type){this._changes.discardLayerRemoval(r);const t=e.aC(r.source,r.scope);c.type!==r.type?this._changes.updateSourceCache(t,\"clear\"):(this._changes.updateSourceCache(t,\"reload\"),n.pause());}this._updateLayer(r),r.onAdd&&r.onAdd(this.map),r.scope=this.scope,this.mergeLayers();}moveLayer(t,i){this._checkLoaded();const o=this._checkLayer(t);if(!o)return;if(t===i)return;const s=this._order.indexOf(t);this._order.splice(s,1);let r=this._order.length;if(i){const t=this._order.indexOf(i);if(-1===t)return void this.fire(new e.y(new Error(`Layer with id \"${i}\" does not exist on this map.`)));o.slot===this._layers[i].slot?r=t:e.w(`Layer with id \"${i}\" has a different slot. Layers can only be rearranged within the same slot.`);}this._order.splice(r,0,t),this._changes.setDirty(),this._layerOrderChanged=!0,this.mergeLayers();}removeLayer(e){this._checkLoaded();const t=this._checkLayer(e);if(!t)return;t.setEventedParent(null);const i=this._order.indexOf(e);this._order.splice(i,1),delete this._layers[e],this._changes.setDirty(),this._layerOrderChanged=!0,this._configDependentLayers.delete(t.fqid),this._changes.removeLayer(t);const o=this.getOwnLayerSourceCache(t);if(o&&o.castsShadows){let e=!1;for(const i in this._layers)if(this._layers[i].source===t.source&&this._layers[i].canCastShadows()){e=!0;break}o.castsShadows=e;}t.onRemove&&t.onRemove(this.map),this.mergeLayers();}getOwnLayer(e){return this._layers[e]}hasLayer(e){return e in this._mergedLayers}hasLayerType(e){for(const t in this._layers)if(this._layers[t].type===e)return !0;return !1}setLayerZoomRange(e,t,i){this._checkLoaded();const o=this._checkLayer(e);o&&(o.minzoom===t&&o.maxzoom===i||(null!=t&&(o.minzoom=t),null!=i&&(o.maxzoom=i),this._updateLayer(o)));}getSlots(){return this._checkLoaded(),this._mergedSlots}setSlot(e,t){this._checkLoaded();const i=this._checkLayer(e);i&&i.slot!==t&&(i.slot=t,this._updateLayer(i));}setFilter(t,i,o={}){this._checkLoaded();const s=this._checkLayer(t);if(s&&!e.bn(s.filter,i))return null==i?(s.filter=void 0,void this._updateLayer(s)):void(this._validate(Se,`layers.${s.id}.filter`,i,{layerType:s.type},o)||(s.filter=e.cp(i),this._updateLayer(s)))}getFilter(t){const i=this._checkLayer(t);if(i)return e.cp(i.filter)}setLayoutProperty(t,i,o,s={}){this._checkLoaded();const r=this._checkLayer(t);if(r&&!e.bn(r.getLayoutProperty(i),o)){if(null!=o&&(!s||!1!==s.validate)&&fo(r,Ie.call(me,{key:`layers.${t}.layout.${i}`,layerType:r.type,objectKey:i,value:o,styleSpec:e.a3,style:{glyphs:!0,sprite:!0}})))return;r.setLayoutProperty(i,o),0!==r.configDependencies.size&&this._configDependentLayers.add(r.fqid),this._updateLayer(r);}}getLayoutProperty(e,t){const i=this._checkLayer(e);if(i)return i.getLayoutProperty(t)}setPaintProperty(t,i,o,s={}){this._checkLoaded();const r=this._checkLayer(t);if(!r)return;if(e.bn(r.getPaintProperty(i),o))return;if(null!=o&&(!s||!1!==s.validate)&&fo(r,Ce.call(me,{key:`layers.${t}.paint.${i}`,layerType:r.type,objectKey:i,value:o,styleSpec:e.a3})))return;const a=r.setPaintProperty(i,o);0!==r.configDependencies.size&&this._configDependentLayers.add(r.fqid),a&&this._updateLayer(r),this._changes.updatePaintProperties(r);}getPaintProperty(e,t){const i=this._checkLayer(e);if(i)return i.getPaintProperty(t)}setFeatureState(t,i){if(this._checkLoaded(),\"target\"in t){if(\"featuresetId\"in t.target){const{featuresetId:e,importId:o}=t.target,s=this.getFragmentStyle(o),r=s.getFeaturesetLayers(e);for(const{source:e,sourceLayer:o}of r)s.setFeatureState({id:t.id,source:e,sourceLayer:o},i);}else if(\"layerId\"in t.target){const{layerId:e}=t.target,o=this.getLayer(e);this.setFeatureState({id:t.id,source:o.source,sourceLayer:o.sourceLayer},i);}return}const o=t.source,s=t.sourceLayer,r=this._checkSource(o);if(!r)return;const a=r.type;if(\"geojson\"===a&&s)return void this.fire(new e.y(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\")));if(\"vector\"===a&&!s)return void this.fire(new e.y(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));void 0===t.id&&this.fire(new e.y(new Error(\"The feature id parameter must be provided.\")));const n=this.getOwnSourceCaches(o);for(const e of n)e.setFeatureState(s,t.id,i);}removeFeatureState(t,i){if(this._checkLoaded(),\"target\"in t){if(\"featuresetId\"in t.target){const{featuresetId:e,importId:o}=t.target,s=this.getFragmentStyle(o),r=s.getFeaturesetLayers(e);for(const{source:e,sourceLayer:o}of r)s.removeFeatureState({id:t.id,source:e,sourceLayer:o},i);}else if(\"layerId\"in t.target){const{layerId:e}=t.target,o=this.getLayer(e);this.removeFeatureState({id:t.id,source:o.source,sourceLayer:o.sourceLayer},i);}return}const o=t.source,s=this._checkSource(o);if(!s)return;const r=s.type,a=\"vector\"===r?t.sourceLayer:void 0;if(\"vector\"===r&&!a)return void this.fire(new e.y(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));if(i&&\"string\"!=typeof t.id&&\"number\"!=typeof t.id)return void this.fire(new e.y(new Error(\"A feature id is required to remove its specific state property.\")));const n=this.getOwnSourceCaches(o);for(const e of n)e.removeFeatureState(a,t.id,i);}getFeatureState(t){if(this._checkLoaded(),\"target\"in t){let i;if(\"featuresetId\"in t.target){const{featuresetId:o,importId:s}=t.target,r=this.getFragmentStyle(s),a=r.getFeaturesetLayers(o);for(const{source:o,sourceLayer:s}of a){const a=r.getFeatureState({id:t.id,source:o,sourceLayer:s});if(a&&!i)i=a;else if(!e.bn(i,a))return void this.fire(new e.y(new Error(\"The same feature id exists in multiple sources in the featureset, but their feature states are not consistent through the sources.\")))}}else if(\"layerId\"in t.target){const{layerId:e}=t.target,o=this.getLayer(e);i=this.getFeatureState({id:t.id,source:o.source,sourceLayer:o.sourceLayer});}return i}const i=t.source,o=t.sourceLayer,s=this._checkSource(i);if(s){if(\"vector\"!==s.type||o)return void 0===t.id&&this.fire(new e.y(new Error(\"The feature id parameter must be provided.\"))),this.getOwnSourceCaches(i)[0].getFeatureState(o,t.id);this.fire(new e.y(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));}}setTransition(t){return this.stylesheet.transition=e.l({},this.stylesheet.transition,t),this.transition=this.stylesheet.transition,this}getTransition(){return e.l({},this.stylesheet.transition)}serialize(){this._checkLoaded();const t=this.getTerrain(),i=t&&this.terrain&&this.terrain.scope===this.scope?t:this.stylesheet.terrain;return e.cv({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,fragment:this.stylesheet.fragment,imports:this._serializeImports(),schema:this.stylesheet.schema,camera:this.stylesheet.camera,light:this.stylesheet.light,lights:this.stylesheet.lights,terrain:i,fog:this.stylesheet.fog,snow:this.stylesheet.snow,rain:this.stylesheet.rain,center:this.stylesheet.center,\"color-theme\":this.stylesheet[\"color-theme\"],zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,projection:this.stylesheet.projection,sources:this._serializeSources(),layers:this._serializeLayers(this._order)},(e=>void 0!==e))}_updateFilteredLayers(e){for(const t of Object.values(this._mergedLayers))e(t)&&this._updateLayer(t);}_updateLayer(t){this._changes.updateLayer(t);const i=this.getLayerSourceCache(t),o=e.aC(t.source,t.scope),s=this._changes.getUpdatedSourceCaches();t.source&&!s[o]&&i&&\"raster\"!==i.getSource().type&&(this._changes.updateSourceCache(o,\"reload\"),i.pause()),t.invalidateCompiledFilter();}_flattenAndSortRenderedFeatures(e){const t=e=>this._mergedLayers[e].is3D(),i=this.order,o={},s=[];for(let r=i.length-1;r>=0;r--){const a=i[r];if(t(a)){o[a]=r;for(const t of e){const e=t[a];if(e)for(const t of e)s.push(t);}}}s.sort(((e,t)=>t.intersectionZ-e.intersectionZ));const r=[];for(let a=i.length-1;a>=0;a--){const n=i[a];if(t(n))for(let e=s.length-1;e>=0;e--){const t=s[e].feature;if(t.layer&&o[t.layer.id]<a)break;r.push(t),s.pop();}else for(const t of e){const e=t[n];if(e)for(const t of e)r.push(t.feature);}}return r}queryRenderedFeatures(t,i,o){let s;i&&!Array.isArray(i)&&i.filter&&(this._validate(Se,\"queryRenderedFeatures.filter\",i.filter,null,i),s=e.aZ(i.filter));const r={},a=e=>{if(vo.has(e.type))return;const t=this.getOwnLayerSourceCache(e),i=r[t.id]=r[t.id]||{sourceCache:t,layers:{},has3DLayers:!1};e.is3D()&&(i.has3DLayers=!0),i.layers[e.fqid]=i.layers[e.fqid]||{styleLayer:e,targets:[]},i.layers[e.fqid].targets.push({filter:s});};if(i&&i.layers){if(!Array.isArray(i.layers))return this.fire(new e.y(new Error(\"parameters.layers must be an Array.\"))),[];for(const t of i.layers){const i=this._layers[t];if(!i)return this.fire(new e.y(new Error(`The layer '${t}' does not exist in the map's style and cannot be queried for features.`))),[];a(i);}}else for(const e in this._layers)a(this._layers[e]);const n=this._queryRenderedFeatures(t,r,o),l=this._flattenAndSortRenderedFeatures(n),c=[];for(const t of l)e.cs(t.layer.id)===this.scope&&c.push(t);return c}queryRenderedFeatureset(t,i,o){let s;i&&!Array.isArray(i)&&i.filter&&(this._validate(Se,\"queryRenderedFeatures.filter\",i.filter,null,i),s=e.aZ(i.filter));const r=\"mock\",a=[];if(i&&i.target)a.push({...i,targetId:r,filter:s});else {const e=this.getFeaturesetDescriptors();for(const t of e)a.push({targetId:r,filter:s,target:t});for(const{style:e}of this.fragments){const t=e.getFeaturesetDescriptors();for(const e of t)a.push({targetId:r,filter:s,target:e});}}const n=this.queryRenderedTargets(t,a,o),l=[];for(const t of n)for(const i of t.variants[r])l.push(new e.cw(t,i));return l}queryRenderedTargets(t,i,o){const s={},r=(e,t,i,o)=>{const r=s[t.id]=s[t.id]||{sourceCache:t,layers:{},has3DLayers:!1};r.layers[e.fqid]=r.layers[e.fqid]||{styleLayer:e,targets:[]},e.is3D()&&(r.has3DLayers=!0),r.layers[e.fqid].targets.push(o?{...i,namespace:o.namespace,properties:o.properties}:i);};for(const t of i)if(\"featuresetId\"in t.target){const{featuresetId:i,importId:o}=t.target,s=this.getFragmentStyle(o),a=s.featuresetSelectors[i];if(!a){this.fire(new e.y(new Error(`The featureset '${i}' does not exist in the map's style and cannot be queried for features.`)));continue}for(const e of a){const i=s.getOwnLayer(e.layerId);i&&!vo.has(i.type)&&r(i,s.getOwnLayerSourceCache(i),t,e);}}else if(\"layerId\"in t.target){const{layerId:e}=t.target,i=this.getLayer(e);if(!i||vo.has(i.type))continue;r(i,this.getLayerSourceCache(i),t);}const a=this._queryRenderedFeatures(t,s,o);return this._flattenAndSortRenderedFeatures(a)}_queryRenderedFeatures(e,t,i){const o=[],s=!!this.map._showQueryGeometry,r=Xe.createFromScreenPoints(e,i);for(const e in t){const a=at(r,t[e],this._availableImages,i,s);Object.keys(a).length&&o.push(a);}if(this.placement)for(const e in t){if(!t[e].sourceCache._onlySymbols)continue;const i=nt(r.screenGeometry,t[e],this._availableImages,this.placement.collisionIndex,this.placement.retainedQueryData);Object.keys(i).length&&o.push(i);}return o}querySourceFeatures(e,t){const i=t&&t.filter;i&&this._validate(Se,\"querySourceFeatures.filter\",i,null,t);let o=[];const s=this.getOwnSourceCaches(e);for(const e of s)o=o.concat(lt(e,t));return o}addSourceType(e,t,i){return bo.getSourceType(e)?i(new Error(`A source type called \"${e}\" already exists.`)):(bo.setSourceType(e,t),t.workerSourceURL?void this.dispatcher.broadcast(\"loadWorkerSource\",{name:e,url:t.workerSourceURL},i):i(null,null))}getFlatLight(){return this.light.getLight()}setFlatLight(t,i,o={}){this._checkLoaded();const s=this.light.getLight();let r=!1;for(const i in t)if(!e.bn(t[i],s[i])){r=!0;break}if(!r)return;const a=this._getTransitionParameters();this.light.setLight(t,i,o),this.light.updateTransitions(a);}getTerrain(){return this.terrain&&1===this.terrain.drapeRenderMode?this.terrain.get():null}setTerrainForDraping(){this.setTerrain({source:\"\",exaggeration:0},0);}checkCanvasFingerprintNoise(){void 0===this.disableElevatedTerrain&&(this.disableElevatedTerrain=e.q.hasCanvasFingerprintNoise(),this.disableElevatedTerrain&&e.w(\"Terrain and hillshade are disabled because of Canvas2D limitations when fingerprinting protection is enabled (e.g. in private browsing mode).\"));}setTerrain(t,i=1){if(this._checkLoaded(),!t)return this.terrainSetForDrapingOnly()||(delete this.terrain,this.map.transform.projection.requiresDraping&&this.setTerrainForDraping()),0===i&&delete this.terrain,null===t?this.stylesheet.terrain=null:delete this.stylesheet.terrain,this._force3DLayerUpdate(),void(this._markersNeedUpdate=!0);this.checkCanvasFingerprintNoise();let o=t;const s=null==t.source;if(1===i){if(this.disableElevatedTerrain)return;if(\"object\"==typeof o.source){const t=\"terrain-dem-src\";this.addSource(t,o.source),o=e.cp(o),o=e.l(o,{source:t});}const t=e.l({},o),i={};if(this.terrain&&s){t.source=this.terrain.get().source;const e=this.terrain?this.getFragmentStyle(this.terrain.scope):null;e&&(i.style=e.serialize());}if(this._validate(xe,\"terrain\",t,i))return}if(!this.terrain||this.terrain.scope!==this.scope&&!s||this.terrain&&i!==this.terrain.drapeRenderMode){if(!o)return;this._createTerrain(o,i),this.fire(new e.z(\"data\",{dataType:\"style\"}));}else {const i=this.terrain,s=i.get();for(const t of Object.keys(e.a3.terrain))!o.hasOwnProperty(t)&&e.a3.terrain[t].default&&(o[t]=e.a3.terrain[t].default);for(const o in t)if(!e.bn(t[o],s[o])){i.set(t,this.options),this.stylesheet.terrain=t;const o=this._getTransitionParameters({duration:0});i.updateTransitions(o),this.fire(new e.z(\"data\",{dataType:\"style\"}));break}}this.mergeTerrain(),this.updateDrapeFirstLayers(),this._markersNeedUpdate=!0;}_createFog(e){const t=this.fog=new Ge(e,this.map.transform,this.scope,this.options);this.stylesheet.fog=t.get();const i=this._getTransitionParameters({duration:0});t.updateTransitions(i);}_createSnow(e){const t=this.snow=new Ze(e,this.map.transform,this.scope,this.options);this.stylesheet.snow=t.get();const i=this._getTransitionParameters({duration:0});t.updateTransitions(i);}_createRain(e){const t=this.rain=new We(e,this.map.transform,this.scope,this.options);this.stylesheet.rain=t.get();const i=this._getTransitionParameters({duration:0});t.updateTransitions(i);}_updateMarkersOpacity(){0!==this.map._markers.length&&this.map._requestDomTask((()=>{for(const e of this.map._markers)e._evaluateOpacity();}));}getFog(){return this.fog?this.fog.get():null}setFog(t){if(this._checkLoaded(),!t)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const i=this.fog;if(!e.bn(i.get(),t)){i.set(t,this.options),this.stylesheet.fog=i.get();const e=this._getTransitionParameters({duration:0});i.updateTransitions(e);}}else this._createFog(t);this._markersNeedUpdate=!0;}getSnow(){return this.snow?this.snow.get():null}setSnow(t){if(this._checkLoaded(),!t)return delete this.snow,void delete this.stylesheet.snow;if(this.snow){const i=this.snow;if(!e.bn(i.get(),t)){i.set(t,this.options),this.stylesheet.snow=i.get();const e=this._getTransitionParameters({duration:0});i.updateTransitions(e);}}else this._createSnow(t);this._markersNeedUpdate=!0;}getRain(){return this.rain?this.rain.get():null}setRain(t){if(this._checkLoaded(),!t)return delete this.rain,void delete this.stylesheet.rain;if(this.rain){const i=this.rain;if(!e.bn(i.get(),t)){i.set(t,this.options),this.stylesheet.rain=i.get();const e=this._getTransitionParameters({duration:0});i.updateTransitions(e);}}else this._createRain(t);this._markersNeedUpdate=!0;}_reloadColorTheme(){const t=()=>{for(const e in this._layers)this._layers[e].lut=this._styleColorTheme.lut;for(const e in this._sourceCaches)this._sourceCaches[e].clearTiles();},i=this._styleColorTheme.colorThemeOverride?this._styleColorTheme.colorThemeOverride:this._styleColorTheme.colorTheme;if(!i)return this._styleColorTheme.lut=null,void t();const o=this._evaluateColorThemeData(i);this._loadColorTheme(o).then((()=>{this.fire(new e.z(\"colorthemeset\")),t();})).catch((t=>{e.w(`Couldn't set color theme: ${t}`);}));}setColorTheme(t){this._checkLoaded(),this._styleColorTheme.colorThemeOverride&&e.w(\"Note: setColorTheme is called on a style with a color-theme override, the passed color-theme won't be visible.\"),this._styleColorTheme.colorTheme=t,this._reloadColorTheme();}setImportColorTheme(e,t){const i=this.getFragmentStyle(e);i&&(i._styleColorTheme.colorThemeOverride=t,i._reloadColorTheme());}_getTransitionParameters(t){return {now:e.q.now(),transition:e.l(this.transition,t)}}updateDrapeFirstLayers(){if(!this.terrain)return;const e=[],t=[];for(const i of this._mergedOrder)this.isLayerDraped(this._mergedLayers[i])?e.push(i):t.push(i);this._drapedFirstOrder=[],this._drapedFirstOrder.push(...e),this._drapedFirstOrder.push(...t);}_createTerrain(e,t){const i=this.terrain=new Pe(e,t,this.scope,this.options);1===t&&(this.stylesheet.terrain=e),this.mergeTerrain(),this.updateDrapeFirstLayers(),this._force3DLayerUpdate();const o=this._getTransitionParameters({duration:0});i.updateTransitions(o);}_force3DLayerUpdate(){for(const e in this._layers){const t=this._layers[e];\"fill-extrusion\"===t.type&&this._updateLayer(t);}}_forceSymbolLayerUpdate(){for(const e in this._layers){const t=this._layers[e];\"symbol\"===t.type&&this._updateLayer(t);}}_validate(t,i,o,s,r={}){if(r&&!1===r.validate)return !1;const a=e.l({},this.serialize());return fo(this,t.call(me,e.l({key:i,style:a,value:o,styleSpec:e.a3},s)))}_remove(){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),e.cx.off(\"pluginStateChange\",this._rtlTextPluginCallback);for(const e in this._mergedLayers)this._mergedLayers[e].setEventedParent(null);for(const e in this._mergedSourceCaches)this._mergedSourceCaches[e].clearTiles(),this._mergedSourceCaches[e].setEventedParent(null);this.setEventedParent(null),delete this.fog,delete this.snow,delete this.rain,delete this.terrain,delete this.ambientLight,delete this.directionalLight,this.isRootStyle()&&(this.imageManager.setEventedParent(null),this.modelManager.setEventedParent(null),this.dispatcher.remove());}clearSource(e){const t=this.getSourceCaches(e);for(const e of t)e.clearTiles();}clearSources(){for(const e in this._mergedSourceCaches)this._mergedSourceCaches[e].clearTiles();}reloadSource(e){const t=this.getSourceCaches(e);for(const e of t)e.resume(),e.reload();}reloadSources(){for(const e of this.getSources())e.reload&&e.reload();}updateSources(e){let t;this.directionalLight&&(t=so(this.directionalLight));for(const i in this._mergedSourceCaches)this._mergedSourceCaches[i].update(e,void 0,void 0,t);}_generateCollisionBoxes(){for(const e in this._sourceCaches){const t=this._sourceCaches[e];t.resume(),t.reload();}}_updatePlacement(t,i,o,s,r,a,n=!1){let l=!1,c=!1;const h={},u={};for(const t of this._mergedOrder){const o=this._mergedLayers[t];if(\"symbol\"!==o.type)continue;const s=e.aC(o.source,o.scope);let r=h[s];if(!r){const e=this.getLayerSourceCache(o);if(!e)continue;const t=e.getRenderableIds(!0).map((t=>e.getTileByID(t)));u[s]=t.slice(),r=h[s]=t.sort(((e,t)=>t.tileID.overscaledZ-e.tileID.overscaledZ||(e.tileID.isLessThan(t.tileID)?-1:1)));}const a=this.crossTileSymbolIndex.addLayer(o,r,i.center.lng,i.projection);l=l||a;}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._mergedOrder),n=n||this._layerOrderChanged||0===s,this._layerOrderChanged&&this.fire(new e.z(\"neworder\")),(n||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(e.q.now(),i.zoom))&&(this.pauseablePlacement=new Ri(i,this._mergedOrder,n,o,s,r,this.placement,this.fog&&i.projection.supportsFog?this.fog.state:null,this._buildingIndex),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._mergedOrder,this._mergedLayers,h,u,this.map.painter.scaleFactor),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(e.q.now()),c=!0),l&&this.pauseablePlacement.placement.setStale()),c||l){this._buildingIndex.onNewFrame(i.zoom);for(let t=0;t<this._mergedOrder.length;t++){const i=this._mergedLayers[this._mergedOrder[t]];if(\"symbol\"!==i.type)continue;const o=this.isLayerClipped(i);this.placement.updateLayerOpacities(i,h[e.aC(i.source,i.scope)],t,o?a:null);}}return {needsRerender:!this.pauseablePlacement.isDone()||this.placement.hasTransitions(e.q.now())}}_releaseSymbolFadeTiles(){for(const e in this._sourceCaches)this._sourceCaches[e].releaseSymbolFadeTiles();}addImport(t,i){this._checkLoaded();const o=this.stylesheet.imports=this.stylesheet.imports||[];if(-1!==o.findIndex((({id:e})=>e===t.id)))return void this.fire(new e.y(new Error(`Import with id '${t.id}' already exists in the map's style.`)));if(!i)return o.push(t),this._loadImports([t],!0);const s=o.findIndex((({id:e})=>e===i));return -1===s&&this.fire(new e.y(new Error(`Import with id \"${i}\" does not exist on this map.`))),this.stylesheet.imports=o.slice(0,s).concat(t).concat(o.slice(s)),this._loadImports([t],!0,i)}updateImport(t,i){this._checkLoaded();const o=this.stylesheet.imports||[],s=this.getImportIndex(t);return -1===s?this:\"string\"==typeof i?(this.setImportUrl(t,i),this):(i.url&&i.url!==o[s].url&&this.setImportUrl(t,i.url),e.bn(i.config,o[s].config)||this.setImportConfig(t,i.config),e.bn(i.data,o[s].data)||this.setImportData(t,i.data),this)}moveImport(e,t){this._checkLoaded();let i=this.stylesheet.imports||[];const o=this.getImportIndex(e);if(-1===o)return this;const s=this.getImportIndex(t);if(-1===s)return this;const r=i[o],a=this.fragments[o];return i=i.filter((({id:t})=>t!==e)),this.fragments=this.fragments.filter((({id:t})=>t!==e)),this.stylesheet.imports=i.slice(0,s).concat(r).concat(i.slice(s)),this.fragments=this.fragments.slice(0,s).concat(a).concat(this.fragments.slice(s)),this.mergeLayers(),this}setImportUrl(e,t){this._checkLoaded();const i=this.stylesheet.imports||[],o=this.getImportIndex(e);if(-1===o)return this;i[o].url=t;const s=this.fragments[o];return s.style=this._createFragmentStyle(i[o]),s.style.on(\"style.import.load\",(()=>this.mergeAll())),s.style.loadURL(t),this}setImportData(e,t){this._checkLoaded();const i=this.getImportIndex(e),o=this.stylesheet.imports||[];return -1===i?this:t?(this.fragments[i].style.setState(t),this._reloadImports(),this):(delete o[i].data,this.setImportUrl(e,o[i].url))}setImportConfig(e,t){this._checkLoaded();const i=this.getImportIndex(e),o=this.stylesheet.imports||[];if(-1===i)return this;t?o[i].config=t:delete o[i].config;const s=this.fragments[i],r=s.style.stylesheet&&s.style.stylesheet.schema;return s.config=t,s.style.updateConfig(t,r),this.updateConfigDependencies(),this}removeImport(e){this._checkLoaded();const t=this.stylesheet.imports||[],i=this.getImportIndex(e);-1!==i&&(t.splice(i,1),this.fragments[i].style._remove(),this.fragments.splice(i,1),this._reloadImports());}getImportIndex(t){const i=(this.stylesheet.imports||[]).findIndex((e=>e.id===t));return -1===i&&this.fire(new e.y(new Error(`Import '${t}' does not exist in the map's style and cannot be updated.`))),i}getLayer(e){return this._mergedLayers[e]}getSources(){const e=[];for(const t in this._mergedOtherSourceCaches){const i=this._mergedOtherSourceCaches[t];i&&e.push(i.getSource());}return e}getSource(e,t){const i=this.getSourceCache(e,t);return i&&i.getSource()}getLayerSource(e){const t=this.getLayerSourceCache(e);return t&&t.getSource()}getSourceCache(t,i){const o=e.aC(t,i);return this._mergedOtherSourceCaches[o]}getLayerSourceCache(t){const i=e.aC(t.source,t.scope);return \"symbol\"===t.type?this._mergedSymbolSourceCaches[i]:this._mergedOtherSourceCaches[i]}getSourceCaches(e){if(null==e)return Object.values(this._mergedSourceCaches);const t=[];return this._mergedOtherSourceCaches[e]&&t.push(this._mergedOtherSourceCaches[e]),this._mergedSymbolSourceCaches[e]&&t.push(this._mergedSymbolSourceCaches[e]),t}updateSourceCaches(){const e=this._changes.getUpdatedSourceCaches();for(const t in e){const i=e[t];\"reload\"===i?this.reloadSource(t):\"clear\"===i&&this.clearSource(t);}}updateLayers(e){const t=this._changes.getUpdatedPaintProperties();for(const i of t){const t=this.getLayer(i);t&&t.updateTransitions(e);}}getImages(e,t,i){this.imageManager.getImages(t.icons,t.scope,i),this._updateTilesForChangedImages();const o=e=>{e&&e.setDependencies(t.tileID.key,t.type,t.icons);};o(this._otherSourceCaches[t.source]),o(this._symbolSourceCaches[t.source]);}rasterizeImages(e,t,i){this.imageManager.rasterizeImages(t,i);}getGlyphs(e,t,i){this.glyphManager.getGlyphs(t.stacks,t.scope,i);}getResource(t,i,o){return e.cy(i,o)}getOwnSourceCache(e){return this._otherSourceCaches[e]}getOwnLayerSourceCache(e){return \"symbol\"===e.type?this._symbolSourceCaches[e.source]:this._otherSourceCaches[e.source]}getOwnSourceCaches(e){const t=[];return this._otherSourceCaches[e]&&t.push(this._otherSourceCaches[e]),this._symbolSourceCaches[e]&&t.push(this._symbolSourceCaches[e]),t}_isSourceCacheLoaded(t){const i=this.getOwnSourceCaches(t);return 0===i.length?(this.fire(new e.y(new Error(`There is no source with ID '${t}'`))),!1):i.every((e=>e.loaded()))}has3DLayers(){return this._has3DLayers}hasSymbolLayers(){return this._hasSymbolLayers}hasCircleLayers(){return this._hasCircleLayers}isLayerClipped(e,t){if(!this._clipLayerPresent&&\"fill-extrusion\"!==e.type)return !1;const i=\"fill-extrusion\"===e.type&&\"building\"===e.sourceLayer;if(e.is3D()){if(i||t&&\"batched-model\"===t.type)return !0;if(\"model\"===e.type)return !0}else if(\"symbol\"===e.type)return !0;return !1}_clearWorkerCaches(){this.dispatcher.broadcast(\"clearCaches\");}destroy(){this._clearWorkerCaches(),this.fragments.forEach((e=>{e.style._remove();})),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain);}}bo.getSourceType=function(e){return st[e]},bo.setSourceType=function(e,t){st[e]=t;},bo.registerForPluginStateChange=e.ch;var wo=\"\\n#define EPSILON 0.0000001\\n#define PI 3.141592653589793\\n#ifdef RENDER_CUTOFF\\nfloat cutoff_opacity(vec4 cutoff_params,float depth) {float near=cutoff_params.x;float far=cutoff_params.y;float cutoffStart=cutoff_params.z;float cutoffEnd=cutoff_params.w;float linearDepth=(depth-near)/(far-near);return clamp((linearDepth-cutoffStart)/(cutoffEnd-cutoffStart),0.0,1.0);}\\n#endif\",To=\"\\nout vec4 glFragColor;highp float unpack_depth(highp vec4 rgba_depth)\\n{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}highp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}\\n#ifdef INDICATOR_CUTOUT\\nuniform vec3 u_indicator_cutout_centers;uniform vec4 u_indicator_cutout_params;\\n#endif\\nvec4 applyCutout(vec4 color,float height) {\\n#ifdef INDICATOR_CUTOUT\\nfloat verticalFadeRange=u_indicator_cutout_centers.z*0.25;float holeMinOpacity=mix(1.0,u_indicator_cutout_params.x,smoothstep(u_indicator_cutout_centers.z,u_indicator_cutout_centers.z+verticalFadeRange,height));float holeRadius=max(u_indicator_cutout_params.y,0.0);float holeAspectRatio=u_indicator_cutout_params.z;float fadeStart=u_indicator_cutout_params.w;float distA=distance(vec2(gl_FragCoord.x,gl_FragCoord.y*holeAspectRatio),vec2(u_indicator_cutout_centers[0],u_indicator_cutout_centers[1]*holeAspectRatio));return color*min(smoothstep(fadeStart,holeRadius,distA)+holeMinOpacity,1.0);\\n#else\\nreturn color;\\n#endif\\n}\\n#ifdef DEBUG_WIREFRAME\\n#define HANDLE_WIREFRAME_DEBUG \\\\\\nglFragColor=vec4(0.7,0.0,0.0,0.7); \\\\\\ngl_FragDepth=gl_FragCoord.z-0.0001;\\n#else\\n#define HANDLE_WIREFRAME_DEBUG\\n#endif\\n#ifdef RENDER_CUTOFF\\nuniform highp vec4 u_cutoff_params;in float v_cutoff_opacity;\\n#endif\\nvec4 textureLodCustom(sampler2D image,highp vec2 pos,highp vec2 lod_coord) {highp vec2 size=vec2(textureSize(image,0));highp vec2 dx=dFdx(lod_coord.xy*size);highp vec2 dy=dFdy(lod_coord.xy*size);highp float delta_max_sqr=max(dot(dx,dx),dot(dy,dy));highp float lod=0.5*log2(delta_max_sqr);return textureLod(image,pos,lod);}vec4 applyLUT(highp sampler3D lut,vec4 col) {vec3 size=vec3(textureSize(lut,0));vec3 uvw=(col.rbg*float(size-1.0)+0.5)/size;return vec4(texture(lut,uvw).rgb,col.a);}vec3 applyLUT(highp sampler3D lut,vec3 col) {return applyLUT(lut,vec4(col,1.0)).rgb;}\",Eo=\"\\n#define EXTENT 8192.0\\n#define RAD_TO_DEG 180.0/PI\\n#define DEG_TO_RAD PI/180.0\\n#define GLOBE_RADIUS EXTENT/PI/2.0\\nfloat wrap(float n,float min,float max) {float d=max-min;float w=mod(mod(n-min,d)+d,d)+min;return (w==min) ? max : w;}\\n#ifdef PROJECTION_GLOBE_VIEW\\nvec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) {\\n#ifndef PROJECTED_POS_ON_VIEWPORT\\nfloat tiles=tile_id.z;vec2 mercator=(tile_anchor/EXTENT+tile_id.xy)/tiles;mercator-=mercator_center;mercator.x=wrap(mercator.x,-0.5,0.5);vec4 mercator_tile=vec4(mercator.xy*EXTENT,EXTENT/(2.0*PI),1.0);mercator_tile=matrix*mercator_tile;return mercator_tile.xyz;\\n#else\\nreturn vec3(0.0);\\n#endif\\n}vec3 mix_globe_mercator(vec3 globe,vec3 mercator,float t) {return mix(globe,mercator,t);}mat3 globe_mercator_surface_vectors(vec3 pos_normal,vec3 up_dir,float zoom_transition) {vec3 normal=zoom_transition==0.0 ? pos_normal : normalize(mix(pos_normal,up_dir,zoom_transition));vec3 xAxis=normalize(vec3(normal.z,0.0,-normal.x));vec3 yAxis=normalize(cross(normal,xAxis));return mat3(xAxis,yAxis,normal);}\\n#endif\\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(\\nunpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const vec2 units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (units_to_pixels*pos+offset)/pattern_size;}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {return get_pattern_pos(pixel_coord_upper,pixel_coord_lower,pattern_size,vec2(tile_units_to_pixels),pos);}float mercatorXfromLng(float lng) {return (180.0+lng)/360.0;}float mercatorYfromLat(float lat) {return (180.0-(RAD_TO_DEG*log(tan(PI/4.0+lat/2.0*DEG_TO_RAD))))/360.0;}vec3 latLngToECEF(vec2 latLng) {latLng=DEG_TO_RAD*latLng;float cosLat=cos(latLng[0]);float sinLat=sin(latLng[0]);float cosLng=cos(latLng[1]);float sinLng=sin(latLng[1]);float sx=cosLat*sinLng*GLOBE_RADIUS;float sy=-sinLat*GLOBE_RADIUS;float sz=cosLat*cosLng*GLOBE_RADIUS;return vec3(sx,sy,sz);}\\n#ifdef RENDER_CUTOFF\\nuniform vec4 u_cutoff_params;out float v_cutoff_opacity;\\n#endif\\nconst vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);const float skirtOffset=24575.0;vec3 decomposeToPosAndSkirt(vec2 posWithComposedSkirt)\\n{float skirt=float(posWithComposedSkirt.x >=skirtOffset);vec2 pos=posWithComposedSkirt-vec2(skirt*skirtOffset,0.0);return vec3(pos,skirt);}\",So=\"in highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;out highp vec3 v_uv;void main() {const mat3 half_neg_pi_around_x=mat3(1.0,0.0, 0.0,0.0,0.0,-1.0,0.0,1.0, 0.0);v_uv=half_neg_pi_around_x*a_pos_3f;vec4 pos=u_matrix*vec4(a_pos_3f,1.0);gl_Position=pos.xyww;}\",Co=\"\\n#define ELEVATION_SCALE 7.0\\n#define ELEVATION_OFFSET 450.0\\n#ifdef PROJECTION_GLOBE_VIEW\\nuniform vec3 u_tile_tl_up;uniform vec3 u_tile_tr_up;uniform vec3 u_tile_br_up;uniform vec3 u_tile_bl_up;uniform float u_tile_up_scale;vec3 elevationVector(vec2 pos) {vec2 uv=pos/EXTENT;vec3 up=normalize(mix(\\nmix(u_tile_tl_up,u_tile_tr_up,uv.xxx),mix(u_tile_bl_up,u_tile_br_up,uv.xxx),uv.yyy));return up*u_tile_up_scale;}\\n#else\\nvec3 elevationVector(vec2 pos) { return vec3(0,0,1); }\\n#endif\\n#ifdef TERRAIN\\nuniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev;uniform vec2 u_dem_tl;uniform vec2 u_dem_tl_prev;uniform float u_dem_scale;uniform float u_dem_scale_prev;uniform float u_dem_size;uniform float u_dem_lerp;uniform float u_exaggeration;uniform float u_meter_to_dem;uniform mat4 u_label_plane_matrix_inv;vec4 tileUvToDemSample(vec2 uv,float dem_size,float dem_scale,vec2 dem_tl) {vec2 pos=dem_size*(uv*dem_scale+dem_tl)+1.0;vec2 f=fract(pos);return vec4((pos-f+0.5)/(dem_size+2.0),f);}float currentElevation(vec2 apos) {\\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale+u_dem_tl)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture(u_dem,pos).r;\\n#else\\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale,u_dem_tl);vec2 pos=r.xy;vec2 f=r.zw;float tl=texture(u_dem,pos).r;float tr=texture(u_dem,pos+vec2(dd,0)).r;float bl=texture(u_dem,pos+vec2(0,dd)).r;float br=texture(u_dem,pos+vec2(dd,dd)).r;return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\\n#endif\\n}float prevElevation(vec2 apos) {\\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\\nvec2 pos=(u_dem_size*(apos/8192.0*u_dem_scale_prev+u_dem_tl_prev)+1.5)/(u_dem_size+2.0);return u_exaggeration*texture(u_dem_prev,pos).r;\\n#else\\nfloat dd=1.0/(u_dem_size+2.0);vec4 r=tileUvToDemSample(apos/8192.0,u_dem_size,u_dem_scale_prev,u_dem_tl_prev);vec2 pos=r.xy;vec2 f=r.zw;float tl=texture(u_dem_prev,pos).r;float tr=texture(u_dem_prev,pos+vec2(dd,0)).r;float bl=texture(u_dem_prev,pos+vec2(0,dd)).r;float br=texture(u_dem_prev,pos+vec2(dd,dd)).r;return u_exaggeration*mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);\\n#endif\\n}\\n#ifdef TERRAIN_VERTEX_MORPHING\\nfloat elevation(vec2 apos) {\\n#ifdef ZERO_EXAGGERATION\\nreturn 0.0;\\n#endif\\nfloat nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);}\\n#else\\nfloat elevation(vec2 apos) {\\n#ifdef ZERO_EXAGGERATION\\nreturn 0.0;\\n#endif\\nreturn currentElevation(apos);}\\n#endif\\nvec4 fourSample(vec2 pos,vec2 off) {float tl=texture(u_dem,pos).r;float tr=texture(u_dem,pos+vec2(off.x,0.0)).r;float bl=texture(u_dem,pos+vec2(0.0,off.y)).r;float br=texture(u_dem,pos+off).r;return vec4(tl,tr,bl,br);}float flatElevation(vec2 pack) {vec2 apos=floor(pack/8.0);vec2 span=10.0*(pack-apos*8.0);vec2 uvTex=(apos-vec2(1.0,1.0))/8190.0;float size=u_dem_size+2.0;float dd=1.0/size;vec2 pos=u_dem_size*(uvTex*u_dem_scale+u_dem_tl)+1.0;vec2 f=fract(pos);pos=(pos-f+0.5)*dd;vec4 h=fourSample(pos,vec2(dd));float z=mix(mix(h.x,h.y,f.x),mix(h.z,h.w,f.x),f.y);vec2 w=floor(0.5*(span*u_meter_to_dem-1.0));vec2 d=dd*w;h=fourSample(pos-d,2.0*d+vec2(dd));vec4 diff=abs(h.xzxy-h.ywzw);vec2 slope=min(vec2(0.25),u_meter_to_dem*0.5*(diff.xz+diff.yw)/(2.0*w+vec2(1.0)));vec2 fix=slope*span;float base=z+max(fix.x,fix.y);return u_exaggeration*base;}float elevationFromUint16(float word) {return u_exaggeration*(word/ELEVATION_SCALE-ELEVATION_OFFSET);}\\n#else\\nfloat elevation(vec2 pos) { return 0.0; }\\n#endif\\n#ifdef DEPTH_OCCLUSION\\nuniform highp sampler2D u_depth;uniform highp vec2 u_depth_size_inv;uniform highp vec2 u_depth_range_unpack;uniform highp float u_occluder_half_size;uniform highp float u_occlusion_depth_offset;\\n#ifdef DEPTH_D24\\nfloat unpack_depth(float depth) {return depth*u_depth_range_unpack.x+u_depth_range_unpack.y;}vec4 unpack_depth4(vec4 depth) {return depth*u_depth_range_unpack.x+vec4(u_depth_range_unpack.y);}\\n#else\\nhighp float unpack_depth_rgba(vec4 rgba_depth)\\n{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}\\n#endif\\nbool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;\\n#ifdef DEPTH_D24\\nfloat depth=unpack_depth(texture(u_depth,(coord.xy+1.0)*0.5).r);\\n#else\\nfloat depth=unpack_depth_rgba(texture(u_depth,(coord.xy+1.0)*0.5));\\n#endif\\nreturn coord.z+u_occlusion_depth_offset > depth;}highp vec4 getCornerDepths(vec2 coord) {highp vec3 df=vec3(u_occluder_half_size*u_depth_size_inv,0.0);highp vec2 uv=0.5*coord.xy+0.5;\\n#ifdef DEPTH_D24\\nhighp vec4 depth=vec4(\\ntexture(u_depth,uv-df.xz).r,texture(u_depth,uv+df.xz).r,texture(u_depth,uv-df.zy).r,texture(u_depth,uv+df.zy).r\\n);depth=unpack_depth4(depth);\\n#else\\nhighp vec4 depth=vec4(\\nunpack_depth_rgba(texture(u_depth,uv-df.xz)),unpack_depth_rgba(texture(u_depth,uv+df.xz)),unpack_depth_rgba(texture(u_depth,uv-df.zy)),unpack_depth_rgba(texture(u_depth,uv+df.zy))\\n);\\n#endif\\nreturn depth;}highp float occlusionFadeMultiSample(vec4 frag) {highp vec3 coord=frag.xyz/frag.w;highp vec2 uv=0.5*coord.xy+0.5;int NX=3;int NY=4;highp vec2 df=u_occluder_half_size*u_depth_size_inv;highp vec2 oneStep=2.0*u_occluder_half_size*u_depth_size_inv/vec2(NX-1,NY-1);highp float res=0.0;for (int y=0; y < NY;++y) {for (int x=0; x < NX;++x) {\\n#ifdef DEPTH_D24\\nhighp float depth=unpack_depth(texture(u_depth,uv-df+vec2(float(x)*oneStep.x,float(y)*oneStep.y)).r);\\n#else\\nhighp float depth=unpack_depth_rgba(texture(u_depth,uv-df+vec2(float(x)*oneStep.x,float(y)*oneStep.y)));\\n#endif\\nres+=1.0-clamp(300.0*(coord.z+u_occlusion_depth_offset-depth),0.0,1.0);}}res=clamp(2.0*res/float(NX*NY)-0.5,0.0,1.0);return res;}highp float occlusionFade(vec4 frag) {highp vec3 coord=frag.xyz/frag.w;highp vec4 depth=getCornerDepths(coord.xy);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z+u_occlusion_depth_offset)-depth),0.0,1.0));}\\n#else\\nbool isOccluded(vec4 frag) { return false; }highp float occlusionFade(vec4 frag) { return 1.0; }highp float occlusionFadeMultiSample(vec4 frag) { return 1.0; }\\n#endif//DEPTH_OCCLUSION\",Io=\"#ifdef FOG\\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump mat4 u_fog_matrix;out vec3 v_fog_pos;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}vec3 fog_position(vec3 pos) {return (u_fog_matrix*vec4(pos,1.0)).xyz;}vec3 fog_position(vec2 pos) {return fog_position(vec3(pos,0.0));}float fog(vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));return opacity*fog_horizon_blending(pos/depth);}\\n#endif\",Ro=\"highp vec3 hash(highp vec2 p) {highp vec3 p3=fract(p.xyx*vec3(443.8975,397.2973,491.1871));p3+=dot(p3,p3.yxz+19.19);return fract((p3.xxy+p3.yzz)*p3.zyx);}vec3 dither(vec3 color,highp vec2 seed) {vec3 rnd=hash(seed)+hash(seed+0.59374)-0.5;return color+rnd/255.0;}\\n#ifdef FOG\\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;uniform mediump vec2 u_fog_vertical_limit;uniform mediump float u_fog_temporal_offset;in vec3 v_fog_pos;uniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform highp vec2 u_viewport;uniform float u_globe_transition;uniform int u_is_globe;float fog_range(float depth) {return (depth-u_fog_range[0])/(u_fog_range[1]-u_fog_range[0]);}float fog_horizon_blending(vec3 camera_dir) {float t=max(0.0,camera_dir.z/u_fog_horizon_blend);return u_fog_color.a*exp(-3.0*t*t);}float fog_opacity(float t) {const float decay=6.0;float falloff=1.0-min(1.0,exp(-decay*t));falloff*=falloff*falloff;return u_fog_color.a*min(1.0,1.00747*falloff);}float globe_glow_progress() {highp vec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix(\\nmix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);highp vec3 dir=normalize(ray_dir);highp vec3 closest_point=dot(u_globe_pos,dir)*dir;highp float sdf=length(closest_point-u_globe_pos)/u_globe_radius;return sdf+PI*0.5;}float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos,float opacity_limit) {float depth=length(pos);float opacity;if (u_is_globe==1) {float glow_progress=globe_glow_progress();float t=mix(glow_progress,depth,u_globe_transition);opacity=fog_opacity(fog_range(t));} else {opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);}return mix(color,u_fog_color.rgb,min(opacity,opacity_limit));}vec3 fog_apply(vec3 color,vec3 pos) {return fog_apply(color,pos,1.0);}vec4 fog_apply_from_vert(vec4 color,float fog_opac) {float alpha=EPSILON+color.a;color.rgb=mix(color.rgb/alpha,u_fog_color.rgb,fog_opac)*alpha;return color;}vec3 fog_apply_sky_gradient(vec3 camera_ray,vec3 sky_color) {float horizon_blend=fog_horizon_blending(normalize(camera_ray));return mix(sky_color,u_fog_color.rgb,horizon_blend);}vec4 fog_apply_premultiplied(vec4 color,vec3 pos) {float alpha=EPSILON+color.a;color.rgb=fog_apply(color.rgb/alpha,pos)*alpha;return color;}vec4 fog_apply_premultiplied(vec4 color,vec3 pos,float heightMeters) {float verticalProgress=(u_fog_vertical_limit.x > 0.0 || u_fog_vertical_limit.y > 0.0) ? smoothstep(u_fog_vertical_limit.x,u_fog_vertical_limit.y,heightMeters) : 0.0;float opacityLimit=1.0-smoothstep(0.9,1.0,fog_opacity(pos));return mix(fog_apply_premultiplied(color,pos),color,min(verticalProgress,opacityLimit));}vec3 fog_dither(vec3 color) {\\n#ifdef FOG_DITHERING\\nvec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);\\n#else\\nreturn color;\\n#endif\\n}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);}\\n#endif\",Do=\"#ifdef RASTER_ARRAY\\nuniform highp sampler2D u_image0;uniform sampler2D u_image1;const vec4 NODATA=vec4(1);ivec4 _raTexLinearCoord(highp vec2 texCoord,highp vec2 texResolution,out highp vec2 fxy) {texCoord=texCoord*texResolution-0.5;fxy=fract(texCoord);texCoord-=fxy;return ivec4(texCoord.xxyy+vec2(1.5,0.5).xyxy);}vec2 _raTexLinearMix(highp vec2 fxy,highp vec4 colorMix,highp float colorOffset,highp vec4 t00,highp vec4 t10,highp vec4 t01,highp vec4 t11) {vec2 c00=t00==NODATA ? vec2(0) : vec2(colorOffset+dot(t00,colorMix),1);vec2 c10=t10==NODATA ? vec2(0) : vec2(colorOffset+dot(t10,colorMix),1);vec2 c01=t01==NODATA ? vec2(0) : vec2(colorOffset+dot(t01,colorMix),1);vec2 c11=t11==NODATA ? vec2(0) : vec2(colorOffset+dot(t11,colorMix),1);return mix(mix(c01,c11,fxy.x),mix(c00,c10,fxy.x),fxy.y);}vec2 raTexture2D_image0_linear(highp vec2 texCoord,highp vec2 texResolution,highp vec4 colorMix,highp float colorOffset) {vec2 fxy;ivec4 c=_raTexLinearCoord(texCoord,texResolution,fxy);return _raTexLinearMix(fxy,colorMix,colorOffset,texelFetch(u_image0,c.yz,0),texelFetch(u_image0,c.xz,0),texelFetch(u_image0,c.yw,0),texelFetch(u_image0,c.xw,0)\\n);}vec2 raTexture2D_image1_linear(highp vec2 texCoord,highp vec2 texResolution,highp vec4 colorMix,highp float colorOffset) {vec2 fxy;ivec4 c=_raTexLinearCoord(texCoord,texResolution,fxy);return _raTexLinearMix(fxy,colorMix,colorOffset,texelFetch(u_image1,c.yz,0),texelFetch(u_image1,c.xz,0),texelFetch(u_image1,c.yw,0),texelFetch(u_image1,c.xw,0)\\n);}vec2 raTexture2D_image0_nearest(highp vec2 texCoord,highp vec2 texResolution,highp vec4 colorMix,highp float colorOffset) {vec4 t=texelFetch(u_image0,ivec2(texCoord*texResolution),0);return t==NODATA ? vec2(0) : vec2(colorOffset+dot(t,colorMix),1);}vec2 raTexture2D_image1_nearest(highp vec2 texCoord,highp vec2 texResolution,highp vec4 colorMix,highp float colorOffset) {vec4 t=texelFetch(u_image1,ivec2(texCoord*texResolution),0);return t==NODATA ? vec2(0) : vec2(colorOffset+dot(t,colorMix),1);}\\n#endif\",Lo=\"#ifdef RASTER_ARRAY\\nuniform sampler2D u_velocity;uniform mediump vec2 u_velocity_res;uniform mediump float u_max_speed;const vec4 NO_DATA=vec4(1);const vec2 INVALID_VELOCITY=vec2(-1);uniform highp vec2 u_uv_offset;uniform highp float u_data_offset;uniform highp vec2 u_data_scale;ivec4 rasterArrayLinearCoord(highp vec2 texCoord,highp vec2 texResolution,out highp vec2 fxy) {texCoord=texCoord*texResolution-0.5;fxy=fract(texCoord);texCoord-=fxy;return ivec4(texCoord.xxyy+vec2(1.5,0.5).xyxy);}highp vec2 lookup_velocity(highp vec2 uv) {uv=u_uv_offset.x+u_uv_offset.y*uv;highp vec2 fxy;ivec4 c=rasterArrayLinearCoord(uv,u_velocity_res,fxy);highp vec4 tl=texelFetch(u_velocity,c.yz,0);highp vec4 tr=texelFetch(u_velocity,c.xz,0);highp vec4 bl=texelFetch(u_velocity,c.yw,0);highp vec4 br=texelFetch(u_velocity,c.xw,0);if (tl==NO_DATA) {return INVALID_VELOCITY;}if (tr==NO_DATA) {return INVALID_VELOCITY;}if (bl==NO_DATA) {return INVALID_VELOCITY;}if (br==NO_DATA) {return INVALID_VELOCITY;}highp vec4 t=mix(mix(bl,br,fxy.x),mix(tl,tr,fxy.x),fxy.y);highp vec2 velocity=u_data_offset+vec2(dot(t.rg,u_data_scale),dot(t.ba,u_data_scale));velocity.y=-velocity.y;velocity/=max(u_max_speed,length(velocity));return velocity;}\\n#endif\\nuniform highp float u_particle_pos_scale;uniform highp vec2 u_particle_pos_offset;highp vec4 pack_pos_to_rgba(highp vec2 p) {highp vec2 v=(p+u_particle_pos_offset)/u_particle_pos_scale;highp vec4 r=vec4(v.x,fract(v.x*255.0),v.y,fract(v.y*255.0));return vec4(r.x-r.y/255.0,r.y,r.z-r.w/255.0,r.w);}highp vec2 unpack_pos_from_rgba(highp vec4 v) {v=floor(v*255.0+0.5)/255.0;highp vec2 p=vec2(v.x+(v.y/255.0),v.z+(v.w/255.0));return u_particle_pos_scale*p-u_particle_pos_offset;}\",Ao=\"#ifdef RENDER_SHADOWS\\nuniform mediump vec3 u_shadow_direction;uniform highp vec3 u_shadow_normal_offset;vec3 shadow_normal_offset(vec3 normal) {float tileInMeters=u_shadow_normal_offset[0];vec3 n=vec3(-normal.xy,tileInMeters*normal.z);float dotScale=min(1.0-dot(normal,u_shadow_direction),1.0)*0.5+0.5;return n*dotScale;}vec3 shadow_normal_offset_model(vec3 normal) {vec3 transformed_normal=vec3(-normal.xy,normal.z);float NDotL=dot(normalize(transformed_normal),u_shadow_direction);float dotScale=min(1.0-NDotL,1.0)*0.5+0.5;return normal*dotScale;}float shadow_normal_offset_multiplier0() {return u_shadow_normal_offset[1];}float shadow_normal_offset_multiplier1() {return u_shadow_normal_offset[2];}\\n#endif//RENDER_SHADOWS\",zo=\"#ifdef RENDER_SHADOWS\\n#ifdef DEPTH_TEXTURE\\nuniform highp sampler2D u_shadowmap_0;uniform highp sampler2D u_shadowmap_1;\\n#else\\nuniform sampler2D u_shadowmap_0;uniform sampler2D u_shadowmap_1;\\n#endif\\nuniform float u_shadow_intensity;uniform float u_shadow_map_resolution;uniform float u_shadow_texel_size;uniform highp vec3 u_shadow_normal_offset;uniform vec2 u_fade_range;uniform mediump vec3 u_shadow_direction;uniform highp vec3 u_shadow_bias;highp float shadow_sample_1(highp vec2 uv,highp float compare) {highp float shadow_depth;\\n#ifdef DEPTH_TEXTURE\\nshadow_depth=texture(u_shadowmap_1,uv).r;\\n#else\\nshadow_depth=unpack_depth(texture(u_shadowmap_1,uv))*0.5+0.5;\\n#endif\\nreturn step(shadow_depth,compare);}highp float shadow_sample_0(highp vec2 uv,highp float compare) {highp float shadow_depth;\\n#ifdef DEPTH_TEXTURE\\nshadow_depth=texture(u_shadowmap_0,uv).r;\\n#else\\nshadow_depth=unpack_depth(texture(u_shadowmap_0,uv))*0.5+0.5;\\n#endif\\nreturn step(shadow_depth,compare);}float shadow_occlusion_1(highp vec4 pos,highp float bias) {highp vec2 uv=pos.xy;return shadow_sample_1(uv,pos.z-bias);}float shadow_occlusion_0(highp vec4 pos,highp float bias) {highp float compare0=pos.z-bias;\\n#ifdef TEXTURE_GATHER\\nhighp vec2 uv=pos.xy;highp vec4 samples=textureGather(u_shadowmap_0,uv,0);lowp vec4 stepSamples=step(samples,vec4(compare0));\\n#else\\nhighp vec2 uv00=pos.xy-vec2(0.5*u_shadow_texel_size);highp vec2 uv10=uv00+vec2(u_shadow_texel_size,0.0);highp vec2 uv01=uv00+vec2(0.0,u_shadow_texel_size);highp vec2 uv11=uv01+vec2(u_shadow_texel_size,0.0);lowp vec4 stepSamples=vec4(\\nshadow_sample_0(uv01,compare0),shadow_sample_0(uv11,compare0),shadow_sample_0(uv10,compare0),shadow_sample_0(uv00,compare0)\\n);\\n#endif\\nvec2 f=fract(pos.xy*u_shadow_map_resolution-vec2(0.5));lowp vec2 lerpx=mix(stepSamples.wx,stepSamples.zy,f.xx);return mix(lerpx.x,lerpx.y,f.y);}float shadow_occlusion(highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth,highp float bias) {\\n#ifdef SHADOWS_SINGLE_CASCADE\\nlight_view_pos0.xyz/=light_view_pos0.w;vec2 abs_bounds=abs(light_view_pos0.xy);if (abs_bounds.x >=1.0 || abs_bounds.y >=1.0) {return 0.0;}light_view_pos0.xyz=light_view_pos0.xyz*0.5+0.5;return shadow_occlusion_0(light_view_pos0,bias);\\n#else\\nlight_view_pos0.xyz/=light_view_pos0.w;light_view_pos1.xyz/=light_view_pos1.w;vec4 uv=vec4(light_view_pos0.xy,light_view_pos1.xy);vec4 abs_bounds=abs(uv);if (abs_bounds.x < 1.0 && abs_bounds.y < 1.0) {light_view_pos0.xyz=light_view_pos0.xyz*0.5+0.5;return shadow_occlusion_0(light_view_pos0,bias);}if (abs_bounds.z >=1.0 || abs_bounds.w >=1.0) {return 0.0;}light_view_pos1.xyz=light_view_pos1.xyz*0.5+0.5;float occlusion1=shadow_occlusion_1(light_view_pos1,bias);return mix(occlusion1,0.0,smoothstep(u_fade_range.x,u_fade_range.y,view_depth));\\n#endif\\n}highp float calculate_shadow_bias(float NDotL) {\\n#ifdef NORMAL_OFFSET\\nreturn 0.5*u_shadow_bias.x;\\n#else\\nreturn 0.5*(u_shadow_bias.x+clamp(u_shadow_bias.y*tan(acos(NDotL)),0.0,u_shadow_bias.z));\\n#endif\\n}float shadowed_light_factor_normal(vec3 N,highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {float NDotL=dot(N,u_shadow_direction);float bias=calculate_shadow_bias(NDotL);float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);return mix(0.0,(1.0-(u_shadow_intensity*occlusion))*NDotL,step(0.0,NDotL));}float shadowed_light_factor_normal_opacity(vec3 N,highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth,float shadow_opacity) {float NDotL=dot(N,u_shadow_direction);float bias=calculate_shadow_bias(NDotL);float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias)*shadow_opacity;return mix(0.0,(1.0-(u_shadow_intensity*occlusion))*NDotL,step(0.0,NDotL));}float shadowed_light_factor_normal_unbiased(vec3 N,highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {float NDotL=dot(N,u_shadow_direction);float bias=0.0;float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);return mix(0.0,(1.0-(u_shadow_intensity*occlusion))*NDotL,step(0.0,NDotL));}highp vec2 compute_receiver_plane_depth_bias(highp vec3 pos_dx,highp vec3 pos_dy)\\n{highp vec2 biasUV=vec2(\\npos_dy.y*pos_dx.z-pos_dx.y*pos_dy.z,pos_dx.x*pos_dy.z-pos_dy.x*pos_dx.z);biasUV*=1.0/((pos_dx.x*pos_dy.y)-(pos_dx.y*pos_dy.x));return biasUV;}float shadowed_light_factor_plane_bias(highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {highp vec3 light_view_pos0_xyz=light_view_pos0.xyz/light_view_pos0.w*0.5+0.5;highp vec3 light_view_pos0_ddx=dFdx(light_view_pos0_xyz);highp vec3 light_view_pos0_ddy=dFdy(light_view_pos0_xyz);highp vec2 plane_depth_bias=compute_receiver_plane_depth_bias(light_view_pos0_ddx,light_view_pos0_ddy);highp float bias=dot(vec2(u_shadow_texel_size,u_shadow_texel_size),plane_depth_bias)+0.0001;float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);return 1.0-(u_shadow_intensity*occlusion);}float shadowed_light_factor(highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {float bias=0.0;float occlusion=shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);return 1.0-(u_shadow_intensity*occlusion);}float shadow_occlusion(float ndotl,highp vec4 light_view_pos0,highp vec4 light_view_pos1,float view_depth) {float bias=calculate_shadow_bias(ndotl);return shadow_occlusion(light_view_pos0,light_view_pos1,view_depth,bias);}\\n#endif\";const Po=[];No(wo,Po),No(Eo,Po),No(To,Po);const Mo={\"_prelude_fog.vertex.glsl\":Io,\"_prelude_terrain.vertex.glsl\":Co,\"_prelude_shadow.vertex.glsl\":Ao,\"_prelude_fog.fragment.glsl\":Ro,\"_prelude_shadow.fragment.glsl\":zo,\"_prelude_lighting.glsl\":\"\\n#ifdef LIGHTING_3D_MODE\\nuniform mediump vec3 u_lighting_ambient_color;uniform mediump vec3 u_lighting_directional_dir;uniform mediump vec3 u_lighting_directional_color;uniform mediump vec3 u_ground_radiance;float calculate_ambient_directional_factor(vec3 normal) {float NdotL=dot(normal,u_lighting_directional_dir);const float factor_reduction_max=0.3;float dir_luminance=dot(u_lighting_directional_color,vec3(0.2126,0.7152,0.0722));float directional_factor_min=1.0-factor_reduction_max*min(dir_luminance,1.0);float ambient_directional_factor=mix(directional_factor_min,1.0,min((NdotL+1.0),1.0));const float vertical_factor_min=0.92;float vertical_factor=mix(vertical_factor_min,1.0,normal.z*0.5+0.5);return vertical_factor*ambient_directional_factor;}vec3 linearProduct(vec3 srgbIn,vec3 k) {return srgbIn*pow(k,vec3(1./2.2));}vec3 apply_lighting(vec3 color,vec3 normal,float dir_factor) {float ambient_directional_factor=calculate_ambient_directional_factor(normal);vec3 ambient_contrib=ambient_directional_factor*u_lighting_ambient_color;vec3 directional_contrib=u_lighting_directional_color*dir_factor;return linearProduct(color,ambient_contrib+directional_contrib);}vec4 apply_lighting(vec4 color,vec3 normal,float dir_factor) {return vec4(apply_lighting(color.rgb,normal,dir_factor),color.a);}vec3 apply_lighting(vec3 color,vec3 normal) {float dir_factor=max(dot(normal,u_lighting_directional_dir),0.0);return apply_lighting(color.rgb,normal,dir_factor);}vec4 apply_lighting(vec4 color,vec3 normal) {float dir_factor=max(dot(normal,u_lighting_directional_dir),0.0);return vec4(apply_lighting(color.rgb,normal,dir_factor),color.a);}vec3 apply_lighting_ground(vec3 color) {return color*u_ground_radiance;}vec4 apply_lighting_ground(vec4 color) {return vec4(apply_lighting_ground(color.rgb),color.a);}float calculate_NdotL(vec3 normal) {const float ext=0.70710678118;return (clamp(dot(normal,u_lighting_directional_dir),-ext,1.0)+ext)/(1.0+ext);}vec4 apply_lighting_with_emission_ground(vec4 color,float emissive_strength) {return mix(apply_lighting_ground(color),color,emissive_strength);}vec3 compute_flood_lighting(vec3 flood_light_color,float fully_occluded_factor,float occlusion,vec3 ground_shadow_factor) {vec3 fully_occluded_color=flood_light_color*mix(ground_shadow_factor,vec3(1.0),fully_occluded_factor);float occlusion_ramp=smoothstep(0.0,0.2,1.0-occlusion);return mix(fully_occluded_color,flood_light_color,occlusion_ramp);}vec3 compute_emissive_draped(vec3 unlit_color,float fully_occluded_factor,float occlusion,vec3 ground_shadow_factor) {vec3 fully_occluded_color=unlit_color*mix(ground_shadow_factor,vec3(1.0),fully_occluded_factor);return mix(fully_occluded_color,unlit_color,1.0-occlusion);}\\n#endif//LIGHTING_3D_MODE\",\"_prelude_raster_array.glsl\":Do,\"_prelude_raster_particle.glsl\":Lo},Oo={};Uo(\"\",Co),Uo(Ro,Io),Uo(zo,Ao),Uo(Do,\"\"),Uo(Lo,\"\");const Fo=Uo(To,Eo),ko=wo;var Bo={background:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform vec4 u_color;uniform float u_opacity;\\n#ifdef LIGHTING_3D_MODE\\nin vec4 v_color;\\n#endif\\nvoid main() {vec4 out_color;\\n#ifdef LIGHTING_3D_MODE\\nout_color=v_color;\\n#else\\nout_color=u_color;\\n#endif\\n#ifdef FOG\\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\\n#endif\\nglFragColor=out_color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nin vec2 a_pos;uniform mat4 u_matrix;\\n#ifdef LIGHTING_3D_MODE\\nuniform mediump vec4 u_color;out vec4 v_color;uniform float u_emissive_strength;\\n#endif\\nvoid main() {gl_Position=u_matrix*vec4(a_pos,0,1);\\n#ifdef LIGHTING_3D_MODE\\nv_color=apply_lighting_with_emission_ground(u_color,u_emissive_strength);\\n#endif\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);\\n#endif\\n}'),backgroundPattern:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform vec2 u_pattern_tl;uniform vec2 u_pattern_br;uniform vec2 u_texsize;uniform float u_opacity;uniform float u_emissive_strength;uniform sampler2D u_image;in highp vec2 v_pos;void main() {highp vec2 imagecoord=mod(v_pos,1.0);highp vec2 pos=mix(u_pattern_tl/u_texsize,u_pattern_br/u_texsize,imagecoord);vec4 out_color=textureLodCustom(u_image,pos,v_pos);\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength);\\n#endif\\n#ifdef FOG\\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\\n#endif\\nglFragColor=out_color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\nuniform mat4 u_matrix;uniform vec2 u_pattern_size;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec2 u_pattern_units_to_pixels;in vec2 a_pos;out highp vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_pattern_size,u_pattern_units_to_pixels,a_pos);\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);\\n#endif\\n}'),circle:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nin vec3 v_data;in float v_visibility;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nuniform float u_emissive_strength;void main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=v_data.xy;float blur_positive=blur < 0.0 ? 0.0 : 1.0;lowp float antialiasblur=v_data.z;float extrude_length=length(extrude)+antialiasblur*(1.0-blur_positive);float antialiased_blur=-max(abs(blur),antialiasblur);float opacity_t=smoothstep((1.0-blur_positive)*antialiased_blur,blur_positive*antialiased_blur,extrude_length-1.0)-smoothstep(0.0,antialiasblur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(\\nantialiased_blur,0.0,extrude_length-radius/(radius+stroke_width)\\n);vec4 out_color=mix(color*opacity,stroke_color*stroke_opacity,color_t);\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength);\\n#endif\\n#ifdef FOG\\nout_color=fog_apply_premultiplied(out_color,v_fog_pos);\\n#endif\\nglFragColor=out_color*(v_visibility*opacity_t);\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\n}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_terrain.vertex.glsl\"\\n#define NUM_VISIBILITY_RINGS 2\\n#define INV_SQRT2 0.70710678\\n#define ELEVATION_BIAS 0.0001\\n#define NUM_SAMPLES_PER_RING 16\\nuniform mat4 u_matrix;uniform mat2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;in vec2 a_pos;\\n#ifdef PROJECTION_GLOBE_VIEW\\nin vec3 a_pos_3;in vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\\n#endif\\nout vec3 v_data;out float v_visibility;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvec2 calc_offset(vec2 extrusion,float radius,float stroke_width, float view_scale) {return extrusion*(radius+stroke_width)*u_extrude_scale*view_scale;}float cantilevered_elevation(vec2 pos,float radius,float stroke_width,float view_scale) {vec2 c1=pos+calc_offset(vec2(-1,-1),radius,stroke_width,view_scale);vec2 c2=pos+calc_offset(vec2(1,-1),radius,stroke_width,view_scale);vec2 c3=pos+calc_offset(vec2(1,1),radius,stroke_width,view_scale);vec2 c4=pos+calc_offset(vec2(-1,1),radius,stroke_width,view_scale);float h1=elevation(c1)+ELEVATION_BIAS;float h2=elevation(c2)+ELEVATION_BIAS;float h3=elevation(c3)+ELEVATION_BIAS;float h4=elevation(c4)+ELEVATION_BIAS;return max(h4,max(h3,max(h1,h2)));}float circle_elevation(vec2 pos) {\\n#if defined(TERRAIN)\\nreturn elevation(pos)+ELEVATION_BIAS;\\n#else\\nreturn 0.0;\\n#endif\\n}vec4 project_vertex(vec2 extrusion,vec4 world_center,vec4 projected_center,float radius,float stroke_width, float view_scale,mat3 surface_vectors) {vec2 sample_offset=calc_offset(extrusion,radius,stroke_width,view_scale);\\n#ifdef PITCH_WITH_MAP\\n#ifdef PROJECTION_GLOBE_VIEW\\nreturn u_matrix*( world_center+vec4(sample_offset.x*surface_vectors[0]+sample_offset.y*surface_vectors[1],0) );\\n#else\\nreturn u_matrix*( world_center+vec4(sample_offset,0,0) );\\n#endif\\n#else\\nreturn projected_center+vec4(sample_offset,0,0);\\n#endif\\n}float get_sample_step() {\\n#ifdef PITCH_WITH_MAP\\nreturn 2.0*PI/float(NUM_SAMPLES_PER_RING);\\n#else\\nreturn PI/float(NUM_SAMPLES_PER_RING);\\n#endif\\n}void main(void) {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);vec4 world_center;mat3 surface_vectors;\\n#ifdef PROJECTION_GLOBE_VIEW\\nvec3 pos_normal_3=a_pos_normal_3/16384.0;surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(circle_center)*circle_elevation(circle_center);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*circle_elevation(circle_center);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,circle_center,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);world_center=vec4(pos,1);\\n#else \\nsurface_vectors=mat3(1.0);float height=circle_elevation(circle_center);world_center=vec4(circle_center,height,1);\\n#endif\\nvec4 projected_center=u_matrix*world_center;float view_scale=0.0;\\n#ifdef PITCH_WITH_MAP\\n#ifdef SCALE_WITH_MAP\\nview_scale=1.0;\\n#else\\nview_scale=projected_center.w/u_camera_to_center_distance;\\n#endif\\n#else\\n#ifdef SCALE_WITH_MAP\\nview_scale=u_camera_to_center_distance;\\n#else\\nview_scale=projected_center.w;\\n#endif\\n#endif\\ngl_Position=project_vertex(extrude,world_center,projected_center,radius,stroke_width,view_scale,surface_vectors);float visibility=0.0;\\n#ifdef TERRAIN\\nfloat step=get_sample_step();vec4 occlusion_world_center;vec4 occlusion_projected_center;\\n#ifdef PITCH_WITH_MAP\\nfloat cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);occlusion_world_center=vec4(circle_center,cantilevered_height,1);occlusion_projected_center=u_matrix*occlusion_world_center;\\n#else\\nocclusion_world_center=world_center;occlusion_projected_center=projected_center;\\n#endif\\nfor(int ring=0; ring < NUM_VISIBILITY_RINGS; ring++) {float scale=(float(ring)+1.0)/float(NUM_VISIBILITY_RINGS);for(int i=0; i < NUM_SAMPLES_PER_RING; i++) {vec2 extrusion=vec2(cos(step*float(i)),-sin(step*float(i)))*scale;vec4 frag_pos=project_vertex(extrusion,occlusion_world_center,occlusion_projected_center,radius,stroke_width,view_scale,surface_vectors);visibility+=float(!isOccluded(frag_pos));}}visibility/=float(NUM_VISIBILITY_RINGS)*float(NUM_SAMPLES_PER_RING);\\n#else\\nvisibility=1.0;\\n#endif\\n#ifdef PROJECTION_GLOBE_VIEW\\nvisibility=1.0;\\n#endif\\nv_visibility=visibility;lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);\\n#ifdef FOG\\nv_fog_pos=fog_position(world_center.xyz);\\n#endif\\n}'),clippingMask:Uo(\"void main() {glFragColor=vec4(1.0);}\",\"in vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),heatmap:Uo('#include \"_prelude_fog.fragment.glsl\"\\nuniform highp float u_intensity;in vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main() {\\n#pragma mapbox: initialize highp float weight\\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);glFragColor=vec4(val,1.0,1.0,1.0);\\n#ifdef FOG\\nif (u_is_globe==0) {glFragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);}\\n#endif\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_terrain.vertex.glsl\"\\n#include \"_prelude_fog.vertex.glsl\"\\nuniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;in vec2 a_pos;\\n#ifdef PROJECTION_GLOBE_VIEW\\nin vec3 a_pos_3;in vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;\\n#endif\\nout vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#pragma mapbox: define mediump float radius\\nconst highp float ZERO=1.0/255.0/16.0;\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main(void) {\\n#pragma mapbox: initialize highp float weight\\n#pragma mapbox: initialize mediump float radius\\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 tilePos=floor(a_pos*0.5);vec3 pos;\\n#ifdef PROJECTION_GLOBE_VIEW\\nvec3 pos_normal_3=a_pos_normal_3/16384.0;mat3 surface_vectors=globe_mercator_surface_vectors(pos_normal_3,u_up_dir,u_zoom_transition);vec3 surface_extrusion=extrude.x*surface_vectors[0]+extrude.y*surface_vectors[1];vec3 globe_elevation=elevationVector(tilePos)*elevation(tilePos);vec3 globe_pos=a_pos_3+surface_extrusion+globe_elevation;vec3 mercator_elevation=u_up_dir*u_tile_up_scale*elevation(tilePos);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,tilePos,u_tile_id,u_merc_center)+surface_extrusion+mercator_elevation;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\\n#else\\npos=vec3(tilePos+extrude,elevation(tilePos));\\n#endif\\ngl_Position=u_matrix*vec4(pos,1);\\n#ifdef FOG\\nv_fog_pos=fog_position(pos);\\n#endif\\n}'),heatmapTexture:Uo(\"uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));glFragColor=color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(0.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}\",\"in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}\"),collisionBox:Uo(\"in float v_placed;in float v_notUsed;void main() {vec4 red =vec4(1.0,0.0,0.0,1.0);vec4 blue=vec4(0.0,0.0,1.0,0.5);glFragColor =mix(red,blue,step(0.5,v_placed))*0.5;glFragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}\",'#include \"_prelude_terrain.vertex.glsl\"\\nin vec3 a_pos;in vec2 a_anchor_pos;in vec2 a_extrude;in vec2 a_placed;in vec2 a_shift;in vec2 a_elevation_from_sea;in float a_size_scale;in vec2 a_padding;in float a_auto_z_offset;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;out float v_placed;out float v_notUsed;void main() {float feature_elevation=a_elevation_from_sea.x+a_auto_z_offset;float terrain_elevation=(a_elevation_from_sea.y==1.0 ? 0.0 : elevation(a_anchor_pos));vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*(feature_elevation+terrain_elevation),1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(\\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,1.5);gl_Position=projectedPoint;gl_Position.xy+=(a_extrude*a_size_scale+a_shift+a_padding)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}'),collisionCircle:Uo(\"in float v_radius;in vec2 v_extrude;in float v_perspective_ratio;in float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);glFragColor=color*alpha*opacity_t;}\",\"in vec2 a_pos_2f;in float a_radius;in vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;out float v_radius;out vec2 v_extrude;out float v_perspective_ratio;out float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos_2f;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(\\nmix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(\\n0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\"),debug:Uo(\"uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);glFragColor=mix(u_color,overlay_color,overlay_color.a);}\",'#include \"_prelude_terrain.vertex.glsl\"\\nin vec2 a_pos;\\n#ifdef PROJECTION_GLOBE_VIEW\\nin vec3 a_pos_3;\\n#endif\\nout vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {float h=elevation(a_pos);v_uv=a_pos/8192.0;\\n#ifdef PROJECTION_GLOBE_VIEW\\ngl_Position=u_matrix*vec4(a_pos_3+elevationVector(a_pos)*h,1);\\n#else\\ngl_Position=u_matrix*vec4(a_pos*u_overlay_scale,h,1);\\n#endif\\n}'),fill:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\n#include \"_prelude_shadow.fragment.glsl\"\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nuniform float u_emissive_strength;\\n#ifdef RENDER_SHADOWS\\nuniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nin highp float v_z_offset;\\n#endif\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\nvec4 out_color=color;\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength);\\n#ifdef RENDER_SHADOWS\\nfloat light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light);\\n#endif\\n#endif\\n#ifdef FOG\\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\\n#endif\\nout_color*=opacity;\\n#ifdef INDICATOR_CUTOUT\\nout_color=applyCutout(out_color,v_z_offset);\\n#endif\\nglFragColor=out_color;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_shadow.vertex.glsl\"\\nin vec2 a_pos;\\n#ifdef ELEVATED_ROADS\\nin float a_road_z_offset;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nout highp float v_z_offset;\\n#endif\\nuniform mat4 u_matrix;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp float z_offset\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp float z_offset\\n#ifdef ELEVATED_ROADS\\nz_offset+=a_road_z_offset;\\n#endif\\nfloat hidden=float(opacity==0.0);gl_Position=mix(u_matrix*vec4(a_pos,z_offset,1),AWAY,hidden);\\n#ifdef RENDER_SHADOWS\\nvec3 shd_pos0=vec3(a_pos,z_offset);vec3 shd_pos1=vec3(a_pos,z_offset);\\n#ifdef NORMAL_OFFSET\\nvec3 offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1();\\n#endif\\nv_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w;\\n#endif\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nv_z_offset=z_offset;\\n#endif\\n}'),fillOutline:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\n#include \"_prelude_shadow.fragment.glsl\"\\nin highp vec2 v_pos;uniform float u_emissive_strength;\\n#ifdef RENDER_SHADOWS\\nuniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth;\\n#endif\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=outline_color;\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength);\\n#ifdef RENDER_SHADOWS\\nfloat light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light);\\n#endif\\n#endif\\n#ifdef FOG\\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\\n#endif\\nglFragColor=out_color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_shadow.vertex.glsl\"\\nin vec2 a_pos;\\n#ifdef ELEVATED_ROADS\\nin float a_road_z_offset;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth;\\n#endif\\nuniform mat4 u_matrix;uniform vec2 u_world;out highp vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp float z_offset\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp float z_offset\\n#ifdef ELEVATED_ROADS\\nz_offset+=a_road_z_offset;\\n#endif\\nfloat hidden=float(opacity==0.0);gl_Position=mix(u_matrix*vec4(a_pos,z_offset,1),AWAY,hidden);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\\n#ifdef RENDER_SHADOWS\\nvec3 shd_pos0=vec3(a_pos,z_offset);vec3 shd_pos1=vec3(a_pos,z_offset);\\n#ifdef NORMAL_OFFSET\\nvec3 offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1();\\n#endif\\nv_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w;\\n#endif\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);\\n#endif\\n}'),fillOutlinePattern:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\n#include \"_prelude_shadow.fragment.glsl\"\\nuniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_emissive_strength;\\n#ifdef RENDER_SHADOWS\\nuniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth;\\n#endif\\nin highp vec2 v_pos;in highp vec2 v_pos_world;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern\\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;highp vec2 imagecoord=mod(v_pos,1.0);highp vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);highp vec2 lod_pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,v_pos);float dist=length(v_pos_world-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=textureLodCustom(u_image,pos,lod_pos);\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength);\\n#ifdef RENDER_SHADOWS\\nfloat light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light);\\n#endif\\n#endif\\n#ifdef FOG\\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\\n#endif\\nglFragColor=out_color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_shadow.vertex.glsl\"\\nuniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;in vec2 a_pos;\\n#ifdef ELEVATED_ROADS\\nin float a_road_z_offset;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth;\\n#endif\\nout highp vec2 v_pos;out highp vec2 v_pos_world;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern\\n#pragma mapbox: define lowp float pixel_ratio\\n#pragma mapbox: define highp float z_offset\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern\\n#pragma mapbox: initialize lowp float pixel_ratio\\n#pragma mapbox: initialize highp float z_offset\\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;\\n#ifdef ELEVATED_ROADS\\nz_offset+=a_road_z_offset;\\n#endif\\nfloat hidden=float(opacity==0.0);gl_Position=mix(u_matrix*vec4(a_pos,z_offset,1),AWAY,hidden);vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);v_pos_world=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\\n#ifdef RENDER_SHADOWS\\nvec3 shd_pos0=vec3(a_pos,z_offset);vec3 shd_pos1=vec3(a_pos,z_offset);\\n#ifdef NORMAL_OFFSET\\nvec3 offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1();\\n#endif\\nv_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w;\\n#endif\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);\\n#endif\\n}'),fillPattern:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\n#include \"_prelude_shadow.fragment.glsl\"\\nuniform vec2 u_texsize;uniform sampler2D u_image;in highp vec2 v_pos;uniform float u_emissive_strength;\\n#ifdef RENDER_SHADOWS\\nuniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth;\\n#endif\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern\\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;highp vec2 imagecoord=mod(v_pos,1.0);highp vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);highp vec2 lod_pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,v_pos);vec4 out_color=textureLodCustom(u_image,pos,lod_pos);\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength);\\n#ifdef RENDER_SHADOWS\\nfloat light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);out_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light);\\n#endif\\n#endif\\n#ifdef FOG\\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\\n#endif\\nglFragColor=out_color*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_shadow.vertex.glsl\"\\nuniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_tile_units_to_pixels;in vec2 a_pos;\\n#ifdef ELEVATED_ROADS\\nin float a_road_z_offset;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth;\\n#endif\\nout highp vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern\\n#pragma mapbox: define lowp float pixel_ratio\\n#pragma mapbox: define highp float z_offset\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern\\n#pragma mapbox: initialize lowp float pixel_ratio\\n#pragma mapbox: initialize highp float z_offset\\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;\\n#ifdef ELEVATED_ROADS\\nz_offset+=a_road_z_offset;\\n#endif\\nfloat hidden=float(opacity==0.0);gl_Position=mix(u_matrix*vec4(a_pos,z_offset,1),AWAY,hidden);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,a_pos);\\n#ifdef RENDER_SHADOWS\\nvec3 shd_pos0=vec3(a_pos,z_offset);vec3 shd_pos1=vec3(a_pos,z_offset);\\n#ifdef NORMAL_OFFSET\\nvec3 offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1();\\n#endif\\nv_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w;\\n#endif\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);\\n#endif\\n}'),fillExtrusion:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_shadow.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nin vec4 v_color;in vec4 v_flat;\\n#ifdef RENDER_SHADOWS\\nin highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;\\n#endif\\nuniform lowp float u_opacity;\\n#ifdef FAUX_AO\\nuniform lowp vec2 u_ao;in vec2 v_ao;\\n#endif\\n#if defined(ZERO_ROOF_RADIUS) && !defined(LIGHTING_3D_MODE)\\nin vec4 v_roof_color;\\n#endif\\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) || defined(LIGHTING_3D_MODE)\\nin highp vec3 v_normal;\\n#endif\\nuniform vec3 u_flood_light_color;uniform highp float u_vertical_scale;uniform float u_flood_light_intensity;uniform vec3 u_ground_shadow_factor;\\n#if defined(LIGHTING_3D_MODE) && defined(FLOOD_LIGHT)\\nin float v_flood_radius;in float v_has_floodlight;\\n#endif\\nin float v_height;\\n#pragma mapbox: define highp float emissive_strength\\nvoid main() {\\n#pragma mapbox: initialize highp float emissive_strength\\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) || defined(LIGHTING_3D_MODE)\\nvec3 normal=normalize(v_normal);\\n#endif\\nfloat z;vec4 color=v_color;\\n#ifdef ZERO_ROOF_RADIUS\\nz=float(normal.z > 0.00001);\\n#ifdef LIGHTING_3D_MODE\\nnormal=mix(normal,vec3(0.0,0.0,1.0),z);\\n#else\\ncolor=mix(v_color,v_roof_color,z);\\n#endif\\n#endif\\nfloat h=max(0.0,v_height);float ao_shade=1.0;\\n#ifdef FAUX_AO\\nfloat intensity=u_ao[0];float h_floors=h/(u_ao[1]*u_vertical_scale);float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);ao_shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;\\n#ifdef ZERO_ROOF_RADIUS\\nconcave*=(1.0-z);\\n#endif\\nfloat x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);ao_shade*=mix(1.0,x_shade*x_shade*x_shade,concave);\\n#ifdef LIGHTING_3D_MODE\\n#ifdef FLOOD_LIGHT\\ncolor.rgb*=mix(ao_shade,1.0,v_has_floodlight);\\n#else\\ncolor.rgb*=ao_shade;\\n#endif\\n#else\\ncolor.rgb*=ao_shade;\\n#endif\\n#endif\\n#ifdef LIGHTING_3D_MODE\\nfloat flood_radiance=0.0;\\n#ifdef FLOOD_LIGHT\\nflood_radiance=(1.0-min(h/v_flood_radius,1.0))*u_flood_light_intensity*v_has_floodlight;\\n#endif\\n#ifdef RENDER_SHADOWS\\n#ifdef FLOOD_LIGHT\\nfloat ndotl_unclamped=dot(normal,u_shadow_direction);float ndotl=max(0.0,ndotl_unclamped);float occlusion=ndotl_unclamped < 0.0 ? 1.0 : shadow_occlusion(ndotl,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w);vec3 litColor=apply_lighting(color.rgb,normal,(1.0-u_shadow_intensity*occlusion)*ndotl);vec3 floodLitColor=compute_flood_lighting(u_flood_light_color*u_opacity,1.0-u_shadow_intensity,occlusion,u_ground_shadow_factor);color.rgb=mix(litColor,floodLitColor,flood_radiance);\\n#else\\nfloat shadowed_lighting_factor;\\n#ifdef RENDER_CUTOFF\\nshadowed_lighting_factor=shadowed_light_factor_normal_opacity(normal,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w,v_cutoff_opacity);if (v_cutoff_opacity==0.0) {discard;}\\n#else\\nshadowed_lighting_factor=shadowed_light_factor_normal(normal,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w);\\n#endif\\ncolor.rgb=apply_lighting(color.rgb,normal,shadowed_lighting_factor);\\n#endif\\n#else\\ncolor.rgb=apply_lighting(color.rgb,normal);\\n#ifdef FLOOD_LIGHT\\ncolor.rgb=mix(color.rgb,u_flood_light_color*u_opacity,flood_radiance);\\n#endif\\n#endif\\ncolor.rgb=mix(color.rgb,v_flat.rgb,emissive_strength);color*=u_opacity;\\n#endif\\n#ifdef FOG\\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos,h));\\n#endif\\n#ifdef INDICATOR_CUTOUT\\ncolor=applyCutout(color,h);\\n#endif\\nglFragColor=color;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_terrain.vertex.glsl\"\\n#include \"_prelude_shadow.vertex.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_edge_radius;uniform float u_width_scale;in vec4 a_pos_normal_ed;in vec2 a_centroid_pos;\\n#ifdef RENDER_WALL_MODE\\nin vec3 a_join_normal_inside;\\n#endif\\n#ifdef PROJECTION_GLOBE_VIEW\\nin vec3 a_pos_3;in vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\\n#endif\\n#ifdef TERRAIN\\nuniform int u_height_type;uniform int u_base_type;\\n#endif\\nuniform highp float u_vertical_scale;out vec4 v_color;out vec4 v_flat;\\n#ifdef RENDER_SHADOWS\\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;\\n#endif\\n#if defined(ZERO_ROOF_RADIUS) && !defined(LIGHTING_3D_MODE)\\nout vec4 v_roof_color;\\n#endif\\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) || defined(LIGHTING_3D_MODE)\\nout highp vec3 v_normal;\\n#endif\\n#ifdef FAUX_AO\\nuniform lowp vec2 u_ao;out vec2 v_ao;\\n#endif\\n#if defined(LIGHTING_3D_MODE) && defined(FLOOD_LIGHT)\\nout float v_flood_radius;out float v_has_floodlight;\\n#endif\\nout float v_height;vec3 linearTosRGB(vec3 color) {return pow(color,vec3(1./2.2));}vec3 sRGBToLinear(vec3 srgbIn) {return pow(srgbIn,vec3(2.2));}\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define highp float flood_light_wall_radius\\n#pragma mapbox: define highp float line_width\\n#pragma mapbox: define highp float emissive_strength\\nvoid main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize highp float flood_light_wall_radius\\n#pragma mapbox: initialize highp float line_width\\n#pragma mapbox: initialize highp float emissive_strength\\nbase*=u_vertical_scale;height*=u_vertical_scale;vec4 pos_nx=floor(a_pos_normal_ed*0.5);vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));\\n#if defined(ZERO_ROOF_RADIUS) || defined(RENDER_SHADOWS) || defined(LIGHTING_3D_MODE)\\nv_normal=normal;\\n#endif\\nbase=max(0.0,base);float attr_height=height;height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0);\\n#if defined(HAS_CENTROID) || defined(TERRAIN)\\ncentroid_pos=a_centroid_pos;\\n#endif\\nfloat ele=0.0;float h=0.0;float c_ele=0.0;vec3 pos;\\n#ifdef TERRAIN\\nbool is_flat_height=centroid_pos.x !=0.0 && u_height_type==1;bool is_flat_base=centroid_pos.x !=0.0 && u_base_type==1;ele=elevation(pos_nx.xy);c_ele=is_flat_height || is_flat_base ? (centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos)) : ele;float h_height=is_flat_height ? max(c_ele+height,ele+base+2.0) : ele+height;float h_base=is_flat_base ? max(c_ele+base,ele+base) : ele+(base==0.0 ?-5.0 : base);h=t > 0.0 ? max(h_base,h_height) : h_base;pos=vec3(pos_nx.xy,h);\\n#else\\nh=t > 0.0 ? height : base;pos=vec3(pos_nx.xy,h);\\n#endif\\n#ifdef PROJECTION_GLOBE_VIEW\\nfloat lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*h);vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,pos.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*pos.z;pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\\n#endif\\nfloat cutoff=1.0;vec3 scaled_pos=pos;\\n#ifdef RENDER_CUTOFF\\nvec3 centroid_random=vec3(centroid_pos.xy,centroid_pos.x+centroid_pos.y+1.0);vec3 ground_pos=centroid_pos.x==0.0 ? pos.xyz : (centroid_random/8.0);vec4 ground=u_matrix*vec4(ground_pos.xy,ele,1.0);cutoff=cutoff_opacity(u_cutoff_params,ground.z);if (centroid_pos.y !=0.0 && centroid_pos.x !=0.0) {vec3 g=floor(ground_pos);vec3 mod_=centroid_random-g*8.0;float seed=min(1.0,0.1*(min(3.5,max(mod_.x+mod_.y,0.2*attr_height))*0.35+mod_.z));if (cutoff < 0.8-seed) {cutoff=0.0;}}float cutoff_scale=cutoff;v_cutoff_opacity=cutoff;scaled_pos.z=mix(c_ele,h,cutoff_scale);\\n#endif\\nfloat hidden=float((centroid_pos.x==0.0 && centroid_pos.y==1.0) || (cutoff==0.0 && centroid_pos.x !=0.0) || (color.a==0.0));\\n#ifdef RENDER_WALL_MODE\\nvec2 wall_offset=u_width_scale*line_width*(a_join_normal_inside.xy/EXTENT);scaled_pos.xy+=(1.0-a_join_normal_inside.z)*wall_offset*0.5;scaled_pos.xy-=a_join_normal_inside.z*wall_offset*0.5;\\n#endif\\ngl_Position=mix(u_matrix*vec4(scaled_pos,1),AWAY,hidden);h=h-ele;v_height=h;\\n#ifdef RENDER_SHADOWS\\nvec3 shd_pos0=pos;vec3 shd_pos1=pos;\\n#ifdef NORMAL_OFFSET\\nvec3 offset=shadow_normal_offset(normal);shd_pos0+=offset*shadow_normal_offset_multiplier0();shd_pos1+=offset*shadow_normal_offset_multiplier1();\\n#endif\\nv_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);\\n#endif\\nfloat NdotL=0.0;float colorvalue=0.0;\\n#ifndef LIGHTING_3D_MODE\\ncolorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;NdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),NdotL);if (normal.y !=0.0) {float r=0.84;r=mix(0.7,0.98,1.0-u_lightintensity);NdotL*=(\\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}\\n#endif\\n#ifdef FAUX_AO\\nfloat concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height;\\n#ifdef TERRAIN\\ntop_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height);\\n#endif\\nv_ao=vec2(mix(concave,-concave,start),y_ground);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]);\\n#ifdef PROJECTION_GLOBE_VIEW\\ntop_height+=u_height_lift;\\n#endif\\ngl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w;\\n#endif\\n#ifdef LIGHTING_3D_MODE\\n#ifdef FLOOD_LIGHT\\nfloat is_wall=1.0-float(t > 0.0 && top_up_ny.y > 0.0);v_has_floodlight=float(flood_light_wall_radius > 0.0 && is_wall > 0.0);v_flood_radius=flood_light_wall_radius*u_vertical_scale;\\n#endif\\nv_color=vec4(color.rgb,1.0);float ndotl=calculate_NdotL(normal);v_flat.rgb=sRGBToLinear(color.rgb);v_flat.rgb=v_flat.rgb*(ndotl+(1.0-min(ndotl*57.29,1.0))*emissive_strength);v_flat=vec4(linearTosRGB(v_flat.rgb),1.0);\\n#else\\nv_color=vec4(0.0,0.0,0.0,1.0);v_color.rgb+=clamp(color.rgb*NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_color*=u_opacity;\\n#endif\\n#if defined(ZERO_ROOF_RADIUS) && !defined(LIGHTING_3D_MODE)\\nfloat roofNdotL=clamp(u_lightpos.z,0.0,1.0);roofNdotL=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),roofNdotL);v_roof_color=vec4(0.0,0.0,0.0,1.0);v_roof_color.rgb+=clamp(color.rgb*roofNdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_roof_color*=u_opacity;\\n#endif\\n#ifdef FOG\\nv_fog_pos=fog_position(pos);\\n#endif\\n}'),fillExtrusionDepth:Uo(\"in highp float v_depth;void main() {\\n#ifndef DEPTH_TEXTURE\\nglFragColor=pack_depth(v_depth);\\n#endif\\n}\",'#include \"_prelude_terrain.vertex.glsl\"\\nuniform mat4 u_matrix;uniform float u_edge_radius;uniform float u_width_scale;uniform float u_vertical_scale;\\n#ifdef TERRAIN\\nuniform int u_height_type;uniform int u_base_type;\\n#endif\\nin vec4 a_pos_normal_ed;in vec2 a_centroid_pos;\\n#ifdef RENDER_WALL_MODE\\nin vec3 a_join_normal_inside;\\n#endif\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define highp float line_width\\n#pragma mapbox: define highp vec4 color\\nout highp float v_depth;void main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize highp float line_width\\n#pragma mapbox: initialize highp vec4 color\\nbase*=u_vertical_scale;height*=u_vertical_scale;vec3 pos_nx=floor(a_pos_normal_ed.xyz*0.5);mediump vec3 top_up_ny=a_pos_normal_ed.xyz-2.0*pos_nx;base=max(0.0,base);height=max(0.0,top_up_ny.y==0.0 && top_up_ny.x==1.0 ? height-u_edge_radius : height);float t=top_up_ny.x;vec2 centroid_pos=vec2(0.0);\\n#if defined(HAS_CENTROID) || defined(TERRAIN)\\ncentroid_pos=a_centroid_pos;\\n#endif\\nvec3 pos;\\n#ifdef TERRAIN\\nbool is_flat_height=centroid_pos.x !=0.0 && u_height_type==1;bool is_flat_base=centroid_pos.x !=0.0 && u_base_type==1;float ele=elevation(pos_nx.xy);float c_ele=is_flat_height || is_flat_base ? (centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos)) : ele;float h_height=is_flat_height ? max(c_ele+height,ele+base+2.0) : ele+height;float h_base=is_flat_base ? max(c_ele+base,ele+base) : ele+(base==0.0 ?-5.0 : base);float h=t > 0.0 ? max(h_base,h_height) : h_base;pos=vec3(pos_nx.xy,h);\\n#else\\npos=vec3(pos_nx.xy,t > 0.0 ? height : base);\\n#endif\\n#ifdef RENDER_WALL_MODE\\nvec2 wall_offset=u_width_scale*line_width*(a_join_normal_inside.xy/EXTENT);pos.xy+=(1.0-a_join_normal_inside.z)*wall_offset*0.5;pos.xy-=a_join_normal_inside.z*wall_offset*0.5;\\n#endif\\nfloat hidden=float((centroid_pos.x==0.0 && centroid_pos.y==1.0) || (color.a==0.0));gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden);v_depth=gl_Position.z/gl_Position.w;}'),fillExtrusionPattern:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform vec2 u_texsize;uniform sampler2D u_image;\\n#ifdef FAUX_AO\\nuniform lowp vec2 u_ao;in vec3 v_ao;\\n#endif\\n#ifdef LIGHTING_3D_MODE\\nin vec3 v_normal;\\n#endif\\nin highp vec2 v_pos;in vec4 v_lighting;uniform lowp float u_opacity;\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define mediump vec4 pattern\\n#pragma mapbox: define highp float pixel_ratio\\nvoid main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize mediump vec4 pattern\\n#pragma mapbox: initialize highp float pixel_ratio\\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;highp vec2 imagecoord=mod(v_pos,1.0);highp vec2 pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,imagecoord);highp vec2 lod_pos=mix(pattern_tl/u_texsize,pattern_br/u_texsize,v_pos);vec4 out_color=textureLodCustom(u_image,pos,lod_pos);\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting(out_color,normalize(v_normal))*u_opacity;\\n#else\\nout_color=out_color*v_lighting;\\n#endif\\n#ifdef FAUX_AO\\nfloat intensity=u_ao[0];float h=max(0.0,v_ao.z);float h_floors=h/u_ao[1];float y_shade=1.0-0.9*intensity*min(v_ao.y,1.0);float shade=(1.0-0.08*intensity)*(y_shade+(1.0-y_shade)*(1.0-pow(1.0-min(h_floors/16.0,1.0),16.0)))+0.08*intensity*min(h_floors/160.0,1.0);float concave=v_ao.x*v_ao.x;float x_shade=mix(1.0,mix(0.6,0.75,min(h_floors/30.0,1.0)),intensity)+0.1*intensity*min(h,1.0);shade*=mix(1.0,x_shade*x_shade*x_shade,concave);out_color.rgb=out_color.rgb*shade;\\n#endif\\n#ifdef FOG\\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nout_color=applyCutout(out_color,height);\\n#endif\\nglFragColor=out_color;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_terrain.vertex.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform float u_tile_units_to_pixels;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform float u_width_scale;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;in vec4 a_pos_normal_ed;in vec2 a_centroid_pos;\\n#ifdef RENDER_WALL_MODE\\nin vec3 a_join_normal_inside;\\n#endif\\n#ifdef PROJECTION_GLOBE_VIEW\\nin vec3 a_pos_3;in vec3 a_pos_normal_3;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform vec3 u_up_dir;uniform float u_height_lift;\\n#endif\\n#ifdef TERRAIN\\nuniform int u_height_type;uniform int u_base_type;\\n#endif\\nout highp vec2 v_pos;out vec4 v_lighting;\\n#ifdef FAUX_AO\\nuniform lowp vec2 u_ao;out vec3 v_ao;\\n#endif\\n#ifdef LIGHTING_3D_MODE\\nout vec3 v_normal;\\n#endif\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump vec4 pattern\\n#pragma mapbox: define highp float pixel_ratio\\n#pragma mapbox: define highp float line_width\\nvoid main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump vec4 pattern\\n#pragma mapbox: initialize highp float pixel_ratio\\n#pragma mapbox: initialize highp float line_width\\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec4 pos_nx=floor(a_pos_normal_ed*0.5);mediump vec4 top_up_ny_start=a_pos_normal_ed-2.0*pos_nx;mediump vec3 top_up_ny=top_up_ny_start.xyz;float x_normal=pos_nx.z/8192.0;vec3 normal=top_up_ny.y==1.0 ? vec3(0.0,0.0,1.0) : normalize(vec3(x_normal,(2.0*top_up_ny.z-1.0)*(1.0-abs(x_normal)),0.0));float edgedistance=a_pos_normal_ed.w;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;base=max(0.0,base);height=max(0.0,height);float t=top_up_ny.x;float z=t > 0.0 ? height : base;vec2 centroid_pos=vec2(0.0);\\n#if defined(HAS_CENTROID) || defined(TERRAIN)\\ncentroid_pos=a_centroid_pos;\\n#endif\\nfloat ele=0.0;float h=z;vec3 p;float c_ele;\\n#ifdef TERRAIN\\nbool is_flat_height=centroid_pos.x !=0.0 && u_height_type==1;bool is_flat_base=centroid_pos.x !=0.0 && u_base_type==1;ele=elevation(pos_nx.xy);c_ele=is_flat_height || is_flat_base ? (centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos)) : ele;float h_height=is_flat_height ? max(c_ele+height,ele+base+2.0) : ele+height;float h_base=is_flat_base ? max(c_ele+base,ele+base) : ele+(base==0.0 ?-5.0 : base);h=t > 0.0 ? max(h_base,h_height) : h_base;p=vec3(pos_nx.xy,h);\\n#else\\np=vec3(pos_nx.xy,z);\\n#endif\\n#ifdef PROJECTION_GLOBE_VIEW\\nfloat lift=float((t+base) > 0.0)*u_height_lift;h+=lift;vec3 globe_normal=normalize(mix(a_pos_normal_3/16384.0,u_up_dir,u_zoom_transition));vec3 globe_pos=a_pos_3+globe_normal*(u_tile_up_scale*(p.z+lift));vec3 merc_pos=mercator_tile_position(u_inv_rot_matrix,p.xy,u_tile_id,u_merc_center)+u_up_dir*u_tile_up_scale*p.z;p=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\\n#endif\\n#ifdef RENDER_WALL_MODE\\nvec2 wall_offset=u_width_scale*line_width*(a_join_normal_inside.xy/EXTENT);p.xy+=(1.0-a_join_normal_inside.z)*wall_offset*0.5;p.xy-=a_join_normal_inside.z*wall_offset*0.5;\\n#endif\\nfloat hidden=float((centroid_pos.x==0.0 && centroid_pos.y==1.0) || (color.a==0.0));gl_Position=mix(u_matrix*vec4(p,1),AWAY,hidden);vec2 pos=normal.z==1.0\\n? pos_nx.xy\\n: vec2(edgedistance,z*u_height_factor);v_pos=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,display_size,u_tile_units_to_pixels,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float NdotL=0.0;\\n#ifdef LIGHTING_3D_MODE\\nNdotL=calculate_NdotL(normal);\\n#else\\nNdotL=clamp(dot(normal,u_lightpos),0.0,1.0);NdotL=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),NdotL);\\n#endif\\nif (normal.y !=0.0) {float r=0.84;\\n#ifndef LIGHTING_3D_MODE\\nr=mix(0.7,0.98,1.0-u_lightintensity);\\n#endif\\nNdotL*=(\\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),r,1.0)));}\\n#ifdef FAUX_AO\\nfloat concave=pos_nx.w-floor(pos_nx.w*0.5)*2.0;float start=top_up_ny_start.w;float y_ground=1.0-clamp(t+base,0.0,1.0);float top_height=height;\\n#ifdef TERRAIN\\ntop_height=mix(max(c_ele+height,ele+base+2.0),ele+height,float(centroid_pos.x==0.0))-ele;y_ground+=y_ground*5.0/max(3.0,top_height);\\n#endif\\nv_ao=vec3(mix(concave,-concave,start),y_ground,h-ele);NdotL*=(1.0+0.05*(1.0-top_up_ny.y)*u_ao[0]);\\n#ifdef PROJECTION_GLOBE_VIEW\\ntop_height+=u_height_lift;\\n#endif\\ngl_Position.z-=(0.0000006*(min(top_height,500.)+2.0*min(base,500.0)+60.0*concave+3.0*start))*gl_Position.w;\\n#endif\\n#ifdef LIGHTING_3D_MODE\\nv_normal=normal;\\n#else\\nv_lighting.rgb+=clamp(NdotL*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;\\n#endif \\n#ifdef FOG\\nv_fog_pos=fog_position(p);\\n#endif\\n}'),groundShadow:Uo('#include \"_prelude_shadow.fragment.glsl\"\\nprecision highp float;uniform vec3 u_ground_shadow_factor;in vec4 v_pos_light_view_0;in vec4 v_pos_light_view_1;\\n#ifdef FOG\\nin float v_fog_opacity;\\n#endif\\nvoid main() {float light=shadowed_light_factor_plane_bias(v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w);vec3 shadow=mix(u_ground_shadow_factor,vec3(1.0),light);\\n#ifdef RENDER_CUTOFF\\nshadow=mix(vec3(1.0),shadow,cutoff_opacity(u_cutoff_params,1.0/gl_FragCoord.w));\\n#endif\\n#ifdef FOG\\nshadow=mix(shadow,vec3(1.0),v_fog_opacity);\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nshadow=mix(shadow,vec3(1.0),1.0-applyCutout(vec4(1.0),0.0).r);\\n#endif\\nglFragColor=vec4(shadow,1.0);}','#include \"_prelude_fog.vertex.glsl\"\\nuniform mat4 u_matrix;uniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;in vec2 a_pos;out vec4 v_pos_light_view_0;out vec4 v_pos_light_view_1;\\n#ifdef FOG\\nout float v_fog_opacity;\\n#endif\\nvoid main() {gl_Position=u_matrix*vec4(a_pos,0.0,1.0);v_pos_light_view_0=u_light_matrix_0*vec4(a_pos,0.0,1.0);v_pos_light_view_1=u_light_matrix_1*vec4(a_pos,0.0,1.0);\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);v_fog_opacity=fog(v_fog_pos);\\n#endif\\n}'),fillExtrusionGroundEffect:Uo(\"uniform highp float u_ao_pass;uniform highp float u_opacity;uniform highp float u_flood_light_intensity;uniform highp vec3 u_flood_light_color;uniform highp float u_attenuation;uniform sampler2D u_fb;uniform float u_fb_size;\\n#ifdef SDF_SUBPASS\\nin highp vec2 v_pos;in highp vec4 v_line_segment;in highp float v_flood_light_radius_tile;in highp vec2 v_ao;float line_df(highp vec2 a,highp vec2 b,highp vec2 p) {highp vec2 ba=b-a;highp vec2 pa=p-a;highp float r=clamp(dot(pa,ba)/dot(ba,ba),0.0,1.0);return length(pa-r*ba);}\\n#ifdef FOG\\nin highp float v_fog;\\n#endif\\n#endif\\nvoid main() {\\n#ifdef CLEAR_SUBPASS\\nvec4 color=vec4(1.0);\\n#ifdef CLEAR_FROM_TEXTURE\\ncolor=texture(u_fb,gl_FragCoord.xy/vec2(u_fb_size));\\n#endif\\nglFragColor=color;\\n#else\\n#ifdef SDF_SUBPASS\\nhighp float d=line_df(v_line_segment.xy,v_line_segment.zw,v_pos);highp float effect_radius=mix(v_flood_light_radius_tile,v_ao.y,u_ao_pass);d/=effect_radius;d=min(d,1.0);d=1.0-pow(1.0-d,u_attenuation);highp float effect_intensity=mix(u_flood_light_intensity,v_ao.x,u_ao_pass);highp float fog=1.0;\\n#ifdef FOG\\nfog=v_fog;\\n#endif\\n#ifdef RENDER_CUTOFF\\nfog*=v_cutoff_opacity;\\n#endif\\nglFragColor=vec4(vec3(0.0),mix(1.0,d,effect_intensity*u_opacity*fog));\\n#else\\nvec4 color=mix(vec4(u_flood_light_color,1.0),vec4(vec3(0.0),1.0),u_ao_pass);\\n#ifdef OVERDRAW_INSPECTOR\\ncolor=vec4(1.0);\\n#endif\\nglFragColor=color;\\n#endif\\nHANDLE_WIREFRAME_DEBUG;\\n#endif\\n}\",'#include \"_prelude_fog.vertex.glsl\"\\nin highp vec4 a_pos_end;in highp float a_angular_offset_factor;in highp float a_hidden_by_landmark;\\n#ifdef SDF_SUBPASS\\nout highp vec2 v_pos;out highp vec4 v_line_segment;out highp float v_flood_light_radius_tile;out highp vec2 v_ao;\\n#ifdef FOG\\nout highp float v_fog;\\n#endif\\n#endif\\nuniform highp float u_flood_light_intensity;uniform highp mat4 u_matrix;uniform highp float u_ao_pass;uniform highp float u_meter_to_tile;uniform highp float u_edge_radius;uniform highp float u_dynamic_offset;uniform highp vec2 u_ao;\\n#pragma mapbox: define highp float flood_light_ground_radius\\nconst float TANGENT_CUTOFF=4.0;const float NORM=32767.0;void main() {\\n#pragma mapbox: initialize highp float flood_light_ground_radius\\nvec2 p=a_pos_end.xy;vec2 q=floor(a_pos_end.zw*0.5);vec2 start_bottom=a_pos_end.zw-q*2.0;float fl_ground_radius=flood_light_ground_radius;fl_ground_radius=abs(flood_light_ground_radius);float direction=flood_light_ground_radius < 0.0 ?-1.0 : 1.0;float flood_radius_tile=fl_ground_radius*u_meter_to_tile;vec2 v=normalize(q-p);float ao_radius=u_ao.y/3.5;float effect_radius=mix(flood_radius_tile,ao_radius,u_ao_pass)+u_edge_radius;float angular_offset_factor=a_angular_offset_factor/NORM*TANGENT_CUTOFF;float angular_offset=direction*angular_offset_factor*effect_radius;float top=1.0-start_bottom.y;float side=(0.5-start_bottom.x)*2.0;vec2 extrusion_parallel=v*side*mix(u_dynamic_offset,angular_offset,top);vec2 perp=vec2(v.y,-v.x);vec2 extrusion_perp=direction*perp*effect_radius*top;vec3 pos=vec3(mix(q,p,start_bottom.x),0.0);pos.xy+=extrusion_parallel+extrusion_perp;\\n#ifdef SDF_SUBPASS\\nv_pos=pos.xy;v_line_segment=vec4(p,q)+perp.xyxy*u_edge_radius;v_flood_light_radius_tile=flood_radius_tile;v_ao=vec2(u_ao.x,ao_radius);\\n#ifdef FOG\\nv_fog_pos=fog_position(pos);v_fog=1.0-fog(v_fog_pos);\\n#endif\\n#endif\\nfloat hidden_by_landmark=0.0;\\n#ifdef HAS_CENTROID\\nhidden_by_landmark=a_hidden_by_landmark;\\n#endif\\nfloat isFloodlit=float(fl_ground_radius > 0.0 && u_flood_light_intensity > 0.0);float hidden=mix(1.0-isFloodlit,isFloodlit,u_ao_pass);hidden+=hidden_by_landmark;gl_Position=mix(u_matrix*vec4(pos,1.0),AWAY,float(hidden > 0.0));\\n#ifdef RENDER_CUTOFF\\nv_cutoff_opacity=cutoff_opacity(u_cutoff_params,gl_Position.z);\\n#endif\\n}'),hillshadePrepare:Uo(\"precision highp float;uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;float getElevation(vec2 coord) {return texture(u_image,coord).r/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y));float b=getElevation(v_pos+vec2(0,-epsilon.y));float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y));float d=getElevation(v_pos+vec2(-epsilon.x,0));float e=getElevation(v_pos+vec2(epsilon.x,0));float f=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float g=getElevation(v_pos+vec2(0,epsilon.y));float h=getElevation(v_pos+vec2(epsilon.x,epsilon.y));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2(\\n(c+e+e+h)-(a+d+d+f),(f+g+g+h)-(a+b+b+c)\\n)/pow(2.0,exaggeration+(19.2562-u_zoom));glFragColor=clamp(vec4(\\nderiv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);}\",\"uniform mat4 u_matrix;uniform vec2 u_dimension;in vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\"),hillshade:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;uniform float u_emissive_strength;void main() {vec4 pixel=texture(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);glFragColor=accent_color*(1.0-shade_color.a)+shade_color;\\n#ifdef LIGHTING_3D_MODE\\nglFragColor=apply_lighting_with_emission_ground(glFragColor,u_emissive_strength);\\n#endif\\n#ifdef FOG\\nglFragColor=fog_dither(fog_apply_premultiplied(glFragColor,v_fog_pos));\\n#endif\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\nuniform mat4 u_matrix;in vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);\\n#endif\\n}'),line:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\n#include \"_prelude_shadow.fragment.glsl\"\\nuniform lowp float u_device_pixel_ratio;uniform highp float u_width_scale;uniform highp float u_floor_width_scale;uniform float u_alpha_discard_threshold;uniform highp vec2 u_trim_offset;uniform highp vec2 u_trim_fade_range;uniform lowp vec4 u_trim_color;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec4 v_uv;\\n#ifdef ELEVATED_ROADS\\nin highp float v_road_z_offset;\\n#endif\\n#ifdef RENDER_LINE_DASH\\nuniform sampler2D u_dash_image;in vec2 v_tex;\\n#endif\\n#ifdef RENDER_LINE_GRADIENT\\nuniform sampler2D u_gradient_image;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nin highp float v_z_offset;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth;\\n#endif\\nfloat luminance(vec3 c) {return (c.r+c.r+c.b+c.g+c.g+c.g)*0.1667;}uniform float u_emissive_strength;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float floorwidth\\n#pragma mapbox: define lowp vec4 dash\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float border_width\\n#pragma mapbox: define lowp vec4 border_color\\nfloat linearstep(float edge0,float edge1,float x) {return clamp((x-edge0)/(edge1-edge0),0.0,1.0);}void main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float floorwidth\\n#pragma mapbox: initialize lowp vec4 dash\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float border_width\\n#pragma mapbox: initialize lowp vec4 border_color\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(u_width_scale*blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);\\n#ifdef RENDER_LINE_DASH\\nfloat sdfdist=texture(u_dash_image,v_tex).r;float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/dash.z;float scaled_floorwidth=(floorwidth*u_floor_width_scale);alpha*=linearstep(0.5-sdfgamma/scaled_floorwidth,0.5+sdfgamma/scaled_floorwidth,sdfdist);\\n#endif\\nhighp vec4 out_color;\\n#ifdef RENDER_LINE_GRADIENT\\nout_color=texture(u_gradient_image,v_uv.xy);\\n#else\\nout_color=color;\\n#endif\\nfloat trim_alpha=1.0;\\n#ifdef RENDER_LINE_TRIM_OFFSET\\nhighp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {highp float start_transition=max(0.0,min(1.0,(line_progress-trim_start)/max(u_trim_fade_range[0],1.0e-9)));highp float end_transition=max(0.0,min(1.0,(trim_end-line_progress)/max(u_trim_fade_range[1],1.0e-9)));highp float transition_factor=min(start_transition,end_transition);out_color=mix(out_color,u_trim_color,transition_factor);trim_alpha=1.0-transition_factor;}\\n#endif\\nif (u_alpha_discard_threshold !=0.0) {if (alpha < u_alpha_discard_threshold) {discard;}}\\n#ifdef RENDER_LINE_BORDER\\nfloat edgeBlur=((border_width*u_width_scale)+1.0/u_device_pixel_ratio);float alpha2=clamp(min(dist-(v_width2.t-edgeBlur),v_width2.s-dist)/edgeBlur,0.0,1.0);if (alpha2 < 1.) {float smoothAlpha=smoothstep(0.6,1.0,alpha2);if (border_color.a==0.0) {float Y=(out_color.a > 0.01) ? luminance(out_color.rgb/out_color.a) : 1.;float adjustment=(Y > 0.) ? 0.5/Y : 0.45;if (out_color.a > 0.25 && Y < 0.25) {vec3 borderColor=(Y > 0.) ? out_color.rgb : vec3(1,1,1)*out_color.a;out_color.rgb=out_color.rgb+borderColor*(adjustment*(1.0-smoothAlpha));} else {out_color.rgb*=(0.6 +0.4*smoothAlpha);}} else {out_color=mix(border_color*trim_alpha,out_color,smoothAlpha);}}\\n#endif\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(out_color,u_emissive_strength);\\n#ifdef RENDER_SHADOWS\\nfloat light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);\\n#ifdef ELEVATED_ROADS\\nout_color.rgb*=mix(v_road_z_offset > 0.0 ? u_ground_shadow_factor : vec3(1.0),vec3(1.0),light);\\n#else\\nout_color.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light);\\n#endif\\n#endif\\n#endif\\n#ifdef FOG\\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\\n#endif\\nout_color*=(alpha*opacity);\\n#ifdef INDICATOR_CUTOUT\\nout_color=applyCutout(out_color,v_z_offset);\\n#endif\\nglFragColor=out_color;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_shadow.vertex.glsl\"\\n#include \"_prelude_terrain.vertex.glsl\"\\n#define EXTRUDE_SCALE 0.015873016\\nin vec2 a_pos_normal;in vec4 a_data;\\n#if defined(ELEVATED) || defined(ELEVATED_ROADS) || defined(VARIABLE_LINE_WIDTH)\\nin vec2 a_z_offset_width;\\n#endif\\n#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET)\\nin highp vec4 a_packed;\\n#endif\\n#ifdef RENDER_LINE_DASH\\nin float a_linesofar;\\n#endif\\nuniform mat4 u_matrix;uniform mat2 u_pixels_to_tile_units;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;uniform float u_width_scale;uniform highp float u_floor_width_scale;\\n#ifdef ELEVATED\\nuniform lowp float u_zbias_factor;uniform lowp float u_tile_to_meter;float sample_elevation(vec2 apos) {\\n#ifdef ELEVATION_REFERENCE_SEA\\nreturn 0.0;\\n#else\\nreturn elevation(apos);\\n#endif\\n}\\n#endif\\nout vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec4 v_uv;\\n#ifdef ELEVATED_ROADS\\nout highp float v_road_z_offset;\\n#endif\\n#ifdef RENDER_LINE_DASH\\nuniform vec2 u_texsize;uniform float u_tile_units_to_pixels;out vec2 v_tex;\\n#endif\\n#ifdef RENDER_LINE_GRADIENT\\nuniform float u_image_height;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nout highp float v_z_offset;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth;\\n#endif\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float floorwidth\\n#pragma mapbox: define lowp vec4 dash\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float border_width\\n#pragma mapbox: define lowp vec4 border_color\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float floorwidth\\n#pragma mapbox: initialize lowp vec4 dash\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float border_width\\n#pragma mapbox: initialize lowp vec4 border_color\\nfloat a_z_offset;\\n#if defined(ELEVATED) || defined(ELEVATED_ROADS)\\na_z_offset=a_z_offset_width.x;\\n#endif\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth;\\n#ifdef VARIABLE_LINE_WIDTH\\nhalfwidth=(u_width_scale*a_z_offset_width.y)/2.0;\\n#else\\nhalfwidth=(u_width_scale*width)/2.0;\\n#endif\\noffset=-1.0*offset*u_width_scale;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*EXTRUDE_SCALE;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*EXTRUDE_SCALE*normal.y*mat2(t,-u,u,t);float hidden=float(opacity==0.0);vec2 extrude=dist*u_pixels_to_tile_units;vec4 projected_extrude=u_matrix*vec4(extrude,0.0,0.0);vec2 projected_extrude_xy=projected_extrude.xy;\\n#ifdef ELEVATED_ROADS\\nv_road_z_offset=a_z_offset;gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,a_z_offset+0.01*step(0.01,a_z_offset),1.0)+projected_extrude;\\n#else\\n#ifdef ELEVATED\\nvec2 offsetTile=offset2*u_pixels_to_tile_units;vec2 offset_pos=pos+offsetTile;float ele=0.0;\\n#ifdef CROSS_SLOPE_VERTICAL\\nfloat top=a_pos_normal.y-2.0*floor(a_pos_normal.y*0.5);float line_height=2.0*u_tile_to_meter*outset*top*u_pixels_to_tile_units[1][1]+a_z_offset;ele=sample_elevation(offset_pos)+line_height;projected_extrude=vec4(0);\\n#else\\n#ifdef CROSS_SLOPE_HORIZONTAL\\nfloat ele0=sample_elevation(offset_pos);float ele1=max(sample_elevation(offset_pos+extrude),sample_elevation(offset_pos+extrude/2.0));float ele2=max(sample_elevation(offset_pos-extrude),sample_elevation(offset_pos-extrude/2.0));float ele_max=max(ele0,max(ele1,ele2));ele=ele_max+a_z_offset;\\n#else\\nfloat ele0=sample_elevation(offset_pos);float ele1=max(sample_elevation(offset_pos+extrude),sample_elevation(offset_pos+extrude/2.0));float ele2=max(sample_elevation(offset_pos-extrude),sample_elevation(offset_pos-extrude/2.0));float ele_max=max(ele0,0.5*(ele1+ele2));ele=ele_max-ele0+ele1+a_z_offset;\\n#endif\\n#endif\\ngl_Position=u_matrix*vec4(offset_pos,ele,1.0)+projected_extrude;float z=clamp(gl_Position.z/gl_Position.w,0.5,1.0);float zbias=max(0.00005,(pow(z,0.8)-z)*u_zbias_factor*u_exaggeration);gl_Position.z-=(gl_Position.w*zbias);gl_Position=mix(gl_Position,AWAY,hidden);\\n#else\\ngl_Position=mix(u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude,AWAY,hidden);\\n#endif\\n#endif\\n#ifdef ELEVATED_ROADS\\n#ifdef RENDER_SHADOWS\\nvec3 shd_pos=vec3(pos+(offset2+dist)*u_pixels_to_tile_units,a_z_offset);vec3 shd_pos0=shd_pos;vec3 shd_pos1=shd_pos;\\n#ifdef NORMAL_OFFSET\\nvec3 shd_pos_offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=shd_pos_offset*shadow_normal_offset_multiplier0();shd_pos1+=shd_pos_offset*shadow_normal_offset_multiplier1();\\n#endif\\nv_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w;\\n#endif\\n#endif\\n#ifndef RENDER_TO_TEXTURE\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude_xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=mix(extrude_length_without_perspective/extrude_length_with_perspective,1.0,step(0.01,blur));\\n#else\\nv_gamma_scale=1.0;\\n#endif\\n#if defined(RENDER_LINE_GRADIENT) || defined(RENDER_LINE_TRIM_OFFSET)\\nfloat a_uv_x=a_packed[0];float a_split_index=a_packed[1];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3];\\n#ifdef RENDER_LINE_GRADIENT\\nhighp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec4(a_uv_x,a_split_index*texel_height-half_texel_height,a_clip_start,a_clip_end);\\n#else\\nv_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end);\\n#endif\\n#endif\\n#ifdef RENDER_LINE_DASH\\nfloat scale=dash.z==0.0 ? 0.0 : u_tile_units_to_pixels/dash.z;float height=dash.y;v_tex=vec2(a_linesofar*scale/(floorwidth*u_floor_width_scale),(-normal.y*height+dash.x+0.5)/u_texsize.y);\\n#endif\\nv_width2=vec2(outset,inset);\\n#ifdef FOG\\nv_fog_pos=fog_position(pos);\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nv_z_offset=a_z_offset;\\n#endif\\n}'),linePattern:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\n#include \"_prelude_shadow.fragment.glsl\"\\nuniform highp float u_device_pixel_ratio;uniform highp float u_width_scale;uniform highp float u_alpha_discard_threshold;uniform highp vec2 u_texsize;uniform highp float u_tile_units_to_pixels;uniform highp vec2 u_trim_offset;uniform highp vec2 u_trim_fade_range;uniform lowp vec4 u_trim_color;uniform sampler2D u_image;in vec2 v_normal;in vec2 v_width2;in highp float v_linesofar;in float v_gamma_scale;in float v_width;\\n#ifdef RENDER_LINE_TRIM_OFFSET\\nin highp vec4 v_uv;\\n#endif\\n#ifdef ELEVATED_ROADS\\nin highp float v_road_z_offset;\\n#endif\\n#ifdef LINE_JOIN_NONE\\nin vec2 v_pattern_data;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nin highp float v_z_offset;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform vec3 u_ground_shadow_factor;in highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in highp float v_depth;\\n#endif\\nuniform float u_emissive_strength;\\n#pragma mapbox: define mediump vec4 pattern\\n#pragma mapbox: define mediump float pixel_ratio\\n#pragma mapbox: define mediump float blur\\n#pragma mapbox: define mediump float opacity\\nvoid main() {\\n#pragma mapbox: initialize mediump vec4 pattern\\n#pragma mapbox: initialize mediump float pixel_ratio\\n#pragma mapbox: initialize mediump float blur\\n#pragma mapbox: initialize mediump float opacity\\nvec2 pattern_tl=pattern.xy;vec2 pattern_br=pattern.zw;vec2 display_size=(pattern_br-pattern_tl)/pixel_ratio;highp float pattern_size=display_size.x/u_tile_units_to_pixels;float aspect=display_size.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(u_width_scale*blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);highp float pattern_x=v_linesofar/pattern_size*aspect;highp float x=mod(pattern_x,1.0);highp float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;highp vec2 pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(x,y));highp vec2 lod_pos=mix(pattern_tl*texel_size-texel_size,pattern_br*texel_size+texel_size,vec2(pattern_x,y));vec4 color=textureLodCustom(u_image,pos,lod_pos);\\n#ifdef RENDER_LINE_TRIM_OFFSET\\nhighp float start=v_uv[2];highp float end=v_uv[3];highp float trim_start=u_trim_offset[0];highp float trim_end=u_trim_offset[1];highp float line_progress=(start+(v_uv.x)*(end-start));if (trim_end > trim_start) {highp float start_transition=max(0.0,min(1.0,(line_progress-trim_start)/max(u_trim_fade_range[0],1.0e-9)));highp float end_transition=max(0.0,min(1.0,(trim_end-line_progress)/max(u_trim_fade_range[1],1.0e-9)));highp float transition_factor=min(start_transition,end_transition);color=mix(color,color.a*u_trim_color,transition_factor);}\\n#endif\\n#ifdef LINE_JOIN_NONE\\nhighp float pattern_len=pattern_size/aspect;highp float segment_phase=pattern_len-mod(v_linesofar-v_pattern_data.x+pattern_len,pattern_len);highp float visible_start=segment_phase-step(pattern_len*0.5,segment_phase)*pattern_len;highp float visible_end=floor((v_pattern_data.y-segment_phase)/pattern_len)*pattern_len+segment_phase;visible_end+=step(pattern_len*0.5,v_pattern_data.y-visible_end)*pattern_len;if (v_pattern_data.x < visible_start || v_pattern_data.x >=visible_end) {color=vec4(0.0);}\\n#endif\\n#ifdef LIGHTING_3D_MODE\\ncolor=apply_lighting_with_emission_ground(color,u_emissive_strength);\\n#ifdef RENDER_SHADOWS\\nfloat light=shadowed_light_factor(v_pos_light_view_0,v_pos_light_view_1,v_depth);\\n#ifdef ELEVATED_ROADS\\ncolor.rgb*=mix(v_road_z_offset > 0.0 ? u_ground_shadow_factor : vec3(1.0),vec3(1.0),light);\\n#else\\ncolor.rgb*=mix(u_ground_shadow_factor,vec3(1.0),light);\\n#endif\\n#endif\\n#endif\\n#ifdef FOG\\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\\n#endif\\ncolor*=(alpha*opacity);if (u_alpha_discard_threshold !=0.0) {if (color.a < u_alpha_discard_threshold) {discard;}}\\n#ifdef INDICATOR_CUTOUT\\ncolor=applyCutout(color,v_z_offset);\\n#endif\\nglFragColor=color;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_shadow.vertex.glsl\"\\n#include \"_prelude_terrain.vertex.glsl\"\\n#define scale 0.015873016\\nin vec2 a_pos_normal;in vec4 a_data;\\n#if defined(ELEVATED) || defined(ELEVATED_ROADS)\\nin vec2 a_z_offset_width;\\n#endif\\n#ifdef RENDER_LINE_TRIM_OFFSET\\nin highp vec4 a_packed;\\n#endif\\nin highp float a_linesofar;\\n#ifdef LINE_JOIN_NONE\\nin highp vec3 a_pattern_data;out vec2 v_pattern_data;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nout highp float v_z_offset;\\n#endif\\nuniform mat4 u_matrix;uniform float u_tile_units_to_pixels;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform float u_device_pixel_ratio;uniform float u_width_scale;uniform float u_floor_width_scale;\\n#ifdef ELEVATED\\nuniform lowp float u_zbias_factor;uniform lowp float u_tile_to_meter;float sample_elevation(vec2 apos) {\\n#ifdef ELEVATION_REFERENCE_SEA\\nreturn 0.0;\\n#else\\nreturn elevation(apos);\\n#endif\\n}\\n#endif\\nout vec2 v_normal;out vec2 v_width2;out highp float v_linesofar;out float v_gamma_scale;out float v_width;\\n#ifdef RENDER_LINE_TRIM_OFFSET\\nout highp vec4 v_uv;\\n#endif\\n#ifdef ELEVATED_ROADS\\nout highp float v_road_z_offset;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out highp float v_depth;\\n#endif\\n#pragma mapbox: define mediump float blur\\n#pragma mapbox: define mediump float opacity\\n#pragma mapbox: define mediump float offset\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define mediump float floorwidth\\n#pragma mapbox: define mediump vec4 pattern\\n#pragma mapbox: define mediump float pixel_ratio\\nvoid main() {\\n#pragma mapbox: initialize mediump float blur\\n#pragma mapbox: initialize mediump float opacity\\n#pragma mapbox: initialize mediump float offset\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize mediump float floorwidth\\n#pragma mapbox: initialize mediump vec4 pattern\\n#pragma mapbox: initialize mediump float pixel_ratio\\nfloat a_z_offset;\\n#if defined(ELEVATED) || defined(ELEVATED_ROADS)\\na_z_offset=a_z_offset_width.x;\\n#endif\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;vec2 pos=floor(a_pos_normal*0.5);vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=(u_width_scale*width)/2.0;offset=-1.0*offset*u_width_scale;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);vec2 dist=outset*a_extrude*scale;float u=0.5*a_direction;float t=1.0-abs(u);vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);float hidden=float(opacity==0.0);vec2 extrude=dist*u_pixels_to_tile_units;vec4 projected_extrude=u_matrix*vec4(extrude,0.0,0.0);vec2 projected_extrude_xy=projected_extrude.xy;\\n#ifdef ELEVATED_ROADS\\nv_road_z_offset=a_z_offset;gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,a_z_offset+0.01*step(0.01,a_z_offset),1.0)+projected_extrude;\\n#else\\n#ifdef ELEVATED\\nvec2 offsetTile=offset2*u_pixels_to_tile_units;vec2 offset_pos=pos+offsetTile;float ele=0.0;\\n#ifdef CROSS_SLOPE_VERTICAL\\nfloat top=a_pos_normal.y-2.0*floor(a_pos_normal.y*0.5);float line_height=2.0*u_tile_to_meter*outset*top*u_pixels_to_tile_units[1][1]+a_z_offset;ele=sample_elevation(offset_pos)+line_height;projected_extrude=vec4(0);\\n#else\\n#ifdef CROSS_SLOPE_HORIZONTAL\\nfloat ele0=sample_elevation(offset_pos);float ele1=max(sample_elevation(offset_pos+extrude),sample_elevation(offset_pos+extrude/2.0));float ele2=max(sample_elevation(offset_pos-extrude),sample_elevation(offset_pos-extrude/2.0));float ele_max=max(ele0,max(ele1,ele2));ele=ele_max+a_z_offset;\\n#else\\nfloat ele0=sample_elevation(offset_pos);float ele1=max(sample_elevation(offset_pos+extrude),sample_elevation(offset_pos+extrude/2.0));float ele2=max(sample_elevation(offset_pos-extrude),sample_elevation(offset_pos-extrude/2.0));float ele_max=max(ele0,0.5*(ele1+ele2));ele=ele_max-ele0+ele1+a_z_offset;\\n#endif\\n#endif\\ngl_Position=u_matrix*vec4(offset_pos,ele,1.0)+projected_extrude;float z=clamp(gl_Position.z/gl_Position.w,0.5,1.0);float zbias=max(0.00005,(pow(z,0.8)-z)*u_zbias_factor*u_exaggeration);gl_Position.z-=(gl_Position.w*zbias);gl_Position=mix(gl_Position,AWAY,hidden);\\n#else\\ngl_Position=mix(u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude,AWAY,hidden);\\n#endif\\n#endif\\n#ifdef ELEVATED_ROADS\\n#ifdef RENDER_SHADOWS\\nvec3 shd_pos=vec3(pos+(offset2+dist)*u_pixels_to_tile_units,a_z_offset);vec3 shd_pos0=shd_pos;vec3 shd_pos1=shd_pos;\\n#ifdef NORMAL_OFFSET\\nvec3 shd_pos_offset=shadow_normal_offset(vec3(0.0,0.0,1.0));shd_pos0+=shd_pos_offset*shadow_normal_offset_multiplier0();shd_pos1+=shd_pos_offset*shadow_normal_offset_multiplier1();\\n#endif\\nv_pos_light_view_0=u_light_matrix_0*vec4(shd_pos0,1);v_pos_light_view_1=u_light_matrix_1*vec4(shd_pos1,1);v_depth=gl_Position.w;\\n#endif\\n#endif\\n#ifndef RENDER_TO_TEXTURE\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude_xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=mix(extrude_length_without_perspective/extrude_length_with_perspective,1.0,step(0.01,blur));\\n#else\\nv_gamma_scale=1.0;\\n#endif\\n#ifdef RENDER_LINE_TRIM_OFFSET\\nfloat a_uv_x=a_packed[0];highp float a_clip_start=a_packed[2];highp float a_clip_end=a_packed[3];v_uv=vec4(a_uv_x,0.0,a_clip_start,a_clip_end);\\n#endif\\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=(floorwidth*u_floor_width_scale);\\n#ifdef LINE_JOIN_NONE\\nv_width=(floorwidth*u_floor_width_scale)+ANTIALIASING;mediump float pixels_to_tile_units=1.0/u_tile_units_to_pixels;mediump float pixel_ratio_inverse=1.0/pixel_ratio;mediump float aspect=v_width/((pattern.w-pattern.y)*pixel_ratio_inverse);highp float subt_multiple=(pattern.z-pattern.x)*pixel_ratio_inverse*pixels_to_tile_units*aspect*32.0;highp float subt=floor(a_pattern_data.z/subt_multiple)*subt_multiple;float offset_sign=(fract(a_pattern_data.x)-0.5)*4.0;float line_progress_offset=offset_sign*v_width*0.5*pixels_to_tile_units;v_linesofar=(a_pattern_data.z-subt)+a_linesofar+line_progress_offset;v_pattern_data=vec2(a_pattern_data.x+line_progress_offset,a_pattern_data.y);\\n#endif\\n#ifdef FOG\\nv_fog_pos=fog_position(pos);\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nv_z_offset=a_z_offset;\\n#endif\\n}'),raster:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\n#include \"_prelude_raster_array.glsl\"\\nuniform float u_fade_t;uniform float u_opacity;uniform highp float u_raster_elevation;uniform highp float u_zoom_transition;in vec2 v_pos0;in vec2 v_pos1;in float v_depth;\\n#ifdef PROJECTION_GLOBE_VIEW\\nin float v_split_fade;\\n#endif\\nuniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;uniform float u_emissive_strength;\\n#ifndef RASTER_ARRAY\\nuniform highp sampler2D u_image0;uniform sampler2D u_image1;\\n#endif\\n#ifdef RASTER_COLOR\\nuniform sampler2D u_color_ramp;uniform highp vec4 u_colorization_mix;uniform highp float u_colorization_offset;uniform vec2 u_texture_res;\\n#endif\\nvoid main() {vec4 color0,color1,color;vec2 value;\\n#ifdef RASTER_COLOR\\n#ifdef RASTER_ARRAY\\n#ifdef RASTER_ARRAY_LINEAR\\nvalue=mix(\\nraTexture2D_image0_linear(v_pos0,u_texture_res,u_colorization_mix,u_colorization_offset),raTexture2D_image1_linear(v_pos1,u_texture_res,u_colorization_mix,u_colorization_offset),u_fade_t\\n);\\n#else\\nvalue=mix(\\nraTexture2D_image0_nearest(v_pos0,u_texture_res,u_colorization_mix,u_colorization_offset),raTexture2D_image1_nearest(v_pos1,u_texture_res,u_colorization_mix,u_colorization_offset),u_fade_t\\n);\\n#endif\\nif (value.y > 0.0) value.x/=value.y;\\n#else\\ncolor=mix(texture(u_image0,v_pos0),texture(u_image1,v_pos1),u_fade_t);value=vec2(u_colorization_offset+dot(color.rgb,u_colorization_mix.rgb),color.a);\\n#endif\\ncolor=texture(u_color_ramp,vec2(value.x,0.5));if (color.a > 0.0) color.rgb/=color.a;color.a*=value.y;\\n#else\\ncolor0=texture(u_image0,v_pos0);color1=texture(u_image1,v_pos1);if (color0.a > 0.0) color0.rgb/=color0.a;if (color1.a > 0.0) color1.rgb/=color1.a;color=mix(color0,color1,u_fade_t);\\n#endif\\ncolor.a*=u_opacity;\\n#ifdef GLOBE_POLES\\ncolor.a*=1.0-smoothstep(0.0,0.05,u_zoom_transition);\\n#endif\\nvec3 rgb=color.rgb;rgb=vec3(\\ndot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);vec3 out_color=mix(u_high_vec,u_low_vec,rgb);\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(vec4(out_color,1.0),u_emissive_strength).rgb;\\n#endif\\n#ifdef FOG\\nhighp float fog_limit_high_meters=1000000.0;highp float fog_limit_low_meters=600000.0;float fog_limit=1.0-smoothstep(fog_limit_low_meters,fog_limit_high_meters,u_raster_elevation);out_color=fog_dither(fog_apply(out_color,v_fog_pos,fog_limit));\\n#endif\\nglFragColor=vec4(out_color*color.a,color.a);\\n#ifdef PROJECTION_GLOBE_VIEW\\nglFragColor*=mix(1.0,1.0-smoothstep(0.0,0.05,u_zoom_transition),smoothstep(0.8,0.9,v_split_fade));\\n#endif\\n#ifdef RENDER_CUTOFF\\nglFragColor=glFragColor*cutoff_opacity(u_cutoff_params,v_depth);\\n#endif\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\nuniform mat4 u_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform mat3 u_grid_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;uniform vec2 u_texture_offset;uniform float u_raster_elevation;uniform float u_zoom_transition;uniform vec2 u_merc_center;\\n#define GLOBE_UPSCALE GLOBE_RADIUS/6371008.8\\n#ifdef GLOBE_POLES\\nin vec3 a_globe_pos;in vec2 a_uv;\\n#else\\nin vec2 a_pos;in vec2 a_texture_pos;\\n#endif\\nout vec2 v_pos0;out vec2 v_pos1;out float v_depth;\\n#ifdef PROJECTION_GLOBE_VIEW\\nout float v_split_fade;\\n#endif\\nvoid main() {vec2 uv;\\n#ifdef GLOBE_POLES\\nvec3 globe_pos=a_globe_pos;globe_pos+=normalize(globe_pos)*u_raster_elevation*GLOBE_UPSCALE;gl_Position=u_matrix*u_globe_matrix*vec4(globe_pos ,1.0);uv=a_uv;\\n#ifdef FOG\\nv_fog_pos=fog_position((u_normalize_matrix*vec4(a_globe_pos,1.0)).xyz);\\n#endif\\n#else\\nfloat w=1.0+dot(a_texture_pos,u_perspective_transform);uv=a_texture_pos/8192.0;\\n#ifdef PROJECTION_GLOBE_VIEW\\nvec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);vec3 globe_pos=latLngToECEF(latLng.xy);globe_pos+=normalize(globe_pos)*u_raster_elevation*GLOBE_UPSCALE;vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);float mercatorY=mercatorYfromLat(latLng[0]);float mercatorX=mercatorXfromLng(latLng[1]); \\nv_split_fade=0.0;if (u_zoom_transition > 0.0) {vec2 merc_pos=vec2(mercatorX,mercatorY);merc_world_pos=vec4(merc_pos,u_raster_elevation,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;float opposite_merc_center=mod(u_merc_center.x+0.5,1.0);float dist_from_poles=(abs(mercatorY-0.5)*2.0);float range=0.1;v_split_fade=abs(opposite_merc_center-mercatorX);v_split_fade=clamp(1.0-v_split_fade,0.0,1.0);v_split_fade=max(smoothstep(1.0-range,1.0,dist_from_poles),max(smoothstep(1.0-range,1.0,v_split_fade),smoothstep(1.0-range,1.0,1.0-v_split_fade)));}float tiles=u_grid_matrix[0][2];if (tiles > 0.0) {float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];float uvY=mercatorY*tiles-idy;float uvX=mercatorX*tiles-idx;uv=vec2(uvX,uvY);}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition)*w,w);gl_Position=u_matrix*interpolated_pos;\\n#ifdef FOG\\nv_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz);\\n#endif\\n#else\\ngl_Position=u_matrix*vec4(a_pos*w,u_raster_elevation*w,w);\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);\\n#endif\\n#endif\\n#endif\\nv_pos0=uv;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;v_pos0=u_texture_offset.x+u_texture_offset.y*v_pos0;v_pos1=u_texture_offset.x+u_texture_offset.y*v_pos1;\\n#ifdef RENDER_CUTOFF\\nv_depth=gl_Position.z;\\n#endif\\n}'),rasterParticle:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform float u_fade_t;uniform float u_opacity;uniform highp float u_raster_elevation;in vec2 v_pos0;in vec2 v_pos1;uniform sampler2D u_image0;uniform sampler2D u_image1;void main() {vec4 color0,color1,color;color0=texture(u_image0,v_pos0);color1=texture(u_image1,v_pos1);if (color0.a > 0.0) color0.rgb/=color0.a;if (color1.a > 0.0) color1.rgb/=color1.a;color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 out_color=color.rgb;\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(vec4(out_color,1.0),0.0).rgb;\\n#endif\\n#ifdef FOG\\nhighp float fog_limit_high_meters=1000000.0;highp float fog_limit_low_meters=600000.0;float fog_limit=1.0-smoothstep(fog_limit_low_meters,fog_limit_high_meters,u_raster_elevation);out_color=fog_dither(fog_apply(out_color,v_fog_pos,fog_limit));\\n#endif\\nglFragColor=vec4(out_color*color.a,color.a);\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\nuniform mat4 u_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform mat3 u_grid_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_raster_elevation;uniform float u_zoom_transition;uniform vec2 u_merc_center;\\n#define GLOBE_UPSCALE GLOBE_RADIUS/6371008.8\\nin vec2 a_pos;in vec2 a_texture_pos;out vec2 v_pos0;out vec2 v_pos1;void main() {float w=1.0;vec2 uv;\\n#ifdef PROJECTION_GLOBE_VIEW\\nvec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float mercatorX=mercatorXfromLng(latLng[1]);float tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];float uvX=mercatorX*tiles-idx;float uvY=mercatorY*tiles-idy;uv=vec2(uvX,uvY);vec3 globe_pos=latLngToECEF(latLng.xy);globe_pos+=normalize(globe_pos)*u_raster_elevation*GLOBE_UPSCALE;vec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {vec2 merc_pos=vec2(mercatorX,mercatorY);merc_world_pos=vec4(merc_pos,u_raster_elevation,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition)*w,w);gl_Position=u_matrix*interpolated_pos;\\n#ifdef FOG\\nv_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz);\\n#endif\\n#else\\nuv=a_texture_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*w,u_raster_elevation*w,w);\\n#ifdef FOG\\nv_fog_pos=fog_position(a_pos);\\n#endif\\n#endif\\nv_pos0=uv;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}'),rasterParticleDraw:Uo(\"uniform sampler2D u_color_ramp;in float v_particle_speed;void main() {glFragColor=texture(u_color_ramp,vec2(v_particle_speed,0.5));}\",'#include \"_prelude_raster_particle.glsl\"\\nin float a_index;uniform sampler2D u_particle_texture;uniform float u_particle_texture_side_len;uniform vec2 u_tile_offset;out float v_particle_speed;void main() {ivec2 pixel_coord=ivec2(\\nmod(a_index,u_particle_texture_side_len),a_index/u_particle_texture_side_len);vec4 pixel=texelFetch(u_particle_texture,pixel_coord,0);vec2 pos=unpack_pos_from_rgba(pixel)+u_tile_offset;vec2 tex_coord=fract(pos);vec2 velocity=lookup_velocity(tex_coord);if (velocity==INVALID_VELOCITY) {gl_Position=AWAY;v_particle_speed=0.0;} else {gl_Position=vec4(2.0*pos-1.0,0,1);v_particle_speed=length(velocity);}gl_PointSize=1.0;}'),rasterParticleTexture:Uo(\"uniform sampler2D u_texture;uniform float u_opacity;in vec2 v_tex_pos;void main() {vec4 color=texture(u_texture,v_tex_pos);glFragColor=vec4(floor(255.0*color*u_opacity)/255.0);}\",\"in vec2 a_pos;out vec2 v_tex_pos;void main() {vec2 uv=0.5*a_pos+vec2(0.5);v_tex_pos=uv;gl_Position=vec4(a_pos,0.0,1.0);}\"),rasterParticleUpdate:Uo('#include \"_prelude_raster_particle.glsl\"\\nuniform sampler2D u_particle_texture;uniform mediump float u_particle_texture_side_len;uniform mediump float u_speed_factor;uniform highp float u_reset_rate;uniform highp float u_rand_seed;in highp vec2 v_tex_coord;vec2 linearstep(vec2 edge0,vec2 edge1,vec2 x) {return clamp((x-edge0)/(edge1-edge0),vec2(0),vec2(1));}const highp vec3 rand_constants=vec3(12.9898,78.233,4375.85453);highp float rand(const highp vec2 co) {highp float t=dot(rand_constants.xy,co);return fract(sin(t)*(rand_constants.z+t));}void main() {ivec2 pixel_coord=ivec2(v_tex_coord*u_particle_texture_side_len);highp vec4 pixel=texelFetch(u_particle_texture,pixel_coord,0);highp vec2 pos=unpack_pos_from_rgba(pixel);highp vec2 velocity=lookup_velocity(clamp(pos,0.0,1.0));highp vec2 dp=velocity==INVALID_VELOCITY ? vec2(0) : velocity*u_speed_factor;pos=pos+dp;highp vec2 seed=(pos+v_tex_coord)*u_rand_seed;highp vec2 random_pos=vec2(rand(seed+1.3),rand(seed+2.1));highp vec2 persist_rate=pow(\\nlinearstep(vec2(-u_particle_pos_offset),vec2(0),pos)*linearstep(vec2(1.0+u_particle_pos_offset),vec2(1),pos),vec2(4)\\n);highp vec2 per_frame_persist=pow(persist_rate,abs(dp)/u_particle_pos_offset);highp float drop_rate=1.0-per_frame_persist.x*per_frame_persist.y;drop_rate=any(greaterThanEqual(abs(pos-0.5),vec2(0.5+u_particle_pos_offset))) ? 1.0 : drop_rate;highp float drop=step(1.0-drop_rate-u_reset_rate,rand(seed));highp vec2 next_pos=mix(pos,random_pos,drop);glFragColor=pack_pos_to_rgba(next_pos);}',\"in vec2 a_pos;out vec2 v_tex_coord;void main() {v_tex_coord=0.5*(a_pos+vec2(1.0));gl_Position=vec4(a_pos,0.0,1.0);}\"),symbol:Uo('#include \"_prelude_lighting.glsl\"\\n#define SDF_PX 8.0\\n#define SDF 1.0\\n#define ICON 0.0\\nuniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;uniform bool u_is_halo;uniform lowp float u_scale_factor;\\n#ifdef ICON_TRANSITION\\nuniform float u_icon_transition;\\n#endif\\n#ifdef COLOR_ADJUSTMENT\\nuniform mat4 u_color_adj_mat;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nin highp float v_z_offset;\\n#endif\\nin vec2 v_tex_a;\\n#ifdef ICON_TRANSITION\\nin vec2 v_tex_b;\\n#endif\\nin float v_draw_halo;in vec3 v_gamma_scale_size_fade_opacity;\\n#ifdef RENDER_TEXT_AND_SYMBOL\\nin float is_sdf;in vec2 v_tex_a_icon;\\n#endif\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\n#pragma mapbox: define lowp float emissive_strength\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\n#pragma mapbox: initialize lowp float emissive_strength\\nvec4 out_color;float fade_opacity=v_gamma_scale_size_fade_opacity[2];\\n#ifdef RENDER_TEXT_AND_SYMBOL\\nif (is_sdf==ICON) {vec2 tex_icon=v_tex_a_icon;lowp float alpha=opacity*fade_opacity;glFragColor=texture(u_texture_icon,tex_icon)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nreturn;}\\n#endif\\n#ifdef RENDER_SDF\\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_gamma_scale_size_fade_opacity.x;float size=v_gamma_scale_size_fade_opacity.y;float fontScale=u_is_text ? size/24.0 : size;out_color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;bool draw_halo=v_draw_halo > 0.0;if (draw_halo) {out_color=halo_color;gamma=(halo_blur*u_scale_factor*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width*u_scale_factor/fontScale)/SDF_PX;}lowp float dist=texture(u_texture,v_tex_a).r;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);out_color*=alpha;\\n#else\\n#ifdef ICON_TRANSITION\\nvec4 a=texture(u_texture,v_tex_a)*(1.0-u_icon_transition);vec4 b=texture(u_texture,v_tex_b)*u_icon_transition;out_color=(a+b);\\n#else\\nout_color=texture(u_texture,v_tex_a);\\n#endif\\n#ifdef COLOR_ADJUSTMENT\\nout_color=u_color_adj_mat*out_color;\\n#endif\\n#endif\\nout_color*=opacity*fade_opacity;\\n#ifdef LIGHTING_3D_MODE\\nout_color=apply_lighting_with_emission_ground(out_color,emissive_strength);\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nout_color=applyCutout(out_color,v_z_offset);\\n#endif\\nglFragColor=out_color;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_terrain.vertex.glsl\"\\nin vec4 a_pos_offset;in vec4 a_tex_size;in vec4 a_pixeloffset;in vec4 a_projected_pos;in float a_fade_opacity;\\n#ifdef Z_OFFSET\\nin float a_auto_z_offset;\\n#endif\\n#ifdef PROJECTION_GLOBE_VIEW\\nin vec3 a_globe_anchor;in vec3 a_globe_normal;\\n#endif\\n#ifdef ICON_TRANSITION\\nin vec2 a_texb;\\n#endif\\n#ifdef OCCLUSION_QUERIES\\nin float a_occlusion_query_opacity;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nout highp float v_z_offset;\\n#endif\\nuniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_elevation_from_sea;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec3 u_up_vector;uniform vec2 u_texsize_icon;uniform bool u_is_halo;\\n#ifdef PROJECTION_GLOBE_VIEW\\nuniform vec3 u_tile_id;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_camera_forward;uniform float u_zoom_transition;uniform vec3 u_ecef_origin;uniform mat4 u_tile_matrix;\\n#endif\\nout vec2 v_tex_a;\\n#ifdef ICON_TRANSITION\\nout vec2 v_tex_b;\\n#endif\\nout float v_draw_halo;out vec3 v_gamma_scale_size_fade_opacity;\\n#ifdef RENDER_TEXT_AND_SYMBOL\\nout float is_sdf;out vec2 v_tex_a_icon;\\n#endif\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\n#pragma mapbox: define lowp float emissive_strength\\n#pragma mapbox: define lowp float occlusion_opacity\\n#pragma mapbox: define lowp float z_offset\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\n#pragma mapbox: initialize lowp float emissive_strength\\n#pragma mapbox: initialize lowp float occlusion_opacity\\n#pragma mapbox: initialize lowp float z_offset\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_tex_size.xy;vec2 a_size=a_tex_size.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_min_font_scale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[3];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 tile_anchor=a_pos;float e=u_elevation_from_sea ? z_offset : z_offset+elevation(tile_anchor);\\n#ifdef Z_OFFSET\\ne+=a_auto_z_offset;\\n#endif\\nvec3 h=elevationVector(tile_anchor)*e;float globe_occlusion_fade;vec3 world_pos;vec3 mercator_pos;vec3 world_pos_globe;\\n#ifdef PROJECTION_GLOBE_VIEW\\nmercator_pos=mercator_tile_position(u_inv_rot_matrix,tile_anchor,u_tile_id,u_merc_center);world_pos_globe=a_globe_anchor+h;world_pos=mix_globe_mercator(world_pos_globe,mercator_pos,u_zoom_transition);vec4 ecef_point=u_tile_matrix*vec4(world_pos,1.0);vec3 origin_to_point=ecef_point.xyz-u_ecef_origin;globe_occlusion_fade=dot(origin_to_point,u_camera_forward) >=0.0 ? 0.0 : 1.0;\\n#else\\nworld_pos=vec3(tile_anchor,0)+h;globe_occlusion_fade=1.0;\\n#endif\\nvec4 projected_point=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projected_point.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(\\n0.5+0.5*distance_ratio,0.0,1.5);size*=perspective_ratio;float font_scale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetprojected_point;vec2 a;\\n#ifdef PROJECTION_GLOBE_VIEW\\nvec3 displacement=vec3(a_globe_normal.z,0,-a_globe_normal.x);offsetprojected_point=u_matrix*vec4(a_globe_anchor+displacement,1);vec4 projected_point_globe=u_matrix*vec4(world_pos_globe,1);a=projected_point_globe.xy/projected_point_globe.w;\\n#else\\noffsetprojected_point=u_matrix*vec4(tile_anchor+vec2(1,0),0,1);a=projected_point.xy/projected_point.w;\\n#endif\\nvec2 b=offsetprojected_point.xy/offsetprojected_point.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec4 projected_pos;\\n#ifdef PROJECTION_GLOBE_VIEW\\nvec3 proj_pos=mix_globe_mercator(a_projected_pos.xyz+h,mercator_pos,u_zoom_transition);projected_pos=u_label_plane_matrix*vec4(proj_pos,1.0);\\n#else\\nprojected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,h.z,1.0);\\n#endif\\nhighp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);float z=0.0;vec2 offset=rotation_matrix*(a_offset/32.0*max(a_min_font_scale,font_scale)+a_pxoffset/16.0);\\n#ifdef TERRAIN\\n#ifdef PITCH_WITH_MAP_TERRAIN\\nvec4 tile_pos=u_label_plane_matrix_inv*vec4(a_projected_pos.xy+offset,0.0,1.0);z=elevation(tile_pos.xy);\\n#endif\\n#endif\\n#ifdef Z_OFFSET\\nz+=u_pitch_with_map ? a_auto_z_offset+(u_elevation_from_sea ? z_offset : z_offset) : 0.0;\\n#else\\nz+=u_pitch_with_map ? (u_elevation_from_sea ? z_offset : z_offset) : 0.0;\\n#endif\\nfloat occlusion_fade=globe_occlusion_fade;float projection_transition_fade=1.0;\\n#if defined(PROJECTED_POS_ON_VIEWPORT) && defined(PROJECTION_GLOBE_VIEW)\\nprojection_transition_fade=1.0-step(EPSILON,u_zoom_transition);\\n#endif\\nvec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change));float out_fade_opacity=interpolated_fade_opacity*projection_transition_fade;\\n#ifdef DEPTH_OCCLUSION\\nfloat depth_occlusion=occlusionFadeMultiSample(projected_point);float depth_occlusion_multplier=mix(occlusion_opacity,1.0,depth_occlusion);out_fade_opacity*=depth_occlusion_multplier;\\n#endif\\n#ifdef OCCLUSION_QUERIES\\nfloat occludedFadeMultiplier=mix(occlusion_opacity,1.0,a_occlusion_query_opacity);out_fade_opacity*=occludedFadeMultiplier;\\n#endif\\nfloat alpha=opacity*out_fade_opacity;float hidden=float(alpha==0.0 || projected_point.w <=0.0 || occlusion_fade==0.0);\\n#ifdef PROJECTION_GLOBE_VIEW\\nvec3 xAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,u_up_vector)) : vec3(1,0,0);vec3 yAxis=u_pitch_with_map ? normalize(cross(a_globe_normal,xAxis)) : vec3(0,1,0);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xyz/projected_pos.w+xAxis*offset.x+yAxis*offset.y,1.0),AWAY,hidden);\\n#else\\ngl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,hidden);\\n#endif\\nfloat gamma_scale=gl_Position.w;v_draw_halo=(u_is_halo && float(gl_InstanceID)==0.0) ? 1.0 : 0.0;v_gamma_scale_size_fade_opacity=vec3(gamma_scale,size,out_fade_opacity);v_tex_a=a_tex/u_texsize;\\n#ifdef RENDER_TEXT_AND_SYMBOL\\nis_sdf=a_size[0]-2.0*a_size_min;v_tex_a_icon=a_tex/u_texsize_icon;\\n#endif\\n#ifdef ICON_TRANSITION\\nv_tex_b=a_texb/u_texsize;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nv_z_offset=e;\\n#endif\\n}'),terrainRaster:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_shadow.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform sampler2D u_image0;in vec2 v_pos0;\\n#ifdef FOG\\nin float v_fog_opacity;\\n#endif\\n#ifdef RENDER_SHADOWS\\nin vec4 v_pos_light_view_0;in vec4 v_pos_light_view_1;\\n#endif\\nuniform vec3 u_ground_shadow_factor;void main() {vec4 image_color=texture(u_image0,v_pos0);vec4 color;\\n#ifdef LIGHTING_3D_MODE\\nconst vec3 normal=vec3(0.0,0.0,1.0);\\n#ifdef RENDER_SHADOWS\\nfloat cutoffOpacity=1.0;\\n#ifdef RENDER_CUTOFF\\ncutoffOpacity=cutoff_opacity(u_cutoff_params,1.0/gl_FragCoord.w);\\n#endif\\n#ifdef LIGHTING_3D_ALPHA_EMISSIVENESS\\nvec3 unlit_base=image_color.rgb*(1.0-image_color.a);vec3 emissive_base=image_color.rgb*image_color.a;float ndotl=u_shadow_direction.z;float occlusion=ndotl < 0.0 ? 1.0 : shadow_occlusion(v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w,0.0);ndotl=max(0.0,ndotl);vec3 lit=apply_lighting(unlit_base,normal,mix(1.0,(1.0-(u_shadow_intensity*occlusion))*ndotl,cutoffOpacity));vec3 emissive=compute_emissive_draped(emissive_base,1.0-u_shadow_intensity,occlusion,u_ground_shadow_factor);color.rgb=lit+emissive;color.a=1.0;\\n#else\\nfloat lighting_factor=shadowed_light_factor_normal_unbiased(normal,v_pos_light_view_0,v_pos_light_view_1,1.0/gl_FragCoord.w);color=apply_lighting(image_color,normal,mix(1.0,lighting_factor,cutoffOpacity));\\n#endif\\n#else\\nfloat lighting_factor=u_lighting_directional_dir.z;color=apply_lighting(image_color,normal,lighting_factor);\\n#ifdef LIGHTING_3D_ALPHA_EMISSIVENESS\\ncolor.rgb=mix(color.rgb,image_color.rgb,image_color.a);color.a=1.0;\\n#endif\\n#endif\\n#else\\ncolor=image_color;\\n#endif\\n#ifdef FOG\\n#ifdef ZERO_EXAGGERATION\\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\\n#else\\ncolor=fog_dither(fog_apply_from_vert(color,v_fog_opacity));\\n#endif\\n#endif\\nglFragColor=color;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_terrain.vertex.glsl\"\\nuniform mat4 u_matrix;uniform float u_skirt_height;in vec2 a_pos;out vec2 v_pos0;\\n#ifdef FOG\\nout float v_fog_opacity;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out vec4 v_pos_light_view_0;out vec4 v_pos_light_view_1;out float v_depth;\\n#endif\\nvoid main() {vec3 decomposedPosAndSkirt=decomposeToPosAndSkirt(a_pos);float skirt=decomposedPosAndSkirt.z;vec2 decodedPos=decomposedPosAndSkirt.xy;float elevation=elevation(decodedPos)-skirt*u_skirt_height;v_pos0=decodedPos/8192.0;gl_Position=u_matrix*vec4(decodedPos,elevation,1.0);\\n#ifdef FOG\\n#ifdef ZERO_EXAGGERATION\\nv_fog_pos=fog_position(decodedPos);\\n#else\\nv_fog_opacity=fog(fog_position(vec3(decodedPos,elevation)));\\n#endif\\n#endif\\n#ifdef RENDER_SHADOWS\\nvec3 pos=vec3(decodedPos,elevation);v_pos_light_view_0=u_light_matrix_0*vec4(pos,1.);v_pos_light_view_1=u_light_matrix_1*vec4(pos,1.);\\n#endif\\n}'),terrainDepth:Uo(\"precision highp float;in float v_depth;void main() {glFragColor=pack_depth(v_depth);}\",'#include \"_prelude_terrain.vertex.glsl\"\\nuniform mat4 u_matrix;in vec2 a_pos;out float v_depth;void main() {float elevation=elevation(a_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}'),skybox:Uo('#include \"_prelude_fog.fragment.glsl\"\\nin lowp vec3 v_uv;uniform lowp samplerCube u_cubemap;uniform lowp float u_opacity;uniform highp float u_temporal_offset;uniform highp vec3 u_sun_direction;float sun_disk(highp vec3 ray_direction,highp vec3 sun_direction) {highp float cos_angle=dot(normalize(ray_direction),sun_direction);const highp float cos_sun_angular_diameter=0.99996192306;const highp float smoothstep_delta=1e-5;return smoothstep(\\ncos_sun_angular_diameter-smoothstep_delta,cos_sun_angular_diameter+smoothstep_delta,cos_angle);}float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec3 uv=v_uv;const float y_bias=0.015;uv.y+=y_bias;uv.y=pow(abs(uv.y),1.0/5.0);uv.y=map(uv.y,0.0,1.0,-1.0,1.0);vec3 sky_color=texture(u_cubemap,uv).rgb;\\n#ifdef FOG\\nsky_color=fog_apply_sky_gradient(v_uv.xzy,sky_color);\\n#endif\\nsky_color.rgb=dither(sky_color.rgb,gl_FragCoord.xy+u_temporal_offset);sky_color+=0.1*sun_disk(v_uv,u_sun_direction);glFragColor=vec4(sky_color*u_opacity,u_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\n}',So),skyboxGradient:Uo('#include \"_prelude_fog.fragment.glsl\"\\nin highp vec3 v_uv;uniform lowp sampler2D u_color_ramp;uniform highp vec3 u_center_direction;uniform lowp float u_radius;uniform lowp float u_opacity;uniform highp float u_temporal_offset;void main() {float progress=acos(dot(normalize(v_uv),u_center_direction))/u_radius;vec4 color=texture(u_color_ramp,vec2(progress,0.5));\\n#ifdef FOG\\ncolor.rgb=fog_apply_sky_gradient(v_uv.xzy,color.rgb/color.a)*color.a;\\n#endif\\ncolor*=u_opacity;color.rgb=dither(color.rgb,gl_FragCoord.xy+u_temporal_offset);glFragColor=color;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\n}',So),skyboxCapture:Uo(\"\\nin highp vec3 v_position;uniform highp float u_sun_intensity;uniform highp float u_luminance;uniform lowp vec3 u_sun_direction;uniform highp vec4 u_color_tint_r;uniform highp vec4 u_color_tint_m;precision highp float;\\n#define BETA_R vec3(5.5e-6,13.0e-6,22.4e-6)\\n#define BETA_M vec3(21e-6,21e-6,21e-6)\\n#define MIE_G 0.76\\n#define DENSITY_HEIGHT_SCALE_R 8000.0\\n#define DENSITY_HEIGHT_SCALE_M 1200.0\\n#define PLANET_RADIUS 6360e3\\n#define ATMOSPHERE_RADIUS 6420e3\\n#define SAMPLE_STEPS 10\\n#define DENSITY_STEPS 4\\nfloat ray_sphere_exit(vec3 orig,vec3 dir,float radius) {float a=dot(dir,dir);float b=2.0*dot(dir,orig);float c=dot(orig,orig)-radius*radius;float d=sqrt(b*b-4.0*a*c);return (-b+d)/(2.0*a);}vec3 extinction(vec2 density) {return exp(-vec3(BETA_R*u_color_tint_r.a*density.x+BETA_M*u_color_tint_m.a*density.y));}vec2 local_density(vec3 point) {float height=max(length(point)-PLANET_RADIUS,0.0);float exp_r=exp(-height/DENSITY_HEIGHT_SCALE_R);float exp_m=exp(-height/DENSITY_HEIGHT_SCALE_M);return vec2(exp_r,exp_m);}float phase_ray(float cos_angle) {return (3.0/(16.0*PI))*(1.0+cos_angle*cos_angle);}float phase_mie(float cos_angle) {return (3.0/(8.0*PI))*((1.0-MIE_G*MIE_G)*(1.0+cos_angle*cos_angle))/((2.0+MIE_G*MIE_G)*pow(1.0+MIE_G*MIE_G-2.0*MIE_G*cos_angle,1.5));}vec2 density_to_atmosphere(vec3 point,vec3 light_dir) {float ray_len=ray_sphere_exit(point,light_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(DENSITY_STEPS);vec2 density_point_to_atmosphere=vec2(0.0);for (int i=0; i < DENSITY_STEPS;++i) {vec3 point_on_ray=point+light_dir*((float(i)+0.5)*step_len);density_point_to_atmosphere+=local_density(point_on_ray)*step_len;;}return density_point_to_atmosphere;}vec3 atmosphere(vec3 ray_dir,vec3 sun_direction,float sun_intensity) {vec2 density_orig_to_point=vec2(0.0);vec3 scatter_r=vec3(0.0);vec3 scatter_m=vec3(0.0);vec3 origin=vec3(0.0,PLANET_RADIUS,0.0);float ray_len=ray_sphere_exit(origin,ray_dir,ATMOSPHERE_RADIUS);float step_len=ray_len/float(SAMPLE_STEPS);for (int i=0; i < SAMPLE_STEPS;++i) {vec3 point_on_ray=origin+ray_dir*((float(i)+0.5)*step_len);vec2 density=local_density(point_on_ray)*step_len;density_orig_to_point+=density;vec2 density_point_to_atmosphere=density_to_atmosphere(point_on_ray,sun_direction);vec2 density_orig_to_atmosphere=density_orig_to_point+density_point_to_atmosphere;vec3 extinction=extinction(density_orig_to_atmosphere);scatter_r+=density.x*extinction;scatter_m+=density.y*extinction;}float cos_angle=dot(ray_dir,sun_direction);float phase_r=phase_ray(cos_angle);float phase_m=phase_mie(cos_angle);vec3 beta_r=BETA_R*u_color_tint_r.rgb*u_color_tint_r.a;vec3 beta_m=BETA_M*u_color_tint_m.rgb*u_color_tint_m.a;return (scatter_r*phase_r*beta_r+scatter_m*phase_m*beta_m)*sun_intensity;}const float A=0.15;const float B=0.50;const float C=0.10;const float D=0.20;const float E=0.02;const float F=0.30;vec3 uncharted2_tonemap(vec3 x) {return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;}void main() {vec3 ray_direction=v_position;ray_direction.y=pow(ray_direction.y,5.0);const float y_bias=0.015;ray_direction.y+=y_bias;vec3 color=atmosphere(normalize(ray_direction),u_sun_direction,u_sun_intensity);float white_scale=1.0748724675633854;color=uncharted2_tonemap((log2(2.0/pow(u_luminance,4.0)))*color)*white_scale;glFragColor=vec4(color,1.0);}\",\"in highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;out highp vec3 v_position;float map(float value,float start,float end,float new_start,float new_end) {return ((value-start)*(new_end-new_start))/(end-start)+new_start;}void main() {vec4 pos=vec4(u_matrix_3f*a_pos_3f,1.0);v_position=pos.xyz;v_position.y*=-1.0;v_position.y=map(v_position.y,-1.0,1.0,0.0,1.0);gl_Position=vec4(a_pos_3f.xy,0.0,1.0);}\"),globeRaster:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform sampler2D u_image0;uniform float u_far_z_cutoff;in vec2 v_pos0;\\n#ifndef FOG\\nuniform highp vec3 u_frustum_tl;uniform highp vec3 u_frustum_tr;uniform highp vec3 u_frustum_br;uniform highp vec3 u_frustum_bl;uniform highp vec3 u_globe_pos;uniform highp float u_globe_radius;uniform vec2 u_viewport;\\n#endif\\nvoid main() {vec4 color;\\n#ifdef CUSTOM_ANTIALIASING\\nvec2 uv=gl_FragCoord.xy/u_viewport;highp vec3 ray_dir=mix(\\nmix(u_frustum_tl,u_frustum_tr,uv.x),mix(u_frustum_bl,u_frustum_br,uv.x),1.0-uv.y);vec3 dir=normalize(ray_dir);vec3 closest_point=dot(u_globe_pos,dir)*dir;float norm_dist_from_center=1.0-length(closest_point-u_globe_pos)/u_globe_radius;const float antialias_pixel=2.0;float antialias_factor=antialias_pixel*fwidth(norm_dist_from_center);float antialias=smoothstep(0.0,antialias_factor,norm_dist_from_center);vec4 raster=texture(u_image0,v_pos0);\\n#ifdef LIGHTING_3D_MODE\\n#ifdef LIGHTING_3D_ALPHA_EMISSIVENESS\\nraster=apply_lighting_with_emission_ground(raster,raster.a);color=vec4(raster.rgb*antialias,antialias);\\n#else\\nraster=apply_lighting_ground(raster);color=vec4(raster.rgb*antialias,raster.a*antialias);\\n#endif\\n#else\\ncolor=vec4(raster.rgb*antialias,raster.a*antialias);\\n#endif\\n#else\\ncolor=texture(u_image0,v_pos0);\\n#ifdef LIGHTING_3D_MODE\\n#ifdef LIGHTING_3D_ALPHA_EMISSIVENESS\\ncolor=apply_lighting_with_emission_ground(color,color.a);color.a=1.0;\\n#else\\ncolor=apply_lighting_ground(color);\\n#endif\\n#endif\\n#endif\\n#ifdef FOG\\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\\n#endif\\ncolor*=1.0-step(u_far_z_cutoff,1.0/gl_FragCoord.w);glFragColor=color;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_terrain.vertex.glsl\"\\nuniform mat4 u_proj_matrix;uniform mat4 u_normalize_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;uniform mat3 u_grid_matrix;uniform float u_skirt_height;\\n#ifdef GLOBE_POLES\\nin vec3 a_globe_pos;in vec2 a_uv;\\n#else\\nin vec2 a_pos;\\n#endif\\nout vec2 v_pos0;void main() {\\n#ifdef GLOBE_POLES\\nvec3 globe_pos=a_globe_pos;vec2 uv=a_uv;\\n#else\\nfloat tiles=u_grid_matrix[0][2];float idx=u_grid_matrix[1][2];float idy=u_grid_matrix[2][2];vec3 decomposed_pos_and_skirt=decomposeToPosAndSkirt(a_pos);vec3 latLng=u_grid_matrix*vec3(decomposed_pos_and_skirt.xy,1.0);float mercatorY=mercatorYfromLat(latLng[0]);float uvY=mercatorY*tiles-idy;float mercatorX=mercatorXfromLng(latLng[1]);float uvX=mercatorX*tiles-idx;vec3 globe_pos=latLngToECEF(latLng.xy);vec2 merc_pos=vec2(mercatorX,mercatorY);vec2 uv=vec2(uvX,uvY);\\n#endif\\nv_pos0=uv;vec2 tile_pos=uv*EXTENT;vec3 globe_derived_up_vector=normalize(globe_pos)*u_tile_up_scale;\\n#ifdef GLOBE_POLES\\nvec3 up_vector=globe_derived_up_vector;\\n#else\\nvec3 up_vector=elevationVector(tile_pos);\\n#endif\\nfloat height=elevation(tile_pos);globe_pos+=up_vector*height;\\n#ifndef GLOBE_POLES\\nglobe_pos-=globe_derived_up_vector*u_skirt_height*decomposed_pos_and_skirt.z;\\n#endif\\n#ifdef GLOBE_POLES\\nvec4 interpolated_pos=u_globe_matrix*vec4(globe_pos,1.0);\\n#else\\nvec4 globe_world_pos=u_globe_matrix*vec4(globe_pos,1.0);vec4 merc_world_pos=vec4(0.0);if (u_zoom_transition > 0.0) {merc_world_pos=vec4(merc_pos,height-u_skirt_height*decomposed_pos_and_skirt.z,1.0);merc_world_pos.xy-=u_merc_center;merc_world_pos.x=wrap(merc_world_pos.x,-0.5,0.5);merc_world_pos=u_merc_matrix*merc_world_pos;}vec4 interpolated_pos=vec4(mix(globe_world_pos.xyz,merc_world_pos.xyz,u_zoom_transition),1.0);\\n#endif\\ngl_Position=u_proj_matrix*interpolated_pos;\\n#ifdef FOG\\nv_fog_pos=fog_position((u_normalize_matrix*vec4(globe_pos,1.0)).xyz);\\n#endif\\n}'),globeAtmosphere:Uo('#include \"_prelude_fog.fragment.glsl\"\\nuniform float u_transition;uniform highp float u_fadeout_range;uniform highp float u_temporal_offset;uniform vec4 u_color;uniform vec4 u_high_color;uniform vec4 u_space_color;uniform float u_horizon_angle;in highp vec3 v_ray_dir;in highp vec3 v_horizon_dir;void main() {highp vec3 dir=normalize(v_ray_dir);float globe_pos_dot_dir;\\n#ifdef PROJECTION_GLOBE_VIEW\\nglobe_pos_dot_dir=dot(u_globe_pos,dir);highp vec3 closest_point_forward=abs(globe_pos_dot_dir)*dir;float norm_dist_from_center=length(closest_point_forward-u_globe_pos)/u_globe_radius;if (norm_dist_from_center < 0.98) {\\n#ifdef ALPHA_PASS\\nglFragColor=vec4(0,0,0,0);return;\\n#else\\n#ifdef NATIVE\\nglFragColor=vec4(1,1,1,1);\\n#else\\nglFragColor=vec4(0,0,0,1);\\n#endif\\nreturn;\\n#endif\\n}\\n#endif\\nhighp vec3 horizon_dir=normalize(v_horizon_dir);float horizon_angle_mercator=dir.y < horizon_dir.y ?\\n0.0 : max(acos(clamp(dot(dir,horizon_dir),-1.0,1.0)),0.0);float horizon_angle;\\n#ifdef PROJECTION_GLOBE_VIEW\\nhighp vec3 closest_point=globe_pos_dot_dir*dir;highp float closest_point_to_center=length(closest_point-u_globe_pos);highp float theta=asin(clamp(closest_point_to_center/length(u_globe_pos),-1.0,1.0));horizon_angle=globe_pos_dot_dir < 0.0 ?\\nPI-theta-u_horizon_angle : theta-u_horizon_angle;float angle_t=pow(u_transition,10.0);horizon_angle=mix(horizon_angle,horizon_angle_mercator,angle_t);\\n#else\\nhorizon_angle=horizon_angle_mercator;\\n#endif\\nhorizon_angle/=PI;float t=exp(-horizon_angle/u_fadeout_range);float alpha_0=u_color.a;float alpha_1=u_high_color.a;float alpha_2=u_space_color.a;vec3 color_stop_0=u_color.rgb;vec3 color_stop_1=u_high_color.rgb;vec3 color_stop_2=u_space_color.rgb;\\n#ifdef ALPHA_PASS\\nfloat a0=mix(alpha_2,1.0,alpha_1);float a1=mix(a0,1.0,alpha_0);float a2=mix(a0,a1,t);float a =mix(alpha_2,a2,t);glFragColor=vec4(1.0,1.0,1.0,a);\\n#else\\nvec3 c0=mix(color_stop_2,color_stop_1,alpha_1);vec3 c1=mix(c0,color_stop_0,alpha_0);vec3 c2=mix(c0,c1,t);vec3 c=c2;\\n#ifndef NATIVE\\nc=dither(c,gl_FragCoord.xy+u_temporal_offset);\\n#endif\\nglFragColor=vec4(c*t,t);\\n#endif\\n}',\"in vec3 a_pos;in vec2 a_uv;uniform vec3 u_frustum_tl;uniform vec3 u_frustum_tr;uniform vec3 u_frustum_br;uniform vec3 u_frustum_bl;uniform float u_horizon;out highp vec3 v_ray_dir;out highp vec3 v_horizon_dir;void main() {v_ray_dir=mix(\\nmix(u_frustum_tl,u_frustum_tr,a_uv.x),mix(u_frustum_bl,u_frustum_br,a_uv.x),a_uv.y);v_horizon_dir=mix(\\nmix(u_frustum_tl,u_frustum_bl,u_horizon),mix(u_frustum_tr,u_frustum_br,u_horizon),a_uv.x);gl_Position=vec4(a_pos,1.0);}\"),model:Uo('#include \"_prelude_fog.fragment.glsl\"\\n#include \"_prelude_shadow.fragment.glsl\"\\n#include \"_prelude_lighting.glsl\"\\nuniform float u_opacity;uniform vec3 u_lightcolor;uniform vec3 u_lightpos;uniform float u_lightintensity;uniform vec4 u_baseColorFactor;uniform vec4 u_emissiveFactor;uniform float u_metallicFactor;uniform float u_roughnessFactor;uniform float u_emissive_strength;in highp vec4 v_position_height;in lowp vec4 v_color_mix;\\n#ifdef RENDER_SHADOWS\\nin highp vec4 v_pos_light_view_0;in highp vec4 v_pos_light_view_1;in float v_depth_shadows;\\n#endif\\n#ifdef OCCLUSION_TEXTURE_TRANSFORM\\nuniform vec4 u_occlusionTextureTransform;\\n#endif\\n#pragma mapbox: define-attribute highp vec3 normal_3f\\n#pragma mapbox: define-attribute highp vec3 color_3f\\n#pragma mapbox: define-attribute highp vec4 color_4f\\n#pragma mapbox: define-attribute highp vec2 uv_2f\\n#pragma mapbox: initialize-attribute highp vec3 normal_3f\\n#pragma mapbox: initialize-attribute highp vec3 color_3f\\n#pragma mapbox: initialize-attribute highp vec4 color_4f\\n#pragma mapbox: initialize-attribute highp vec2 uv_2f\\n#ifdef HAS_ATTRIBUTE_a_pbr\\nin lowp vec4 v_roughness_metallic_emissive_alpha;in mediump vec4 v_height_based_emission_params;\\n#endif\\n#ifdef HAS_TEXTURE_u_baseColorTexture\\nuniform sampler2D u_baseColorTexture;uniform bool u_baseTextureIsAlpha;uniform bool u_alphaMask;uniform float u_alphaCutoff;\\n#endif\\n#ifdef HAS_TEXTURE_u_metallicRoughnessTexture\\nuniform sampler2D u_metallicRoughnessTexture;\\n#endif\\n#ifdef HAS_TEXTURE_u_occlusionTexture\\nuniform sampler2D u_occlusionTexture;uniform float u_aoIntensity;\\n#endif\\n#ifdef HAS_TEXTURE_u_normalTexture\\nuniform sampler2D u_normalTexture;\\n#endif\\n#ifdef HAS_TEXTURE_u_emissionTexture\\nuniform sampler2D u_emissionTexture;\\n#endif\\n#ifdef APPLY_LUT_ON_GPU\\nuniform highp sampler3D u_lutTexture;\\n#endif\\n#ifdef TERRAIN_FRAGMENT_OCCLUSION\\nin highp float v_depth;uniform highp sampler2D u_depthTexture;uniform highp vec2 u_inv_depth_size;uniform highp vec2 u_depth_range_unpack;\\n#ifdef DEPTH_D24\\nhighp float unpack_depth(highp float depth) {return depth*u_depth_range_unpack.x+u_depth_range_unpack.y;}\\n#else\\nhighp float unpack_depth_rgba(highp vec4 rgba_depth)\\n{const highp vec4 bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}\\n#endif\\nbool isOccluded() {highp vec2 coord=gl_FragCoord.xy*u_inv_depth_size;\\n#ifdef DEPTH_D24\\nhighp float depth=unpack_depth(texture(u_depthTexture,coord).r);\\n#else\\nhighp float depth=unpack_depth_rgba(texture(u_depthTexture,coord));\\n#endif\\nreturn v_depth > depth+0.0005;}\\n#endif\\n#define saturate(_x) clamp(_x,0.,1.)\\nvec3 linearTosRGB(vec3 color) {return pow(color,vec3(1./2.2));}vec3 sRGBToLinear(vec3 srgbIn) {return pow(srgbIn,vec3(2.2));}float calculate_NdotL(vec3 normal,vec3 lightDir) {const float ext=0.70710678118;return (clamp(dot(normal,lightDir),-ext,1.0)+ext)/(1.0+ext);}vec3 getDiffuseShadedColor(vec3 albedo,vec3 normal,vec3 lightDir,vec3 lightColor)\\n{\\n#ifdef LIGHTING_3D_MODE\\nvec3 transformed_normal=vec3(-normal.xy,normal.z);float lighting_factor;\\n#ifdef RENDER_SHADOWS\\nlighting_factor=shadowed_light_factor_normal(transformed_normal,v_pos_light_view_0,v_pos_light_view_1,v_depth_shadows);\\n#else\\nlighting_factor=saturate(dot(transformed_normal,u_lighting_directional_dir));\\n#endif\\nreturn apply_lighting(albedo,transformed_normal,lighting_factor);\\n#else\\nvec3 n=normal;float colorvalue=((albedo.x*0.2126)+(albedo.y*0.7152))+(albedo.z*0.0722);vec3 c=vec3(0.03,0.03,0.03);float directional=clamp(dot(n,vec3(lightDir)),0.0,1.0);directional=mix(1.0-u_lightintensity,max((1.0-colorvalue)+u_lightintensity,1.0),directional);vec3 c3=c+clamp((albedo*directional)*lightColor,mix(vec3(0.0),vec3(0.3),vec3(1.0)-lightColor),vec3(1.0));return c3;\\n#endif\\n}vec4 getBaseColor() {vec4 albedo=u_baseColorFactor;\\n#ifdef HAS_ATTRIBUTE_a_color_3f\\nalbedo*=vec4(color_3f,1.0);\\n#endif\\n#ifdef HAS_ATTRIBUTE_a_pbr\\n#else\\n#ifdef HAS_ATTRIBUTE_a_color_4f\\nalbedo*=color_4f;\\n#endif\\n#endif\\n#if defined (HAS_TEXTURE_u_baseColorTexture) && defined (HAS_ATTRIBUTE_a_uv_2f)\\nvec4 texColor=texture(u_baseColorTexture,uv_2f);if(u_alphaMask) {if (texColor.w < u_alphaCutoff) {discard;}}\\n#ifdef UNPREMULT_TEXTURE_IN_SHADER\\nif(texColor.w > 0.0) {texColor.rgb/=texColor.w;}texColor.w=1.0;\\n#endif\\nif(u_baseTextureIsAlpha) {if (texColor.r < 0.5) {discard;}} else {texColor.rgb=sRGBToLinear(texColor.rgb);albedo*=texColor;}\\n#endif\\nvec4 color=vec4(mix(albedo.rgb,v_color_mix.rgb,v_color_mix.a),albedo.a);\\n#ifdef APPLY_LUT_ON_GPU\\ncolor=applyLUT(u_lutTexture,color);\\n#endif\\nreturn color;}highp mat3 cotangentFrame(highp vec3 N,highp vec3 p,highp vec2 uv ) {\\n#ifdef HAS_TEXTURE_u_normalTexture\\nhighp vec3 dp1=vec3(dFdx(p.x),dFdx(p.y),dFdx(p.z));highp vec3 dp2=vec3(dFdy(p.x),dFdy(p.y),dFdy(p.z));highp vec2 duv1=vec2(dFdx(uv.x),dFdx(uv.y));highp vec2 duv2=vec2(dFdy(uv.x),dFdy(uv.y));highp vec3 dp2perp=cross( dp2,N );highp vec3 dp1perp=cross( N,dp1 );highp vec3 T=dp2perp*duv1.x+dp1perp*duv2.x;highp vec3 B=dp2perp*duv1.y+dp1perp*duv2.y;highp float lengthT=dot(T,T);highp float lengthB=dot(B,B);highp float maxLength=max(lengthT,lengthB);highp float invmax=inversesqrt( maxLength );highp mat3 res=mat3( T*invmax,B*invmax,N );return res;\\n#else\\nreturn mat3(1.0);\\n#endif\\n}highp vec3 getNormal(){highp vec3 n;\\n#ifdef HAS_ATTRIBUTE_a_normal_3f\\nn=normalize(normal_3f);\\n#else\\nhighp vec3 fdx=vec3(dFdx(v_position_height.x),dFdx(v_position_height.y),dFdx(v_position_height.z));highp vec3 fdy=vec3(dFdy(v_position_height.x),dFdy(v_position_height.y),dFdy(v_position_height.z));n=normalize(cross(fdx,fdy))*-1.0;\\n#endif\\n#if defined(HAS_TEXTURE_u_normalTexture) && defined(HAS_ATTRIBUTE_a_uv_2f)\\nvec3 nMap=texture( u_normalTexture,uv_2f).xyz;nMap=normalize(2.0*nMap-vec3(1.0));highp vec3 v=normalize(-v_position_height.xyz);highp mat3 TBN=cotangentFrame(n,v,uv_2f);n=normalize(TBN*nMap);\\n#endif\\nreturn n;}struct Material {float perceptualRoughness;float alphaRoughness;float metallic;vec3 f90;vec4 baseColor;vec3 diffuseColor;vec3 specularColor;highp vec3 normal;};Material getPBRMaterial() {Material mat;mat.baseColor=getBaseColor();mat.perceptualRoughness=u_roughnessFactor;mat.metallic=u_metallicFactor;\\n#ifdef HAS_ATTRIBUTE_a_pbr\\nmat.perceptualRoughness=v_roughness_metallic_emissive_alpha.x;mat.metallic=v_roughness_metallic_emissive_alpha.y;mat.baseColor.w*=v_roughness_metallic_emissive_alpha.w;\\n#endif\\n#if defined(HAS_TEXTURE_u_metallicRoughnessTexture) && defined(HAS_ATTRIBUTE_a_uv_2f) \\nvec4 mrSample=texture(u_metallicRoughnessTexture,uv_2f);mat.perceptualRoughness*=mrSample.g;mat.metallic*=mrSample.b;\\n#endif\\nconst float c_minRoughness=0.04;mat.perceptualRoughness=clamp(mat.perceptualRoughness,c_minRoughness,1.0);mat.metallic=saturate(mat.metallic);mat.alphaRoughness=mat.perceptualRoughness*mat.perceptualRoughness;const vec3 f0=vec3(0.04);mat.diffuseColor=mat.baseColor.rgb*(vec3(1.0)-f0);mat.diffuseColor*=1.0-mat.metallic;mat.specularColor=mix(f0,mat.baseColor.rgb,mat.metallic);highp float reflectance=max(max(mat.specularColor.r,mat.specularColor.g),mat.specularColor.b);highp float reflectance90=saturate(reflectance*25.0);mat.f90=vec3(reflectance90);mat.normal=getNormal();return mat;}float V_GGX(float NdotL,float NdotV,float roughness)\\n{float a2=roughness*roughness;float GGXV=NdotL*sqrt(NdotV*NdotV*(1.0-a2)+a2);float GGXL=NdotV*sqrt(NdotL*NdotL*(1.0-a2)+a2);return 0.5/(GGXV+GGXL);}float V_GGXFast(float NdotL,float NdotV,float roughness) {float a=roughness;float GGXV=NdotL*(NdotV*(1.0-a)+a);float GGXL=NdotV*(NdotL*(1.0-a)+a);return 0.5/(GGXV+GGXL);}vec3 F_Schlick(vec3 specularColor,vec3 f90,float VdotH)\\n{return specularColor+(f90-specularColor)*pow(clamp(1.0-VdotH,0.0,1.0),5.0);}vec3 F_SchlickFast(vec3 specularColor,float VdotH)\\n{float x=1.0-VdotH;float x4=x*x*x*x;return specularColor+(1.0-specularColor)*x4*x;}float D_GGX(highp float NdotH,float alphaRoughness)\\n{highp float a4=alphaRoughness*alphaRoughness;highp float f=(NdotH*a4-NdotH)*NdotH+1.0;return a4/(PI*f*f);}vec3 diffuseBurley(Material mat,float LdotH,float NdotL,float NdotV)\\n{float f90=2.0*LdotH*LdotH*mat.alphaRoughness-0.5;return (mat.diffuseColor/PI)*(1.0+f90*pow((1.0-NdotL),5.0))*(1.0+f90*pow((1.0-NdotV),5.0));}vec3 diffuseLambertian(Material mat)\\n{\\n#ifdef LIGHTING_3D_MODE\\nreturn mat.diffuseColor;\\n#else\\nreturn mat.diffuseColor/PI;\\n#endif\\n}vec3 EnvBRDFApprox(vec3 specularColor,float roughness,highp float NdotV)\\n{vec4 c0=vec4(-1,-0.0275,-0.572,0.022);vec4 c1=vec4(1,0.0425,1.04,-0.04);highp vec4 r=roughness*c0+c1;highp float a004=min(r.x*r.x,exp2(-9.28*NdotV))*r.x+r.y;vec2 AB=vec2(-1.04,1.04)*a004+r.zw;return specularColor*AB.x+AB.y;}vec3 computeIndirectLightContribution(Material mat,float NdotV,vec3 normal)\\n{vec3 env_light=vec3(0.65,0.65,0.65);\\n#ifdef LIGHTING_3D_MODE\\nfloat ambient_factor=calculate_ambient_directional_factor(normal);env_light=u_lighting_ambient_color*ambient_factor;\\n#endif\\nvec3 envBRDF=EnvBRDFApprox(mat.specularColor,mat.perceptualRoughness,NdotV);vec3 indirectSpecular= envBRDF*env_light;vec3 indirectDiffuse=mat.diffuseColor*env_light;return indirectSpecular+indirectDiffuse;}vec3 computeLightContribution(Material mat,vec3 lightPosition,vec3 lightColor)\\n{highp vec3 n=mat.normal;highp vec3 v=normalize(-v_position_height.xyz);highp vec3 l=normalize(lightPosition);highp vec3 h=normalize(v+l);float NdotV=clamp(abs(dot(n,v)),0.001,1.0);float NdotL=saturate(dot(n,l));highp float NdotH=saturate(dot(n,h));float VdotH=saturate(dot(v,h));vec3 f=F_SchlickFast(mat.specularColor,VdotH);float g=V_GGXFast(NdotL,NdotV,mat.alphaRoughness);float d=D_GGX(NdotH,mat.alphaRoughness);vec3 diffuseTerm=(1.0-f)*diffuseLambertian(mat);vec3 specularTerm=f*g*d;vec3 transformed_normal=vec3(-n.xy,n.z);float lighting_factor;\\n#ifdef RENDER_SHADOWS\\nlighting_factor=shadowed_light_factor_normal(transformed_normal,v_pos_light_view_0,v_pos_light_view_1,v_depth_shadows);\\n#else\\nlighting_factor=NdotL;\\n#endif\\nvec3 directLightColor=(specularTerm+diffuseTerm)*lighting_factor*lightColor;vec3 indirectLightColor=computeIndirectLightContribution(mat,NdotV,transformed_normal);vec3 color=(saturate(directLightColor)+indirectLightColor);float intensityFactor=1.0;\\n#if !defined(LIGHTING_3D_MODE)\\nconst vec3 luminosityFactor=vec3(0.2126,0.7152,0.0722);float luminance=dot(diffuseTerm,luminosityFactor);intensityFactor=mix((1.0-u_lightintensity),max((1.0-luminance+u_lightintensity),1.0),NdotL);\\n#endif\\ncolor*=intensityFactor;return color;}void main() {\\n#ifdef TERRAIN_FRAGMENT_OCCLUSION\\nif (isOccluded()) {discard;}\\n#endif\\nvec3 lightDir=u_lightpos;vec3 lightColor=u_lightcolor;\\n#ifdef LIGHTING_3D_MODE\\nlightDir=u_lighting_directional_dir;lightDir.xy=-lightDir.xy;lightColor=u_lighting_directional_color;\\n#endif\\nvec4 finalColor;\\n#ifdef DIFFUSE_SHADED\\nvec3 N=getNormal();vec3 baseColor=getBaseColor().rgb;vec3 diffuse=getDiffuseShadedColor(baseColor,N,lightDir,lightColor);\\n#ifdef HAS_TEXTURE_u_occlusionTexture\\nfloat ao=(texture(u_occlusionTexture,uv_2f).r-1.0)*u_aoIntensity+1.0;diffuse*=ao;\\n#endif\\nfinalColor=vec4(mix(diffuse,baseColor,u_emissive_strength),1.0)*u_opacity;\\n#else\\nMaterial mat=getPBRMaterial();vec3 color=computeLightContribution(mat,lightDir,lightColor);float ao=1.0;\\n#if defined (HAS_TEXTURE_u_occlusionTexture) && defined(HAS_ATTRIBUTE_a_uv_2f)\\n#ifdef OCCLUSION_TEXTURE_TRANSFORM\\nvec2 uv=uv_2f.xy*u_occlusionTextureTransform.zw+u_occlusionTextureTransform.xy;\\n#else\\nvec2 uv=uv_2f;\\n#endif\\nao=(texture(u_occlusionTexture,uv).x-1.0)*u_aoIntensity+1.0;color*=ao;\\n#endif\\nvec4 emissive=u_emissiveFactor;\\n#if defined(HAS_TEXTURE_u_emissionTexture) && defined(HAS_ATTRIBUTE_a_uv_2f)\\nemissive.rgb*=sRGBToLinear(texture(u_emissionTexture,uv_2f).rgb);\\n#endif\\n#ifdef APPLY_LUT_ON_GPU\\nfloat emissiveFactorLength=max(length(u_emissiveFactor.rgb),0.001);emissive.rgb=sRGBToLinear(applyLUT(u_lutTexture,linearTosRGB(emissive.rgb/emissiveFactorLength).rbg))*emissiveFactorLength;\\n#endif\\ncolor+=emissive.rgb;float opacity=mat.baseColor.w*u_opacity;\\n#ifdef HAS_ATTRIBUTE_a_pbr\\nfloat resEmission=v_roughness_metallic_emissive_alpha.z;resEmission*=v_height_based_emission_params.z+v_height_based_emission_params.w*pow(clamp(v_height_based_emission_params.x,0.0,1.0),v_height_based_emission_params.y);vec3 color_mix=v_color_mix.rgb;\\n#ifdef APPLY_LUT_ON_GPU\\ncolor_mix=applyLUT(u_lutTexture,color_mix);\\n#endif\\ncolor=mix(color,color_mix,min(1.0,resEmission));\\n#ifdef HAS_ATTRIBUTE_a_color_4f\\nfloat distance=length(vec2(1.3*max(0.0,abs(color_4f.x)-color_4f.z),color_4f.y));distance+= mix(0.5,0.0,clamp(resEmission-1.0,0.0,1.0));opacity*=v_roughness_metallic_emissive_alpha.w*saturate(1.0-distance*distance);\\n#endif\\n#endif\\nvec3 unlitColor=mat.baseColor.rgb*ao+emissive.rgb;color=mix(color,unlitColor,u_emissive_strength);color=linearTosRGB(color);color*=opacity;finalColor=vec4(color,opacity);\\n#endif\\n#ifdef FOG\\nfinalColor=fog_dither(fog_apply_premultiplied(finalColor,v_fog_pos,v_position_height.w));\\n#endif\\n#ifdef RENDER_CUTOFF\\nfinalColor*=v_cutoff_opacity;\\n#endif\\n#ifdef INDICATOR_CUTOUT\\nfinalColor=applyCutout(finalColor,v_position_height.w);\\n#endif\\nglFragColor=finalColor;\\n#ifdef OVERDRAW_INSPECTOR\\nglFragColor=vec4(1.0);\\n#endif\\nHANDLE_WIREFRAME_DEBUG;}','#include \"_prelude_fog.vertex.glsl\"\\n#include \"_prelude_shadow.vertex.glsl\"\\nin vec3 a_pos_3f;\\n#pragma mapbox: define-attribute highp vec3 normal_3f\\n#pragma mapbox: define-attribute highp vec2 uv_2f\\n#pragma mapbox: define-attribute highp vec3 color_3f\\n#pragma mapbox: define-attribute highp vec4 color_4f\\n#pragma mapbox: define-attribute-vertex-shader-only highp vec4 pbr\\n#pragma mapbox: define-attribute-vertex-shader-only highp vec3 heightBasedEmissiveStrength\\nuniform mat4 u_matrix;uniform mat4 u_node_matrix;uniform mat4 u_lighting_matrix;uniform vec3 u_camera_pos;uniform vec4 u_color_mix;\\n#ifdef INSTANCED_ARRAYS\\nin vec4 a_normal_matrix0;in vec4 a_normal_matrix1;in vec4 a_normal_matrix2;in vec4 a_normal_matrix3;\\n#else\\nuniform highp mat4 u_normal_matrix;\\n#endif\\n#ifdef RENDER_SHADOWS\\nuniform mat4 u_light_matrix_0;uniform mat4 u_light_matrix_1;out highp vec4 v_pos_light_view_0;out highp vec4 v_pos_light_view_1;out float v_depth_shadows;\\n#endif\\nout vec4 v_position_height;out lowp vec4 v_color_mix;\\n#ifdef TERRAIN_FRAGMENT_OCCLUSION\\nout highp float v_depth;\\n#endif\\n#ifdef HAS_ATTRIBUTE_a_pbr\\nout lowp vec4 v_roughness_metallic_emissive_alpha;out mediump vec4 v_height_based_emission_params;\\n#endif\\nvec3 sRGBToLinear(vec3 srgbIn) {return pow(srgbIn,vec3(2.2));}void main() {\\n#pragma mapbox: initialize-attribute highp vec3 normal_3f\\n#pragma mapbox: initialize-attribute highp vec2 uv_2f\\n#pragma mapbox: initialize-attribute highp vec3 color_3f\\n#pragma mapbox: initialize-attribute highp vec4 color_4f\\n#pragma mapbox: initialize-attribute-custom highp vec4 pbr\\n#pragma mapbox: initialize-attribute-custom highp vec3 heightBasedEmissiveStrength\\nhighp mat4 normal_matrix;\\n#ifdef INSTANCED_ARRAYS\\nnormal_matrix=mat4(a_normal_matrix0,a_normal_matrix1,a_normal_matrix2,a_normal_matrix3);\\n#else\\nnormal_matrix=u_normal_matrix;\\n#endif\\nvec3 local_pos;mat3 rs;\\n#ifdef MODEL_POSITION_ON_GPU\\nvec3 pos_color=normal_matrix[0].xyz;vec4 translate=normal_matrix[1];vec3 pos_a=floor(pos_color);vec3 rgb=1.05*(pos_color-pos_a);float hidden=float(pos_a.x > EXTENT);float color_mix=pos_a.z/100.0;v_color_mix=vec4(sRGBToLinear(rgb),color_mix);float meter_to_tile=normal_matrix[0].w;vec4 pos=vec4(pos_a.xy,translate.z,1.0);rs[0].x=normal_matrix[1].w;rs[0].yz=normal_matrix[2].xy;rs[1].xy=normal_matrix[2].zw;rs[1].z=normal_matrix[3].x;rs[2].xyz=normal_matrix[3].yzw;vec4 pos_node=u_lighting_matrix*vec4(a_pos_3f,1.0);vec3 rotated_pos_node=rs*pos_node.xyz;vec3 pos_model_tile=(rotated_pos_node+vec3(translate.xy,0.0))*vec3(meter_to_tile,meter_to_tile,1.0);pos.xyz+=pos_model_tile;local_pos=pos.xyz;gl_Position=mix(u_matrix*pos,AWAY,hidden);pos.z*=meter_to_tile;v_position_height.xyz=pos.xyz-u_camera_pos;\\n#else\\nlocal_pos=a_pos_3f;gl_Position=u_matrix*vec4(a_pos_3f,1);v_position_height.xyz=vec3(u_lighting_matrix*vec4(a_pos_3f,1));v_color_mix=vec4(sRGBToLinear(u_color_mix.rgb),u_color_mix.a);\\n#endif\\nv_position_height.w=a_pos_3f.z;\\n#ifdef HAS_ATTRIBUTE_a_pbr\\nvec4 albedo_c=decode_color(pbr.xy);vec2 e_r_m=unpack_float(pbr.z);vec2 r_m= unpack_float(e_r_m.y*16.0);r_m.r=r_m.r*16.0;v_color_mix=vec4(albedo_c.rgb,1.0);v_roughness_metallic_emissive_alpha=vec4(vec3(r_m,e_r_m.x)/255.0,albedo_c.a);v_roughness_metallic_emissive_alpha.z*=2.0;float heightBasedRelativeIntepolation=a_pos_3f.z*heightBasedEmissiveStrength.x+heightBasedEmissiveStrength.y;v_height_based_emission_params.x=heightBasedRelativeIntepolation;v_height_based_emission_params.y=heightBasedEmissiveStrength.z;vec2 emissionMultiplierValues=unpack_float(pbr.w)/256.0;v_height_based_emission_params.z=emissionMultiplierValues.x;v_height_based_emission_params.w=emissionMultiplierValues.y-emissionMultiplierValues.x;\\n#endif\\n#ifdef FOG\\nv_fog_pos=fog_position(local_pos);\\n#endif\\n#ifdef RENDER_CUTOFF\\nv_cutoff_opacity=cutoff_opacity(u_cutoff_params,gl_Position.z);\\n#endif\\n#ifdef TERRAIN_FRAGMENT_OCCLUSION\\nv_depth=gl_Position.z/gl_Position.w;\\n#endif\\n#ifdef HAS_ATTRIBUTE_a_normal_3f\\n#ifdef MODEL_POSITION_ON_GPU\\nfloat x_squared_scale=dot(rs[0],rs[0]);float y_squared_scale=dot(rs[1],rs[1]);float z_squared_scale=dot(rs[2],rs[2]);vec3 squared_scale=vec3(x_squared_scale,y_squared_scale,z_squared_scale);normal_3f=rs*((u_lighting_matrix*vec4(normal_3f,0.0)).xyz/squared_scale);normal_3f=normalize(normal_3f);\\n#else\\nnormal_3f=vec3(normal_matrix*vec4(normal_3f,0));\\n#endif\\n#endif\\n#ifdef HAS_ATTRIBUTE_a_pbr\\n#ifdef HAS_ATTRIBUTE_a_color_4f\\nv_roughness_metallic_emissive_alpha.w=clamp(color_4f.a*v_roughness_metallic_emissive_alpha.w*(v_roughness_metallic_emissive_alpha.z-1.0),0.0,1.0);\\n#endif\\n#endif\\n#ifdef RENDER_SHADOWS\\nvec4 shadow_pos=u_node_matrix*vec4(local_pos,1.0);\\n#ifdef NORMAL_OFFSET\\n#ifdef HAS_ATTRIBUTE_a_normal_3f\\n#ifdef MODEL_POSITION_ON_GPU\\nvec3 offset=shadow_normal_offset(vec3(-normal_3f.xy,normal_3f.z));shadow_pos.xyz+=offset*shadow_normal_offset_multiplier0();\\n#else\\nvec3 offset=shadow_normal_offset_model(normal_3f);shadow_pos.xyz+=offset*shadow_normal_offset_multiplier0();\\n#endif\\n#endif\\n#endif\\nv_pos_light_view_0=u_light_matrix_0*shadow_pos;v_pos_light_view_1=u_light_matrix_1*shadow_pos;v_depth_shadows=gl_Position.w;\\n#endif\\n}'),modelDepth:Uo(\"in highp float v_depth;void main() {\\n#ifndef DEPTH_TEXTURE\\nglFragColor=pack_depth(v_depth);\\n#endif\\n}\",\"in vec3 a_pos_3f;uniform mat4 u_matrix;out highp float v_depth;\\n#ifdef MODEL_POSITION_ON_GPU\\n#ifdef INSTANCED_ARRAYS\\nin vec4 a_normal_matrix0;in vec4 a_normal_matrix1;in vec4 a_normal_matrix2;in vec4 a_normal_matrix3;\\n#else\\nuniform highp mat4 u_instance;\\n#endif\\nuniform highp mat4 u_node_matrix;\\n#endif\\nvoid main() {\\n#ifdef MODEL_POSITION_ON_GPU\\nhighp mat4 instance;\\n#ifdef INSTANCED_ARRAYS\\ninstance=mat4(a_normal_matrix0,a_normal_matrix1,a_normal_matrix2,a_normal_matrix3);\\n#else\\ninstance=u_instance;\\n#endif\\nvec3 pos_color=instance[0].xyz;vec4 translate=instance[1];vec3 pos_a=floor(pos_color);float hidden=float(pos_a.x > EXTENT);float meter_to_tile=instance[0].w;vec4 pos=vec4(pos_a.xy,translate.z,1.0);mat3 rs;rs[0].x=instance[1].w;rs[0].yz=instance[2].xy;rs[1].xy=instance[2].zw;rs[1].z=instance[3].x;rs[2].xyz=instance[3].yzw;vec4 pos_node=u_node_matrix*vec4(a_pos_3f,1.0);vec3 rotated_pos_node=rs*pos_node.xyz;vec3 pos_model_tile=(rotated_pos_node+vec3(translate.xy,0.0))*vec3(meter_to_tile,meter_to_tile,1.0);pos.xyz+=pos_model_tile;gl_Position=mix(u_matrix*pos,AWAY,hidden);\\n#else\\ngl_Position=u_matrix*vec4(a_pos_3f,1);\\n#endif\\nv_depth=gl_Position.z/gl_Position.w;}\"),stars:Uo(\"in highp vec2 v_uv;in mediump float v_intensity;float shapeCircle(in vec2 uv)\\n{float beginFade=0.6;float lengthFromCenter=length(v_uv);return 1.0-clamp((lengthFromCenter-beginFade)/(1.0-beginFade),0.0,1.0);}void main() {float alpha=shapeCircle(v_uv);vec3 color=vec3(1.0,1.0,1.0);alpha*=v_intensity;glFragColor=vec4(color*alpha,alpha);HANDLE_WIREFRAME_DEBUG;}\",\"\\nin vec3 a_pos_3f;in vec2 a_uv;in float a_size_scale;in float a_fade_opacity;uniform mat4 u_matrix;uniform vec3 u_up;uniform vec3 u_right;uniform float u_intensity_multiplier;out highp vec2 v_uv;out mediump float v_intensity;void main() {v_uv=a_uv;v_intensity=a_fade_opacity*u_intensity_multiplier;vec3 pos=a_pos_3f;pos+=a_uv.x*u_right*a_size_scale;pos+=a_uv.y*u_up*a_size_scale;gl_Position=u_matrix*vec4(pos,1.0);}\"),snowParticle:Uo(\"in highp vec2 uv;in highp float alphaMultiplier;uniform vec4 u_particleColor;uniform vec2 u_simpleShapeParameters;void main() {float t=clamp((length(uv)-u_simpleShapeParameters.x)/(1.0-u_simpleShapeParameters.x),0.0,1.0);float alpha=1.0-pow(t,pow(10.0,u_simpleShapeParameters.y));alpha*=alphaMultiplier;alpha*=u_particleColor.a;vec3 color=u_particleColor.rgb*alpha;glFragColor=vec4(color,alpha) ;HANDLE_WIREFRAME_DEBUG;}\",\"\\nin highp vec3 a_pos_3f;in highp vec2 a_uv;in highp vec4 a_snowParticleData;in highp vec4 a_snowParticleDataHorizontalOscillation;uniform mat4 u_modelview;uniform mat4 u_projection;uniform vec3 u_cam_pos;uniform vec2 u_screenSize;uniform float u_time;uniform float u_boxSize;uniform float u_velocityConeAperture; \\nuniform float u_velocity;uniform vec3 u_direction;uniform float u_horizontalOscillationRadius; \\nuniform float u_horizontalOscillationRate; \\nuniform float u_billboardSize;uniform vec2 u_thinningCenterPos;uniform vec3 u_thinningShape;uniform float u_thinningAffectedRatio;uniform float u_thinningParticleOffset;out highp vec2 uv;out highp float alphaMultiplier;void main() {vec3 pos=a_pos_3f;float halfBoxSize=0.5*u_boxSize;pos.xyz*=halfBoxSize;pos+=u_cam_pos;float velocityConeApertureRad=radians(u_velocityConeAperture*0.5);float coneAnglePichRad=velocityConeApertureRad*a_snowParticleData.z;float coneAngleHeadingRad=a_snowParticleData.w*radians(360.0);vec3 localZ=normalize(u_direction);vec3 localX=normalize(cross(localZ,vec3(1,0,0)));vec3 localY=normalize(cross(localZ,localX));vec3 direction;direction.x=cos(coneAngleHeadingRad)*sin(coneAnglePichRad);direction.y=sin(coneAngleHeadingRad)*sin(coneAnglePichRad);direction.z=cos(coneAnglePichRad);direction=normalize(direction);vec3 simPosLocal=vec3(0,0,0);float velocityScale=(1.0+3.0*a_snowParticleData.y)*u_velocity;simPosLocal+=direction*velocityScale*u_time;float horizontalOscillationRadius=u_horizontalOscillationRadius*a_snowParticleDataHorizontalOscillation.x;float horizontalOscillationAngle=u_horizontalOscillationRate*u_time*(-1.0+2.0*a_snowParticleDataHorizontalOscillation.y);simPosLocal.xy+=horizontalOscillationRadius*vec2(cos(horizontalOscillationAngle),sin(horizontalOscillationAngle));vec3 simPos=localX*simPosLocal.x+\\nlocalY*simPosLocal.y+localZ*simPosLocal.z;pos+=simPos;pos=fract((pos+vec3(halfBoxSize))/vec3(u_boxSize))*u_boxSize-vec3(halfBoxSize);float clipZ=-u_cam_pos.z+pos.z;vec4 posView=u_modelview*vec4(pos,1.0);float size=u_billboardSize;alphaMultiplier=1.0;vec4 posScreen=u_projection*posView;posScreen/=posScreen.w;posScreen.xy=vec2(0.5)+posScreen.xy*0.5;posScreen.xy*=u_screenSize;vec2 thinningCenterPos=u_thinningCenterPos.xy;thinningCenterPos.y=u_screenSize.y-thinningCenterPos.y;float screenDist=length((thinningCenterPos-posScreen.xy)/(0.5*u_screenSize));screenDist+=a_snowParticleData.x*u_thinningParticleOffset;float scaleFactorMode=0.0;float thinningShapeDist=u_thinningShape.x+u_thinningShape.y;if (screenDist < thinningShapeDist) {float thinningFadeRatio=clamp((screenDist-u_thinningShape.x)/u_thinningShape.y,0.0,1.0);thinningFadeRatio=pow(thinningFadeRatio,u_thinningShape.z);if (a_snowParticleData.x < u_thinningAffectedRatio) {scaleFactorMode=1.0-thinningFadeRatio;alphaMultiplier=thinningFadeRatio;}}vec4 posScreen1=u_projection*vec4(posView.x-size,posView.yzw);posScreen1/=posScreen1.w;vec4 posScreen2=u_projection*vec4(posView.x+size,posView.yzw);posScreen2/=posScreen2.w;posScreen1.xy=vec2(0.5)+posScreen1.xy*0.5;posScreen1.xy*=u_screenSize;posScreen2.xy=vec2(0.5)+posScreen2.xy*0.5;posScreen2.xy*=u_screenSize;float screenLength=length(posScreen1.xy-posScreen2.xy);float screenEpsilon=3.0;float scaleFactor=1.0;if (screenLength < screenEpsilon) {scaleFactor=screenEpsilon/max(screenLength,0.01);scaleFactor=mix(scaleFactor,1.0,scaleFactorMode);}float screenEpsilon2=15.0;if (screenLength > screenEpsilon2) {scaleFactor=screenEpsilon2/max(screenLength,0.01);}size*=scaleFactor;vec2 right=size*vec2(1,0);vec2 up=size*vec2(0,1);posView.xy+=right*a_uv.x;posView.xy+=up*a_uv.y;uv=a_uv;gl_Position=u_projection*posView;}\"),rainParticle:Uo(\"in highp vec2 uv;in highp float particleRandomValue;uniform sampler2D u_texScreen;uniform float u_distortionStrength;uniform vec4 u_color;uniform vec2 u_thinningCenterPos;uniform vec3 u_thinningShape;uniform float u_thinningAffectedRatio;uniform float u_thinningParticleOffset;uniform float u_shapeDirectionalPower;uniform float u_mode;void main() {vec2 st=uv*0.5+vec2(0.5);vec2 uvm=uv;uvm.y=-1.0+2.0*pow(st.y,u_shapeDirectionalPower);float shape=clamp(1.0-length(uvm),0.0,1.0);float alpha=abs(shape)*u_color.a;vec2 screenSize=vec2(textureSize(u_texScreen,0));vec2 thinningCenterPos=u_thinningCenterPos.xy;thinningCenterPos.y=screenSize.y-thinningCenterPos.y;float screenDist=length((thinningCenterPos-gl_FragCoord.xy)/(0.5*screenSize));screenDist+=(0.5+0.5*particleRandomValue)*u_thinningParticleOffset;float thinningShapeDist=u_thinningShape.x+u_thinningShape.y;float thinningAlpha=1.0;if (screenDist < thinningShapeDist) {float thinningFadeRatio=clamp((screenDist-u_thinningShape.x)/u_thinningShape.y,0.0,1.0);thinningFadeRatio=pow(thinningFadeRatio,u_thinningShape.z);thinningAlpha*=thinningFadeRatio;}vec2 offsetXY=normalize(uvm)*abs(shape);vec2 stScreen=(gl_FragCoord.xy+offsetXY*u_distortionStrength*thinningAlpha)/screenSize;vec3 colorScreen=texture(u_texScreen,stScreen).rgb;alpha*=thinningAlpha;glFragColor=mix(vec4(colorScreen,1.0),vec4(u_color.rgb*alpha,alpha),u_mode);HANDLE_WIREFRAME_DEBUG;}\",\"\\nin highp vec3 a_pos_3f;in highp vec2 a_uv;in highp vec4 a_rainParticleData;uniform mat4 u_modelview;uniform mat4 u_projection;uniform vec3 u_cam_pos;uniform float u_time;uniform float u_boxSize;uniform float u_velocityConeAperture; \\nuniform float u_velocity; \\nuniform vec2 u_rainDropletSize;uniform vec3 u_rainDirection;out highp vec2 uv;out highp float particleRandomValue;void main() {vec3 pos=a_pos_3f;float halfBoxSize=0.5*u_boxSize;pos*=halfBoxSize; \\npos+=u_cam_pos;float velocityConeApertureRad=radians(u_velocityConeAperture*0.5);float coneAnglePichRad=velocityConeApertureRad*a_rainParticleData.z;float coneAngleHeadingRad=a_rainParticleData.w*radians(360.0);vec3 localZ=normalize(u_rainDirection);vec3 localX=normalize(cross(localZ,vec3(1,0,0)));vec3 localY=normalize(cross(localZ,localX));vec3 directionLocal;directionLocal.x=cos(coneAngleHeadingRad)*sin(coneAnglePichRad);directionLocal.y=sin(coneAngleHeadingRad)*sin(coneAnglePichRad);directionLocal.z=cos(coneAnglePichRad);directionLocal=normalize(directionLocal);vec3 directionWorld=localX*directionLocal.x+localY*directionLocal.y+localZ*directionLocal.z;float velocityScale=(1.0+3.0*a_rainParticleData.y)*u_velocity;vec3 simPosLocal=vec3(0,0,0);simPosLocal+=directionLocal*velocityScale*u_time;vec3 simPos=localX*simPosLocal.x+\\nlocalY*simPosLocal.y+localZ*simPosLocal.z;pos+=simPos;pos=fract((pos+vec3(halfBoxSize))/vec3(u_boxSize))*u_boxSize-vec3(halfBoxSize);vec4 posView=u_modelview*vec4(pos,1.0);vec3 directionView=normalize((u_modelview*vec4(directionWorld,0.0)).xyz);vec3 side=cross(directionView,normalize(posView.xyz));posView.xyz+=side*a_uv.x*u_rainDropletSize.x;posView.xyz+=directionView*a_uv.y*u_rainDropletSize.y;uv=a_uv;particleRandomValue=a_rainParticleData.x;gl_Position=u_projection*posView;}\"),vignette:Uo(\"uniform vec3 u_vignetteShape;uniform vec4 u_vignetteColor;in vec2 st;void main() {float screenDist=length(st);float alpha=clamp((screenDist-u_vignetteShape.x)/u_vignetteShape.y,0.0,1.0);alpha=pow(alpha,u_vignetteShape.z)*u_vignetteColor.a;vec3 color=u_vignetteColor.rgb;glFragColor=vec4(color*alpha,alpha) ;}\",\"in vec2 a_pos_2f;out vec2 st;void main() {st=a_pos_2f;gl_Position=vec4(a_pos_2f,0,1);}\"),occlusion:Uo(\"uniform vec4 u_color;void main() {glFragColor=u_color;}\",'#include \"_prelude_terrain.vertex.glsl\"\\nin highp vec2 a_offset_xy;uniform highp vec3 u_anchorPos;uniform mat4 u_matrix;uniform vec2 u_screenSizePx;uniform vec2 u_occluderSizePx;void main() {vec3 world_pos=u_anchorPos;\\n#ifdef TERRAIN\\nfloat e=elevation(world_pos.xy);world_pos.z+=e;\\n#endif\\nvec4 projected_point=u_matrix*vec4(world_pos,1.0);projected_point.xy+=projected_point.w*a_offset_xy*0.5*u_occluderSizePx/u_screenSizePx;gl_Position=projected_point;}')};function No(e,t){const i=e.replace(/\\s*\\/\\/[^\\n]*\\n/g,\"\\n\").split(\"\\n\");for(let e of i)if(e=e.trim(),\"#\"===e[0]&&e.includes(\"if\")&&!e.includes(\"endif\")){e=e.replace(\"#\",\"\").replace(/ifdef|ifndef|elif|if/g,\"\").replace(/!|defined|\\(|\\)|\\|\\||&&/g,\"\").replace(/\\s+/g,\" \").trim();const i=e.split(\" \");for(const e of i)t.includes(e)||t.push(e);}}function Uo(e,t){const i=/#include\\s+\"([^\"]+)\"/g,o=/#pragma mapbox: ([\\w\\-]+) ([\\w]+) ([\\w]+) ([\\w]+)/g;let s=t.match(/(attribute(\\S*)|(^\\s*|;)in) (highp |mediump |lowp )?([\\w]+) ([\\w]+)/gm);s&&(s=s.map((e=>{const t=e.split(\" \");return t[t.length-1]})),s=[...new Set(s)]);const r={},a=[],n=[];if(e=e.replace(i,((e,t)=>(n.push(t),\"\"))),(t=t.replace(i,((e,t)=>(a.push(t),\"\")))).includes(\"flat out\"))return void console.error('The usage of \"flat\" qualifier is disallowed, see: https://bugs.webkit.org/show_bug.cgi?id=268071');let l=[...Po];No(e,l),No(t,l);for(const e of [...a,...n])Mo[e]||console.error(`Undefined include: ${e}`),Oo[e]||(Oo[e]=[],No(Mo[e],Oo[e])),l=[...l,...Oo[e]];return {fragmentSource:e=e.replace(o,((e,t,i,o,s)=>(r[s]=!0,\"define\"===t?`\\n#ifndef HAS_UNIFORM_u_${s}\\nin ${i} ${o} ${s};\\n#else\\nuniform ${i} ${o} u_${s};\\n#endif\\n`:\"initialize\"===t?`\\n#ifdef HAS_UNIFORM_u_${s}\\n ${i} ${o} ${s} = u_${s};\\n#endif\\n`:\"define-attribute\"===t?`\\n#ifdef HAS_ATTRIBUTE_a_${s}\\n in ${i} ${o} ${s};\\n#endif\\n`:\"initialize-attribute\"===t?\"\":void 0))),vertexSource:t=t.replace(o,((e,t,i,o,s)=>{const a=\"float\"===o?\"vec2\":o,n=s.match(/color/)?\"color\":a;return \"define-attribute-vertex-shader-only\"===t?`\\n#ifdef HAS_ATTRIBUTE_a_${s}\\nin ${i} ${o} a_${s};\\n#endif\\n`:r[s]?\"define\"===t?`\\n#ifndef HAS_UNIFORM_u_${s}\\nuniform lowp float u_${s}_t;\\nin ${i} ${a} a_${s};\\nout ${i} ${o} ${s};\\n#else\\nuniform ${i} ${o} u_${s};\\n#endif\\n`:\"initialize\"===t?\"vec4\"===n?`\\n#ifndef HAS_UNIFORM_u_${s}\\n ${s} = a_${s};\\n#else\\n ${i} ${o} ${s} = u_${s};\\n#endif\\n`:`\\n#ifndef HAS_UNIFORM_u_${s}\\n ${s} = unpack_mix_${n}(a_${s}, u_${s}_t);\\n#else\\n ${i} ${o} ${s} = u_${s};\\n#endif\\n`:\"define-attribute\"===t?`\\n#ifdef HAS_ATTRIBUTE_a_${s}\\n in ${i} ${o} a_${s};\\n out ${i} ${o} ${s};\\n#endif\\n`:\"initialize-attribute\"===t?`\\n#ifdef HAS_ATTRIBUTE_a_${s}\\n ${s} = a_${s};\\n#endif\\n`:void 0:\"define\"===t?`\\n#ifndef HAS_UNIFORM_u_${s}\\nuniform lowp float u_${s}_t;\\nin ${i} ${a} a_${s};\\n#else\\nuniform ${i} ${o} u_${s};\\n#endif\\n`:\"define-instanced\"===t?\"mat4\"===n?`\\n#ifdef INSTANCED_ARRAYS\\nin vec4 a_${s}0;\\nin vec4 a_${s}1;\\nin vec4 a_${s}2;\\nin vec4 a_${s}3;\\n#else\\nuniform ${i} ${o} u_${s};\\n#endif\\n`:`\\n#ifdef INSTANCED_ARRAYS\\nin ${i} ${a} a_${s};\\n#else\\nuniform ${i} ${o} u_${s};\\n#endif\\n`:\"initialize-attribute-custom\"===t?`\\n#ifdef HAS_ATTRIBUTE_a_${s}\\n ${i} ${o} ${s} = a_${s};\\n#endif\\n`:\"vec4\"===n?`\\n#ifndef HAS_UNIFORM_u_${s}\\n ${i} ${o} ${s} = a_${s};\\n#else\\n ${i} ${o} ${s} = u_${s};\\n#endif\\n`:`\\n#ifndef HAS_UNIFORM_u_${s}\\n ${i} ${o} ${s} = unpack_mix_${n}(a_${s}, u_${s}_t);\\n#else\\n ${i} ${o} ${s} = u_${s};\\n#endif\\n`})),staticAttributes:s,usedDefines:l,vertexIncludes:a,fragmentIncludes:n}}class Go{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffers=[],this.vao=null;}bind(e,t,i,o,s,r,a,n){this.context=e;let l=this.boundPaintVertexBuffers.length!==o.length;for(let e=0;!l&&e<o.length;e++)this.boundPaintVertexBuffers[e]!==o[e]&&(l=!0);let c=this.boundDynamicVertexBuffers.length!==a.length;for(let e=0;!c&&e<a.length;e++)this.boundDynamicVertexBuffers[e]!==a[e]&&(c=!0);if(!this.vao||this.boundProgram!==t||this.boundLayoutVertexBuffer!==i||l||c||this.boundIndexBuffer!==s||this.boundVertexOffset!==r)this.freshBind(t,i,o,s,r,a,n);else {e.bindVertexArrayOES.set(this.vao);for(const i of a)i&&(i.bind(),n&&i.instanceCount&&i.setVertexAttribDivisor(e.gl,t,n));s&&s.dynamicDraw&&s.bind();}}freshBind(e,t,i,o,s,r,a){const n=e.numAttributes,l=this.context,c=l.gl;this.vao&&this.destroy(),this.vao=l.gl.createVertexArray(),l.bindVertexArrayOES.set(this.vao),this.boundProgram=e,this.boundLayoutVertexBuffer=t,this.boundPaintVertexBuffers=i,this.boundIndexBuffer=o,this.boundVertexOffset=s,this.boundDynamicVertexBuffers=r,t.enableAttributes(c,e),t.bind(),t.setVertexAttribPointers(c,e,s);for(const t of i)t.enableAttributes(c,e),t.bind(),t.setVertexAttribPointers(c,e,s);for(const t of r)t&&(t.enableAttributes(c,e),t.bind(),t.setVertexAttribPointers(c,e,s),a&&t.instanceCount&&t.setVertexAttribDivisor(c,e,a));o&&o.bind(),l.currentNumAttributes=n;}destroy(){this.vao&&(this.context.gl.deleteVertexArray(this.vao),this.vao=null);}}function jo(t,i){const o=Math.pow(2,i.canonical.z),s=i.canonical.y;return [new e.aa(0,s/o).toLngLat().lat,new e.aa(0,(s+1)/o).toLngLat().lat]}function Vo(t,i,o,s,r,a,n){const l=t.context,c=l.gl,h=o.hillshadeFBO;if(!h)return;t.prepareDrawTile();const u=t.isTileAffectedByFog(i),d=t.getOrCreateProgram(\"hillshade\",{overrideFog:u});l.activeTexture.set(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,h.colorAttachment.get());const _=((t,i,o,s)=>{const r=o.paint.get(\"hillshade-shadow-color\"),a=\"none\"===o.paint.get(\"hillshade-shadow-color-use-theme\").constantOr(\"default\"),n=o.paint.get(\"hillshade-highlight-color\"),l=\"none\"===o.paint.get(\"hillshade-highlight-color-use-theme\").constantOr(\"default\"),c=o.paint.get(\"hillshade-accent-color\"),h=\"none\"===o.paint.get(\"hillshade-accent-color-use-theme\").constantOr(\"default\"),u=o.paint.get(\"hillshade-emissive-strength\");let d=e.ai(o.paint.get(\"hillshade-illumination-direction\"));if(\"viewport\"===o.paint.get(\"hillshade-illumination-anchor\"))d-=t.transform.angle;else if(t.style&&t.style.enable3dLights()&&t.style.directionalLight){const i=t.style.directionalLight.properties.get(\"direction\"),o=e.cb(i.x,i.y,i.z);d=e.ai(o[1]);}const _=!t.options.moving;return {u_matrix:s||t.transform.calculateProjMatrix(i.tileID.toUnwrapped(),_),u_image:0,u_latrange:jo(0,i.tileID),u_light:[o.paint.get(\"hillshade-exaggeration\"),d],u_shadow:r.toRenderColor(a?null:o.lut),u_highlight:n.toRenderColor(l?null:o.lut),u_emissive_strength:u,u_accent:c.toRenderColor(h?null:o.lut)}})(t,o,s,t.terrain?i.projMatrix:null);t.uploadCommonUniforms(l,d,i.toUnwrapped());const{tileBoundsBuffer:p,tileBoundsIndexBuffer:f,tileBoundsSegments:m}=t.getTileBoundsBuffers(o);d.draw(t,c.TRIANGLES,r,a,n,Gi.disabled,_,s.id,p,f,m);}function qo(t,i,o){if(!i.needsDEMTextureUpload)return;const s=t.context,r=s.gl;s.pixelStoreUnpackPremultiplyAlpha.set(!1),i.demTexture=i.demTexture||t.getTileTexture(o.stride);const a=o.getPixels();i.demTexture?i.demTexture.update(a,{premultiply:!1}):i.demTexture=new e.T(s,a,r.R32F,{premultiply:!1}),i.needsDEMTextureUpload=!1;}function Ho(t,i,o){const s=t.context,r=s.gl;if(!i.dem)return;const a=i.dem;if(s.activeTexture.set(r.TEXTURE1),qo(t,i,a),!i.demTexture)return;i.demTexture.bind(r.NEAREST,r.CLAMP_TO_EDGE);const n=a.dim;s.activeTexture.set(r.TEXTURE0);let l=i.hillshadeFBO;if(!l){const t=new e.T(s,{width:n,height:n,data:null},r.RGBA8);t.bind(r.LINEAR,r.CLAMP_TO_EDGE),l=i.hillshadeFBO=s.createFramebuffer(n,n,!0,\"renderbuffer\"),l.colorAttachment.set(t.texture);}s.bindFramebuffer.set(l.framebuffer),s.viewport.set([0,0,n,n]);const{tileBoundsBuffer:c,tileBoundsIndexBuffer:h,tileBoundsSegments:u}=t.getMercatorTileBoundsBuffers(),d=[];t.linearFloatFilteringSupported()&&d.push(\"TERRAIN_DEM_FLOAT_FORMAT\"),t.getOrCreateProgram(\"hillshadePrepare\",{defines:d}).draw(t,r.TRIANGLES,Fi.disabled,Bi.disabled,Oi.unblended,Gi.disabled,((t,i)=>{const o=i.stride,s=e.ab.mat4.create();return e.ab.mat4.ortho(s,0,e.ag,-e.ag,0,0,1),e.ab.mat4.translate(s,s,[0,-e.ag,0]),{u_matrix:s,u_image:1,u_dimension:[o,o],u_zoom:t.overscaledZ}})(i.tileID,a),o.id,c,h,u),i.needsHillshadePrepare=!1;}class Zo{constructor(e){this.gl=e.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1;}get(){return this.current}set(e){}getDefault(){return this.default}setDefault(){this.set(this.default);}}class Wo extends Zo{getDefault(){return e.aj.transparent}set(e){const t=this.current;(e.r!==t.r||e.g!==t.g||e.b!==t.b||e.a!==t.a||this.dirty)&&(this.gl.clearColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1);}}class $o extends Zo{getDefault(){return 1}set(e){(e!==this.current||this.dirty)&&(this.gl.clearDepth(e),this.current=e,this.dirty=!1);}}class Xo extends Zo{getDefault(){return 0}set(e){(e!==this.current||this.dirty)&&(this.gl.clearStencil(e),this.current=e,this.dirty=!1);}}class Ko extends Zo{getDefault(){return [!0,!0,!0,!0]}set(e){const t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3]||this.dirty)&&(this.gl.colorMask(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1);}}class Yo extends Zo{getDefault(){return !0}set(e){(e!==this.current||this.dirty)&&(this.gl.depthMask(e),this.current=e,this.dirty=!1);}}class Jo extends Zo{getDefault(){return 255}set(e){(e!==this.current||this.dirty)&&(this.gl.stencilMask(e),this.current=e,this.dirty=!1);}}class Qo extends Zo{getDefault(){return {func:this.gl.ALWAYS,ref:0,mask:255}}set(e){const t=this.current;(e.func!==t.func||e.ref!==t.ref||e.mask!==t.mask||this.dirty)&&(this.gl.stencilFunc(e.func,e.ref,e.mask),this.current=e,this.dirty=!1);}}class es extends Zo{getDefault(){const e=this.gl;return [e.KEEP,e.KEEP,e.KEEP]}set(e){const t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||this.dirty)&&(this.gl.stencilOp(e[0],e[1],e[2]),this.current=e,this.dirty=!1);}}class ts extends Zo{getDefault(){return !1}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;e?t.enable(t.STENCIL_TEST):t.disable(t.STENCIL_TEST),this.current=e,this.dirty=!1;}}class is extends Zo{getDefault(){return [0,1]}set(e){const t=this.current;(e[0]!==t[0]||e[1]!==t[1]||this.dirty)&&(this.gl.depthRange(e[0],e[1]),this.current=e,this.dirty=!1);}}class os extends Zo{getDefault(){return !1}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;e?t.enable(t.DEPTH_TEST):t.disable(t.DEPTH_TEST),this.current=e,this.dirty=!1;}}class ss extends Zo{getDefault(){return this.gl.LESS}set(e){(e!==this.current||this.dirty)&&(this.gl.depthFunc(e),this.current=e,this.dirty=!1);}}class rs extends Zo{getDefault(){return !1}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;e?t.enable(t.BLEND):t.disable(t.BLEND),this.current=e,this.dirty=!1;}}class as extends Zo{getDefault(){const e=this.gl;return [e.ONE,e.ZERO,e.ONE,e.ZERO]}set(e){const t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3]||this.dirty)&&(this.gl.blendFuncSeparate(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1);}}class ns extends Zo{getDefault(){return e.aj.transparent}set(e){const t=this.current;(e.r!==t.r||e.g!==t.g||e.b!==t.b||e.a!==t.a||this.dirty)&&(this.gl.blendColor(e.r,e.g,e.b,e.a),this.current=e,this.dirty=!1);}}class ls extends Zo{getDefault(){return this.gl.FUNC_ADD}set(e){(e!==this.current||this.dirty)&&(this.gl.blendEquationSeparate(e,e),this.current=e,this.dirty=!1);}}class cs extends Zo{getDefault(){return !1}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;e?t.enable(t.CULL_FACE):t.disable(t.CULL_FACE),this.current=e,this.dirty=!1;}}class hs extends Zo{getDefault(){return this.gl.BACK}set(e){(e!==this.current||this.dirty)&&(this.gl.cullFace(e),this.current=e,this.dirty=!1);}}class us extends Zo{getDefault(){return this.gl.CCW}set(e){(e!==this.current||this.dirty)&&(this.gl.frontFace(e),this.current=e,this.dirty=!1);}}let ds=class extends Zo{getDefault(){return null}set(e){(e!==this.current||this.dirty)&&(this.gl.useProgram(e),this.current=e,this.dirty=!1);}};class _s extends Zo{getDefault(){return this.gl.TEXTURE0}set(e){(e!==this.current||this.dirty)&&(this.gl.activeTexture(e),this.current=e,this.dirty=!1);}}class ps extends Zo{getDefault(){const e=this.gl;return [0,0,e.drawingBufferWidth,e.drawingBufferHeight]}set(e){const t=this.current;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3]||this.dirty)&&(this.gl.viewport(e[0],e[1],e[2],e[3]),this.current=e,this.dirty=!1);}}class fs extends Zo{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,e),this.current=e,this.dirty=!1;}}class ms extends Zo{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;t.bindRenderbuffer(t.RENDERBUFFER,e),this.current=e,this.dirty=!1;}}class gs extends Zo{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;t.bindTexture(t.TEXTURE_2D,e),this.current=e,this.dirty=!1;}}class vs extends Zo{getDefault(){return null}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;t.bindBuffer(t.ARRAY_BUFFER,e),this.current=e,this.dirty=!1;}}class ys extends Zo{getDefault(){return null}set(e){const t=this.gl;t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e),this.current=e,this.dirty=!1;}}class xs extends Zo{getDefault(){return null}set(e){this.gl&&(e!==this.current||this.dirty)&&(this.gl.bindVertexArray(e),this.current=e,this.dirty=!1);}}class bs extends Zo{getDefault(){return 4}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;t.pixelStorei(t.UNPACK_ALIGNMENT,e),this.current=e,this.dirty=!1;}}class ws extends Zo{getDefault(){return !1}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e),this.current=e,this.dirty=!1;}}class Ts extends Zo{getDefault(){return !1}set(e){if(e===this.current&&!this.dirty)return;const t=this.gl;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,e),this.current=e,this.dirty=!1;}}class Es extends Zo{constructor(e,t){super(e),this.context=e,this.parent=t;}getDefault(){return null}}class Ss extends Es{setDirty(){this.dirty=!0;}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const t=this.gl;t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),this.current=e,this.dirty=!1;}}class Cs extends Es{attachment(){return this.gl.DEPTH_ATTACHMENT}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const t=this.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,this.attachment(),t.RENDERBUFFER,e),this.current=e,this.dirty=!1;}}class Is extends Es{attachment(){return this.gl.DEPTH_ATTACHMENT}set(e){if(e===this.current&&!this.dirty)return;this.context.bindFramebuffer.set(this.parent);const t=this.gl;t.framebufferTexture2D(t.FRAMEBUFFER,this.attachment(),t.TEXTURE_2D,e,0),this.current=e,this.dirty=!1;}}class Rs extends Cs{attachment(){return this.gl.DEPTH_STENCIL_ATTACHMENT}}const Ds=(e,t,i)=>({u_matrix:e,u_image0:0,u_skirt_height:t,u_ground_shadow_factor:i}),Ls=(e,t,i,o,s,r,a,n,l,c,h,u,d,_,p,f)=>({u_proj_matrix:Float32Array.from(e),u_globe_matrix:t,u_normalize_matrix:Float32Array.from(o),u_merc_matrix:i,u_zoom_transition:s,u_merc_center:r,u_image0:0,u_frustum_tl:a,u_frustum_tr:n,u_frustum_br:l,u_frustum_bl:c,u_globe_pos:h,u_globe_radius:u,u_viewport:d,u_grid_matrix:f?Float32Array.from(f):new Float32Array(9),u_skirt_height:_,u_far_z_cutoff:p});function As(e,t){return null!=e&&null!=t&&!(!e.hasData()||!t.hasData())&&null!=e.demTexture&&null!=t.demTexture&&e.tileID.key!==t.tileID.key}const zs=new class{constructor(){this.operations={};}newMorphing(e,t,i,o,s){if(e in this.operations){const t=this.operations[e];t.to.tileID.key!==i.tileID.key&&(t.queued=i);}else this.operations[e]={startTime:o,phase:0,duration:s,from:t,to:i,queued:null};}getMorphValuesForProxy(e){if(!(e in this.operations))return null;const t=this.operations[e];return {from:t.from,to:t.to,phase:t.phase}}update(e){for(const t in this.operations){const i=this.operations[t];for(i.phase=(e-i.startTime)/i.duration;i.phase>=1||!this._validOp(i);)if(!this._nextOp(i,e)){delete this.operations[t];break}}}_nextOp(e,t){return !!e.queued&&(e.from=e.to,e.to=e.queued,e.queued=null,e.phase=0,e.startTime=t,!0)}_validOp(e){return e.from.hasData()&&e.to.hasData()}},Ps={0:null,1:\"TERRAIN_VERTEX_MORPHING\"};function Ms(e,t,i){if(0===t)return 0;const o=t<1&&514===i?.25/t:1;return 6*Math.pow(1.5,22-e)*Math.max(t,1)*o}function Os(e,t){const i=1<<e.z;return !t&&(0===e.x||e.x===i-1)||0===e.y||e.y===i-1}const Fs=e=>({u_matrix:e});function ks(t,i,o,s,r){if(r>0){const a=e.q.now(),n=(a-t.timeAdded)/r,l=i?(a-i.timeAdded)/r:-1,c=o.getSource(),h=s.coveringZoomLevel({tileSize:c.tileSize,roundZoom:c.roundZoom}),u=!i||Math.abs(i.tileID.overscaledZ-h)>Math.abs(t.tileID.overscaledZ-h),d=u&&t.refreshedUponExpiration?1:e.aw(u?n:1-l,0,1);return t.refreshedUponExpiration&&n>=1&&(t.refreshedUponExpiration=!1),i?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return {opacity:1,mix:0}}class Bs extends Tt{constructor(t){const i={type:\"raster-dem\",maxzoom:t.transform.maxZoom},o=new e.D(e.ci(),null),s=rt(\"mock-dem\",i,o,t.style);super(\"mock-dem\",s,!1),s.setEventedParent(this),this._sourceLoaded=!0;}_loadTile(e,t){e.state=\"loaded\",t(null);}}class Ns extends Tt{constructor(t){const i=rt(\"proxy\",{type:\"geojson\",maxzoom:t.transform.maxZoom},new e.D(e.ci(),null),t.style);super(\"proxy\",i,!1),i.setEventedParent(this),this.map=this.getSource().map=t,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={};}update(e,t,i){if(e.freezeTileCoverage)return;this.transform=e;const o=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce(((t,i)=>{if(t[i.key]=\"\",!this._tiles[i.key]){const t=new yt(i,this._source.tileSize*i.overscaleFactor(),e.tileZoom);t.state=\"loaded\",this._tiles[i.key]=t;}return t}),{});for(const e in this._tiles)e in o||(this.freeFBO(e),this._tiles[e].unloadVectorData(),delete this._tiles[e]);}freeFBO(e){const t=this.proxyCachedFBO[e];if(void 0!==t){const i=Object.values(t);this.renderCachePool.push(...i),delete this.proxyCachedFBO[e];}}deallocRenderCache(){this.renderCache.forEach((e=>e.fb.destroy())),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={};}}class Us extends e.aG{constructor(e,t,i){super(e.overscaledZ,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y),this.proxyTileKey=t,this.projMatrix=i;}}class Gs extends e.cJ{constructor(t,i){super(),this._debugParams={sortTilesHiZFirst:!0,disableRenderCache:!1},t.tp.registerParameter(this._debugParams,[\"Terrain\"],\"sortTilesHiZFirst\",{},(()=>{this._style.map.triggerRepaint();})),t.tp.registerParameter(this._debugParams,[\"Terrain\"],\"disableRenderCache\",{},(()=>{this._style.map.triggerRepaint();})),t.tp.registerButton([\"Terrain\"],\"Invalidate Render Cache\",(()=>{this.invalidateRenderCache=!0,this._style.map.triggerRepaint();})),this.painter=t,this.terrainTileForTile={},this.prevTerrainTileForTile={};const[o,s,r]=function(t){const i=new e.b4,o=new e.aU,s=131;i.reserve(17161),o.reserve(33800);const r=e.ag/128,a=e.ag+r/2,n=a+r;for(let t=-r;t<n;t+=r)for(let o=-r;o<n;o+=r){const s=o<0||o>a||t<0||t>a?24575:0,r=e.aw(Math.round(o),0,e.ag),n=e.aw(Math.round(t),0,e.ag);i.emplaceBack(r+s,n);}const l=(e,t)=>{const i=t*s+e;o.emplaceBack(i+1,i,i+s),o.emplaceBack(i+s,i+s+1,i+1);};for(let e=1;e<129;e++)for(let t=1;t<129;t++)l(t,e);return [0,129].forEach((e=>{for(let t=0;t<130;t++)l(t,e),l(e,t);})),[i,o,32768]}(),a=t.context;this.gridBuffer=a.createVertexBuffer(o,e.b6.members),this.gridIndexBuffer=a.createIndexBuffer(s),this.gridSegments=e.b7.simpleSegment(0,0,o.length,s.length),this.gridNoSkirtSegments=e.b7.simpleSegment(0,0,o.length,r),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new Ns(i.map),this.orthoMatrix=e.ab.mat4.create(),e.ab.mat4.ortho(this.orthoMatrix,\"globe\"===this.painter.transform.projection.name?.015:0,e.ag,0,e.ag,0,1);const n=a.gl;this._overlapStencilMode=new Bi({func:n.GEQUAL,mask:255},0,255,n.KEEP,n.KEEP,n.REPLACE),this._previousZoom=t.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=i,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new Bs(i.map),this._pendingGroundEffectLayers=[];}set style(e){e.on(\"data\",this._onStyleDataEvent.bind(this)),this._style=e,this._style.map.on(\"moveend\",(()=>{this._clearLineLayersFromRenderCache();}));}update(t,i,o){if(t&&t.terrain){this._style!==t&&(this.style=t,this._evaluationZoom=void 0);const s=t.terrain.properties,r=0===t.terrain.drapeRenderMode,a=t.terrain.isZoomDependent();this._previousUpdateTimestamp=this.enabled?this._updateTimestamp:void 0,this._updateTimestamp=e.q.now();const n=t.terrain&&t.terrain.scope,l=s.get(\"source\"),c=r?this._mockSourceCache:t.getSourceCache(l,n);if(!c)return void e.w(`Couldn't find terrain source \"${l}\".`);if(this.sourceCache=c,this._attenuationRange=t.terrain.getAttenuationRange(),this._exaggeration=a?this.calculateExaggeration(i):s.get(\"exaggeration\"),!i.projection.requiresDraping&&a&&0===this._exaggeration)return void this._disable();this.enabled=!0;const h=()=>{this.sourceCache.used&&e.w(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source.\\nThis leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);const t=this.getScaledDemTileSize();this.sourceCache.update(i,t,!0),this.resetTileLookupCache(this.sourceCache.id);};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,h(),this._initializing=!0),h(),i.updateElevation(!0,o),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(i),this._emptyDEMTextureDirty=!0,this._previousZoom=i.zoom;}else this._disable();}calculateExaggeration(t){if(this._attenuationRange&&t.zoom>=Math.ceil(this._attenuationRange[1]))return this._style.terrain.getExaggeration(t.zoom);const i=this._previousCameraAltitude,o=t.getFreeCameraOptions().position.z/t.pixelsPerMeter*t.worldSize;this._previousCameraAltitude=o;const s=null!=i?o-i:Number.MAX_VALUE;if(Math.abs(s)<2)return this._exaggeration;const r=t.zoom,a=this._style.terrain;if(!this._previousUpdateTimestamp)return a.getExaggeration(r);let n=r-this._previousZoom;const l=this._previousUpdateTimestamp;let c=r;null!=this._evaluationZoom&&(c=this._evaluationZoom,Math.abs(r-c)>.5&&(n=.5*(r-c+n)),n*s<0&&(c+=n)),this._evaluationZoom=c;const h=a.getExaggeration(c),u=h===a.getExaggeration(Math.max(0,c-.1));if(u&&Math.abs(h-this._exaggeration)<.01)return h;let d=Math.min(.1,.00375*(this._updateTimestamp-l));return (u||h<.1||Math.abs(n)<1e-4)&&(d=Math.min(.2,4*d)),e.af(this._exaggeration,h,d)}resetTileLookupCache(e){this._findCoveringTileCache[e]={};}attenuationRange(){return this._attenuationRange}getDemUpscale(){return this.proxySourceCache.getSource().tileSize/128}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_onStyleDataEvent(e){e.coord&&\"source\"===e.dataType?this._clearRenderCacheForTile(e.sourceCacheId,e.coord):\"style\"===e.dataType&&(this.invalidateRenderCache=!0,this._evaluationZoom=void 0,this._previousUpdateTimestamp=void 0,this._previousCameraAltitude=void 0);}_disable(){if(this.enabled&&(this.enabled=!1,this._emptyDEMTextureDirty=!0,this._sharedDepthStencil=void 0,this._evaluationZoom=void 0,this._previousUpdateTimestamp=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const e in this._style._mergedSourceCaches)this._style._mergedSourceCaches[e].usedForTerrain=!1;}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this.pool.forEach((e=>e.fb.destroy())),this.pool=[],this.framebufferCopyTexture&&this.framebufferCopyTexture.destroy();}_source(){return this.enabled?this.sourceCache:null}isUsingMockSource(){return this.sourceCache===this._mockSourceCache}exaggeration(){return this.enabled?this._exaggeration:0}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const e=2*this.proxySourceCache.getSource().tileSize;return [e,e]}set useVertexMorphing(e){this._useVertexMorphing=e;}updateTileBinding(t){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const i=this.proxySourceCache,o=this.painter.transform;this._initializing&&(this._initializing=0===o._centerAltitude&&-1===this.getAtPointOrZero(e.aa.fromLngLat(o.center),-1),this._emptyDEMTextureDirty=!this._initializing);const s=this.proxyCoords=i.getIds().map((e=>{const t=i.getTileByID(e).tileID;return t.projMatrix=o.calculateProjMatrix(t.toUnwrapped()),t}));!function(t,i){const o=i.transform.pointCoordinate(i.transform.getCameraPoint()),s=new e.P(o.x,o.y);t.sort(((t,i)=>{if(i.overscaledZ-t.overscaledZ)return i.overscaledZ-t.overscaledZ;const o=new e.P(t.canonical.x+(1<<t.canonical.z)*t.wrap,t.canonical.y),r=new e.P(i.canonical.x+(1<<i.canonical.z)*i.wrap,i.canonical.y),a=s.mult(1<<t.canonical.z);return a.x-=.5,a.y-=.5,a.distSqr(o)-a.distSqr(r)}));}(s,this.painter);const r=this.proxyToSource||{};this.proxyToSource={},s.forEach((e=>{this.proxyToSource[e.key]={};})),this.terrainTileForTile={};const a=this._style._mergedSourceCaches;for(const e in a){const i=a[e];if(!i.used)continue;if(i!==this.sourceCache&&this.resetTileLookupCache(i.id),this._setupProxiedCoordsForOrtho(i,t[e],r),i.usedForTerrain)continue;const o=t[e];i.getSource().reparseOverscaled&&this._assignTerrainTiles(o);}this.proxiedCoords[i.id]=s.map((e=>new Us(e,e.key,this.orthoMatrix))),this._assignTerrainTiles(s),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(r),this.renderingToTexture=!1;const n={};this._visibleDemTiles=[];for(const e of this.proxyCoords){const t=this.terrainTileForTile[e.key];if(!t)continue;const i=t.tileID.key;i in n||(this._visibleDemTiles.push(t),n[i]=i);}}_assignTerrainTiles(e){this._initializing||e.forEach((e=>{if(this.terrainTileForTile[e.key])return;const t=this._findTileCoveringTileID(e,this.sourceCache);t&&(this.terrainTileForTile[e.key]=t);}));}_prepareDEMTextures(){const e=this.painter.context,t=e.gl;for(const i in this.terrainTileForTile){const o=this.terrainTileForTile[i],s=o.dem;!s||o.demTexture&&!o.needsDEMTextureUpload||(e.activeTexture.set(t.TEXTURE1),qo(this.painter,o,s));}}_prepareDemTileUniforms(e,t,i,o){if(!t||null==t.demTexture)return !1;const s=e.tileID.canonical,r=Math.pow(2,t.tileID.canonical.z-s.z),a=o||\"\";return i[`u_dem_tl${a}`]=[s.x*r%1,s.y*r%1],i[`u_dem_scale${a}`]=r,!0}get emptyDEMTexture(){return !this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}_getLoadedAreaMinimum(){if(!this.enabled)return 0;let e=0;const t=this._visibleDemTiles.reduce(((t,i)=>{if(!i.dem)return t;const o=i.dem.tree.minimums[0];return o>0&&e++,t+o}),0);return e?t/e:0}_updateEmptyDEMTexture(){const t=this.painter.context,i=t.gl;t.activeTexture.set(i.TEXTURE2);const o=this._getLoadedAreaMinimum(),s=new e.cK({width:1,height:1},new Float32Array([o]));this._emptyDEMTextureDirty=!1;let r=this._emptyDEMTexture;return r?r.update(s,{premultiply:!1}):r=this._emptyDEMTexture=new e.T(t,s,i.R32F,{premultiply:!1}),r}setupElevationDraw(t,i,o){const s=this.painter.context,r=s.gl,a={u_dem:2,u_dem_prev:4,u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_depth_range_unpack:[0,1],u_occluder_half_size:16,u_occlusion_depth_offset:-1e-4,u_exaggeration:0};a.u_exaggeration=this.exaggeration();let n=null,l=null,c=1;if(o&&o.morphing&&this._useVertexMorphing){const e=o.morphing.srcDemTile,i=o.morphing.dstDemTile;c=o.morphing.phase,e&&i&&(this._prepareDemTileUniforms(t,e,a,\"_prev\")&&(l=e),this._prepareDemTileUniforms(t,i,a)&&(n=i));}const h=e=>e&&e.demTexture&&this.painter.linearFloatFilteringSupported()?r.LINEAR:r.NEAREST;let u=null;var d;if(this.enabled?l&&n?(u=n.demTexture,s.activeTexture.set(r.TEXTURE4),l.demTexture.bind(h(l),r.CLAMP_TO_EDGE),a.u_dem_lerp=c):(n=this.terrainTileForTile[t.tileID.key],u=this._prepareDemTileUniforms(t,n,a)?n.demTexture:this.emptyDEMTexture):u=this.emptyDEMTexture,s.activeTexture.set(r.TEXTURE2),u&&(a.u_dem_size=1===(d=u).size[0]?1:d.size[0]-2,u.bind(h(n),r.CLAMP_TO_EDGE)),this.painter.setupDepthForOcclusion(o&&o.useDepthForOcclusion,i,a),o&&o.useMeterToDem&&n){const t=(1<<n.tileID.canonical.z)*e.bH(1,this.painter.transform.center.lat)*this.sourceCache.getSource().tileSize;a.u_meter_to_dem=t;}if(o&&o.labelPlaneMatrixInv&&(a.u_label_plane_matrix_inv=o.labelPlaneMatrixInv),i.setTerrainUniformValues(s,a),\"globe\"===this.painter.transform.projection.name){const e=this.globeUniformValues(this.painter.transform,t.tileID.canonical,o&&o.useDenormalizedUpVectorScale);i.setGlobeUniformValues(s,e);}}globeUniformValues(t,i,o){const s=t.projection;return {u_tile_tl_up:s.upVector(i,0,0),u_tile_tr_up:s.upVector(i,e.ag,0),u_tile_br_up:s.upVector(i,e.ag,e.ag),u_tile_bl_up:s.upVector(i,0,e.ag),u_tile_up_scale:o?e.cL(1):s.upVectorScale(i,t.center.lat,t.worldSize).metersToTile}}renderToBackBuffer(t){const i=this.painter,o=this.painter.context;0!==t.length&&(o.bindFramebuffer.set(null),o.viewport.set([0,0,i.width,i.height]),i.gpuTimingDeferredRenderStart(),this.renderingToTexture=!1,function(t,i,o,s,r){if(\"globe\"===t.transform.projection.name)!function(t,i,o,s,r){const a=t.context,n=a.gl;let l,c;const h=t.transform,u=e.cC(t,a,h),d=(e,i)=>{if(c===i)return;const o=[Ps[i],\"PROJECTION_GLOBE_VIEW\"];u&&o.push(\"CUSTOM_ANTIALIASING\");const s=t.isTileAffectedByFog(e);l=t.getOrCreateProgram(\"globeRaster\",{defines:o,overrideFog:s}),c=i;},_=t.colorModeForRenderPass(),p=new Fi(n.LEQUAL,Fi.ReadWrite,t.depthRangeFor3D);zs.update(r);const f=e.cD(h),m=[e.at(h.center.lng),e.aA(h.center.lat)],g=t.globeSharedBuffers,v=[h.width*e.q.devicePixelRatio,h.height*e.q.devicePixelRatio],y=Float32Array.from(h.globeMatrix),x={useDenormalizedUpVectorScale:!0};{const h=t.transform,u=Ms(h.zoom,i.exaggeration(),i.sourceCache._source.tileSize);c=-1;const b=n.TRIANGLES;for(const c of s){const s=o.getTile(c),w=Bi.disabled,T=i.prevTerrainTileForTile[c.key],E=i.terrainTileForTile[c.key];As(T,E)&&zs.newMorphing(c.key,T,E,r,250),a.activeTexture.set(n.TEXTURE0),s.texture&&s.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE);const S=zs.getMorphValuesForProxy(c.key),C=S?1:0;S&&e.J(x,{morphing:{srcDemTile:S.from,dstDemTile:S.to,phase:e.cB(S.phase)}});const I=e.cE(c.canonical),R=e.cF(I.getCenter().lat),D=e.cG(c.canonical,I,R,h.worldSize/h._pixelsPerMercatorPixel),L=e.bb(e.cH(c.canonical)),A=Ls(h.expandedFarZProjMatrix,y,f,L,e.ae(h.zoom),m,h.frustumCorners.TL,h.frustumCorners.TR,h.frustumCorners.BR,h.frustumCorners.BL,h.globeCenterInViewSpace,h.globeRadius,v,u,h._farZ,D);if(d(c,C),l&&(i.setupElevationDraw(s,l,x),t.uploadCommonUniforms(a,l,c.toUnwrapped()),g)){const[e,i,o]=g.getGridBuffers(R,0!==u);l.draw(t,b,p,w,_,Gi.backCCW,A,\"globe_raster\",e,i,o);}}}if(g&&(t.renderDefaultNorthPole||t.renderDefaultSouthPole)){const r=[\"GLOBE_POLES\",\"PROJECTION_GLOBE_VIEW\"];u&&r.push(\"CUSTOM_ANTIALIASING\"),l=t.getOrCreateProgram(\"globeRaster\",{defines:r});for(const r of s){const{x:s,y:c,z:u}=r.canonical,d=0===c,f=c===(1<<u)-1,[y,b,w,T]=g.getPoleBuffers(u,!1);if(T&&(d||f)){const c=o.getTile(r);a.activeTexture.set(n.TEXTURE0),c.texture&&c.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE);let g=e.cI(u,s,h);const E=e.bb(e.cH(r.canonical)),S=(e,i)=>e.draw(t,n.TRIANGLES,p,Bi.disabled,_,Gi.disabled,Ls(h.expandedFarZProjMatrix,g,g,E,0,m,h.frustumCorners.TL,h.frustumCorners.TR,h.frustumCorners.BR,h.frustumCorners.BL,h.globeCenterInViewSpace,h.globeRadius,v,0,h._farZ),\"globe_pole_raster\",i,w,T);i.setupElevationDraw(c,l,x),t.uploadCommonUniforms(a,l,r.toUnwrapped()),d&&t.renderDefaultNorthPole&&S(l,y),f&&t.renderDefaultSouthPole&&(g=e.ab.mat4.scale(e.ab.mat4.create(),g,[1,-1,1]),S(l,b));}}}}(t,i,o,s,r);else {const a=t.context,n=a.gl;let l,c;const h=t.shadowRenderer,u=Ji(t,t.longestCutoffRange),d=e=>{if(c===e)return;const i=[];i.push(Ps[e]),u.shouldRenderCutoff&&i.push(\"RENDER_CUTOFF\"),h&&(i.push(\"RENDER_SHADOWS\",\"DEPTH_TEXTURE\"),h.useNormalOffset&&i.push(\"NORMAL_OFFSET\")),l=t.getOrCreateProgram(\"terrainRaster\",{defines:i}),c=e;},_=t.colorModeForRenderPass(),p=new Fi(n.LEQUAL,Fi.ReadWrite,t.depthRangeFor3D);zs.update(r);const f=t.transform,m=Ms(f.zoom,i.exaggeration(),i.sourceCache._source.tileSize);let g=[0,0,0];if(h){const e=t.style.directionalLight,i=t.style.ambientLight;e&&i&&(g=ro(t.style,e,i));}{c=-1;const v=n.TRIANGLES,[y,x]=[i.gridIndexBuffer,i.gridSegments];for(const c of s){const s=o.getTile(c),b=Bi.disabled,w=i.prevTerrainTileForTile[c.key],T=i.terrainTileForTile[c.key];As(w,T)&&zs.newMorphing(c.key,w,T,r,250),a.activeTexture.set(n.TEXTURE0),s.texture&&s.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE);const E=zs.getMorphValuesForProxy(c.key),S=E?1:0;let C;E&&(C={morphing:{srcDemTile:E.from,dstDemTile:E.to,phase:e.cB(E.phase)}});const I=Ds(c.projMatrix,Os(c.canonical,f.renderWorldCopies)?m/10:m,g);if(d(S),!l)continue;i.setupElevationDraw(s,l,C);const R=c.toUnwrapped();h&&h.setupShadows(R,l),t.uploadCommonUniforms(a,l,R,null,u),l.draw(t,v,p,b,_,Gi.backCCW,I,\"terrain_raster\",i.gridBuffer,y,x);}}}}(i,this,this.proxySourceCache,t,this._updateTimestamp),this.renderingToTexture=!0,i.gpuTimingDeferredRenderEnd(),t.splice(0,t.length));}renderBatch(t){if(0===this._drapedRenderBatches.length)return t+1;this.renderingToTexture=!0;const i=this.painter,o=this.painter.context,s=this.proxySourceCache,r=this.proxiedCoords[s.id],a=this._drapedRenderBatches.shift(),n=i.style.order,l=[];let c=0;for(const h of r){const r=s.getTileByID(h.proxyTileKey),u=s.proxyCachedFBO[h.key]?s.proxyCachedFBO[h.key][t]:void 0,d=void 0!==u?s.renderCache[u]:this.pool[c++],_=void 0!==u;if(r.texture=d.tex,_&&!d.dirty){l.push(r.tileID);continue}let p;o.bindFramebuffer.set(d.fb.framebuffer),this.renderedToTile=!1,d.dirty&&(o.clear({color:e.aj.transparent,stencil:0}),d.dirty=!1);for(let e=a.start;e<=a.end;++e){const t=i.style._mergedLayers[n[e]];if(t.isHidden(i.transform.zoom))continue;const s=i.style.getLayerSourceCache(t),r=s?this.proxyToSource[h.key][s.id]:[h];if(!r)continue;const a=r;o.viewport.set([0,0,d.fb.width,d.fb.height]),p!==(s?s.id:null)&&(this._setupStencil(d,r,t,s),p=s?s.id:null),i.renderLayer(i,s,t,a);}if(0===this._drapedRenderBatches.length)for(const e of this._pendingGroundEffectLayers){const t=i.style._mergedLayers[n[e]];if(t.isHidden(i.transform.zoom))continue;const s=i.style.getLayerSourceCache(t),r=s?this.proxyToSource[h.key][s.id]:[h];if(!r)continue;const a=r;o.viewport.set([0,0,d.fb.width,d.fb.height]),p!==(s?s.id:null)&&(this._setupStencil(d,r,t,s),p=s?s.id:null),i.renderLayer(i,s,t,a);}this.renderedToTile?(d.dirty=!0,l.push(r.tileID)):_||--c,5===c&&(c=0,this.renderToBackBuffer(l));}return this.renderToBackBuffer(l),this.renderingToTexture=!1,o.bindFramebuffer.set(null),o.viewport.set([0,0,i.width,i.height]),a.end+1}postRender(){}isLayerOrderingCorrect(e){const t=e.order.length;let i=-1,o=t;for(let s=0;s<t;++s)this._style.isLayerDraped(e._mergedLayers[e.order[s]])?i=Math.max(i,s):o=Math.min(o,s);return o>i}getMinElevationBelowMSL(){let e=0;return this._visibleDemTiles.filter((e=>e.dem)).forEach((t=>{e=Math.min(e,t.dem.tree.minimums[0]);})),0===e?e:(e-30)*this._exaggeration}raycast(e,t,i){if(!this._visibleDemTiles)return null;const o=this._visibleDemTiles.filter((e=>e.dem)).map((o=>{const s=o.tileID,r=1<<s.overscaledZ,{x:a,y:n}=s.canonical,l=a/r,c=(a+1)/r,h=n/r,u=(n+1)/r;return {minx:l,miny:h,maxx:c,maxy:u,t:o.dem.tree.raycastRoot(l,h,c,u,e,t,i),tile:o}}));o.sort(((e,t)=>(null!==e.t?e.t:Number.MAX_VALUE)-(null!==t.t?t.t:Number.MAX_VALUE)));for(const s of o){if(null==s.t)return null;const o=s.tile.dem.tree.raycast(s.minx,s.miny,s.maxx,s.maxy,e,t,i);if(null!=o)return o}return null}_createFBO(){const t=this.painter.context,i=t.gl,o=this.drapeBufferSize;t.activeTexture.set(i.TEXTURE0);const s=new e.T(t,{width:o[0],height:o[1],data:null},i.RGBA8);s.bind(i.LINEAR,i.CLAMP_TO_EDGE);const r=t.createFramebuffer(o[0],o[1],!0,null);return r.colorAttachment.set(s.texture),r.depthAttachment=new Rs(t,r.framebuffer),void 0===this._sharedDepthStencil?(this._sharedDepthStencil=t.createRenderbuffer(t.gl.DEPTH_STENCIL,o[0],o[1]),this._stencilRef=0,r.depthAttachment.set(this._sharedDepthStencil),t.clear({stencil:0})):r.depthAttachment.set(this._sharedDepthStencil),t.extTextureFilterAnisotropic&&i.texParameterf(i.TEXTURE_2D,t.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.extTextureFilterAnisotropicMax),{fb:r,tex:s,dirty:!1}}_initFBOPool(){for(;this.pool.length<Math.min(5,this.proxyCoords.length);)this.pool.push(this._createFBO());}_shouldDisableRenderCache(){if(this._debugParams.disableRenderCache)return !0;if(this._style.hasLightTransitions())return !0;for(const e in this._style._mergedSourceCaches)if(this._style._mergedSourceCaches[e].hasTransition())return !0;return this._style.order.some((e=>{const t=this._style._mergedLayers[e],i=t.isHidden(this.painter.transform.zoom);return \"hillshade\"===t.type||\"custom\"===t.type?!i&&t.shouldRedrape():!i&&t.hasTransition()}))}_clearLineLayersFromRenderCache(){let t=!1;for(const e of this._style.getSources())if(e instanceof tt){t=!0;break}if(!t)return;const i={};for(let t=0;t<this._style.order.length;++t){const o=this._style._mergedLayers[this._style.order[t]],s=this._style.getLayerSourceCache(o);if(s&&!i[s.id]&&!o.isHidden(this.painter.transform.zoom)&&\"line\"===o.type&&o.widthExpression()instanceof e.a9){i[s.id]=!0;for(const e of this.proxyCoords){const t=this.proxyToSource[e.key][s.id];if(t)for(const e of t)this._clearRenderCacheForTile(s.id,e);}}}}_clearRasterLayersFromRenderCache(){let e=!1;for(const t in this._style._mergedSourceCaches)if(this._style._mergedSourceCaches[t]._source instanceof it){e=!0;break}if(!e)return;const t={};for(let e=0;e<this._style.order.length;++e){const i=this._style._mergedLayers[this._style.order[e]],o=this._style.getLayerSourceCache(i);if(!o||t[o.id])continue;if(i.isHidden(this.painter.transform.zoom)||\"raster\"!==i.type)continue;const s=i.paint.get(\"raster-fade-duration\");for(const e of this.proxyCoords){const t=this.proxyToSource[e.key][o.id];if(t)for(const e of t){const t=ks(o.getTile(e),o.findLoadedParent(e,0),o,this.painter.transform,s);(1!==t.opacity||0!==t.mix)&&this._clearRenderCacheForTile(o.id,e);}}}}_setupDrapedRenderBatches(){this._style.updateDrapeFirstLayers();const t=this._style.order,i=t.length;if(0===i)return;const o=[];this._pendingGroundEffectLayers=[];let s,r=0,a=this._style._mergedLayers[t[r]];for(;!this._style.isLayerDraped(a)&&a.isHidden(this.painter.transform.zoom)&&++r<i;)a=this._style._mergedLayers[t[r]];for(;r<i;++r){const e=this._style._mergedLayers[t[r]];e.isHidden(this.painter.transform.zoom)||(this._style.isLayerDraped(e)?void 0===s&&(s=r):(\"fill-extrusion\"===e.type&&this._pendingGroundEffectLayers.push(r),void 0!==s&&(o.push({start:s,end:r-1}),s=void 0)));}if(void 0!==s&&o.push({start:s,end:r-1}),0!==o.length){const t=o[o.length-1];this._pendingGroundEffectLayers.every((e=>e>t.end))||e.w(\"fill-extrusion with flood lighting and/or ground ambient occlusion should be moved to be on top of all draped layers.\");}this._drapedRenderBatches=o;}_setupRenderCache(e){const t=this.proxySourceCache;if(this._shouldDisableRenderCache()||this.invalidateRenderCache){if(this.invalidateRenderCache=!1,t.renderCache.length>t.renderCachePool.length){const e=Object.values(t.proxyCachedFBO);t.proxyCachedFBO={};for(let i=0;i<e.length;++i){const o=Object.values(e[i]);t.renderCachePool.push(...o);}}return}this._clearRasterLayersFromRenderCache();const i=this.proxyCoords,o=this._tilesDirty;for(let s=i.length-1;s>=0;s--){const r=i[s];if(t.getTileByID(r.key),void 0!==t.proxyCachedFBO[r.key]){const i=e[r.key],s=this.proxyToSource[r.key];let a=0;for(const e in s){const t=s[e],r=i[e];if(!r||r.length!==t.length||t.some(((t,i)=>t!==r[i]||o[e]&&o[e].hasOwnProperty(t.key)))){a=-1;break}++a;}for(const e in t.proxyCachedFBO[r.key])t.renderCache[t.proxyCachedFBO[r.key][e]].dirty=a<0||a!==Object.values(i).length;}}const s=[...this._drapedRenderBatches];s.sort(((e,t)=>t.end-t.start-(e.end-e.start)));for(const e of s)for(const o of i){if(t.proxyCachedFBO[o.key])continue;let i=t.renderCachePool.pop();void 0===i&&t.renderCache.length<50&&(i=t.renderCache.length,t.renderCache.push(this._createFBO())),void 0!==i&&(t.proxyCachedFBO[o.key]={},t.proxyCachedFBO[o.key][e.start]=i,t.renderCache[i].dirty=!0);}this._tilesDirty={};}_setupStencil(e,t,i,o){if(!o||!this._sourceTilesOverlap[o.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const s=this.painter.context,r=s.gl;if(t.length<=1)return void(this._overlapStencilType=!1);let a;if(i.isTileClipped())a=t.length,this._overlapStencilMode.test={func:r.EQUAL,mask:255},this._overlapStencilType=\"Clip\";else {if(!(t[0].overscaledZ>t[t.length-1].overscaledZ))return void(this._overlapStencilType=!1);a=1,this._overlapStencilMode.test={func:r.GREATER,mask:255},this._overlapStencilType=\"Mask\";}this._stencilRef+a>255&&(s.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=a,this._overlapStencilMode.ref=this._stencilRef,i.isTileClipped()&&this._renderTileClippingMasks(t,this._overlapStencilMode.ref);}clipOrMaskOverlapStencilType(){return \"Clip\"===this._overlapStencilType||\"Mask\"===this._overlapStencilType}stencilModeForRTTOverlap(e){return this.renderingToTexture&&this._overlapStencilType?(\"Clip\"===this._overlapStencilType&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[e.key]),this._overlapStencilMode):Bi.disabled}_renderTileClippingMasks(e,t){const i=this.painter,o=this.painter.context,s=o.gl;i._tileClippingMaskIDs={},o.setColorMode(Oi.disabled),o.setDepthMode(Fi.disabled);const r=i.getOrCreateProgram(\"clippingMask\");for(const o of e){const e=i._tileClippingMaskIDs[o.key]=--t;r.draw(i,s.TRIANGLES,Fi.disabled,new Bi({func:s.ALWAYS,mask:0},e,255,s.KEEP,s.KEEP,s.REPLACE),Oi.disabled,Gi.disabled,Fs(o.projMatrix),\"$clipping\",i.tileExtentBuffer,i.quadTriangleIndexBuffer,i.tileExtentSegments);}}pointCoordinate(t){const i=this.painter.transform;if(t.x<0||t.x>i.width||t.y<0||t.y>i.height)return null;const o=[t.x,t.y,1,1];e.ab.vec4.transformMat4(o,o,i.pixelMatrixInverse),e.ab.vec4.scale(o,o,1/o[3]),o[0]/=i.worldSize,o[1]/=i.worldSize;const s=i._camera.position,r=e.bH(1,i.center.lat),a=[s[0],s[1],s[2]/r,0],n=e.ab.vec3.subtract([],o.slice(0,3),a);e.ab.vec3.normalize(n,n);const l=this.raycast(a,n,this._exaggeration);return null!==l&&l?(e.ab.vec3.scaleAndAdd(a,a,n,l),a[3]=a[2],a[2]*=r,a):null}_setupProxiedCoordsForOrtho(t,i,o){if(t.getSource()instanceof e.aJ)return this._setupProxiedCoordsForImageSource(t,i,o);this._findCoveringTileCache[t.id]=this._findCoveringTileCache[t.id]||{};const s=this.proxiedCoords[t.id]=[],r=this.proxyCoords;for(let e=0;e<r.length;e++){const i=r[e],a=this._findTileCoveringTileID(i,t);if(a){const e=this._createProxiedId(i,a,o[i.key]&&o[i.key][t.id]);s.push(e),this.proxyToSource[i.key][t.id]=[e];}}let a=!1;const n=new Set;for(let e=0;e<i.length;e++){const r=t.getTile(i[e]);if(!r||!r.hasData())continue;const l=this._findTileCoveringTileID(r.tileID,this.proxySourceCache);if(l&&l.tileID.canonical.z!==r.tileID.canonical.z){const e=this.proxyToSource[l.tileID.key][t.id],i=this._createProxiedId(l.tileID,r,o[l.tileID.key]&&o[l.tileID.key][t.id]);e?e.splice(e.length-1,0,i):this.proxyToSource[l.tileID.key][t.id]=[i];const c=this.proxyToSource[l.tileID.key][t.id];n.has(c)||n.add(c),s.push(i),a=!0;}}if(this._sourceTilesOverlap[t.id]=a,a&&this._debugParams.sortTilesHiZFirst)for(const e of n)e.sort(((e,t)=>t.overscaledZ-e.overscaledZ));}_setupProxiedCoordsForImageSource(t,i,o){if(!t.getSource().loaded())return;const s=this.proxiedCoords[t.id]=[],r=this.proxyCoords,a=t.getSource(),n=a.tileID;if(!n)return;const l=new e.P(n.x,n.y)._div(1<<n.z),c=a.coordinates.map(e.aa.fromLngLat).reduce(((e,t)=>(e.min.x=Math.min(e.min.x,t.x-l.x),e.min.y=Math.min(e.min.y,t.y-l.y),e.max.x=Math.max(e.max.x,t.x-l.x),e.max.y=Math.max(e.max.y,t.y-l.y),e)),{min:new e.P(Number.MAX_VALUE,Number.MAX_VALUE),max:new e.P(-Number.MAX_VALUE,-Number.MAX_VALUE)}),h=(t,i)=>{const o=t.wrap+t.canonical.x/(1<<t.canonical.z),s=t.canonical.y/(1<<t.canonical.z),r=e.ag/(1<<t.canonical.z),a=i.wrap+i.canonical.x/(1<<i.canonical.z),n=i.canonical.y/(1<<i.canonical.z);return o+r<a+c.min.x||o>a+c.max.x||s+r<n+c.min.y||s>n+c.max.y};for(let e=0;e<r.length;e++){const a=r[e];for(let e=0;e<i.length;e++){const r=t.getTile(i[e]);if(!r||!r.hasData())continue;if(h(a,r.tileID))continue;const n=this._createProxiedId(a,r,o[a.key]&&o[a.key][t.id]),l=this.proxyToSource[a.key][t.id];l?l.push(n):this.proxyToSource[a.key][t.id]=[n],s.push(n);}}}_createProxiedId(t,i,o){let s=this.orthoMatrix;if(o){const e=o.find((e=>e.key===i.tileID.key));if(e)return e}if(i.tileID.key!==t.key){const o=t.canonical.z-i.tileID.canonical.z;let r,a,n;s=e.ab.mat4.create();const l=i.tileID.wrap-t.wrap<<t.overscaledZ;o>0?(r=e.ag>>o,a=r*((i.tileID.canonical.x<<o)-t.canonical.x+l),n=r*((i.tileID.canonical.y<<o)-t.canonical.y)):(r=e.ag<<-o,a=e.ag*(i.tileID.canonical.x-(t.canonical.x+l<<-o)),n=e.ag*(i.tileID.canonical.y-(t.canonical.y<<-o))),e.ab.mat4.ortho(s,0,r,0,r,0,1),e.ab.mat4.translate(s,s,[a,n,0]);}return new Us(i.tileID,t.key,s)}_findTileCoveringTileID(t,i){let o=i.getTile(t);if(o&&o.hasData())return o;const s=this._findCoveringTileCache[i.id],r=s[t.key];if(o=r?i.getTileByID(r):null,o&&o.hasData()||null===r)return o;let a=o?o.tileID:t,n=a.overscaledZ;const l=i.getSource().minzoom,c=[];if(!r){const s=i.getSource().maxzoom;if(t.canonical.z>=s){const o=t.canonical.z-s;i.getSource().reparseOverscaled?(n=Math.max(t.canonical.z+2,i.transform.tileZoom),a=new e.aG(n,t.wrap,s,t.canonical.x>>o,t.canonical.y>>o)):0!==o&&(n=s,a=new e.aG(n,t.wrap,s,t.canonical.x>>o,t.canonical.y>>o));}a.key!==t.key&&(c.push(a.key),o=i.getTile(a));}const h=e=>{c.forEach((t=>{s[t]=e;})),c.length=0;};for(n-=1;n>=l&&(!o||!o.hasData());n--){o&&h(o.tileID.key);const e=a.calculateScaledKey(n);if(o=i.getTileByID(e),o&&o.hasData())break;const t=s[e];if(null===t)break;void 0===t?c.push(e):o=i.getTileByID(t);}return h(o?o.tileID.key:null),o&&o.hasData()?o:null}findDEMTileFor(e){return this.enabled?this._findTileCoveringTileID(e,this.sourceCache):null}prepareDrawTile(){this.renderedToTile=!0;}_clearRenderCacheForTile(e,t){let i=this._tilesDirty[e];i||(i=this._tilesDirty[e]={}),i[t.key]=!0;}}function js(t,i,o){const s=function(t,i,o){const s=e.ab.vec3.dot(i,t),r=e.ab.vec3.dot(o,[.2126,.7152,.0722]),a=(e,t,i)=>(1-i)*e+i*t,n=a(1-.3*Math.min(r,1),1,Math.min(s+1,1));return a(.92,1,Math.asin(e.aw(i[2],-1,1))/Math.PI+.5)*n}(t,[0,0,1],i),r=[0,0,0];e.ab.vec3.scale(r,o.slice(0,3),s);const a=[0,0,0];e.ab.vec3.scale(a,i.slice(0,3),t[2]);const n=[0,0,0];return e.ab.vec3.add(n,r,a),e.cf(n)}const Vs=[\"fill\",\"fillOutline\",\"fillPattern\",\"line\",\"linePattern\",\"background\",\"backgroundPattern\",\"hillshade\",\"raster\"],qs=[\"stars\",\"rainParticle\",\"snowParticle\",\"fillExtrusion\",\"fillExtrusionGroundEffect\",\"model\",\"symbol\"];class Hs{static cacheKey(e,t,i,o){let s=`${t}${o?o.cacheKey:\"\"}`;for(const t of i)e.usedDefines.includes(t)&&(s+=`/${t}`);return s}constructor(t,i,o,s,r,a){const n=t.gl;this.program=n.createProgram(),this.configuration=s,this.name=i,this.fixedDefines=[...a];const l=s?s.getBinderAttributes():[],c=(o.staticAttributes||[]).concat(l);let h=s?s.defines():[];h=h.concat(a.map((e=>`#define ${e}`)));const u=\"#version 300 es\\n\";let d=u+h.concat(\"precision mediump float;\",ko,Fo.fragmentSource).join(\"\\n\");for(const e of o.fragmentIncludes)d+=`\\n${Mo[e]}`;d+=`\\n${o.fragmentSource}`;let _=u+h.concat(\"precision highp float;\",ko,Fo.vertexSource).join(\"\\n\");for(const e of o.vertexIncludes)_+=`\\n${Mo[e]}`;this.forceManualRenderingForInstanceIDShaders=t.forceManualRenderingForInstanceIDShaders&&-1!==o.vertexSource.indexOf(\"gl_InstanceID\"),this.forceManualRenderingForInstanceIDShaders&&(_+=\"\\nuniform int u_instanceID;\\n\"),_+=`\\n${o.vertexSource}`,this.forceManualRenderingForInstanceIDShaders&&(_=_.replaceAll(\"gl_InstanceID\",\"u_instanceID\"));const p=n.createShader(n.FRAGMENT_SHADER);if(n.isContextLost())return void(this.failedToCreate=!0);n.shaderSource(p,d),n.compileShader(p),n.attachShader(this.program,p);const f=n.createShader(n.VERTEX_SHADER);if(n.isContextLost())this.failedToCreate=!0;else {n.shaderSource(f,_),n.compileShader(f),n.attachShader(this.program,f),this.attributes={},this.numAttributes=c.length;for(let e=0;e<this.numAttributes;e++)if(c[e]){const t=c[e].startsWith(\"a_\")?c[e]:`a_${c[e]}`;n.bindAttribLocation(this.program,e,t),this.attributes[t]=e;}n.linkProgram(this.program),n.deleteShader(f),n.deleteShader(p),this.fixedUniforms=r(t),this.binderUniforms=s?s.getUniforms(t):[],this.forceManualRenderingForInstanceIDShaders&&(this.instancingUniforms=(t=>({u_instanceID:new e.bN(t)}))(t)),(a.includes(\"TERRAIN\")||-1!==i.indexOf(\"symbol\")||-1!==i.indexOf(\"circle\"))&&(this.terrainUniforms=(t=>({u_dem:new e.bN(t),u_dem_prev:new e.bN(t),u_dem_tl:new e.bK(t),u_dem_scale:new e.bM(t),u_dem_tl_prev:new e.bK(t),u_dem_scale_prev:new e.bM(t),u_dem_size:new e.bM(t),u_dem_lerp:new e.bM(t),u_exaggeration:new e.bM(t),u_depth:new e.bN(t),u_depth_size_inv:new e.bK(t),u_depth_range_unpack:new e.bK(t),u_occluder_half_size:new e.bM(t),u_occlusion_depth_offset:new e.bM(t),u_meter_to_dem:new e.bM(t),u_label_plane_matrix_inv:new e.bJ(t)}))(t)),a.includes(\"GLOBE\")&&(this.globeUniforms=(t=>({u_tile_tl_up:new e.bL(t),u_tile_tr_up:new e.bL(t),u_tile_br_up:new e.bL(t),u_tile_bl_up:new e.bL(t),u_tile_up_scale:new e.bM(t)}))(t)),a.includes(\"FOG\")&&(this.fogUniforms=(t=>({u_fog_matrix:new e.bJ(t),u_fog_range:new e.bK(t),u_fog_color:new e.ca(t),u_fog_horizon_blend:new e.bM(t),u_fog_vertical_limit:new e.bK(t),u_fog_temporal_offset:new e.bM(t),u_frustum_tl:new e.bL(t),u_frustum_tr:new e.bL(t),u_frustum_br:new e.bL(t),u_frustum_bl:new e.bL(t),u_globe_pos:new e.bL(t),u_globe_radius:new e.bM(t),u_globe_transition:new e.bM(t),u_is_globe:new e.bN(t),u_viewport:new e.bK(t)}))(t)),a.includes(\"RENDER_CUTOFF\")&&(this.cutoffUniforms=(t=>({u_cutoff_params:new e.ca(t)}))(t)),a.includes(\"LIGHTING_3D_MODE\")&&(this.lightsUniforms=(t=>({u_lighting_ambient_color:new e.bL(t),u_lighting_directional_dir:new e.bL(t),u_lighting_directional_color:new e.bL(t),u_ground_radiance:new e.bL(t)}))(t)),a.includes(\"RENDER_SHADOWS\")&&(this.shadowUniforms=(t=>({u_light_matrix_0:new e.bJ(t),u_light_matrix_1:new e.bJ(t),u_fade_range:new e.bK(t),u_shadow_normal_offset:new e.bL(t),u_shadow_intensity:new e.bM(t),u_shadow_texel_size:new e.bM(t),u_shadow_map_resolution:new e.bM(t),u_shadow_direction:new e.bL(t),u_shadow_bias:new e.bL(t),u_shadowmap_0:new e.bN(t),u_shadowmap_1:new e.bN(t)}))(t));}}setTerrainUniformValues(e,t){if(!this.terrainUniforms)return;const i=this.terrainUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e]&&i[e].set(this.program,e,t[e]);}}setGlobeUniformValues(e,t){if(!this.globeUniforms)return;const i=this.globeUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e]&&i[e].set(this.program,e,t[e]);}}setFogUniformValues(e,t){if(!this.fogUniforms)return;const i=this.fogUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e].set(this.program,e,t[e]);}}setCutoffUniformValues(e,t){if(!this.cutoffUniforms)return;const i=this.cutoffUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e].set(this.program,e,t[e]);}}setLightsUniformValues(e,t){if(!this.lightsUniforms)return;const i=this.lightsUniforms;if(!this.failedToCreate){e.program.set(this.program);for(const e in t)i[e].set(this.program,e,t[e]);}}setShadowUniformValues(e,t){if(this.failedToCreate||!this.shadowUniforms)return;const i=this.shadowUniforms;e.program.set(this.program);for(const e in t)i[e].set(this.program,e,t[e]);}_drawDebugWireframe(t,i,o,s,r,a,n,l,c,h){const u=t.options.wireframe;if(!1===u.terrain&&!1===u.layers2D&&!1===u.layers3D)return;const d=t.context;if(!(()=>!(!u.terrain||\"terrainRaster\"!==this.name&&\"globeRaster\"!==this.name)||!(!u.layers2D||t._terrain&&t._terrain.renderingToTexture||!Vs.includes(this.name))||!(!u.layers3D||!qs.includes(this.name)))())return;const _=d.gl,p=t.wireframeDebugCache.getLinesFromTrianglesBuffer(t.frameCounter,r,d);if(!p)return;const f=[...this.fixedDefines];f.push(\"DEBUG_WIREFRAME\");const m=t.getOrCreateProgram(this.name,{config:this.configuration,defines:f});d.program.set(m.program);const g=(e,t,i)=>{if(t[e]&&i[e])for(const o in t[e])i[e][o]&&i[e][o].set(i.program,o,t[e][o].current);};c&&c.setUniforms(m.program,d,m.binderUniforms,n,{zoom:l}),g(\"fixedUniforms\",this,m),g(\"terrainUniforms\",this,m),g(\"globeUniforms\",this,m),g(\"fogUniforms\",this,m),g(\"lightsUniforms\",this,m),g(\"shadowUniforms\",this,m),p.bind(),d.setColorMode(new Oi([_.ONE,_.ONE_MINUS_SRC_ALPHA,_.ZERO,_.ONE],e.aj.transparent,[!0,!0,!0,!1])),d.setDepthMode(new Fi(i.func===_.LESS?_.LEQUAL:i.func,Fi.ReadOnly,i.range)),d.setStencilMode(Bi.disabled);const v=3*a.primitiveLength*2,y=3*a.primitiveOffset*2*2;if(this.forceManualRenderingForInstanceIDShaders){const e=h||1;for(let t=0;t<e;++t)m.instancingUniforms.u_instanceID.set(this.program,\"u_instanceID\",t),_.drawElements(_.LINES,v,_.UNSIGNED_SHORT,y);}else h&&h>1?_.drawElementsInstanced(_.LINES,v,_.UNSIGNED_SHORT,y,h):_.drawElements(_.LINES,v,_.UNSIGNED_SHORT,y);r.bind(),d.program.set(this.program),d.setDepthMode(i),d.setStencilMode(o),d.setColorMode(s);}checkUniforms(e,t,i){if(this.fixedDefines.includes(t))for(const o of Object.keys(i))if(!i[o].initialized)throw new Error(`Program '${this.name}', from draw '${e}': uniform ${o} not set but required by ${t} being defined`)}draw(e,t,i,o,s,r,a,n,l,c,h,u,d,_,p,f){const m=e.context,g=m.gl;if(this.failedToCreate)return;m.program.set(this.program),m.setDepthMode(i),m.setStencilMode(o),m.setColorMode(s),m.setCullFace(r);for(const e of Object.keys(this.fixedUniforms))this.fixedUniforms[e].set(this.program,e,a[e]);_&&_.setUniforms(this.program,m,this.binderUniforms,u,{zoom:d});const v={[g.POINTS]:1,[g.LINES]:2,[g.TRIANGLES]:3,[g.LINE_STRIP]:1}[t];this.checkUniforms(n,\"RENDER_SHADOWS\",this.shadowUniforms);const y=f&&f>0?1:void 0;for(const r of h.get()){const a=r.vaos||(r.vaos={});if((a[n]||(a[n]=new Go)).bind(m,this,l,_?_.getPaintVertexBuffers():[],c,r.vertexOffset,p||[],y),this.forceManualRenderingForInstanceIDShaders){const e=f||1;for(let i=0;i<e;++i)this.instancingUniforms.u_instanceID.set(this.program,\"u_instanceID\",i),c?g.drawElements(t,r.primitiveLength*v,g.UNSIGNED_SHORT,r.primitiveOffset*v*2):g.drawArrays(t,r.vertexOffset,r.vertexLength);}else f&&f>1?g.drawElementsInstanced(t,r.primitiveLength*v,g.UNSIGNED_SHORT,r.primitiveOffset*v*2,f):c?g.drawElements(t,r.primitiveLength*v,g.UNSIGNED_SHORT,r.primitiveOffset*v*2):g.drawArrays(t,r.vertexOffset,r.vertexLength);t===g.TRIANGLES&&c&&this._drawDebugWireframe(e,i,o,s,c,r,u,d,_,f);}}}function Zs(t,i){const o=Math.pow(2,i.tileID.overscaledZ),s=i.tileSize*Math.pow(2,t.transform.tileZoom)/o,r=s*(i.tileID.canonical.x+i.tileID.wrap*o),a=s*i.tileID.canonical.y;return {u_image:0,u_texsize:i.imageAtlasTexture?i.imageAtlasTexture.size:[0,0],u_tile_units_to_pixels:1/e.ar(i,1,t.transform.tileZoom),u_pixel_coord_upper:[r>>16,a>>16],u_pixel_coord_lower:[65535&r,65535&a]}}const Ws={terrain:0,flat:1},$s=e.ab.mat4.create(),Xs=(t,i,o,s,r,a,n,l,c,h,u,d,_,p,f,m,g,v)=>{const y=i.style.light,x=y.properties.get(\"position\"),b=[x.x,x.y,x.z],w=e.ab.mat3.create();\"viewport\"===y.properties.get(\"anchor\")&&(e.ab.mat3.fromRotation(w,-i.transform.angle),e.ab.vec3.transformMat3(b,b,w));const T=y.properties.get(\"color\"),E=i.transform,S={u_matrix:t,u_lightpos:b,u_lightintensity:y.properties.get(\"intensity\"),u_lightcolor:[T.r,T.g,T.b],u_vertical_gradient:+o,u_opacity:s,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:$s,u_merc_center:[0,0],u_up_dir:[0,0,0],u_height_lift:0,u_height_type:Ws[h],u_base_type:Ws[u],u_ao:r,u_edge_radius:a,u_width_scale:n,u_flood_light_color:f,u_vertical_scale:m,u_flood_light_intensity:g,u_ground_shadow_factor:v};return \"globe\"===E.projection.name&&(S.u_tile_id=[l.canonical.x,l.canonical.y,1<<l.canonical.z],S.u_zoom_transition=d,S.u_inv_rot_matrix=p,S.u_merc_center=_,S.u_up_dir=E.projection.upVector(new e.bT(0,0,0),_[0]*e.ag,_[1]*e.ag),S.u_height_lift=c),S},Ks=(e,t,i,o,s,r)=>({u_matrix:e,u_edge_radius:t,u_width_scale:i,u_vertical_scale:o,u_height_type:Ws[s],u_base_type:Ws[r]}),Ys=(t,i,o,s,r,a,n,l,c,h,u,d,_,p,f,m,g)=>{const v=Xs(t,i,o,s,r,a,n,l,h,u,d,_,p,f,m,g,1,[0,0,0]),y={u_height_factor:-Math.pow(2,l.overscaledZ)/c.tileSize/8};return e.l(v,Zs(i,c),y)},Js=(e,t)=>({u_matrix:e,u_emissive_strength:t}),Qs=(t,i,o,s)=>e.l(Js(t,i),Zs(o,s)),er=(e,t,i)=>({u_matrix:e,u_world:i,u_emissive_strength:t}),tr=(t,i,o,s,r)=>e.l(Qs(t,i,o,s),{u_world:r}),ir=(t,i,o,s)=>{const r=e.ag/o.tileSize;return {u_matrix:t,u_camera_to_center_distance:i.getCameraToCenterDistance(s),u_extrude_scale:[i.pixelsToGLUnits[0]/r,i.pixelsToGLUnits[1]/r]}},or=(e,t,i=1)=>({u_matrix:e,u_color:t.toRenderColor(null),u_overlay:0,u_overlay_scale:i}),sr=e.ab.mat4.create(),rr=(t,i,o,s,r,a,n)=>{const l=t.transform,c=\"globe\"===l.projection.name,h=c?e.cN(l.zoom,i.canonical)*l._pixelsPerMercatorPixel:e.ar(o,1,a),u={u_matrix:i.projMatrix,u_extrude_scale:h,u_intensity:n,u_inv_rot_matrix:sr,u_merc_center:[0,0],u_tile_id:[0,0,0],u_zoom_transition:0,u_up_dir:[0,0,0]};if(c){u.u_inv_rot_matrix=s,u.u_merc_center=r,u.u_tile_id=[i.canonical.x,i.canonical.y,1<<i.canonical.z],u.u_zoom_transition=e.ae(l.zoom);const t=r[0]*e.ag,o=r[1]*e.ag;u.u_up_dir=l.projection.upVector(new e.bT(0,0,0),t,o);}return u};function ar(e,[t,i,o,s],[r,a]){if(r===a)return [0,0,0,0];const n=255*(e-1)/(e*(a-r));return [t*n,i*n,o*n,s*n]}function nr(e,t,[i,o]){return i===o?0:.5/e+(t-i)*(e-1)/(e*(o-i))}const lr=(t,i,o,s,r,a,n,l,c,h,u,d,_,p,f,m,g,v,y,x,b)=>({u_matrix:t,u_normalize_matrix:i,u_globe_matrix:o,u_merc_matrix:s,u_grid_matrix:r,u_tl_parent:a,u_scale_parent:h,u_fade_t:u.mix,u_opacity:u.opacity*d.paint.get(\"raster-opacity\"),u_image0:0,u_image1:1,u_brightness_low:d.paint.get(\"raster-brightness-min\"),u_brightness_high:d.paint.get(\"raster-brightness-max\"),u_saturation_factor:e.cO(d.paint.get(\"raster-saturation\")),u_contrast_factor:e.cP(d.paint.get(\"raster-contrast\")),u_spin_weights:cr(d.paint.get(\"raster-hue-rotate\")),u_perspective_transform:_,u_raster_elevation:p,u_zoom_transition:n,u_merc_center:l,u_cutoff_params:c,u_colorization_mix:ar(e.cQ,m,v),u_colorization_offset:nr(e.cQ,g,v),u_color_ramp:f,u_texture_offset:[x/(y+2*x),y/(y+2*x)],u_texture_res:[y+2*x,y+2*x],u_emissive_strength:b});function cr(e){e*=Math.PI/180;const t=Math.sin(e),i=Math.cos(e);return [(2*i+1)/3,(-Math.sqrt(3)*t-i+1)/3,(Math.sqrt(3)*t-i+1)/3]}const hr=.05,ur=(e,t,i,o,s,r,a,n,l,c,h,u)=>({u_matrix:e,u_normalize_matrix:t,u_globe_matrix:i,u_merc_matrix:o,u_grid_matrix:s,u_tl_parent:r,u_scale_parent:c,u_fade_t:h.mix,u_opacity:h.opacity,u_image0:0,u_image1:1,u_raster_elevation:u,u_zoom_transition:a,u_merc_center:n,u_cutoff_params:l}),dr=(e,t,i,o,s,r,a,n,l,c)=>({u_particle_texture:e,u_particle_texture_side_len:t,u_tile_offset:i,u_velocity:o,u_color_ramp:r,u_velocity_res:s,u_max_speed:a,u_uv_offset:n,u_data_scale:[255*l[0],255*l[1]],u_data_offset:c,u_particle_pos_scale:1.1,u_particle_pos_offset:[hr,hr]}),_r=(e,t,i,o,s,r,a,n,l,c)=>({u_particle_texture:e,u_particle_texture_side_len:t,u_velocity:i,u_velocity_res:o,u_max_speed:s,u_speed_factor:r,u_reset_rate:a,u_rand_seed:Math.random(),u_uv_offset:n,u_data_scale:[255*l[0],255*l[1]],u_data_offset:c,u_particle_pos_scale:1.1,u_particle_pos_offset:[hr,hr]}),pr=e.ab.mat4.create(),fr=(t,i,o,s,r,a,n,l,c,h,u,d,_,p,f,m,g,v,y,x,b,w)=>{const T=r.transform,E={u_is_size_zoom_constant:+(\"constant\"===t||\"source\"===t),u_is_size_feature_constant:+(\"constant\"===t||\"camera\"===t),u_size_t:i?i.uSizeT:0,u_size:i?i.uSize:0,u_camera_to_center_distance:T.getCameraToCenterDistance(y),u_rotate_symbol:+o,u_aspect_ratio:T.width/T.height,u_fade_change:r.options.fadeDuration?r.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:n,u_coord_matrix:l,u_is_text:+h,u_elevation_from_sea:c?1:0,u_pitch_with_map:+s,u_texsize:u,u_texsize_icon:d,u_texture:0,u_texture_icon:1,u_tile_id:[0,0,0],u_zoom_transition:0,u_inv_rot_matrix:pr,u_merc_center:[0,0],u_camera_forward:[0,0,0],u_ecef_origin:[0,0,0],u_tile_matrix:pr,u_up_vector:[0,-1,0],u_color_adj_mat:x,u_icon_transition:b||0,u_gamma_scale:s?r.transform.getCameraToCenterDistance(y)*Math.cos(r.terrain?0:r.transform._pitch):1,u_device_pixel_ratio:e.q.devicePixelRatio,u_is_halo:+_,u_scale_factor:w||1};return \"globe\"===y.name&&(E.u_tile_id=[p.canonical.x,p.canonical.y,1<<p.canonical.z],E.u_zoom_transition=f,E.u_inv_rot_matrix=g,E.u_merc_center=m,E.u_camera_forward=T._camera.forward(),E.u_ecef_origin=e.cR(T.globeMatrix,p.toUnwrapped()),E.u_tile_matrix=Float32Array.from(T.globeMatrix),E.u_up_vector=v),E},mr=(e,t,i,o)=>({u_matrix:e,u_emissive_strength:t,u_opacity:i,u_color:o}),gr=(t,i,o,s,r,a,n,l,c)=>e.l(function(t,i,o,s,r,a){const{width:n,height:l}=s.imageManager.getPixelSize(i),c=Math.pow(2,a.tileID.overscaledZ),h=a.tileSize*Math.pow(2,s.transform.tileZoom)/c,u=h*(a.tileID.canonical.x+a.tileID.wrap*c),d=h*a.tileID.canonical.y;return {u_image:0,u_pattern_tl:o.tl,u_pattern_br:o.br,u_texsize:[n,l],u_pattern_size:o.displaySize,u_pattern_units_to_pixels:r?[s.transform.width,-1*s.transform.height]:[1/e.ar(a,1,s.transform.tileZoom),1/e.ar(a,1,s.transform.tileZoom)],u_pixel_coord_upper:[u>>16,d>>16],u_pixel_coord_lower:[65535&u,65535&d]}}(0,a,n,s,l,c),{u_matrix:t,u_emissive_strength:i,u_opacity:o}),vr=new Float32Array(e.ab.mat4.identity([])),yr=(t,i,o,s,r,a,n,l,c,h,u,d,_,p=[0,0,0],f)=>{const m=r.style.light,g=m.properties.get(\"position\"),v=[-g.x,-g.y,g.z],y=e.ab.mat3.create();\"viewport\"===m.properties.get(\"anchor\")&&(e.ab.mat3.fromRotation(y,-r.transform.angle),e.ab.vec3.transformMat3(v,v,y));const x=\"MASK\"===u.alphaMode,b=m.properties.get(\"color\").toRenderColor(null),w=_.paint.get(\"model-ambient-occlusion-intensity\"),T=_.paint.get(\"model-color\").constantOr(e.aj.white).toRenderColor(null),E=_.paint.get(\"model-color-mix-intensity\").constantOr(0);return {u_matrix:t,u_lighting_matrix:i,u_normal_matrix:o,u_node_matrix:s||vr,u_lightpos:v,u_lightintensity:m.properties.get(\"intensity\"),u_lightcolor:[b.r,b.g,b.b],u_camera_pos:p,u_opacity:a,u_baseTextureIsAlpha:0,u_alphaMask:+x,u_alphaCutoff:u.alphaCutoff,u_baseColorFactor:[n.r,n.g,n.b,n.a],u_emissiveFactor:[l[0],l[1],l[2],1],u_metallicFactor:c,u_roughnessFactor:h,u_baseColorTexture:Wi.BaseColor,u_metallicRoughnessTexture:Wi.MetallicRoughness,u_normalTexture:Wi.Normal,u_occlusionTexture:Wi.Occlusion,u_emissionTexture:Wi.Emission,u_lutTexture:Wi.LUT,u_color_mix:[T.r,T.g,T.b,E],u_aoIntensity:w,u_emissive_strength:d,u_occlusionTextureTransform:f||[0,0,0,0]}},xr=(e,t=vr,i=vr)=>({u_matrix:e,u_instance:t,u_node_matrix:i}),br={fillExtrusion:t=>({u_matrix:new e.bJ(t),u_lightpos:new e.bL(t),u_lightintensity:new e.bM(t),u_lightcolor:new e.bL(t),u_vertical_gradient:new e.bM(t),u_opacity:new e.bM(t),u_edge_radius:new e.bM(t),u_width_scale:new e.bM(t),u_ao:new e.bK(t),u_height_type:new e.bN(t),u_base_type:new e.bN(t),u_tile_id:new e.bL(t),u_zoom_transition:new e.bM(t),u_inv_rot_matrix:new e.bJ(t),u_merc_center:new e.bK(t),u_up_dir:new e.bL(t),u_height_lift:new e.bM(t),u_flood_light_color:new e.bL(t),u_vertical_scale:new e.bM(t),u_flood_light_intensity:new e.bM(t),u_ground_shadow_factor:new e.bL(t)}),fillExtrusionDepth:t=>({u_matrix:new e.bJ(t),u_edge_radius:new e.bM(t),u_width_scale:new e.bM(t),u_vertical_scale:new e.bM(t),u_height_type:new e.bN(t),u_base_type:new e.bN(t)}),fillExtrusionPattern:t=>({u_matrix:new e.bJ(t),u_lightpos:new e.bL(t),u_lightintensity:new e.bM(t),u_lightcolor:new e.bL(t),u_vertical_gradient:new e.bM(t),u_height_factor:new e.bM(t),u_edge_radius:new e.bM(t),u_width_scale:new e.bM(t),u_ao:new e.bK(t),u_height_type:new e.bN(t),u_base_type:new e.bN(t),u_tile_id:new e.bL(t),u_zoom_transition:new e.bM(t),u_inv_rot_matrix:new e.bJ(t),u_merc_center:new e.bK(t),u_up_dir:new e.bL(t),u_height_lift:new e.bM(t),u_image:new e.bN(t),u_texsize:new e.bK(t),u_pixel_coord_upper:new e.bK(t),u_pixel_coord_lower:new e.bK(t),u_tile_units_to_pixels:new e.bM(t),u_opacity:new e.bM(t)}),fillExtrusionGroundEffect:t=>({u_matrix:new e.bJ(t),u_opacity:new e.bM(t),u_ao_pass:new e.bM(t),u_meter_to_tile:new e.bM(t),u_ao:new e.bK(t),u_flood_light_intensity:new e.bM(t),u_flood_light_color:new e.bL(t),u_attenuation:new e.bM(t),u_edge_radius:new e.bM(t),u_fb:new e.bN(t),u_fb_size:new e.bM(t),u_dynamic_offset:new e.bM(t)}),fill:t=>({u_matrix:new e.bJ(t),u_emissive_strength:new e.bM(t)}),fillPattern:t=>({u_matrix:new e.bJ(t),u_emissive_strength:new e.bM(t),u_image:new e.bN(t),u_texsize:new e.bK(t),u_pixel_coord_upper:new e.bK(t),u_pixel_coord_lower:new e.bK(t),u_tile_units_to_pixels:new e.bM(t)}),fillOutline:t=>({u_matrix:new e.bJ(t),u_emissive_strength:new e.bM(t),u_world:new e.bK(t)}),fillOutlinePattern:t=>({u_matrix:new e.bJ(t),u_emissive_strength:new e.bM(t),u_world:new e.bK(t),u_image:new e.bN(t),u_texsize:new e.bK(t),u_pixel_coord_upper:new e.bK(t),u_pixel_coord_lower:new e.bK(t),u_tile_units_to_pixels:new e.bM(t)}),circle:e.cS,collisionBox:t=>({u_matrix:new e.bJ(t),u_camera_to_center_distance:new e.bM(t),u_extrude_scale:new e.bK(t)}),collisionCircle:t=>({u_matrix:new e.bJ(t),u_inv_matrix:new e.bJ(t),u_camera_to_center_distance:new e.bM(t),u_viewport_size:new e.bK(t)}),debug:t=>({u_color:new e.cz(t),u_matrix:new e.bJ(t),u_overlay:new e.bN(t),u_overlay_scale:new e.bM(t)}),clippingMask:t=>({u_matrix:new e.bJ(t)}),heatmap:t=>({u_extrude_scale:new e.bM(t),u_intensity:new e.bM(t),u_matrix:new e.bJ(t),u_inv_rot_matrix:new e.bJ(t),u_merc_center:new e.bK(t),u_tile_id:new e.bL(t),u_zoom_transition:new e.bM(t),u_up_dir:new e.bL(t)}),heatmapTexture:t=>({u_image:new e.bN(t),u_color_ramp:new e.bN(t),u_opacity:new e.bM(t)}),hillshade:t=>({u_matrix:new e.bJ(t),u_image:new e.bN(t),u_latrange:new e.bK(t),u_light:new e.bK(t),u_shadow:new e.cz(t),u_highlight:new e.cz(t),u_emissive_strength:new e.bM(t),u_accent:new e.cz(t)}),hillshadePrepare:t=>({u_matrix:new e.bJ(t),u_image:new e.bN(t),u_dimension:new e.bK(t),u_zoom:new e.bM(t)}),line:e.cT,linePattern:e.cU,raster:t=>({u_matrix:new e.bJ(t),u_normalize_matrix:new e.bJ(t),u_globe_matrix:new e.bJ(t),u_merc_matrix:new e.bJ(t),u_grid_matrix:new e.cA(t),u_tl_parent:new e.bK(t),u_scale_parent:new e.bM(t),u_fade_t:new e.bM(t),u_opacity:new e.bM(t),u_image0:new e.bN(t),u_image1:new e.bN(t),u_brightness_low:new e.bM(t),u_brightness_high:new e.bM(t),u_saturation_factor:new e.bM(t),u_contrast_factor:new e.bM(t),u_spin_weights:new e.bL(t),u_perspective_transform:new e.bK(t),u_raster_elevation:new e.bM(t),u_zoom_transition:new e.bM(t),u_merc_center:new e.bK(t),u_cutoff_params:new e.ca(t),u_colorization_mix:new e.ca(t),u_colorization_offset:new e.bM(t),u_color_ramp:new e.bN(t),u_texture_offset:new e.bK(t),u_texture_res:new e.bK(t),u_emissive_strength:new e.bM(t)}),rasterParticle:t=>({u_matrix:new e.bJ(t),u_normalize_matrix:new e.bJ(t),u_globe_matrix:new e.bJ(t),u_merc_matrix:new e.bJ(t),u_grid_matrix:new e.cA(t),u_tl_parent:new e.bK(t),u_scale_parent:new e.bM(t),u_fade_t:new e.bM(t),u_opacity:new e.bM(t),u_image0:new e.bN(t),u_image1:new e.bN(t),u_raster_elevation:new e.bM(t),u_zoom_transition:new e.bM(t),u_merc_center:new e.bK(t),u_cutoff_params:new e.ca(t)}),rasterParticleTexture:t=>({u_texture:new e.bN(t),u_opacity:new e.bM(t)}),rasterParticleDraw:t=>({u_particle_texture:new e.bN(t),u_particle_texture_side_len:new e.bM(t),u_tile_offset:new e.bK(t),u_velocity:new e.bN(t),u_color_ramp:new e.bN(t),u_velocity_res:new e.bK(t),u_max_speed:new e.bM(t),u_uv_offset:new e.bK(t),u_data_scale:new e.bK(t),u_data_offset:new e.bM(t),u_particle_pos_scale:new e.bM(t),u_particle_pos_offset:new e.bK(t)}),rasterParticleUpdate:t=>({u_particle_texture:new e.bN(t),u_particle_texture_side_len:new e.bM(t),u_velocity:new e.bN(t),u_velocity_res:new e.bK(t),u_max_speed:new e.bM(t),u_speed_factor:new e.bM(t),u_reset_rate:new e.bM(t),u_rand_seed:new e.bM(t),u_uv_offset:new e.bK(t),u_data_scale:new e.bK(t),u_data_offset:new e.bM(t),u_particle_pos_scale:new e.bM(t),u_particle_pos_offset:new e.bK(t)}),symbol:t=>({u_is_size_zoom_constant:new e.bN(t),u_is_size_feature_constant:new e.bN(t),u_size_t:new e.bM(t),u_size:new e.bM(t),u_camera_to_center_distance:new e.bM(t),u_rotate_symbol:new e.bN(t),u_aspect_ratio:new e.bM(t),u_fade_change:new e.bM(t),u_matrix:new e.bJ(t),u_label_plane_matrix:new e.bJ(t),u_coord_matrix:new e.bJ(t),u_is_text:new e.bN(t),u_elevation_from_sea:new e.bN(t),u_pitch_with_map:new e.bN(t),u_texsize:new e.bK(t),u_texsize_icon:new e.bK(t),u_texture:new e.bN(t),u_texture_icon:new e.bN(t),u_gamma_scale:new e.bM(t),u_device_pixel_ratio:new e.bM(t),u_tile_id:new e.bL(t),u_zoom_transition:new e.bM(t),u_inv_rot_matrix:new e.bJ(t),u_merc_center:new e.bK(t),u_camera_forward:new e.bL(t),u_tile_matrix:new e.bJ(t),u_up_vector:new e.bL(t),u_ecef_origin:new e.bL(t),u_is_halo:new e.bN(t),u_icon_transition:new e.bM(t),u_color_adj_mat:new e.bJ(t),u_scale_factor:new e.bM(t)}),background:t=>({u_matrix:new e.bJ(t),u_emissive_strength:new e.bM(t),u_opacity:new e.bM(t),u_color:new e.cz(t)}),backgroundPattern:t=>({u_matrix:new e.bJ(t),u_emissive_strength:new e.bM(t),u_opacity:new e.bM(t),u_image:new e.bN(t),u_pattern_tl:new e.bK(t),u_pattern_br:new e.bK(t),u_texsize:new e.bK(t),u_pattern_size:new e.bK(t),u_pixel_coord_upper:new e.bK(t),u_pixel_coord_lower:new e.bK(t),u_pattern_units_to_pixels:new e.bK(t)}),terrainRaster:t=>({u_matrix:new e.bJ(t),u_image0:new e.bN(t),u_skirt_height:new e.bM(t),u_ground_shadow_factor:new e.bL(t)}),skybox:t=>({u_matrix:new e.bJ(t),u_sun_direction:new e.bL(t),u_cubemap:new e.bN(t),u_opacity:new e.bM(t),u_temporal_offset:new e.bM(t)}),skyboxGradient:t=>({u_matrix:new e.bJ(t),u_color_ramp:new e.bN(t),u_center_direction:new e.bL(t),u_radius:new e.bM(t),u_opacity:new e.bM(t),u_temporal_offset:new e.bM(t)}),skyboxCapture:t=>({u_matrix_3f:new e.cA(t),u_sun_direction:new e.bL(t),u_sun_intensity:new e.bM(t),u_color_tint_r:new e.ca(t),u_color_tint_m:new e.ca(t),u_luminance:new e.bM(t)}),globeRaster:t=>({u_proj_matrix:new e.bJ(t),u_globe_matrix:new e.bJ(t),u_normalize_matrix:new e.bJ(t),u_merc_matrix:new e.bJ(t),u_zoom_transition:new e.bM(t),u_merc_center:new e.bK(t),u_image0:new e.bN(t),u_grid_matrix:new e.cA(t),u_skirt_height:new e.bM(t),u_far_z_cutoff:new e.bM(t),u_frustum_tl:new e.bL(t),u_frustum_tr:new e.bL(t),u_frustum_br:new e.bL(t),u_frustum_bl:new e.bL(t),u_globe_pos:new e.bL(t),u_globe_radius:new e.bM(t),u_viewport:new e.bK(t)}),globeAtmosphere:t=>({u_frustum_tl:new e.bL(t),u_frustum_tr:new e.bL(t),u_frustum_br:new e.bL(t),u_frustum_bl:new e.bL(t),u_horizon:new e.bM(t),u_transition:new e.bM(t),u_fadeout_range:new e.bM(t),u_color:new e.ca(t),u_high_color:new e.ca(t),u_space_color:new e.ca(t),u_temporal_offset:new e.bM(t),u_horizon_angle:new e.bM(t)}),model:t=>({u_matrix:new e.bJ(t),u_lighting_matrix:new e.bJ(t),u_normal_matrix:new e.bJ(t),u_node_matrix:new e.bJ(t),u_lightpos:new e.bL(t),u_lightintensity:new e.bM(t),u_lightcolor:new e.bL(t),u_camera_pos:new e.bL(t),u_opacity:new e.bM(t),u_baseColorFactor:new e.ca(t),u_emissiveFactor:new e.ca(t),u_metallicFactor:new e.bM(t),u_roughnessFactor:new e.bM(t),u_baseTextureIsAlpha:new e.bN(t),u_alphaMask:new e.bN(t),u_alphaCutoff:new e.bM(t),u_baseColorTexture:new e.bN(t),u_metallicRoughnessTexture:new e.bN(t),u_normalTexture:new e.bN(t),u_occlusionTexture:new e.bN(t),u_emissionTexture:new e.bN(t),u_lutTexture:new e.bN(t),u_color_mix:new e.ca(t),u_aoIntensity:new e.bM(t),u_emissive_strength:new e.bM(t),u_occlusionTextureTransform:new e.ca(t)}),modelDepth:t=>({u_matrix:new e.bJ(t),u_instance:new e.bJ(t),u_node_matrix:new e.bJ(t)}),groundShadow:t=>({u_matrix:new e.bJ(t),u_ground_shadow_factor:new e.bL(t)}),stars:t=>({u_matrix:new e.bJ(t),u_up:new e.bL(t),u_right:new e.bL(t),u_intensity_multiplier:new e.bM(t)}),snowParticle:t=>({u_modelview:new e.bJ(t),u_projection:new e.bJ(t),u_time:new e.bM(t),u_cam_pos:new e.bL(t),u_velocityConeAperture:new e.bM(t),u_velocity:new e.bM(t),u_horizontalOscillationRadius:new e.bM(t),u_horizontalOscillationRate:new e.bM(t),u_boxSize:new e.bM(t),u_billboardSize:new e.bM(t),u_simpleShapeParameters:new e.bK(t),u_screenSize:new e.bK(t),u_thinningCenterPos:new e.bK(t),u_thinningShape:new e.bL(t),u_thinningAffectedRatio:new e.bM(t),u_thinningParticleOffset:new e.bM(t),u_particleColor:new e.ca(t),u_direction:new e.bL(t)}),rainParticle:t=>({u_modelview:new e.bJ(t),u_projection:new e.bJ(t),u_time:new e.bM(t),u_cam_pos:new e.bL(t),u_texScreen:new e.bN(t),u_velocityConeAperture:new e.bM(t),u_velocity:new e.bM(t),u_boxSize:new e.bM(t),u_rainDropletSize:new e.bK(t),u_distortionStrength:new e.bM(t),u_rainDirection:new e.bL(t),u_color:new e.ca(t),u_screenSize:new e.bK(t),u_thinningCenterPos:new e.bK(t),u_thinningShape:new e.bL(t),u_thinningAffectedRatio:new e.bM(t),u_thinningParticleOffset:new e.bM(t),u_shapeDirectionalPower:new e.bM(t),u_shapeNormalPower:new e.bM(t),u_mode:new e.bM(t)}),vignette:t=>({u_vignetteShape:new e.bL(t),u_vignetteColor:new e.ca(t)}),occlusion:t=>({u_matrix:new e.bJ(t),u_anchorPos:new e.bL(t),u_screenSizePx:new e.bK(t),u_occluderSizePx:new e.bK(t),u_color:new e.ca(t)})};class wr{constructor(e,t,i,o){this.id=wr.uniqueIdxCounter,wr.uniqueIdxCounter++,this.context=e;const s=e.gl;this.buffer=s.createBuffer(),this.dynamicDraw=Boolean(i),this.context.unbindVAO(),e.bindElementBuffer.set(this.buffer),s.bufferData(s.ELEMENT_ARRAY_BUFFER,t.arrayBuffer,this.dynamicDraw?s.DYNAMIC_DRAW:s.STATIC_DRAW),this.dynamicDraw||o||t.destroy();}bind(){this.context.bindElementBuffer.set(this.buffer);}updateData(e){this.id=wr.uniqueIdxCounter,wr.uniqueIdxCounter++;const t=this.context.gl;this.context.unbindVAO(),this.bind(),t.bufferSubData(t.ELEMENT_ARRAY_BUFFER,0,e.arrayBuffer);}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer);}}wr.uniqueIdxCounter=0;const Tr={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class Er{constructor(e,t,i,o,s,r){this.length=t.length,this.attributes=i,this.itemSize=t.bytesPerElement,this.dynamicDraw=o,this.instanceCount=r,this.context=e;const a=e.gl;this.buffer=a.createBuffer(),e.bindVertexBuffer.set(this.buffer),a.bufferData(a.ARRAY_BUFFER,t.arrayBuffer,this.dynamicDraw?a.DYNAMIC_DRAW:a.STATIC_DRAW),this.dynamicDraw||s||t.destroy();}bind(){this.context.bindVertexBuffer.set(this.buffer);}updateData(e){const t=this.context.gl;this.bind(),t.bufferSubData(t.ARRAY_BUFFER,0,e.arrayBuffer);}enableAttributes(e,t){for(let i=0;i<this.attributes.length;i++){const o=t.attributes[this.attributes[i].name];void 0!==o&&e.enableVertexAttribArray(o);}}setVertexAttribPointers(e,t,i){for(let o=0;o<this.attributes.length;o++){const s=this.attributes[o],r=t.attributes[s.name];void 0!==r&&e.vertexAttribPointer(r,s.components,e[Tr[s.type]],!1,this.itemSize,s.offset+this.itemSize*(i||0));}}setVertexAttribDivisor(e,t,i){for(let o=0;o<this.attributes.length;o++){const s=t.attributes[this.attributes[o].name];void 0!==s&&this.instanceCount&&this.instanceCount>0&&e.vertexAttribDivisor(s,i);}}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer);}}class Sr{constructor(e,t,i,o,s){this.context=e,this.width=t,this.height=i;const r=this.framebuffer=e.gl.createFramebuffer();o&&(this.colorAttachment=new Ss(e,r)),s&&(this.depthAttachmentType=s,this.depthAttachment=\"renderbuffer\"===s?new Cs(e,r):new Is(e,r));}destroy(){const e=this.context.gl;if(this.colorAttachment){const t=this.colorAttachment.get();t&&e.deleteTexture(t);}if(this.depthAttachment&&this.depthAttachmentType)if(\"renderbuffer\"===this.depthAttachmentType){const t=this.depthAttachment.get();t&&e.deleteRenderbuffer(t);}else {const t=this.depthAttachment.get();t&&e.deleteTexture(t);}e.deleteFramebuffer(this.framebuffer);}}class Cr{constructor(e,t){this.gl=e,this.clearColor=new Wo(this),this.clearDepth=new $o(this),this.clearStencil=new Xo(this),this.colorMask=new Ko(this),this.depthMask=new Yo(this),this.stencilMask=new Jo(this),this.stencilFunc=new Qo(this),this.stencilOp=new es(this),this.stencilTest=new ts(this),this.depthRange=new is(this),this.depthTest=new os(this),this.depthFunc=new ss(this),this.blend=new rs(this),this.blendFunc=new as(this),this.blendColor=new ns(this),this.blendEquation=new ls(this),this.cullFace=new cs(this),this.cullFaceSide=new hs(this),this.frontFace=new us(this),this.program=new ds(this),this.activeTexture=new _s(this),this.viewport=new ps(this),this.bindFramebuffer=new fs(this),this.bindRenderbuffer=new ms(this),this.bindTexture=new gs(this),this.bindVertexBuffer=new vs(this),this.bindElementBuffer=new ys(this),this.bindVertexArrayOES=new xs(this),this.pixelStoreUnpack=new bs(this),this.pixelStoreUnpackPremultiplyAlpha=new ws(this),this.pixelStoreUnpackFlipY=new Ts(this),this.options=t?{...t}:{},this.options.extTextureFilterAnisotropicForceOff||(this.extTextureFilterAnisotropic=e.getExtension(\"EXT_texture_filter_anisotropic\")||e.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||e.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=e.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT))),this.extDebugRendererInfo=e.getExtension(\"WEBGL_debug_renderer_info\"),this.extDebugRendererInfo&&(this.renderer=e.getParameter(this.extDebugRendererInfo.UNMASKED_RENDERER_WEBGL),this.vendor=e.getParameter(this.extDebugRendererInfo.UNMASKED_VENDOR_WEBGL)),this.forceManualRenderingForInstanceIDShaders=t&&!!t.forceManualRenderingForInstanceIDShaders||this.renderer&&-1!==this.renderer.indexOf(\"PowerVR\"),this.options.extTextureFloatLinearForceOff||(this.extTextureFloatLinear=e.getExtension(\"OES_texture_float_linear\")),this.extRenderToTextureHalfFloat=e.getExtension(\"EXT_color_buffer_half_float\"),this.extTimerQuery=e.getExtension(\"EXT_disjoint_timer_query_webgl2\"),this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE),this.maxPointSize=e.getParameter(e.ALIASED_POINT_SIZE_RANGE)[1];}setDefault(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault();}setDirty(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.bindVertexArrayOES.dirty=!0,this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0;}createIndexBuffer(e,t,i){return new wr(this,e,t,i)}createVertexBuffer(e,t,i,o,s){return new Er(this,e,t,i,o,s)}createRenderbuffer(e,t,i){const o=this.gl,s=o.createRenderbuffer();return this.bindRenderbuffer.set(s),o.renderbufferStorage(o.RENDERBUFFER,e,t,i),this.bindRenderbuffer.set(null),s}createFramebuffer(e,t,i,o){return new Sr(this,e,t,i,o)}clear({color:e,depth:t,stencil:i,colorMask:o}){const s=this.gl;let r=0;e&&(r|=s.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set(o||[!0,!0,!0,!0])),void 0!==t&&(r|=s.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(t),this.depthMask.set(!0)),void 0!==i&&(r|=s.STENCIL_BUFFER_BIT,this.clearStencil.set(i),this.stencilMask.set(255)),s.clear(r);}setCullFace(e){!1===e.enable?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(e.mode),this.frontFace.set(e.frontFace));}setDepthMode(e){e.func!==this.gl.ALWAYS||e.mask?(this.depthTest.set(!0),this.depthFunc.set(e.func),this.depthMask.set(e.mask),this.depthRange.set(e.range)):this.depthTest.set(!1);}setStencilMode(e){e.test.func!==this.gl.ALWAYS||e.mask?(this.stencilTest.set(!0),this.stencilMask.set(e.mask),this.stencilOp.set([e.fail,e.depthFail,e.pass]),this.stencilFunc.set({func:e.test.func,ref:e.ref,mask:e.test.mask})):this.stencilTest.set(!1);}setColorMode(t){e.bn(t.blendFunction,Oi.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(t.blendFunction),this.blendColor.set(t.blendColor),t.blendEquation?this.blendEquation.set(t.blendEquation):this.blendEquation.setDefault()),this.colorMask.set(t.mask);}unbindVAO(){this.bindVertexArrayOES.set(null);}}let Ir;function Rr(t,i,o,s,r,a,n){const l=t.context,c=l.gl,h=t.transform,u=t.getOrCreateProgram(\"collisionBox\"),d=[];let _=0,p=0;for(let l=0;l<s.length;l++){const f=s[l],m=i.getTile(f),g=m.getBucket(o);if(!g)continue;const v=ai(f,g,h);let y=v;0===r[0]&&0===r[1]||(y=t.translatePosMatrix(v,m,r,a));const x=n?g.textCollisionBox:g.iconCollisionBox,b=g.collisionCircleArray;if(b.length>0){const t=e.ab.mat4.create(),i=y;e.ab.mat4.mul(t,g.placementInvProjMatrix,h.glCoordMatrix),e.ab.mat4.mul(t,t,g.placementViewportMatrix),d.push({circleArray:b,circleOffset:p,transform:i,invTransform:t,projection:g.getProjection()}),_+=b.length/4,p=_;}x&&(t.terrain&&t.terrain.setupElevationDraw(m,u),u.draw(t,c.LINES,Fi.disabled,Bi.disabled,t.colorModeForRenderPass(),Gi.disabled,ir(y,h,m,g.getProjection()),o.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,h.zoom,null,[x.collisionVertexBuffer,x.collisionVertexBufferExt]));}if(!n||!d.length)return;const f=t.getOrCreateProgram(\"collisionCircle\"),m=new e.cV;m.resize(4*_),m._trim();let g=0;for(const e of d)for(let t=0;t<e.circleArray.length/4;t++){const i=4*t,o=e.circleArray[i+0],s=e.circleArray[i+1],r=e.circleArray[i+2],a=e.circleArray[i+3];m.emplace(g++,o,s,r,a,0),m.emplace(g++,o,s,r,a,1),m.emplace(g++,o,s,r,a,2),m.emplace(g++,o,s,r,a,3);}(!Ir||Ir.length<2*_)&&(Ir=function(t){const i=2*t,o=new e.aU;o.resize(i),o._trim();for(let e=0;e<i;e++){const t=6*e;o.uint16[t+0]=4*e+0,o.uint16[t+1]=4*e+1,o.uint16[t+2]=4*e+2,o.uint16[t+3]=4*e+2,o.uint16[t+4]=4*e+3,o.uint16[t+5]=4*e+0;}return o}(_));const v=l.createIndexBuffer(Ir,!0),y=l.createVertexBuffer(m,e.cW.members,!0);for(const i of d){const s={u_matrix:i.transform,u_inv_matrix:i.invTransform,u_camera_to_center_distance:(x=h).getCameraToCenterDistance(i.projection),u_viewport_size:[x.width,x.height]};f.draw(t,c.TRIANGLES,Fi.disabled,Bi.disabled,t.colorModeForRenderPass(),Gi.disabled,s,o.id,y,v,e.b7.simpleSegment(0,2*i.circleOffset,i.circleArray.length,i.circleArray.length/2),null,h.zoom);}var x;y.destroy(),v.destroy();}const Dr=e.ab.mat4.create();function Lr(t){const i=t._camera.getWorldToCamera(t.worldSize,1),o=e.ab.mat4.multiply([],i,t.globeMatrix);e.ab.mat4.invert(o,o);const s=[0,0,0],r=[0,1,0,0];return e.ab.vec4.transformMat4(r,r,o),s[0]=r[0],s[1]=r[1],s[2]=r[2],e.ab.vec3.normalize(s,s),s}function Ar({width:t,height:i,anchor:o,textOffset:s,textScale:r},a){const{horizontalAlign:n,verticalAlign:l}=e.bD(o),c=-(n-.5)*t,h=-(l-.5)*i,u=e.bC(o,s);return new e.P((c/r+u[0])*a,(h/r+u[1])*a)}function zr(t,i,o,s,r,a,n,l,c,h,u){const d=t.text.placedSymbolArray,_=t.text.dynamicLayoutVertexArray,p=t.icon.dynamicLayoutVertexArray,f={},m=t.getProjection(),g=ni(l,m,a),v=a.elevation,y=m.upVectorScale(l.canonical,a.center.lat,a.worldSize).metersToTile;_.clear();for(let p=0;p<d.length;p++){const x=d.get(p),{tileAnchorX:b,tileAnchorY:w,numGlyphs:T}=x,E=x.hidden||!x.crossTileID||t.allowVerticalPlacement&&!x.placedOrientation?null:s[x.crossTileID];if(E){let s=0,d=0,p=0;if(v){const e=v?v.getAtTileOffset(l,b,w):0,[t,i,o]=m.upVector(l.canonical,b,w);s=e*t*y,d=e*i*y,p=e*o*y;}let[S,C,I,R]=Ht(x.projectedAnchorX+s,x.projectedAnchorY+d,x.projectedAnchorZ+p,o?g:n);const D=Zt(a.getCameraToCenterDistance(m),R);let L=r.evaluateSizeForFeature(t.textSizeData,h,x)*D/e.bw;o&&(L*=t.tilePixelRatio/c);const A=Ar(E,L);o?(({x:S,y:C,z:I}=m.projectTilePoint(b+A.x,w+A.y,l.canonical)),[S,C,I]=Ht(S+s,C+d,I+p,n)):(i&&A._rotate(-a.angle),S+=A.x,C+=A.y,I=0);const z=t.allowVerticalPlacement&&x.placedOrientation===e.bq.vertical?Math.PI/2:0;for(let t=0;t<T;t++)e.bt(_,S,C,I,z);u&&x.associatedIconIndex>=0&&(f[x.associatedIconIndex]={x:S,y:C,z:I,angle:z});}else ti(T,_);}if(u){p.clear();const i=t.icon.placedSymbolArray;for(let t=0;t<i.length;t++){const o=i.get(t),{numGlyphs:s}=o,r=f[t];if(o.hidden||!r)ti(s,p);else {const{x:t,y:i,z:o,angle:a}=r;for(let r=0;r<s;r++)e.bt(p,t,i,o,a);}}t.icon.dynamicLayoutVertexBuffer.updateData(p);}t.text.dynamicLayoutVertexBuffer.updateData(_);}function Pr(t,i,o,s,r,a,n={}){const l=o.paint.get(\"icon-translate\"),c=o.paint.get(\"text-translate\"),h=o.paint.get(\"icon-translate-anchor\"),u=o.paint.get(\"text-translate-anchor\"),d=o.layout.get(\"icon-rotation-alignment\"),_=o.layout.get(\"text-rotation-alignment\"),p=o.layout.get(\"icon-pitch-alignment\"),f=o.layout.get(\"text-pitch-alignment\"),m=o.layout.get(\"icon-keep-upright\"),g=o.layout.get(\"text-keep-upright\"),v=o.paint.get(\"icon-color-saturation\"),y=o.paint.get(\"icon-color-contrast\"),x=o.paint.get(\"icon-color-brightness-min\"),b=o.paint.get(\"icon-color-brightness-max\"),w=\"sea\"===o.layout.get(\"symbol-elevation-reference\"),T=t.context,E=T.gl,S=t.transform,C=\"map\"===d,I=\"map\"===_,R=\"map\"===p,D=\"map\"===f,L=void 0!==o.layout.get(\"symbol-sort-key\").constantOr(1);let A=!1;const z=t.depthModeForSublayer(0,Fi.ReadOnly),P=[e.at(S.center.lng),e.aA(S.center.lat)],M=o.layout.get(\"text-variable-anchor\"),O=\"globe\"===S.projection.name,F=[],k=[0,-1,0];for(const r of s){const s=i.getTile(r),a=s.getBucket(o);if(!a)continue;if(\"mercator\"===a.projection.name&&O)continue;if(a.fullyClipped)continue;const d=\"globe\"===a.projection.name,_=d?e.ae(S.zoom):0,p=ni(r,a.getProjection(),S),f=S.calculatePixelsToTileUnitsMatrix(s),T=M&&a.hasTextData(),z=a.hasIconTextFit()&&T&&a.hasIconData(),B=a.getProjection().createInversionMatrix(S,r.canonical),N=e=>{S.depthOcclusionForSymbolsAndCircles&&(o.hasInitialOcclusionOpacityProperties||t.terrain)&&(e.push(\"DEPTH_D24\"),e.push(\"DEPTH_OCCLUSION\"));},U=()=>{const i=C&&\"point\"!==o.layout.get(\"symbol-placement\"),n=[];N(n);const c=i||z,u=o.paint.get(\"icon-image-cross-fade\").constantOr(0);t.terrainRenderModeElevated()&&R&&n.push(\"PITCH_WITH_MAP_TERRAIN\"),d&&(n.push(\"PROJECTION_GLOBE_VIEW\"),c&&n.push(\"PROJECTED_POS_ON_VIEWPORT\")),u>0&&n.push(\"ICON_TRANSITION\"),a.icon.zOffsetVertexBuffer&&n.push(\"Z_OFFSET\"),0===v&&0===y&&0===x&&1===b||n.push(\"COLOR_ADJUSTMENT\"),a.sdfIcons&&n.push(\"RENDER_SDF\");const g=a.icon.programConfigurations.get(o.id),T=t.getOrCreateProgram(\"symbol\",{config:g,defines:n}),I=s.imageAtlasTexture?s.imageAtlasTexture.size:[0,0],D=a.iconSizeData,L=e.bp(D,S.zoom),A=R||0!==S.pitch,M=jt(p,s.tileID.canonical,R,C,S,a.getProjection(),f),F=qt(p,s.tileID.canonical,R,C,S,a.getProjection(),f),U=t.translatePosMatrix(F,s,l,h,!0),G=t.translatePosMatrix(p,s,l,h),j=c?Dr:M,V=C&&!R&&!i;let q=k;!O&&!S.mercatorFromTransition||C||(q=Lr(S));const H=d?q:k,Z=o.getColorAdjustmentMatrix(v,y,x,b),W=fr(D.kind,L,V,R,t,G,j,U,w,!1,I,[0,0],!0,r,_,P,B,H,a.getProjection(),Z,u),$=s.imageAtlasTexture?s.imageAtlasTexture:null,X=1!==o.layout.get(\"icon-size\").constantOr(0)||a.iconsNeedLinear,K=a.sdfIcons||t.options.rotating||t.options.zooming||X||A?E.LINEAR:E.NEAREST,Y=a.sdfIcons&&0!==o.paint.get(\"icon-halo-width\").constantOr(1),J=t.terrain&&R&&i?e.ab.mat4.invert(e.ab.mat4.create(),M):Dr;if(i&&a.icon){const e=S.elevation,i=e?e.getAtTileOffsetFunc(r,S.center.lat,S.worldSize,a.getProjection()):null,o=Vt(p,s.tileID.canonical,R,C,S,a.getProjection(),f);$t(a,p,t,!1,o,F,R,m,i,r);}return {program:T,buffers:a.icon,uniformValues:W,atlasTexture:$,atlasTextureIcon:null,atlasInterpolation:K,atlasInterpolationIcon:null,isSDF:a.sdfIcons,hasHalo:Y,tile:s,labelPlaneMatrixInv:J}},G=()=>{const i=I&&\"point\"!==o.layout.get(\"symbol-placement\"),n=[],l=i||M||z;t.terrainRenderModeElevated()&&D&&n.push(\"PITCH_WITH_MAP_TERRAIN\"),d&&(n.push(\"PROJECTION_GLOBE_VIEW\"),l&&n.push(\"PROJECTED_POS_ON_VIEWPORT\")),a.text.zOffsetVertexBuffer&&n.push(\"Z_OFFSET\"),a.iconsInText&&n.push(\"RENDER_TEXT_AND_SYMBOL\"),n.push(\"RENDER_SDF\"),N(n);const h=a.text.programConfigurations.get(o.id),m=t.getOrCreateProgram(\"symbol\",{config:h,defines:n});let v,y=[0,0],x=null;const b=a.textSizeData;a.iconsInText&&(y=s.imageAtlasTexture?s.imageAtlasTexture.size:[0,0],x=s.imageAtlasTexture?s.imageAtlasTexture:null,v=D||0!==S.pitch||t.options.rotating||t.options.zooming||\"composite\"===b.kind||\"camera\"===b.kind?E.LINEAR:E.NEAREST);const T=s.glyphAtlasTexture?s.glyphAtlasTexture.size:[0,0],C=o.layout.get(\"text-size-scale-range\"),R=e.aw(t.scaleFactor,C[0],C[1]),L=e.bp(b,S.zoom,R),A=jt(p,s.tileID.canonical,D,I,S,a.getProjection(),f),F=qt(p,s.tileID.canonical,D,I,S,a.getProjection(),f),U=t.translatePosMatrix(F,s,c,u,!0),G=t.translatePosMatrix(p,s,c,u),j=l?Dr:A,V=I&&!D&&!i;let q=k;!O&&!S.mercatorFromTransition||I||(q=Lr(S));const H=fr(b.kind,L,V,D,t,G,j,U,w,!0,T,y,!0,r,_,P,B,d?q:k,a.getProjection(),null,null,R),Z=s.glyphAtlasTexture?s.glyphAtlasTexture:null,W=E.LINEAR,$=0!==o.paint.get(\"text-halo-width\").constantOr(1),X=t.terrain&&D&&i?e.ab.mat4.invert(e.ab.mat4.create(),A):Dr;if(i&&a.text){const e=S.elevation,i=e?e.getAtTileOffsetFunc(r,S.center.lat,S.worldSize,a.getProjection()):null,o=Vt(p,s.tileID.canonical,D,I,S,a.getProjection(),f);$t(a,p,t,!0,o,F,D,g,i,r);}return {program:m,buffers:a.text,uniformValues:H,atlasTexture:Z,atlasTextureIcon:x,atlasInterpolation:W,atlasInterpolationIcon:v,isSDF:!0,hasHalo:$,tile:s,labelPlaneMatrixInv:X}},j=a.icon.segments.get().length,V=a.text.segments.get().length,q=j&&!n.onlyText?U():null,H=V&&!n.onlyIcons?G():null,Z=o.paint.get(\"icon-opacity\").constantOr(1),W=o.paint.get(\"text-opacity\").constantOr(1);if(L&&a.canOverlap){A=!0;const t=Z&&!n.onlyText?a.icon.segments.get():[],i=W&&!n.onlyIcons?a.text.segments.get():[];for(const i of t)F.push({segments:new e.b7([i]),sortKey:i.sortKey,state:q});for(const t of i)F.push({segments:new e.b7([t]),sortKey:t.sortKey,state:H});}else n.onlyText||F.push({segments:Z?a.icon.segments:new e.b7([]),sortKey:0,state:q}),n.onlyIcons||F.push({segments:W?a.text.segments:new e.b7([]),sortKey:0,state:H});}A&&F.sort(((e,t)=>e.sortKey-t.sortKey));for(const e of F){const i=e.state;if(i)if(t.terrain?t.terrain.setupElevationDraw(i.tile,i.program,{useDepthForOcclusion:S.depthOcclusionForSymbolsAndCircles,labelPlaneMatrixInv:i.labelPlaneMatrixInv}):t.setupDepthForOcclusion(S.depthOcclusionForSymbolsAndCircles,i.program),T.activeTexture.set(E.TEXTURE0),i.atlasTexture&&i.atlasTexture.bind(i.atlasInterpolation,E.CLAMP_TO_EDGE,!0),i.atlasTextureIcon&&(T.activeTexture.set(E.TEXTURE1),i.atlasTextureIcon&&i.atlasTextureIcon.bind(i.atlasInterpolationIcon,E.CLAMP_TO_EDGE,!0)),t.uploadCommonLightUniforms(t.context,i.program),i.hasHalo){const s=i.uniformValues;s.u_is_halo=1,Mr(i.buffers,e.segments,o,t,i.program,z,r,a,s,2),s.u_is_halo=0;}else {if(i.isSDF){const s=i.uniformValues;i.hasHalo&&(s.u_is_halo=1,Mr(i.buffers,e.segments,o,t,i.program,z,r,a,s,1)),s.u_is_halo=0;}Mr(i.buffers,e.segments,o,t,i.program,z,r,a,i.uniformValues,1);}}}function Mr(e,t,i,o,s,r,a,n,l,c){const h=[e.dynamicLayoutVertexBuffer,e.opacityVertexBuffer,e.iconTransitioningVertexBuffer,e.globeExtVertexBuffer,e.zOffsetVertexBuffer];s.draw(o,o.context.gl.TRIANGLES,r,a,n,Gi.disabled,l,i.id,e.layoutVertexBuffer,e.indexBuffer,t,i.paint,o.transform.zoom,e.programConfigurations.get(i.id),h,c);}function Or(t,i,o,s,r,a,n){const l=t.context.gl,c=o.paint.get(\"fill-pattern\"),h=o.is3D(),u=h?t.stencilModeFor3D():Bi.disabled,d=c&&c.constantOr(1);let _,p,f,m,g;n?(p=d&&!o.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",_=l.LINES):(p=d?\"fillPattern\":\"fill\",_=l.TRIANGLES);for(const v of s){const s=i.getTile(v);if(d&&!s.patternsLoaded())continue;const y=s.getBucket(o);if(!y)continue;t.prepareDrawTile();const x=y.programConfigurations.get(o.id),b=t.isTileAffectedByFog(v),w=t.getOrCreateProgram(p,{config:x,overrideFog:b});d&&(t.context.activeTexture.set(l.TEXTURE0),s.imageAtlasTexture&&s.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),x.updatePaintBuffers());const T=c.constantOr(null);if(T&&s.imageAtlas){const t=s.imageAtlas,i=e.A.from(T),o=t.patternPositions[i.getSerializedPrimary()];o&&x.setConstantPatternPositions(o);}const E=t.translatePosMatrix(v.projMatrix,s,o.paint.get(\"fill-translate\"),o.paint.get(\"fill-translate-anchor\")),S=o.paint.get(\"fill-emissive-strength\");if(n){m=y.indexBuffer2,g=y.segments2;const e=t.terrain&&t.terrain.renderingToTexture?t.terrain.drapeBufferSize:[l.drawingBufferWidth,l.drawingBufferHeight];f=\"fillOutlinePattern\"===p&&d?tr(E,S,t,s,e):er(E,S,e);}else m=y.indexBuffer,g=y.segments,f=d?Qs(E,S,t,s):Js(E,S);t.uploadCommonUniforms(t.context,w,v.toUnwrapped()),w.draw(t,_,r,h?u:t.stencilModeForClipping(v),a,Gi.disabled,f,o.id,y.layoutVertexBuffer,m,g,o.paint,t.transform.zoom,x,void 0);}}function Fr(t,i,o,s,r,a,n,l){o.resetLayerRenderingStats(t);const c=t.context,h=c.gl,u=t.transform,d=o.paint.get(\"fill-extrusion-pattern\"),_=d.constantOr(1),p=o.paint.get(\"fill-extrusion-opacity\"),f=t.style.enable3dLights(),m=o.paint.get(f&&!_?\"fill-extrusion-ambient-occlusion-wall-radius\":\"fill-extrusion-ambient-occlusion-radius\"),g=[o.paint.get(\"fill-extrusion-ambient-occlusion-intensity\"),m],v=o.layout.get(\"fill-extrusion-edge-radius\"),y=v>0&&!o.paint.get(\"fill-extrusion-rounded-roof\"),x=y?0:v,b=\"globe\"===u.projection.name?e.d3():0,w=\"globe\"===u.projection.name,T=w?e.ae(u.zoom):0,E=[e.at(u.center.lng),e.aA(u.center.lat)],S=\"none\"===o.paint.get(\"fill-extrusion-flood-light-color-use-theme\").constantOr(\"default\"),C=o.paint.get(\"fill-extrusion-flood-light-color\").toRenderColor(S?null:o.lut).toArray01().slice(0,3),I=o.paint.get(\"fill-extrusion-flood-light-intensity\"),R=o.paint.get(\"fill-extrusion-vertical-scale\"),D=0!==o.paint.get(\"fill-extrusion-line-width\").constantOr(1),L=o.paint.get(\"fill-extrusion-height-alignment\"),A=o.paint.get(\"fill-extrusion-base-alignment\"),z=Ji(t,o.paint.get(\"fill-extrusion-cutoff-fade-range\")),P=[];let M;w&&P.push(\"PROJECTION_GLOBE_VIEW\"),g[0]>0&&P.push(\"FAUX_AO\"),y&&P.push(\"ZERO_ROOF_RADIUS\"),l&&P.push(\"HAS_CENTROID\"),I>0&&P.push(\"FLOOD_LIGHT\"),z.shouldRenderCutoff&&P.push(\"RENDER_CUTOFF\"),D&&P.push(\"RENDER_WALL_MODE\");const O=\"shadow\"===t.renderPass,F=t.shadowRenderer,k=O&&!!F;t.shadowRenderer&&(t.shadowRenderer.useNormalOffset=!0);let B=[0,0,0];if(F){const e=t.style.directionalLight,i=t.style.ambientLight;e&&i&&(B=ro(t.style,e,i)),O||(P.push(\"RENDER_SHADOWS\",\"DEPTH_TEXTURE\"),F.useNormalOffset&&P.push(\"NORMAL_OFFSET\")),M=P.concat([\"SHADOWS_SINGLE_CASCADE\"]);}const N=k?\"fillExtrusionDepth\":_?\"fillExtrusionPattern\":\"fillExtrusion\",U=o.getLayerRenderingStats();for(const f of s){const s=i.getTile(f),m=s.getBucket(o);if(!m||m.projection.name!==u.projection.name)continue;let v=!1;F&&(v=0===F.getMaxCascadeForTile(f.toUnwrapped()));const y=t.isTileAffectedByFog(f),S=m.programConfigurations.get(o.id),k=t.getOrCreateProgram(N,{config:S,defines:v?M:P,overrideFog:y});if(t.terrain&&t.terrain.setupElevationDraw(s,k,{useMeterToDem:!0}),!m.centroidVertexBuffer){const e=k.attributes.a_centroid_pos;void 0!==e&&h.vertexAttrib2f(e,0,0);}!O&&F&&F.setupShadows(s.tileID.toUnwrapped(),k,\"vector-tile\",s.tileID.overscaledZ),_&&(t.context.activeTexture.set(h.TEXTURE0),s.imageAtlasTexture&&s.imageAtlasTexture.bind(h.LINEAR,h.CLAMP_TO_EDGE),S.updatePaintBuffers());const G=d.constantOr(null);if(G&&s.imageAtlas){const t=s.imageAtlas,i=e.A.from(G),o=t.patternPositions[i.getSerializedPrimary()];o&&S.setConstantPatternPositions(o);}const j=o.paint.get(\"fill-extrusion-vertical-gradient\"),V=1/m.tileToMeter;let q;if(O&&F){if(jr(s.tileID,m,t))continue;const e=F.calculateShadowPassMatrixFromTile(s.tileID.toUnwrapped());q=Ks(e,x,V,R,L,A);}else {const e=t.translatePosMatrix(f.expandedProjMatrix,s,o.paint.get(\"fill-extrusion-translate\"),o.paint.get(\"fill-extrusion-translate-anchor\")),i=u.projection.createInversionMatrix(u,f.canonical);q=_?Ys(e,t,j,p,g,x,V,f,s,b,L,A,T,E,i,C,R):Xs(e,t,j,p,g,x,V,f,b,L,A,T,E,i,C,R,I,B);}t.uploadCommonUniforms(c,k,f.toUnwrapped(),null,z);let H=m.segments;if(\"mercator\"===u.projection.name&&!O&&(H=m.getVisibleSegments(s.tileID,t.terrain,t.transform.getFrustum(0)),!H.get().length))continue;if(U)if(O)for(const e of H.get())U.numRenderedVerticesInShadowPass+=e.primitiveLength;else for(const e of H.get())U.numRenderedVerticesInTransparentPass+=e.primitiveLength;const Z=[];(t.terrain||l)&&Z.push(m.centroidVertexBuffer),w&&Z.push(m.layoutVertexExtBuffer),D&&Z.push(m.wallVertexBuffer),k.draw(t,c.gl.TRIANGLES,r,a,n,Gi.backCCW,q,o.id,m.layoutVertexBuffer,m.indexBuffer,H,o.paint,t.transform.zoom,S,Z);}t.shadowRenderer&&(t.shadowRenderer.useNormalOffset=!1);}function kr(t,i,o,s,r,a,n,l,c,h,u,d,_,p,f,m,g,v,y){const x=t.context,b=x.gl,w=t.transform,T=t.transform.zoom,E=[],S=Ji(t,o.paint.get(\"fill-extrusion-cutoff-fade-range\"));\"clear\"===h?(E.push(\"CLEAR_SUBPASS\"),y&&(E.push(\"CLEAR_FROM_TEXTURE\"),x.activeTexture.set(b.TEXTURE0),y.bind(b.LINEAR,b.CLAMP_TO_EDGE))):\"sdf\"===h&&E.push(\"SDF_SUBPASS\"),g&&E.push(\"HAS_CENTROID\"),S.shouldRenderCutoff&&E.push(\"RENDER_CUTOFF\");const C=o.layout.get(\"fill-extrusion-edge-radius\"),I=(e,i,s,h,v)=>{const b=i.programConfigurations.get(o.id),w=t.isTileAffectedByFog(e),I=t.getOrCreateProgram(\"fillExtrusionGroundEffect\",{config:b,defines:E,overrideFog:w}),R=((e,t,i,o,s,r,a,n,l,c,h)=>({u_matrix:t,u_opacity:i,u_ao_pass:o?1:0,u_meter_to_tile:s,u_ao:r,u_flood_light_intensity:a,u_flood_light_color:n,u_attenuation:l,u_edge_radius:c,u_fb:0,u_fb_size:h,u_dynamic_offset:1}))(0,h,u,c,v,[d,_*v],p,f,m,T>=17?0:C*v,y?y.size[0]:0),D=[];g&&D.push(i.hiddenByLandmarkVertexBuffer),t.uploadCommonUniforms(x,I,e.toUnwrapped(),null,S),I.draw(t,x.gl.TRIANGLES,r,a,n,l,R,o.id,i.vertexBuffer,i.indexBuffer,s,o.paint,T,b,D);};for(const r of s){const s=i.getTile(r),a=s.getBucket(o);if(!a||a.projection.name!==w.projection.name||!a.groundEffect||a.groundEffect&&!a.groundEffect.hasData())continue;const n=a.groundEffect,l=1/a.tileToMeter;{const e=t.translatePosMatrix(r.projMatrix,s,o.paint.get(\"fill-extrusion-translate\"),o.paint.get(\"fill-extrusion-translate-anchor\")),i=n.getDefaultSegment();I(r,n,i,e,l);}if(v)for(let a=0;a<4;a++){const n=e.d4[a](r),c=i.getTile(n);if(!c)continue;const h=c.getBucket(o);if(!h||h.projection.name!==w.projection.name||!h.groundEffect||h.groundEffect&&!h.groundEffect.hasData())continue;const u=h.groundEffect;let d,_;0===a?(d=[-e.ag,0,0],_=1):1===a?(d=[e.ag,0,0],_=0):2===a?(d=[0,-e.ag,0],_=3):(d=[0,e.ag,0],_=2);const p=u.regionSegments[_];if(!p)continue;const f=new Float32Array(16);e.ab.mat4.translate(f,r.projMatrix,d),I(r,u,p,t.translatePosMatrix(f,s,o.paint.get(\"fill-extrusion-translate\"),o.paint.get(\"fill-extrusion-translate-anchor\")),l);}}}function Br(t,i,o,s,r,a,n){0===s.centroidVertexArray.length&&s.createCentroidsBuffer();const l=a?a.findDEMTileFor(o):null;if(!(l&&l.dem||n))return;a&&l&&l.dem&&s.selfDEMTileTimestamp!==l.dem._timestamp&&(s.borderDoneWithNeighborZ=[-1,-1,-1,-1],s.selfDEMTileTimestamp=l.dem._timestamp);const c=t=>new e.P(Math.ceil((t+e.d7)*e.d8),0),h=e=>{const t=i.getSource().minzoom,o=e=>{const t=i.getTileByID(e);if(t&&t.hasData())return t.getBucket(r)},s=[0,-1,1];for(const i of s){if(e.overscaledZ+i<t)continue;const s=o(e.calculateScaledKey(e.overscaledZ+i));if(s)return s}},u=[0,0,0],d=(t,i)=>(u[0]=Math.min(t.min.y,i.min.y),u[1]=Math.max(t.max.y,i.max.y),u[2]=e.ag-i.min.x>t.max.x?i.min.x-e.ag:t.max.x,u),_=(t,i)=>(u[0]=Math.min(t.min.x,i.min.x),u[1]=Math.max(t.max.x,i.max.x),u[2]=e.ag-i.min.y>t.max.y?i.min.y-e.ag:t.max.y,u),p=[(e,t)=>d(e,t),(e,t)=>d(t,e),(e,t)=>_(e,t),(e,t)=>_(t,e)],f=(t,i,s,r,n,c,h)=>{if(!a)return 0;const u=[[c?s:t,c?t:s,0],[c?s:i,c?i:s,0]],d=h<0?e.ag+h:h,_=[c?d:(t+i)/2,c?(t+i)/2:d,0];return 0===s&&h<0||0!==s&&h>0?a.getForTilePoints(n,[_],!0,r):u.push(_),a.getForTilePoints(o,u,!0,l),Math.max(u[0][2],u[1][2],_[2])/a.exaggeration()};for(let t=0;t<4;t++){const i=s.borderFeatureIndices[t];if(0===i.length)continue;const r=e.d4[t](o),l=h(r);if(!(l&&l instanceof e.d5))continue;const u=a?a.findDEMTileFor(r):null;if(!(u&&u.dem||n))continue;if(a&&u&&u.dem&&s.borderDEMTileTimestamp[t]!==u.dem._timestamp&&(s.borderDoneWithNeighborZ[t]=-1,s.borderDEMTileTimestamp[t]=u.dem._timestamp),s.borderDoneWithNeighborZ[t]===l.canonical.z)continue;0===l.centroidVertexArray.length&&l.createCentroidsBuffer();const d=(t<2?1:5)-t,_=l.borderDoneWithNeighborZ[d]!==s.canonical.z,v=l.borderFeatureIndices[d];let y=0;if(s.canonical.z!==l.canonical.z){for(const e of i)s.showCentroid(s.featuresOnBorder[e]);if(_)for(const e of v)l.showCentroid(l.featuresOnBorder[e]);s.borderDoneWithNeighborZ[t]=l.canonical.z,l.borderDoneWithNeighborZ[d]=s.canonical.z;}for(const o of i){const i=s.featuresOnBorder[o],a=s.centroidData[i.centroidDataIndex],h=i.borders[t];let _;for(;y<v.length;){_=l.featuresOnBorder[v[y]];const e=_.borders[d];if(e[1]>h[0]+3||e[0]>h[0]-3)break;l.showCentroid(_),y++;}if(_&&y<v.length){const o=y;let x=0;for(;!(_.borders[d][0]>h[1]-3)&&(x++,++y!==v.length);)_=l.featuresOnBorder[v[y]];_=l.featuresOnBorder[v[o]];let b=!1;if(x>=1){const e=_.borders[d];Math.abs(h[0]-e[0])<3&&Math.abs(h[1]-e[1])<3&&(x=1,b=!0,y=o+1);}else if(0===x){s.showCentroid(i);continue}const w=l.centroidData[_.centroidDataIndex];n&&b&&(((m=a).flags|(g=w).flags)&e.d6?(m.flags|=e.d6,g.flags|=e.d6):(m.flags&=~e.d6,g.flags&=~e.d6));const T=i.intersectsCount()>1||_.intersectsCount()>1;if(x>1)y=o,a.centroidXY=w.centroidXY=new e.P(0,0);else if(u&&u.dem&&!T){const i=p[t](a,w),o=t%2?e.ag-1:0,s=f(i[0],Math.min(e.ag-1,i[1]),o,u,r,t<2,i[2]);a.centroidXY=w.centroidXY=c(s);}else T?a.centroidXY=w.centroidXY=new e.P(0,0):(a.centroidXY=s.encodeBorderCentroid(i),w.centroidXY=l.encodeBorderCentroid(_));s.writeCentroidToBuffer(a),l.writeCentroidToBuffer(w);}else s.showCentroid(i);}s.borderDoneWithNeighborZ[t]=l.canonical.z,l.borderDoneWithNeighborZ[d]=s.canonical.z;}var m,g;(s.needsCentroidUpdate||!s.centroidVertexBuffer&&0!==s.centroidVertexArray.length)&&s.uploadCentroid(t);}const Nr=[1,0,0],Ur=[0,1,0],Gr=[0,0,1];function jr(t,i,o){const s=o.transform,r=o.shadowRenderer;if(!r)return !0;const a=t.toUnwrapped(),n=s.tileSize*r._cascades[o.currentShadowCascade].scale;let l=i.maxHeight;if(s.elevation){const e=s.elevation.getMinMaxForTile(t);e&&(l+=e.max);}const c=[...r.shadowDirection];c[2]=-c[2];const h=r.computeSimplifiedTileShadowVolume(a,l,n,c);if(!h)return !1;const u=[Nr,Ur,Gr,c,[c[0],0,c[2]],[0,c[1],c[2]]],d=\"globe\"===s.projection.name,_=s.scaleZoom(n),p=e.bR.fromInvProjectionMatrix(s.invProjMatrix,s.worldSize,_,!d),f=r.getCurrentCascadeFrustum();return 0===p.intersectsPrecise(h.vertices,h.planes,u)||0===f.intersectsPrecise(h.vertices,h.planes,u)}function Vr(t){return [t[0]*e.d9,t[1]*e.d9,t[2]*e.d9,0]}function qr(t,i,o,s,r,a,n,l,c){const h=s.getSource(),u=o.globeSharedBuffers;if(!u)return;let d,_,p;if(i&&(d=s.getTile(i)),h instanceof e.aJ?(_=h.texture,p=e.cI(0,0,o.transform)):d&&i&&(_=d.texture,p=e.cI(i.canonical.z,i.canonical.x,o.transform)),!_||!p)return;t||(p=e.ab.mat4.scale(e.ab.mat4.create(),p,[1,-1,1]));const f=o.context,m=f.gl,g=\"nearest\"===r.paint.get(\"raster-resampling\")?m.NEAREST:m.LINEAR,v=o.colorModeForDrapableLayerRenderPass(a),y=n.defines;y.push(\"GLOBE_POLES\");const x=new Fi(m.LEQUAL,Fi.ReadWrite,o.depthRangeFor3D),b=Float32Array.from(o.transform.expandedFarZProjMatrix),w=Float32Array.from(e.bb(e.cH(new e.bT(0,0,0))));o.terrain&&o.terrain.prepareDrawTile(),f.activeTexture.set(m.TEXTURE0),_.bind(g,m.CLAMP_TO_EDGE),f.activeTexture.set(m.TEXTURE1),_.bind(g,m.CLAMP_TO_EDGE),_.useMipmap&&f.extTextureFilterAnisotropic&&o.transform.pitch>20&&m.texParameterf(m.TEXTURE_2D,f.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,f.extTextureFilterAnisotropicMax);const[T,E,S,C]=i?u.getPoleBuffers(i.canonical.z,!1):u.getPoleBuffers(0,!0),I=r.paint.get(\"raster-elevation\");let R;t?(R=T,o.renderDefaultNorthPole=0!==I):(R=E,o.renderDefaultSouthPole=0!==I);const D=Vr(n.mix),L=((e,t,i,o,s,r,a,n,l,c,h,u,d)=>lr(e,t,i,new Float32Array(16),new Float32Array(9),[0,0],o,[0,0],[0,0,0,0],1,{opacity:1,mix:0},r,[0,0]||[0,0],n,2,c,h,u,1,0,d))(b,w,p,e.ae(o.transform.zoom),0,r,0,I,0,D,n.offset,n.range,a),A=o.getOrCreateProgram(\"raster\",{defines:y});o.uploadCommonUniforms(f,A,null),A.draw(o,m.TRIANGLES,x,c,v,l,L,r.id,R,S,C);}function Hr(e){const t=e._nearZ,i=e.projection.farthestPixelDistance(e),o=i-t,s=.2*e.height,r=t+s;return [t,i,(r-s-t)/o,(r-t)/o]}function Zr(e,t,i,o){if(e)return t instanceof ot&&e instanceof xt?t.getTextureDescriptor(e,i,!0):{texture:e.texture,mix:Vr(o.mix),offset:o.offset,buffer:0,tileSize:1}}var Wr=e.da([{name:\"a_index\",type:\"Int16\",components:1}]);class $r{constructor(t,i,o,s){const r={width:o[0],height:o[1],data:null},a=t.gl;this.targetColorTexture=new e.T(t,r,a.RGBA8,{useMipmap:!1}),this.backgroundColorTexture=new e.T(t,r,a.RGBA8,{useMipmap:!1}),this.context=t,this.updateParticleTexture(i,s),this.lastInvalidatedAt=0;}updateParticleTexture(t,i){if(this.particleTextureDimension===i.width)return;(this.particleTexture0||this.particleTexture1||this.particleIndexBuffer||this.particleSegment)&&(this.particleTexture0.destroy(),this.particleTexture1.destroy(),this.particleIndexBuffer.destroy(),this.particleSegment.destroy());const o=this.context.gl,s=i.width*i.height;this.particleTexture0=new e.T(this.context,i,o.RGBA8,{premultiply:!1,useMipmap:!1}),this.particleTexture1=new e.T(this.context,i,o.RGBA8,{premultiply:!1,useMipmap:!1});const r=new e.db;r.reserve(s);for(let e=0;e<s;e++)r.emplaceBack(e);this.particleIndexBuffer=this.context.createVertexBuffer(r,Wr.members,!0),this.particleSegment=e.b7.simpleSegment(0,0,this.particleIndexBuffer.length,0),this.particleTextureDimension=i.width;}update(t){return !(this.lastInvalidatedAt<t&&(this.lastInvalidatedAt=e.q.now(),1))}destroy(){this.targetColorTexture.destroy(),this.backgroundColorTexture.destroy(),this.particleIndexBuffer.destroy(),this.particleTexture0.destroy(),this.particleTexture1.destroy(),this.particleSegment.destroy();}}function Xr(t,i,o){if(!t)return null;const s=i.getTextureDescriptor(t,o,!0);if(!s)return null;let{texture:r,mix:a,offset:n,tileSize:l,buffer:c,format:h}=s;if(!r||!h)return null;let u=!1;return \"uint32\"===h&&(u=!0,a[3]=0,a=ar(e.dc,a,[0,o.paint.get(\"raster-particle-max-speed\")]),n=nr(e.dc,n,[0,o.paint.get(\"raster-particle-max-speed\")])),{texture:r,textureOffset:[c/(l+2*c),l/(l+2*c)],tileSize:l,scalarData:u,scale:a,offset:n,defines:[\"RASTER_ARRAY\",{uint8:\"DATA_FORMAT_UINT8\",uint16:\"DATA_FORMAT_UINT16\",uint32:\"DATA_FORMAT_UINT32\"}[h]]}}function Kr(e){const t=e._nearZ,i=e.projection.farthestPixelDistance(e),o=i-t,s=.2*e.height,r=t+s;return [t,i,(r-s-t)/o,(r-t)/o]}const Yr=new e.aj(1,0,0,1),Jr=new e.aj(0,1,0,1),Qr=new e.aj(0,0,1,1),ea=new e.aj(1,0,1,1),ta=new e.aj(0,1,1,1);function ia(t,i,o,s,r,a,n){const l=t.context,c=t.transform,h=l.gl,u=\"globe\"===c.projection.name,d=u?[\"PROJECTION_GLOBE_VIEW\"]:[];let _=e.ab.mat4.clone(o.projMatrix);if(u&&e.ae(c.zoom)>0){const t=e.ba(o.canonical,c),i=e.dd(t);_=e.ab.mat4.multiply(new Float32Array(16),c.globeMatrix,i),e.ab.mat4.multiply(_,c.projMatrix,_);}const p=e.ab.mat4.create();p[12]+=2*r/(e.q.devicePixelRatio*c.width),p[13]+=2*a/(e.q.devicePixelRatio*c.height),e.ab.mat4.multiply(_,p,_);const f=t.getOrCreateProgram(\"debug\",{defines:d}),m=i.getTileByID(o.key);t.terrain&&t.terrain.setupElevationDraw(m,f);const g=Fi.disabled,v=Bi.disabled,y=t.colorModeForRenderPass(),x=\"$debug\";l.activeTexture.set(h.TEXTURE0),t.emptyTexture.bind(h.LINEAR,h.CLAMP_TO_EDGE),u?m._makeGlobeTileDebugBuffers(t.context,c):m._makeDebugTileBoundsBuffers(t.context,c.projection);const b=m._tileDebugBuffer||t.debugBuffer,w=m._tileDebugIndexBuffer||t.debugIndexBuffer,T=m._tileDebugSegments||t.debugSegments;if(f.draw(t,h.LINE_STRIP,g,v,y,Gi.disabled,or(_,s),x,b,w,T,null,null,null,[m._globeTileDebugBorderBuffer]),n){const e=m.latestRawTileData,i=Math.floor((e&&e.byteLength||0)/1024);let s=o.canonical.toString();o.overscaledZ!==o.canonical.z&&(s+=` => ${o.overscaledZ}`),s+=` ${m.state}`,s+=` ${i}kb`,function(e,t){e.initDebugOverlayCanvas();const i=e.debugOverlayCanvas,o=e.context.gl,s=e.debugOverlayCanvas.getContext(\"2d\");s.clearRect(0,0,i.width,i.height),s.shadowColor=\"white\",s.shadowBlur=2,s.lineWidth=1.5,s.strokeStyle=\"white\",s.textBaseline=\"top\",s.font=\"bold 36px Open Sans, sans-serif\",s.fillText(t,5,5),s.strokeText(t,5,5),e.debugOverlayTexture.update(i),e.debugOverlayTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE);}(t,s);}const E=i.getTile(o).tileSize,S=512/Math.min(E,512)*(o.overscaledZ/c.zoom)*.5,C=m._tileDebugTextBuffer||t.debugBuffer,I=m._tileDebugTextIndexBuffer||t.quadTriangleIndexBuffer,R=m._tileDebugTextSegments||t.debugSegments;f.draw(t,h.TRIANGLES,g,v,Oi.alphaBlended,Gi.disabled,or(_,e.aj.transparent,S),x,C,I,R,null,null,null,[m._globeTileDebugTextBuffer]);}function oa(e,t,i,o){ra(e,0,t+i/2,e.transform.width,i,o);}function sa(e,t,i,o){ra(e,t-i/2,0,i,e.transform.height,o);}function ra(t,i,o,s,r,a){const n=t.context,l=n.gl;l.enable(l.SCISSOR_TEST),l.scissor(i*e.q.devicePixelRatio,o*e.q.devicePixelRatio,s*e.q.devicePixelRatio,r*e.q.devicePixelRatio),n.clear({color:a}),l.disable(l.SCISSOR_TEST);}const aa=e.da([{name:\"a_pos_3f\",components:3,type:\"Float32\"}]),{members:na}=aa;function la(e,t,i,o){e.emplaceBack(t,i,o);}class ca{constructor(t){this.vertexArray=new e.de,this.indices=new e.aU,la(this.vertexArray,-1,-1,1),la(this.vertexArray,1,-1,1),la(this.vertexArray,-1,1,1),la(this.vertexArray,1,1,1),la(this.vertexArray,-1,-1,-1),la(this.vertexArray,1,-1,-1),la(this.vertexArray,-1,1,-1),la(this.vertexArray,1,1,-1),this.indices.emplaceBack(5,1,3),this.indices.emplaceBack(3,7,5),this.indices.emplaceBack(6,2,0),this.indices.emplaceBack(0,4,6),this.indices.emplaceBack(2,6,7),this.indices.emplaceBack(7,3,2),this.indices.emplaceBack(5,4,0),this.indices.emplaceBack(0,1,5),this.indices.emplaceBack(0,2,3),this.indices.emplaceBack(3,1,0),this.indices.emplaceBack(7,6,4),this.indices.emplaceBack(4,5,7),this.vertexBuffer=t.createVertexBuffer(this.vertexArray,na),this.indexBuffer=t.createIndexBuffer(this.indices),this.segment=e.b7.simpleSegment(0,0,36,12);}}function ha(t,i,o,s,r,a){const n=t.context.gl,l=i.paint.get(\"sky-atmosphere-color\"),c=i.paint.get(\"sky-atmosphere-halo-color\"),h=i.paint.get(\"sky-atmosphere-sun-intensity\"),u=((e,t,i,o,s)=>({u_matrix_3f:e,u_sun_direction:t,u_sun_intensity:i,u_color_tint_r:[o.r,o.g,o.b,o.a],u_color_tint_m:[s.r,s.g,s.b,s.a],u_luminance:5e-5}))(e.ab.mat3.fromMat4(e.ab.mat3.create(),s),r,h,l,c);n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+a,i.skyboxTexture,0),o.draw(t,n.TRIANGLES,Fi.disabled,Bi.disabled,Oi.unblended,Gi.frontCW,u,\"skyboxCapture\",i.skyboxGeometry.vertexBuffer,i.skyboxGeometry.indexBuffer,i.skyboxGeometry.segment);}const ua=e.da([{type:\"Float32\",name:\"a_pos\",components:3},{type:\"Float32\",name:\"a_uv\",components:2}]);class da{constructor(t){const i=new e.df;i.emplaceBack(-1,1,1,0,0),i.emplaceBack(1,1,1,1,0),i.emplaceBack(1,-1,1,1,1),i.emplaceBack(-1,-1,1,0,1);const o=new e.aU;o.emplaceBack(0,1,2),o.emplaceBack(2,3,0),this.vertexBuffer=t.createVertexBuffer(i,ua.members),this.indexBuffer=t.createIndexBuffer(o),this.segments=e.b7.simpleSegment(0,0,4,2);}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy();}}const _a=e.da([{type:\"Float32\",name:\"a_pos_3f\",components:3},{type:\"Float32\",name:\"a_uv\",components:2},{type:\"Float32\",name:\"a_size_scale\",components:1},{type:\"Float32\",name:\"a_fade_opacity\",components:1}]);class pa{constructor(){this.starsCount=16e3,this.sizeMultiplier=.15,this.sizeRange=100,this.intensityRange=200;}}class fa{constructor(t){this.colorModeAlphaBlendedWriteRGB=new Oi([1,Mi,1,Mi],e.aj.transparent,[!0,!0,!0,!1]),this.colorModeWriteAlpha=new Oi([1,0,1,0],e.aj.transparent,[!1,!1,!1,!0]),this.params=new pa,this.updateNeeded=!0,t.tp.registerParameter(this.params,[\"Stars\"],\"starsCount\",{min:100,max:16e3,step:1},(()=>{this.updateNeeded=!0;})),t.tp.registerParameter(this.params,[\"Stars\"],\"sizeMultiplier\",{min:.01,max:2,step:.01}),t.tp.registerParameter(this.params,[\"Stars\"],\"sizeRange\",{min:0,max:200,step:1},(()=>{this.updateNeeded=!0;})),t.tp.registerParameter(this.params,[\"Stars\"],\"intensityRange\",{min:0,max:200,step:1},(()=>{this.updateNeeded=!0;}));}update(t){const i=t.context;if(!this.atmosphereBuffer||this.updateNeeded){this.updateNeeded=!1,this.atmosphereBuffer=new da(i);const t=this.params.sizeRange,o=this.params.intensityRange,s=function(t){const i=e.di(30),o=[];for(let s=0;s<t;++s){const t=2*Math.PI*i(),s=Math.acos(1-2*i())-.5*Math.PI;o.push(e.ab.vec3.fromValues(Math.cos(s)*Math.cos(t),Math.cos(s)*Math.sin(t),Math.sin(s)));}return o}(this.params.starsCount),r=e.di(300),a=new e.dg,n=new e.aU;let l=0;for(let i=0;i<s.length;++i){const c=e.ab.vec3.scale([],s[i],200),h=Math.max(0,1+.01*t*(1*r()-.5)),u=Math.max(0,1+.01*o*(1*r()-.5));a.emplaceBack(c[0],c[1],c[2],-1,-1,h,u),a.emplaceBack(c[0],c[1],c[2],1,-1,h,u),a.emplaceBack(c[0],c[1],c[2],1,1,h,u),a.emplaceBack(c[0],c[1],c[2],-1,1,h,u),n.emplaceBack(l+0,l+1,l+2),n.emplaceBack(l+0,l+2,l+3),l+=4;}this.starsVx=i.createVertexBuffer(a,_a.members),this.starsIdx=i.createIndexBuffer(n),this.starsSegments=e.b7.simpleSegment(0,0,a.length,n.length);}}destroy(){this.atmosphereBuffer&&this.atmosphereBuffer.destroy(),this.starsVx&&this.starsVx.destroy(),this.starsIdx&&this.starsIdx.destroy();}drawAtmosphereGlow(t,i){const o=t.context,s=o.gl,r=t.transform,a=new Fi(s.LEQUAL,Fi.ReadOnly,[0,1]),n=e.ae(r.zoom),l=t.style.getLut(i.scope),c=\"none\"===i.properties.get(\"color-use-theme\"),h=i.properties.get(\"color\").toRenderColor(c?null:l).toArray01(),u=\"none\"===i.properties.get(\"high-color-use-theme\"),d=i.properties.get(\"high-color\").toRenderColor(u?null:l).toArray01(),_=\"none\"===i.properties.get(\"space-color-use-theme\"),p=i.properties.get(\"space-color\").toRenderColor(_?null:l).toArray01PremultipliedAlpha(),f=5e-4,m=e.dh(i.properties.get(\"horizon-blend\"),0,1,f,.25),g=e.cC(t,o,r)&&m===f?r.worldSize/(2*Math.PI*1.025)-1:r.globeRadius,v=t.frameCounter/1e3%1,y=e.ab.vec3.length(r.globeCenterInViewSpace),x=Math.sqrt(Math.pow(y,2)-Math.pow(g,2)),b=Math.acos(x/y),w=e=>{const i=\"globe\"===r.projection.name?[\"PROJECTION_GLOBE_VIEW\",\"FOG\"]:[\"FOG\"];e&&i.push(\"ALPHA_PASS\");const l=t.getOrCreateProgram(\"globeAtmosphere\",{defines:i}),c=((e,t,i,o,s,r,a,n,l,c,h,u)=>({u_frustum_tl:e,u_frustum_tr:t,u_frustum_br:i,u_frustum_bl:o,u_horizon:s,u_transition:r,u_fadeout_range:a,u_color:n,u_high_color:l,u_space_color:c,u_temporal_offset:h,u_horizon_angle:u}))(r.frustumCorners.TL,r.frustumCorners.TR,r.frustumCorners.BR,r.frustumCorners.BL,r.frustumCorners.horizon,n,m,h,d,p,v,b);t.uploadCommonUniforms(o,l);const u=this.atmosphereBuffer;u&&l.draw(t,s.TRIANGLES,a,Bi.disabled,e?this.colorModeWriteAlpha:this.colorModeAlphaBlendedWriteRGB,Gi.backCW,c,e?\"atmosphere_glow_alpha\":\"atmosphere_glow\",u.vertexBuffer,u.indexBuffer,u.segments);};w(!1),w(!0);}drawStars(t,i){const o=e.aw(i.properties.get(\"star-intensity\"),0,1);if(0===o)return;const s=t.context,r=s.gl,a=t.transform,n=t.getOrCreateProgram(\"stars\"),l=e.ab.quat.identity([]);e.ab.quat.rotateX(l,l,-a._pitch),e.ab.quat.rotateZ(l,l,-a.angle),e.ab.quat.rotateX(l,l,e.ai(a._center.lat)),e.ab.quat.rotateY(l,l,-e.ai(a._center.lng));const c=e.ab.mat4.fromQuat(new Float32Array(16),l),h=e.ab.mat4.multiply([],a.starsProjMatrix,c),u=e.ab.mat3.fromMat4([],c),d=e.ab.mat3.invert([],u),_=[0,1,0];e.ab.vec3.transformMat3(_,_,d),e.ab.vec3.scale(_,_,this.params.sizeMultiplier);const p=[1,0,0];e.ab.vec3.transformMat3(p,p,d),e.ab.vec3.scale(p,p,this.params.sizeMultiplier);const f=(m=_,g=p,v=o,{u_matrix:Float32Array.from(h),u_up:m,u_right:g,u_intensity_multiplier:v});var m,g,v;t.uploadCommonUniforms(s,n),this.starsVx&&this.starsIdx&&n.draw(t,r.TRIANGLES,Fi.disabled,Bi.disabled,this.colorModeAlphaBlendedWriteRGB,Gi.disabled,f,\"atmosphere_stars\",this.starsVx,this.starsIdx,this.starsSegments);}}function ma(t,i){const o=[...t],s=i.cameraWorldSizeForFog/i.worldSize,r=e.ab.mat4.identity([]);return e.ab.mat4.scale(r,r,[s,s,1]),e.ab.mat4.multiply(o,r,o),e.ab.mat4.multiply(o,i.worldToFogMatrix,o),o}function ga(t,i,o,s,r){const a=o.material,n=s.context,{baseColorTexture:l,metallicRoughnessTexture:c}=a.pbrMetallicRoughness,{normalTexture:h,occlusionTexture:u,emissionTexture:d}=a;function _(e,i,o){if(e&&(t.push(i),n.activeTexture.set(n.gl.TEXTURE0+o),e.gfxTexture)){const{minFilter:t,magFilter:i,wrapS:o,wrapT:s}=e.sampler;e.gfxTexture.bindExtraParam(t,i,o,s);}}_(l,\"HAS_TEXTURE_u_baseColorTexture\",Wi.BaseColor),_(c,\"HAS_TEXTURE_u_metallicRoughnessTexture\",Wi.MetallicRoughness),_(h,\"HAS_TEXTURE_u_normalTexture\",Wi.Normal),_(u,\"HAS_TEXTURE_u_occlusionTexture\",Wi.Occlusion),_(d,\"HAS_TEXTURE_u_emissionTexture\",Wi.Emission),r&&(r.texture||(r.texture=new e.dk(s.context,r.image,[r.image.height,r.image.height,r.image.height],n.gl.RGBA8)),n.activeTexture.set(n.gl.TEXTURE0+Wi.LUT),r.texture&&r.texture.bind(n.gl.LINEAR,n.gl.CLAMP_TO_EDGE),t.push(\"APPLY_LUT_ON_GPU\")),o.texcoordBuffer&&(t.push(\"HAS_ATTRIBUTE_a_uv_2f\"),i.push(o.texcoordBuffer)),o.colorBuffer&&(t.push(12===o.colorBuffer.itemSize?\"HAS_ATTRIBUTE_a_color_3f\":\"HAS_ATTRIBUTE_a_color_4f\"),i.push(o.colorBuffer)),o.normalBuffer&&(t.push(\"HAS_ATTRIBUTE_a_normal_3f\"),i.push(o.normalBuffer)),o.pbrBuffer&&(t.push(\"HAS_ATTRIBUTE_a_pbr\"),t.push(\"HAS_ATTRIBUTE_a_heightBasedEmissiveStrength\"),i.push(o.pbrBuffer)),\"OPAQUE\"!==a.alphaMode&&\"MASK\"!==a.alphaMode||t.push(\"UNPREMULT_TEXTURE_IN_SHADER\"),a.defined||t.push(\"DIFFUSE_SHADED\"),t.push(\"USE_STANDARD_DERIVATIVES\");const p=s.shadowRenderer;p&&(t.push(\"RENDER_SHADOWS\",\"DEPTH_TEXTURE\"),p.useNormalOffset&&t.push(\"NORMAL_OFFSET\"));}function va(t,i,o,s,r,a){const n=o.paint.get(\"model-opacity\").constantOr(1),l=i.context,c=new Fi(i.context.gl.LEQUAL,Fi.ReadWrite,i.depthRangeFor3D),h=i.transform,u=t.mesh,d=u.material,_=d.pbrMetallicRoughness,p=i.style.fog;let f;f=\"pixels\"===i.transform.projection.zAxisUnit?[...t.nodeModelMatrix]:e.ab.mat4.multiply([],s.zScaleMatrix,t.nodeModelMatrix),e.ab.mat4.multiply(f,s.negCameraPosMatrix,f);const m=e.ab.mat4.invert([],f);e.ab.mat4.transpose(m,m);const g=\"none\"===o.paint.get(\"model-color-use-theme\").constantOr(\"default\"),v=o.paint.get(\"model-emissive-strength\").constantOr(0),y=yr(new Float32Array(t.worldViewProjection),new Float32Array(f),new Float32Array(m),null,i,n,_.baseColorFactor.toRenderColor(null),d.emissiveFactor,_.metallicFactor,_.roughnessFactor,d,v,o),x={defines:[]},b=[],w=i.shadowRenderer;w&&(w.useNormalOffset=!1),ga(x.defines,b,u,i,g?null:o.lut);let T=null;if(p){const e=ma(t.nodeModelMatrix,i.transform);if(T=new Float32Array(e),\"globe\"!==h.projection.name){const t=u.aabb.min,i=u.aabb.max,[o,s]=p.getOpacityForBounds(e,t[0],t[1],i[0],i[1]);x.overrideFog=o>=Fe||s>=Fe;}}const E=Ji(i,o.paint.get(\"model-cutoff-fade-range\"));E.shouldRenderCutoff&&x.defines.push(\"RENDER_CUTOFF\");const S=i.getOrCreateProgram(\"model\",x);i.uploadCommonUniforms(l,S,null,T,E),\"shadow\"!==i.renderPass&&w&&w.setupShadowsFromMatrix(t.nodeModelMatrix,S),S.draw(i,l.gl.TRIANGLES,c,r,a,u.material.doubleSided?Gi.disabled:Gi.backCCW,y,o.id,u.vertexBuffer,u.indexBuffer,u.segments,o.paint,i.transform.zoom,void 0,b);}function ya(t,i,o,s,r,a,n){let l;l=\"globe\"===t.projection.name?e.dl(o,t):[...o],e.ab.mat4.multiply(l,l,i.matrix);const c=e.ab.mat4.multiply([],s,l);if(i.meshes)for(const t of i.meshes){if(\"BLEND\"!==t.material.alphaMode){n.push({mesh:t,depth:0,modelIndex:r,worldViewProjection:c,nodeModelMatrix:l});continue}const i=e.ab.vec3.transformMat4([],t.centroid,c);i[2]>0&&a.push({mesh:t,depth:i[2],modelIndex:r,worldViewProjection:c,nodeModelMatrix:l});}if(i.children)for(const e of i.children)ya(t,e,o,s,r,a,n);}function xa(e,t,i,o){const s=i.shadowRenderer;if(!s)return;const r=s.getShadowPassDepthMode(),a=s.getShadowPassColorMode(),n=s.calculateShadowPassMatrixFromMatrix(t),l=xr(n);i.getOrCreateProgram(\"modelDepth\",{defines:i._shadowMapDebug?[]:[\"DEPTH_TEXTURE\"]}).draw(i,i.context.gl.TRIANGLES,r,Bi.disabled,a,Gi.backCCW,l,o.id,e.vertexBuffer,e.indexBuffer,e.segments,o.paint,i.transform.zoom,void 0,void 0);}function ba(t,i,o){const s=i.updateZoomBasedPaintProperties(),r=function(t,i,o){let s,r,a,n=t.terrain?t.terrain.exaggeration():0;if(t.terrain&&n>0){const i=t.terrain,r=i.findDEMTileFor(o);r&&r.dem?s=e.dn.create(i,o,r):n=0;}if(0===n&&(i.terrainElevationMin=0,i.terrainElevationMax=0),n===i.validForExaggeration&&(0===n||s&&s._demTile&&s._demTile.tileID===i.validForDEMTile.id&&s._dem._timestamp===i.validForDEMTile.timestamp))return !1;for(const e in i.instancesPerModel){const t=i.instancesPerModel[e];for(let e=0;e<t.instancedDataArray.length;++e){const o=(s?n*s.getElevationAt(0|t.instancedDataArray.float32[16*e],0|t.instancedDataArray.float32[16*e+1],!0,!0):0)+t.instancesEvaluatedElevation[e];t.instancedDataArray.float32[16*e+6]=o,r=r?Math.min(i.terrainElevationMin,o):o,a=a?Math.max(i.terrainElevationMax,o):o;}}return i.terrainElevationMin=r||0,i.terrainElevationMax=a||0,i.validForExaggeration=n,i.validForDEMTile=s&&s._demTile?{id:s._demTile.tileID,timestamp:s._dem._timestamp}:{id:void 0,timestamp:0},!0}(t,i,o);(s||r)&&(i.uploaded=!1,i.upload(t.context));}const wa={shadowUniformsInitialized:!1,useSingleShadowCascade:!1,tileMatrix:new Float64Array(16),shadowTileMatrix:new Float32Array(16),aabb:new e.cd([0,0,0],[e.ag,e.ag,0])};function Ta(t,i){const o=1<<t.canonical.z,s=i.getFreeCameraOptions().position,r=i.elevation,a=t.canonical.x/o,n=(t.canonical.x+1)/o,l=t.canonical.y/o,c=(t.canonical.y+1)/o;let h=i._centerAltitude;if(r){const e=r.getMinMaxForTile(t);e&&e.max>h&&(h=e.max);}const u=e.aw(s.x,a,n)-s.x,d=e.aw(s.y,l,c)-s.y,_=e.bH(h,i.center.lat)-s.z;return i._zoomFromMercatorZ(Math.sqrt(u*u+d*d+_*_))}function Ea(e,t,i,o,s,r,a){const n=e.context,l=\"shadow\"===e.renderPass,c=e.shadowRenderer,h=l&&c?c.getShadowPassDepthMode():new Fi(n.gl.LEQUAL,Fi.ReadWrite,e.depthRangeFor3D),u=e.isTileAffectedByFog(r);if(i.meshes)for(const d of i.meshes){const _=[\"MODEL_POSITION_ON_GPU\"],p=[];let f,m,g;o.instancedDataArray.length>20&&_.push(\"INSTANCED_ARRAYS\");const v=Ji(e,t.paint.get(\"model-cutoff-fade-range\"));if(v.shouldRenderCutoff&&_.push(\"RENDER_CUTOFF\"),l&&c)f=e.getOrCreateProgram(\"modelDepth\",{defines:_}),m=xr(a.shadowTileMatrix,a.shadowTileMatrix,Float32Array.from(i.matrix)),g=c.getShadowPassColorMode();else {ga(_,p,d,e,\"none\"===t.paint.get(\"model-color-use-theme\").constantOr(\"default\")?null:t.lut),f=e.getOrCreateProgram(\"model\",{defines:_,overrideFog:u});const o=d.material,l=o.pbrMetallicRoughness,h=t.paint.get(\"model-opacity\").constantOr(1),y=t.paint.get(\"model-emissive-strength\").constantOr(0);m=yr(r.expandedProjMatrix,Float32Array.from(i.matrix),new Float32Array(16),null,e,h,l.baseColorFactor.toRenderColor(null),o.emissiveFactor,l.metallicFactor,l.roughnessFactor,o,y,t,s),c&&(a.shadowUniformsInitialized?f.setShadowUniformValues(n,c.getShadowUniformValues()):(c.setupShadows(r.toUnwrapped(),f,\"model-tile\",r.overscaledZ),a.shadowUniformsInitialized=!0)),g=v.shouldRenderCutoff||h<1||\"OPAQUE\"!==o.alphaMode?Oi.alphaBlended:Oi.unblended;}e.uploadCommonUniforms(n,f,r.toUnwrapped(),null,v);const y=d.material.doubleSided?Gi.disabled:Gi.backCCW;if(o.instancedDataArray.length>20)p.push(o.instancedDataBuffer),f.draw(e,n.gl.TRIANGLES,h,Bi.disabled,g,y,m,t.id,d.vertexBuffer,d.indexBuffer,d.segments,t.paint,e.transform.zoom,void 0,p,o.instancedDataArray.length);else {const i=l?\"u_instance\":\"u_normal_matrix\";for(let s=0;s<o.instancedDataArray.length;++s)m[i]=new Float32Array(o.instancedDataArray.arrayBuffer,64*s,16),f.draw(e,n.gl.TRIANGLES,h,Bi.disabled,g,y,m,t.id,d.vertexBuffer,d.indexBuffer,d.segments,t.paint,e.transform.zoom,void 0,p);}}if(i.children)for(const n of i.children)Ea(e,t,n,o,s,r,a);}const Sa=[1,-1,1];function Ca(t,i,o,s){if(!o.modelManager)return !0;const r=o.modelManager;if(!o.shadowRenderer)return !0;const a=o.shadowRenderer,n=i.aabb;let l=!0,c=t.maxHeight;if(0===c){let e=0;for(const i in t.instancesPerModel){const t=r.getModel(i,s);t?e=Math.max(e,Math.max(Math.max(t.aabb.max[0],t.aabb.max[1]),t.aabb.max[2])):l=!1;}c=t.maxScale*e*1.41+t.maxVerticalOffset,l&&(t.maxHeight=c);}n.max[2]=c,n.min[2]+=t.terrainElevationMin,n.max[2]+=t.terrainElevationMax,e.ab.vec3.transformMat4(n.min,n.min,i.tileMatrix),e.ab.vec3.transformMat4(n.max,n.max,i.tileMatrix);const h=n.intersects(a.getCurrentCascadeFrustum());return 0===o.currentShadowCascade&&(t.isInsideFirstShadowMapFrustum=2===h),0===h}function Ia(t,i){const o=t.uniformValues.u_cutoff_params[0],s=t.uniformValues.u_cutoff_params[1],r=t.uniformValues.u_cutoff_params[2],a=t.uniformValues.u_cutoff_params[3];return s===o||a===r?1:e.aw(((i-o)/(s-o)-r)/(a-r),0,1)}function Ra(t,i,o,s){if(i.pitch<20)return 1;const r=i.getWorldToCameraMatrix();e.ab.mat4.multiply(r,r,t);const a=e.ab.vec4.fromValues(o.min[0],o.min[1],o.min[2],1);let n=e.ab.vec4.transformMat4(e.ab.vec4.create(),a,r),l=n,c=n;a[1]=o.max[1],n=e.ab.vec4.transformMat4(e.ab.vec4.create(),a,r),l=n[1]<l[1]?n:l,c=n[1]>c[1]?n:c,a[0]=o.max[0],n=e.ab.vec4.transformMat4(e.ab.vec4.create(),a,r),l=n[1]<l[1]?n:l,c=n[1]>c[1]?n:c,a[1]=o.min[1],n=e.ab.vec4.transformMat4(e.ab.vec4.create(),a,r),l=n[1]<l[1]?n:l,c=n[1]>c[1]?n:c;const h=e.aw(s[0],0,1),u=100*i.pixelsPerMeter*e.aw(s[1],0,1),d=e.aw(s[2],0,1),_=e.ab.vec4.lerp(e.ab.vec4.create(),l,c,h),p=Math.tan(.5*i.fovX),f=-_[2]*p;if(0===u)return _[1]<-Math.abs(f)?d:1;const m=(-Math.abs(f)-_[1])/u,g=(e,t,i)=>(1-i)*e+i*t,v=e.aw(g(1,d,m),d,1);return g(1,v,e.aw((i.pitch-20)/20,0,1))}class Da{}class La{constructor(){this._storage=new Map;}getLinesFromTrianglesBuffer(t,i,o){{const e=this._storage.get(i.id);if(e)return e.lastUsedFrameIdx=t,e.buf}const s=o.gl,r=s.getBufferParameter(s.ELEMENT_ARRAY_BUFFER,s.BUFFER_SIZE),a=new ArrayBuffer(r),n=new Int16Array(a);s.getBufferSubData(s.ELEMENT_ARRAY_BUFFER,0,new Int16Array(a));const l=new e.dq;for(let e=0;e<r/2;e+=3){const t=n[e],i=n[e+1],o=n[e+2];l.emplaceBack(t,i),l.emplaceBack(i,o),l.emplaceBack(o,t);}const c=o.bindVertexArrayOES.current,h=new Da;return h.buf=new wr(o,l),h.lastUsedFrameIdx=t,this._storage.set(i.id,h),o.bindVertexArrayOES.set(c),h.buf}update(e){for(const[t,i]of this._storage)e-i.lastUsedFrameIdx>30&&(i.buf.destroy(),this._storage.delete(t));}destroy(){for(const[e,t]of this._storage)t.buf.destroy(),this._storage.delete(e);}}class Aa{constructor(e){this.occluderSize=30,this.depthOffset=-1e-4,e.registerParameter(this,[\"Occlusion\"],\"occluderSize\",{min:1,max:100,step:1}),e.registerParameter(this,[\"Occlusion\"],\"depthOffset\",{min:-.05,max:0,step:1e-5});}}const za=e.da([{type:\"Float32\",name:\"a_pos_3f\",components:3},{type:\"Float32\",name:\"a_uv\",components:2},{type:\"Float32\",name:\"a_rainParticleData\",components:4}]);class Pa{registerParameter(){}registerButton(){}registerBinding(){}refreshUI(){}}class Ma{constructor(e,t){this.revealStart=11,this.revealRange=2,e.registerParameter(this,[...t,\"Reveal\"],\"revealStart\",{min:0,max:17,step:.05}),e.registerParameter(this,[...t,\"Reveal\"],\"revealRange\",{min:.1,max:5.1,step:.05});}}const Oa=e.da([{type:\"Float32\",name:\"a_pos_2f\",components:2}]);class Fa{destroy(){this.vignetteVx&&this.vignetteVx.destroy(),this.vignetteIdx&&this.vignetteIdx.destroy();}draw(t,i){const o=t.getOrCreateProgram(\"vignette\");if(!this.vignetteVx||!this.vignetteIdx){const i=new e.dr,o=new e.aU;i.emplaceBack(-1,-1),i.emplaceBack(1,-1),i.emplaceBack(1,1),i.emplaceBack(-1,1),o.emplaceBack(0,1,2),o.emplaceBack(0,2,3),this.vignetteVx=t.context.createVertexBuffer(i,Oa.members),this.vignetteIdx=t.context.createIndexBuffer(o);}const s=e.b7.simpleSegment(0,0,4,6);if(this.vignetteVx&&this.vignetteIdx){t.uploadCommonUniforms(t.context,o);const e={u_vignetteShape:(r={vignetteShape:[i.start,i.range,Math.pow(10,i.fadePower)],vignetteColor:[i.color.r,i.color.g,i.color.b,i.color.a*i.strength]}).vignetteShape,u_vignetteColor:r.vignetteColor};o.draw(t,t.context.gl.TRIANGLES,Fi.disabled,Bi.disabled,Oi.alphaBlended,Gi.disabled,e,\"vignette\",this.vignetteVx,this.vignetteIdx,s,{});}var r;}}class ka{constructor(){this._accumulatedOffsetX=0,this._accumulatedOffsetY=0,this._accumulatedElevation=0;}update(t,i){const o=t.getFreeCameraOptions().position,s=o.toAltitude(),r=o.toLngLat(),a=e.ai(r.lng),n=e.ai(r.lat),l=t.pixelsPerMeter/i,c=a*e.ds,h=e.ds*Math.log(Math.tan(Math.PI/4+n/2));if(void 0===this._offsetXPrev)this._offsetXPrev=0,this._offsetYPrev=0,this._elevationPrev=0,this._accumulatedOffsetX=0,this._accumulatedOffsetY=0,this._accumulatedElevation=0;else {const e=-this._offsetYPrev+h,t=-this._elevationPrev+s;this._accumulatedOffsetX+=(-this._offsetXPrev+c)*l,this._accumulatedOffsetY+=e*l,this._accumulatedElevation+=t*l,this._offsetXPrev=c,this._offsetYPrev=h,this._elevationPrev=s;}}getPosition(){return [this._accumulatedOffsetX,this._accumulatedOffsetY,this._accumulatedElevation]}}function Ba(e,t){return [-(e[0]-Math.floor(e[0]/t)*t),-(e[1]-Math.floor(e[1]/t)*t),-(e[2]-Math.floor(e[2]/t)*t)]}function Na(t){const i=e.di(1323123451230),o=[];for(let s=0;s<t;++s){const t=2*i()-1,s=2*i()-1,r=2*i()-1;o.push(e.ab.vec3.fromValues(t,s,r));}return o}function Ua(t,i,o,s,r){const a=e.aw((r-o)/(s-o),0,1);return (1-a)*t+a*i}class Ga{constructor(e){this._movement=new ka,this._accumulatedTimeFromStart=0,this._prevTime=Date.now()/1e3,this._vignette=new Fa,this._ppmScaleFactor=e;}destroy(){this.particlesVx&&this.particlesVx.destroy(),this.particlesIdx&&this.particlesIdx.destroy(),this._vignette&&this._vignette.destroy();}updateOnRender(t,i){const o=t.transform;this._movement.update(o,this._ppmScaleFactor);const s=o.starsProjMatrix,r=e.ab.quat.identity([]);e.ab.quat.rotateX(r,r,e.ai(90)-o._pitch),e.ab.quat.rotateZ(r,r,-o.angle);const a=e.ab.mat4.fromQuat(new Float32Array(16),r),n=e.ab.mat4.fromValues(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1),l=e.ab.mat4.transpose([],n),c=e.ab.mat4.multiply([],l,a),h=Date.now()/1e3;return this._accumulatedTimeFromStart+=(h-this._prevTime)*i,this._prevTime=h,{projectionMatrix:s,modelviewMatrix:c}}}class ja extends Ga{constructor(e){super(4.25),this._params={overrideStyleParameters:!1,intensity:.5,timeFactor:1,velocityConeAperture:0,velocity:300,boxSize:2500,dropletSizeX:1,dropletSizeYScale:10,distortionStrength:70,screenThinning:{intensity:.57,start:.46,range:1.17,fadePower:.17,affectedRatio:1,particleOffset:-.2},color:{r:.66,g:.68,b:.74,a:.7},direction:{x:-50,y:-35},shapeDirPower:2,shapeNormalPower:1},this._revealParams=new Ma(e.tp,[\"Precipitation\",\"Rain\"]),this._vignetteParams={strength:1,start:.7,range:1,fadePower:.4,color:{r:.27,g:.27,b:.27,a:1}},this.particlesCount=16e3;}update(t){const i=t.context;if(!this.particlesVx){const t=Na(this.particlesCount),o=new e.dt,s=new e.aU;let r=0;const a=e.di(1323123451230);for(let e=0;e<t.length;++e){const i=t[e],n=[2*a()-1,a(),a(),a()];o.emplaceBack(i[0],i[1],i[2],-1,-1,...n),o.emplaceBack(i[0],i[1],i[2],1,-1,...n),o.emplaceBack(i[0],i[1],i[2],1,1,...n),o.emplaceBack(i[0],i[1],i[2],-1,1,...n),s.emplaceBack(r+0,r+1,r+2),s.emplaceBack(r+0,r+2,r+3),r+=4;}this.particlesVx=i.createVertexBuffer(o,za.members),this.particlesIdx=i.createIndexBuffer(s);}}draw(t){if(!this._params.overrideStyleParameters&&!t.style.rain)return;const i=this._params.overrideStyleParameters?this._revealParams:{revealStart:0,revealRange:.01},o=t.transform.zoom;if(i.revealStart>o)return;const s=Ua(0,1,i.revealStart,i.revealStart+i.revealRange,o);if(!this.particlesVx||!this.particlesIdx)return;const r=structuredClone(this._params);let a=[-r.direction.x,r.direction.y,-100];e.ab.vec3.normalize(a,a);const n=structuredClone(this._vignetteParams);n.strength*=s,r.overrideStyleParameters||(r.intensity=t.style.rain.state.density,r.timeFactor=t.style.rain.state.intensity,r.color=structuredClone(t.style.rain.state.color),a=structuredClone(t.style.rain.state.direction),r.screenThinning.intensity=t.style.rain.state.centerThinning,r.dropletSizeX=t.style.rain.state.dropletSize[0],r.dropletSizeYScale=t.style.rain.state.dropletSize[1]/t.style.rain.state.dropletSize[0],r.distortionStrength=100*t.style.rain.state.distortionStrength,n.strength=1,n.color=structuredClone(t.style.rain.state.vignetteColor));const l=this.updateOnRender(t,r.timeFactor),c=t.context,h=c.gl,u=t.transform;this.screenTexture&&this.screenTexture.size[0]===t.width&&this.screenTexture.size[1]===t.height||(this.screenTexture=new e.T(c,{width:t.width,height:t.height,data:null},h.RGBA8)),r.distortionStrength>0&&(c.activeTexture.set(h.TEXTURE0),this.screenTexture.bind(h.LINEAR,h.CLAMP_TO_EDGE),h.copyTexSubImage2D(h.TEXTURE_2D,0,0,0,0,0,t.width,t.height));const d=t.getOrCreateProgram(\"rainParticle\");t.uploadCommonUniforms(c,d),c.activeTexture.set(h.TEXTURE0),this.screenTexture.bind(h.LINEAR,h.CLAMP_TO_EDGE);const _=[r.color.r,r.color.g,r.color.b,r.color.a],p=(i,o)=>{const n=Ba(this._movement.getPosition(),i),c=r.dropletSizeX,p=r.dropletSizeX*r.dropletSizeYScale,f=t.width/2,m=t.height/2,g=Ua(0,r.screenThinning.start,0,1,r.screenThinning.intensity),v=Ua(.001,r.screenThinning.range,0,1,r.screenThinning.intensity),y=Ua(0,r.screenThinning.particleOffset,0,1,r.screenThinning.intensity),x=(b={modelview:l.modelviewMatrix,projection:l.projectionMatrix,time:this._accumulatedTimeFromStart,camPos:n,velocityConeAperture:r.velocityConeAperture,velocity:r.velocity,boxSize:i,rainDropletSize:[c,p],distortionStrength:r.distortionStrength,rainDirection:a,color:_,screenSize:[u.width,u.height],thinningCenterPos:[f,m],thinningShape:[g,v,Math.pow(10,r.screenThinning.fadePower)],thinningAffectedRatio:r.screenThinning.affectedRatio,thinningParticleOffset:y,shapeDirectionalPower:r.shapeDirPower,shapeNormalPower:r.shapeNormalPower,mode:o?0:1},{u_modelview:Float32Array.from(b.modelview),u_projection:Float32Array.from(b.projection),u_time:b.time,u_cam_pos:b.camPos,u_texScreen:0,u_velocityConeAperture:b.velocityConeAperture,u_velocity:b.velocity,u_boxSize:b.boxSize,u_rainDropletSize:b.rainDropletSize,u_distortionStrength:b.distortionStrength,u_rainDirection:b.rainDirection,u_color:b.color,u_screenSize:b.screenSize,u_thinningCenterPos:b.thinningCenterPos,u_thinningShape:b.thinningShape,u_thinningAffectedRatio:b.thinningAffectedRatio,u_thinningParticleOffset:b.thinningParticleOffset,u_shapeDirectionalPower:b.shapeDirectionalPower,u_shapeNormalPower:b.shapeNormalPower,u_mode:b.mode});var b;const w=Math.round(s*r.intensity*this.particlesCount),T=e.b7.simpleSegment(0,0,4*w,2*w);d.draw(t,h.TRIANGLES,Fi.disabled,Bi.disabled,Oi.alphaBlended,Gi.disabled,x,\"rain_particles\",this.particlesVx,this.particlesIdx,T,{});};r.distortionStrength>0&&p(r.boxSize,!0),p(r.boxSize,!1),this._vignette.draw(t,n);}}const Va=e.da([{type:\"Float32\",name:\"a_pos_3f\",components:3},{type:\"Float32\",name:\"a_uv\",components:2},{type:\"Float32\",name:\"a_snowParticleData\",components:4},{type:\"Float32\",name:\"a_snowParticleDataHorizontalOscillation\",components:2}]);class qa extends Ga{constructor(e){super(2.25),this._params={overrideStyleParameters:!1,intensity:.85,timeFactor:.75,velocityConeAperture:70,velocity:40,horizontalOscillationRadius:4,horizontalOscillationRate:1.5,boxSize:2e3,billboardSize:2,shapeFadeStart:.27,shapeFadePower:.21,screenThinning:{intensity:.4,start:.15,range:1.4,fadePower:.24,affectedRatio:1,particleOffset:-.2},color:{r:1,g:1,b:1,a:1},direction:{x:-50,y:-35}},this._revealParams=new Ma(e.tp,[\"Precipitation\",\"Snow\"]),this._vignetteParams={strength:.3,start:.78,range:.46,fadePower:.2,color:{r:1,g:1,b:1,a:1}},this.particlesCount=16e3;}update(t){const i=t.context;if(!this.particlesVx){const t=Na(this.particlesCount),o=new e.du,s=new e.aU;let r=0;const a=e.di(1323123451230);for(let e=0;e<t.length;++e){const i=t[e],n=a(),l=a(),c=a(),h=[e/t.length,n,l,c],u=[a(),a()];o.emplaceBack(i[0],i[1],i[2],-1,-1,...h,...u),o.emplaceBack(i[0],i[1],i[2],1,-1,...h,...u),o.emplaceBack(i[0],i[1],i[2],1,1,...h,...u),o.emplaceBack(i[0],i[1],i[2],-1,1,...h,...u),s.emplaceBack(r+0,r+1,r+2),s.emplaceBack(r+0,r+2,r+3),r+=4;}this.particlesVx=i.createVertexBuffer(o,Va.members),this.particlesIdx=i.createIndexBuffer(s);}}draw(t){if(!this._params.overrideStyleParameters&&!t.style.snow)return;const i=structuredClone(this._params);let o=[-i.direction.x,i.direction.y,-100];e.ab.vec3.normalize(o,o);const s=structuredClone(this._vignetteParams),r=i.overrideStyleParameters?this._revealParams:{revealStart:0,revealRange:.01},a=t.transform.zoom;if(r.revealStart>a)return;const n=Ua(0,1,r.revealStart,r.revealStart+r.revealRange,a);s.strength*=n,i.overrideStyleParameters||(i.intensity=t.style.snow.state.density,i.timeFactor=t.style.snow.state.intensity,i.color=structuredClone(t.style.snow.state.color),o=structuredClone(t.style.snow.state.direction),i.screenThinning.intensity=t.style.snow.state.centerThinning,i.billboardSize=2.79*t.style.snow.state.flakeSize,s.strength=1,s.color=structuredClone(t.style.snow.state.vignetteColor));const l=this.updateOnRender(t,i.timeFactor);if(!this.particlesVx||!this.particlesIdx)return;const c=t.context,h=c.gl,u=t.transform,d=t.getOrCreateProgram(\"snowParticle\");t.uploadCommonUniforms(c,d),((i,s,r)=>{const a=Ba(this._movement.getPosition(),i),c=u.width/2,_=u.height/2,p=Ua(0,r.screenThinning.start,0,1,r.screenThinning.intensity),f=Ua(.001,r.screenThinning.range,0,1,r.screenThinning.intensity),m=Ua(0,r.screenThinning.particleOffset,0,1,r.screenThinning.intensity),g=(v={modelview:l.modelviewMatrix,projection:l.projectionMatrix,time:this._accumulatedTimeFromStart,camPos:a,velocityConeAperture:r.velocityConeAperture,velocity:r.velocity,horizontalOscillationRadius:r.horizontalOscillationRadius,horizontalOscillationRate:r.horizontalOscillationRate,boxSize:i,billboardSize:1*r.billboardSize,simpleShapeParameters:[r.shapeFadeStart,r.shapeFadePower],screenSize:[u.width,u.height],thinningCenterPos:[c,_],thinningShape:[p,f,Math.pow(10,r.screenThinning.fadePower)],thinningAffectedRatio:r.screenThinning.affectedRatio,thinningParticleOffset:m,color:[r.color.r,r.color.g,r.color.b,r.color.a],direction:o},{u_modelview:Float32Array.from(v.modelview),u_projection:Float32Array.from(v.projection),u_time:v.time,u_cam_pos:v.camPos,u_velocityConeAperture:v.velocityConeAperture,u_velocity:v.velocity,u_horizontalOscillationRadius:v.horizontalOscillationRadius,u_horizontalOscillationRate:v.horizontalOscillationRate,u_boxSize:v.boxSize,u_billboardSize:v.billboardSize,u_simpleShapeParameters:v.simpleShapeParameters,u_screenSize:v.screenSize,u_thinningCenterPos:v.thinningCenterPos,u_thinningShape:v.thinningShape,u_thinningAffectedRatio:v.thinningAffectedRatio,u_thinningParticleOffset:v.thinningParticleOffset,u_particleColor:v.color,u_direction:v.direction});var v;const y=Math.round(n*r.intensity*this.particlesCount),x=e.b7.simpleSegment(0,0,4*y,2*y);this.particlesVx&&this.particlesIdx&&d.draw(t,h.TRIANGLES,Fi.disabled,Bi.disabled,Oi.alphaBlended,Gi.disabled,g,\"snow_particles\",this.particlesVx,this.particlesIdx,x,{});})(i.boxSize,0,i),this._vignette.draw(t,s);}}const Ha={symbol:function(t,i,o,s,r){if(\"translucent\"!==t.renderPass)return;const a=Bi.disabled,n=t.colorModeForRenderPass(),l=o.layout.get(\"text-variable-anchor\"),c=o.layout.get(\"text-size-scale-range\"),h=e.aw(t.scaleFactor,c[0],c[1]);l&&function(t,i,o,s,r,a,n,l){const c=i.transform,h=\"map\"===r,u=\"map\"===a;for(const i of t){const t=s.getTile(i),r=t.getBucket(o);if(!r||!r.text||!r.text.segments.get().length)continue;const a=e.bp(r.textSizeData,c.zoom,l),d=ni(i,r.getProjection(),c),_=c.calculatePixelsToTileUnitsMatrix(t),p=jt(d,t.tileID.canonical,u,h,c,r.getProjection(),_),f=r.hasIconTextFit()&&r.hasIconData();if(a){const o=Math.pow(2,c.zoom-t.tileID.overscaledZ);zr(r,h,u,n,e.cX,c,p,i,o,a,f);}}}(s,t,o,i,o.layout.get(\"text-rotation-alignment\"),o.layout.get(\"text-pitch-alignment\"),r,h);const u=0!==o.paint.get(\"icon-opacity\").constantOr(1),d=0!==o.paint.get(\"text-opacity\").constantOr(1);void 0!==o.layout.get(\"symbol-sort-key\").constantOr(1)&&(u||d)?Pr(t,i,o,s,a,n):(u&&Pr(t,i,o,s,a,n,{onlyIcons:!0}),d&&Pr(t,i,o,s,a,n,{onlyText:!0})),i.map.showCollisionBoxes&&(Rr(t,i,o,s,o.paint.get(\"text-translate\"),o.paint.get(\"text-translate-anchor\"),!0),Rr(t,i,o,s,o.paint.get(\"icon-translate\"),o.paint.get(\"icon-translate-anchor\"),!1));},circle:function(t,i,o,s){if(\"translucent\"!==t.renderPass)return;const r=o.paint.get(\"circle-opacity\"),a=o.paint.get(\"circle-stroke-width\"),n=o.paint.get(\"circle-stroke-opacity\"),l=void 0!==o.layout.get(\"circle-sort-key\").constantOr(1),c=o.paint.get(\"circle-emissive-strength\");if(0===r.constantOr(1)&&(0===a.constantOr(1)||0===n.constantOr(1)))return;const h=t.context,u=h.gl,d=t.transform,_=t.depthModeForSublayer(0,Fi.ReadOnly),p=Bi.disabled,f=t.colorModeForDrapableLayerRenderPass(c),m=\"globe\"===d.projection.name,g=[e.at(d.center.lng),e.aA(d.center.lat)],v=[];for(let r=0;r<s.length;r++){const a=s[r],n=i.getTile(a),c=n.getBucket(o);if(!c||c.projection.name!==d.projection.name)continue;const h=c.programConfigurations.get(o.id),u=e.cY(o),_=t.isTileAffectedByFog(a);m&&u.push(\"PROJECTION_GLOBE_VIEW\"),u.push(\"DEPTH_D24\"),t.terrain&&d.depthOcclusionForSymbolsAndCircles&&u.push(\"DEPTH_OCCLUSION\");const p=t.getOrCreateProgram(\"circle\",{config:h,defines:u,overrideFog:_}),f=c.layoutVertexBuffer,y=c.globeExtVertexBuffer,x=c.indexBuffer,b=d.projection.createInversionMatrix(d,a.canonical),w={programConfiguration:h,program:p,layoutVertexBuffer:f,globeExtVertexBuffer:y,indexBuffer:x,uniformValues:e.cZ(t,a,n,b,g,o),tile:n};if(l){const t=c.segments.get();for(const i of t)v.push({segments:new e.b7([i]),sortKey:i.sortKey,state:w});}else v.push({segments:c.segments,sortKey:0,state:w});}l&&v.sort(((e,t)=>e.sortKey-t.sortKey));const y={useDepthForOcclusion:d.depthOcclusionForSymbolsAndCircles};for(const e of v){const{programConfiguration:i,program:s,layoutVertexBuffer:r,globeExtVertexBuffer:a,indexBuffer:n,uniformValues:l,tile:c}=e.state,m=e.segments;t.terrain&&t.terrain.setupElevationDraw(c,s,y),t.uploadCommonUniforms(h,s,c.tileID.toUnwrapped()),s.draw(t,u.TRIANGLES,_,p,f,Gi.disabled,l,o.id,r,n,m,o.paint,d.zoom,i,[a]);}},heatmap:function(t,i,o,s){if(0!==o.paint.get(\"heatmap-opacity\"))if(\"offscreen\"===t.renderPass){const r=t.context,a=r.gl,n=Bi.disabled,l=new Oi([a.ONE,a.ONE,a.ONE,a.ONE],e.aj.transparent,[!0,!0,!0,!0]);!function(e,t,i,o){const s=e.gl,r=t.width*o,a=t.height*o;e.activeTexture.set(s.TEXTURE1),e.viewport.set([0,0,r,a]);let n=i.heatmapFbo;if(!n||n&&(n.width!==r||n.height!==a)){n&&n.destroy();const t=s.createTexture();s.bindTexture(s.TEXTURE_2D,t),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),n=i.heatmapFbo=e.createFramebuffer(r,a,!0,null),function(e,t,i,o,s,r){const a=e.gl;a.texImage2D(a.TEXTURE_2D,0,e.extRenderToTextureHalfFloat?a.RGBA16F:a.RGBA,s,r,0,a.RGBA,e.extRenderToTextureHalfFloat?a.HALF_FLOAT:a.UNSIGNED_BYTE,null),o.colorAttachment.set(i);}(e,0,t,n,r,a);}else s.bindTexture(s.TEXTURE_2D,n.colorAttachment.get()),e.bindFramebuffer.set(n.framebuffer);}(r,t,o,\"globe\"===t.transform.projection.name?.5:.25),r.clear({color:e.aj.transparent});const c=t.transform,h=\"globe\"===c.projection.name,u=h?[\"PROJECTION_GLOBE_VIEW\"]:[],d=h?Gi.frontCCW:Gi.disabled,_=[e.at(c.center.lng),e.aA(c.center.lat)];for(let e=0;e<s.length;e++){const p=s[e];if(i.hasRenderableParent(p))continue;const f=i.getTile(p),m=f.getBucket(o);if(!m||m.projection.name!==c.projection.name)continue;const g=t.isTileAffectedByFog(p),v=m.programConfigurations.get(o.id),y=t.getOrCreateProgram(\"heatmap\",{config:v,defines:u,overrideFog:g}),{zoom:x}=t.transform;t.terrain&&t.terrain.setupElevationDraw(f,y),t.uploadCommonUniforms(r,y,p.toUnwrapped());const b=c.projection.createInversionMatrix(c,p.canonical);y.draw(t,a.TRIANGLES,Fi.disabled,n,l,d,rr(t,p,f,b,_,x,o.paint.get(\"heatmap-intensity\")),o.id,m.layoutVertexBuffer,m.indexBuffer,m.segments,o.paint,t.transform.zoom,v,h?[m.globeExtVertexBuffer]:null);}r.viewport.set([0,0,t.width,t.height]);}else \"translucent\"===t.renderPass&&(t.context.setColorMode(t.colorModeForRenderPass()),function(t,i){const o=t.context,s=o.gl,r=i.heatmapFbo;if(!r)return;o.activeTexture.set(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,r.colorAttachment.get()),o.activeTexture.set(s.TEXTURE1);let a=i.colorRampTexture;a||(a=i.colorRampTexture=new e.T(o,i.colorRamp,s.RGBA8)),a.bind(s.LINEAR,s.CLAMP_TO_EDGE),t.getOrCreateProgram(\"heatmapTexture\").draw(t,s.TRIANGLES,Fi.disabled,Bi.disabled,t.colorModeForRenderPass(),Gi.disabled,((e,t,i,o)=>({u_image:0,u_color_ramp:1,u_opacity:t.paint.get(\"heatmap-opacity\")}))(0,i),i.id,t.viewportBuffer,t.quadTriangleIndexBuffer,t.viewportSegments,i.paint,t.transform.zoom);}(t,o));},line:function(t,i,o,s){if(\"translucent\"!==t.renderPass)return;const r=o.paint.get(\"line-opacity\"),a=o.paint.get(\"line-width\");if(0===r.constantOr(1)||0===a.constantOr(1))return;const n=o.paint.get(\"line-emissive-strength\"),l=o.paint.get(\"line-occlusion-opacity\"),c=o.layout.get(\"line-elevation-reference\"),h=\"meters\"===o.layout.get(\"line-width-unit\"),u=\"sea\"===c,d=t.context,_=d.gl,p=!o.isDraped();if(p&&\"globe\"===t.transform.projection.name)return;const f=o.layout.get(\"line-cross-slope\"),m=void 0!==f,g=f<1,v=p?new Fi(t.depthOcclusion?_.GREATER:_.LEQUAL,Fi.ReadOnly,t.depthRangeFor3D):t.depthModeForSublayer(0,Fi.ReadOnly),y=t.colorModeForDrapableLayerRenderPass(n),x=t.terrain&&t.terrain.renderingToTexture,b=x?1:e.q.devicePixelRatio,w=o.paint.get(\"line-dasharray\"),T=w.constantOr(1),E=o.layout.get(\"line-cap\"),S=w.constantOr(null),C=E.constantOr(null),I=o.paint.get(\"line-pattern\"),R=I.constantOr(1),D=I.constantOr(null),L=o.paint.get(\"line-opacity\").constantOr(1);let A=!R&&1!==L||t.depthOcclusion&&l>0&&l<1;const z=o.paint.get(\"line-gradient\"),P=R?\"linePattern\":\"line\",M=e.c_(o);let O;if(x&&t.terrain&&t.terrain.clipOrMaskOverlapStencilType()&&(A=!1),0!==l&&t.depthOcclusion){const t=o.paint._values[\"line-opacity\"];t&&t.value&&\"constant\"===t.value.kind?O=t.value:e.w(`Occlusion opacity for layer ${o.id} is supported only when line-opacity isn't data-driven.`);}if(p&&(t.forceTerrainMode=!0),!p&&0!==l&&t.terrain&&!x)return void e.w(`Occlusion opacity for layer ${o.id} is supported on terrain only if the layer has line-z-offset enabled.`);const F=A&&p?t.stencilModeFor3D():Bi.disabled;p&&(M.push(\"ELEVATED\"),m&&M.push(g?\"CROSS_SLOPE_HORIZONTAL\":\"CROSS_SLOPE_VERTICAL\"),u&&M.push(\"ELEVATION_REFERENCE_SEA\")),\"constant\"!==a.value.kind&&!1===a.value.isLineProgressConstant&&M.push(\"VARIABLE_LINE_WIDTH\");for(const r of s){const s=i.getTile(r);if(R&&!s.patternsLoaded())continue;const a=s.getBucket(o);if(!a)continue;t.prepareDrawTile();const n=a.programConfigurations.get(o.id),c=t.isTileAffectedByFog(r),f=t.getOrCreateProgram(P,{config:n,defines:M,overrideFog:c,overrideRtt:!p&&void 0});if(D&&s.imageAtlas){const t=e.A.from(D),i=s.imageAtlas.patternPositions[t.getSerializedPrimary()];i&&n.setConstantPatternPositions(i);}if(!R&&S&&C&&s.lineAtlas){const e=s.lineAtlas.getDash(S,C);e&&n.setConstantPatternPositions(e);}let[m,g]=o.paint.get(\"line-trim-offset\");if(\"round\"===C||\"square\"===C){const e=1;m!==g&&(0===m&&(m-=e),1===g&&(g+=e));}const w=x?r.projMatrix:null,E=h?1/a.tileToMeter/e.ar(s,1,t.transform.zoom):1,I=h?1/a.tileToMeter/e.ar(s,1,Math.floor(t.transform.zoom)):1,k=R?e.c$(t,s,o,w,b,E,I,[m,g]):e.d0(t,s,o,w,a.lineClipsArray.length,b,E,I,[m,g]);if(z){const s=a.gradients[o.id];let n=s.texture;if(o.gradientVersion!==s.version){let l=256;if(o.stepInterpolant){const o=i.getSource().maxzoom,s=r.canonical.z===o?Math.ceil(1<<t.transform.maxZoom-r.canonical.z):1;l=e.aw(e.d1(a.maxLineLength/e.ag*1024*s),256,d.maxTextureSize);}s.gradient=e.d2({expression:o.gradientExpression(),evaluationKey:\"lineProgress\",resolution:l,image:s.gradient||void 0,clips:a.lineClipsArray}),s.texture?s.texture.update(s.gradient):s.texture=new e.T(d,s.gradient,_.RGBA8),s.version=o.gradientVersion,n=s.texture;}d.activeTexture.set(_.TEXTURE1),n.bind(o.stepInterpolant?_.NEAREST:_.LINEAR,_.CLAMP_TO_EDGE);}T&&(d.activeTexture.set(_.TEXTURE0),s.lineAtlasTexture&&s.lineAtlasTexture.bind(_.LINEAR,_.REPEAT),n.updatePaintBuffers()),R&&(d.activeTexture.set(_.TEXTURE0),s.imageAtlasTexture&&s.imageAtlasTexture.bind(_.LINEAR,_.CLAMP_TO_EDGE),n.updatePaintBuffers()),p&&!u&&t.terrain.setupElevationDraw(s,f),t.uploadCommonUniforms(d,f,r.toUnwrapped());const B=e=>{null!=O&&(O.value=L*l),f.draw(t,_.TRIANGLES,v,e,y,Gi.disabled,k,o.id,a.layoutVertexBuffer,a.indexBuffer,a.segments,o.paint,t.transform.zoom,n,[a.layoutVertexBuffer2,a.patternVertexBuffer,a.zOffsetVertexBuffer]),null!=O&&(O.value=L);};if(A&&!p){const e=t.stencilModeForClipping(r).ref;0===e&&x&&d.clear({stencil:0});const i={func:_.EQUAL,mask:255};k.u_alpha_discard_threshold=.8,B(new Bi(i,e,255,_.KEEP,_.KEEP,_.INVERT)),k.u_alpha_discard_threshold=0,B(new Bi(i,e,255,_.KEEP,_.KEEP,_.KEEP));}else A&&p&&(k.u_alpha_discard_threshold=.001),B(p?F:t.stencilModeForClipping(r));}p&&(t.forceTerrainMode=!1),A&&(t.resetStencilClippingMasks(),x&&d.clear({stencil:0})),0===l||t.depthOcclusion||x||t.layersWithOcclusionOpacity.push(t.currentLayer);},fill:function(t,i,o,s){const r=o.paint.get(\"fill-color\"),a=o.paint.get(\"fill-opacity\"),n=o.is3D(),l=new Fi(t.context.gl.LEQUAL,Fi.ReadWrite,t.depthRangeFor3D);if(0===a.constantOr(1))return;const c=o.paint.get(\"fill-emissive-strength\"),h=t.colorModeForDrapableLayerRenderPass(c),u=o.paint.get(\"fill-pattern\"),d=t.opaquePassEnabledForLayer()&&!u.constantOr(1)&&1===r.constantOr(e.aj.transparent).a&&1===a.constantOr(0)?\"opaque\":\"translucent\";if(t.renderPass===d){const e=n?l:t.depthModeForSublayer(1,\"opaque\"===t.renderPass?Fi.ReadWrite:Fi.ReadOnly);Or(t,i,o,s,e,h,!1);}if(!n&&\"translucent\"===t.renderPass&&o.paint.get(\"fill-antialias\")){const e=n?l:t.depthModeForSublayer(o.getPaintProperty(\"fill-outline-color\")?2:0,Fi.ReadOnly);Or(t,i,o,s,e,h,!0);}},\"fill-extrusion\":function(t,i,o,s){const r=o.paint.get(\"fill-extrusion-opacity\"),a=t.context,n=a.gl,l=t.terrain,c=l&&l.renderingToTexture;if(0===r)return;const h=t.conflationActive&&t.style.isLayerClipped(o,i.getSource()),u=t.style.order.indexOf(o.fqid);if(h&&function(e,t,i,o,s){for(const r of o){const o=t.getTile(r).getBucket(i);o&&(o.updateReplacement(r,e.replacementSource,s),o.uploadCentroid(e.context));}}(t,i,o,s,u),l||h)for(const e of s){const s=i.getTile(e).getBucket(o);s&&Br(t.context,i,e,s,o,l,h);}if(\"shadow\"===t.renderPass&&t.shadowRenderer){const a=t.shadowRenderer;if(l&&r<.65&&o._transitionablePaint._values[\"fill-extrusion-opacity\"].value.expression instanceof e.a9)return;const n=a.getShadowPassDepthMode(),c=a.getShadowPassColorMode();Fr(t,i,o,s,n,Bi.disabled,c,h);}else if(\"translucent\"===t.renderPass){const u=!o.paint.get(\"fill-extrusion-pattern\").constantOr(1),d=o.paint.get(\"fill-extrusion-color\").constantOr(e.aj.white);if(!c&&0!==d.a){const e=new Fi(t.context.gl.LEQUAL,Fi.ReadWrite,t.depthRangeFor3D);1===r&&u?Fr(t,i,o,s,e,Bi.disabled,Oi.unblended,h):(Fr(t,i,o,s,e,Bi.disabled,Oi.disabled,h),Fr(t,i,o,s,e,t.stencilModeFor3D(),t.colorModeForRenderPass(),h),t.resetStencilClippingMasks());}if(t.style.enable3dLights()&&u&&(!l&&\"globe\"!==t.transform.projection.name||c)){const r=o.paint.get(\"fill-extrusion-opacity\"),u=o.paint.get(\"fill-extrusion-ambient-occlusion-intensity\"),d=o.paint.get(\"fill-extrusion-ambient-occlusion-ground-radius\"),_=o.paint.get(\"fill-extrusion-flood-light-intensity\"),p=\"none\"===o.paint.get(\"fill-extrusion-flood-light-color-use-theme\").constantOr(\"default\"),f=o.paint.get(\"fill-extrusion-flood-light-color\").toRenderColor(p?null:o.lut).toArray01().slice(0,3),m=u>0&&d>0,g=_>0,v=(e,t,i)=>(1-i)*e+i*t,y=a=>{const l=t.depthModeForSublayer(1,Fi.ReadOnly,n.LEQUAL,!0),c=o.paint.get(a?\"fill-extrusion-ambient-occlusion-ground-attenuation\":\"fill-extrusion-flood-light-ground-attenuation\"),p=v(.1,3,c),m=t._showOverdrawInspector;if(!m){const c=new Bi({func:n.ALWAYS,mask:255},255,255,n.KEEP,n.KEEP,n.REPLACE),m=new Oi([n.ONE,n.ONE,n.ONE,n.ONE],e.aj.transparent,[!1,!1,!1,!0],n.MIN);kr(t,i,o,s,l,c,m,Gi.disabled,a,\"sdf\",r,u,d,_,f,p,h,!1);}{const c=m?Bi.disabled:new Bi({func:n.EQUAL,mask:255},255,255,n.KEEP,n.DECR,n.DECR),g=m?t.colorModeForRenderPass():new Oi([n.ONE_MINUS_DST_ALPHA,n.DST_ALPHA,n.ONE,n.ONE],e.aj.transparent,[!0,!0,!0,!0]);kr(t,i,o,s,l,c,g,Gi.disabled,a,\"color\",r,u,d,_,f,p,h,!1);}};if(c){const c=(a,l,c)=>{const p=t.depthModeForSublayer(1,Fi.ReadOnly,n.LEQUAL,!1),m=o.paint.get(a?\"fill-extrusion-ambient-occlusion-ground-attenuation\":\"fill-extrusion-flood-light-ground-attenuation\"),g=v(.1,3,m);{const c=new Oi([n.ONE,n.ONE,n.ONE,n.ONE],e.aj.transparent,[!1,!1,!1,!0]);kr(t,i,o,s,p,Bi.disabled,c,Gi.disabled,a,\"clear\",r,u,d,_,f,g,h,l);}{const c=new Bi({func:n.ALWAYS,mask:255},255,255,n.KEEP,n.KEEP,n.REPLACE),m=new Oi([n.ONE,n.ONE,n.ONE,n.ONE],e.aj.transparent,[!1,!1,!1,!0],n.MIN);kr(t,i,o,s,p,c,m,Gi.disabled,a,\"sdf\",r,u,d,_,f,g,h,l);}{const c=a?n.ZERO:n.ONE_MINUS_DST_ALPHA,m=new Bi({func:n.EQUAL,mask:255},255,255,n.KEEP,n.DECR,n.DECR),v=new Oi([c,n.DST_ALPHA,n.ONE_MINUS_DST_ALPHA,n.ZERO],e.aj.transparent,[!0,!0,!0,!0]);kr(t,i,o,s,p,m,v,Gi.disabled,a,\"color\",r,u,d,_,f,g,h,l);}{const m=new Oi([n.ONE,n.ONE,n.ONE,a?n.ZERO:n.ONE],e.aj.transparent,[!1,!1,!1,!0],a?n.FUNC_ADD:n.MAX);kr(t,i,o,s,p,Bi.disabled,m,Gi.disabled,a,\"clear\",r,u,d,_,f,g,h,l,c);}};if(m||g){let i;if(t.prepareDrawTile(),l){const t=l.drapeBufferSize[0],o=l.drapeBufferSize[1];i=l.framebufferCopyTexture,i&&(!i||i.size[0]===t&&i.size[1]===o)||(i&&i.destroy(),i=l.framebufferCopyTexture=new e.T(a,new e.r({width:t,height:o}),n.RGBA8)),i.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.copyTexSubImage2D(n.TEXTURE_2D,0,0,0,0,0,t,o);}m&&c(!0,!1,i),g&&c(!1,!0,i);}}else m&&y(!0),g&&y(!1),(m||g)&&t.resetStencilClippingMasks();}}},hillshade:function(e,t,i,o){if(\"offscreen\"!==e.renderPass&&\"translucent\"!==e.renderPass)return;if(e.style.disableElevatedTerrain)return;const s=e.context,r=e.terrain&&e.terrain.renderingToTexture,[a,n]=\"translucent\"!==e.renderPass||r?[{},o]:e.stencilConfigForOverlap(o);for(const o of n){const s=t.getTile(o);if(s.needsHillshadePrepare&&\"offscreen\"===e.renderPass)Ho(e,s,i);else if(\"translucent\"===e.renderPass){const t=e.depthModeForSublayer(0,Fi.ReadOnly),n=i.paint.get(\"hillshade-emissive-strength\"),l=e.colorModeForDrapableLayerRenderPass(n),c=r&&e.terrain?e.terrain.stencilModeForRTTOverlap(o):a[o.overscaledZ];Vo(e,o,s,i,t,c,l);}}s.viewport.set([0,0,e.width,e.height]),e.resetStencilClippingMasks();},raster:function(t,i,o,s,r,a){if(\"translucent\"!==t.renderPass)return;if(0===o.paint.get(\"raster-opacity\"))return;const n=\"globe\"===t.transform.projection.name,l=0!==o.paint.get(\"raster-elevation\"),c=l&&n;if(t.renderElevatedRasterBackface&&!c)return;const h=t.context,u=h.gl,d=i.getSource(),_=function(t,i,o,s){const r=i.paint.get(\"raster-color\"),a=\"raster-array\"===t.type,n=[],l=i.paint.get(\"raster-resampling\"),c=i.paint.get(\"raster-color-mix\");let h=i.paint.get(\"raster-color-range\");const u=[c[0],c[1],c[2],0],d=c[3];let _=\"nearest\"===l?s.NEAREST:s.LINEAR;if(a&&(n.push(\"RASTER_ARRAY\"),r||n.push(\"RASTER_COLOR\"),\"linear\"===l&&n.push(\"RASTER_ARRAY_LINEAR\"),_=s.NEAREST,!h&&t.rasterLayers)){const e=t.rasterLayers.find((({id:e})=>e===i.sourceLayer));e&&e.fields&&e.fields.range&&(h=e.fields.range);}if(h=h||[0,1],r){n.push(\"RASTER_COLOR\"),o.activeTexture.set(s.TEXTURE2),i.updateColorRamp(h);let t=i.colorRampTexture;t||(t=i.colorRampTexture=new e.T(o,i.colorRamp,s.RGBA8)),t.bind(s.LINEAR,s.CLAMP_TO_EDGE);}return {mix:u,range:h,offset:d,defines:n,resampling:_}}(d,o,h,u);if(d instanceof e.aJ&&!s.length&&!n)return;const p=o.paint.get(\"raster-emissive-strength\"),f=t.colorModeForDrapableLayerRenderPass(p),m=t.terrain&&t.terrain.renderingToTexture,g=!t.options.moving,v=\"nearest\"===o.paint.get(\"raster-resampling\")?u.NEAREST:u.LINEAR;if(d instanceof e.aJ&&!s.length&&(d.onNorthPole||d.onSouthPole)){const e=l?t.stencilModeFor3D():Bi.disabled;return void qr(!!d.onNorthPole,null,t,i,o,p,_,Gi.disabled,e)}if(!s.length)return;const[y,x]=d instanceof e.aJ||m?[{},s]:t.stencilConfigForOverlap(s),b=x[x.length-1].overscaledZ;c&&_.defines.push(\"PROJECTION_GLOBE_VIEW\"),l&&_.defines.push(\"RENDER_CUTOFF\");const w=(s,r,x)=>{for(const w of s){const s=w.toUnwrapped(),T=i.getTile(w);if(m&&(!T||!T.hasData()))continue;h.activeTexture.set(u.TEXTURE0);const E=Zr(T,d,o,_);if(!E||!E.texture)continue;const{texture:S,mix:C,offset:I,tileSize:R,buffer:D}=E;let L,A;m?(L=Fi.disabled,A=w.projMatrix):l?(L=new Fi(u.LEQUAL,Fi.ReadWrite,t.depthRangeFor3D),A=n?Float32Array.from(t.transform.expandedFarZProjMatrix):t.transform.calculateProjMatrix(s,g)):(L=t.depthModeForSublayer(w.overscaledZ-b,1===o.paint.get(\"raster-opacity\")?Fi.ReadWrite:Fi.ReadOnly,u.LESS),A=t.transform.calculateProjMatrix(s,g));const z=t.terrain&&m?t.terrain.stencilModeForRTTOverlap(w):y[w.overscaledZ],P=a?0:o.paint.get(\"raster-fade-duration\");T.registerFadeDuration(P);const M=i.findLoadedParent(w,0),O=ks(T,M,i,t.transform,P);let F,k;t.terrain&&t.terrain.prepareDrawTile(),h.activeTexture.set(u.TEXTURE0),S.bind(v,u.CLAMP_TO_EDGE),h.activeTexture.set(u.TEXTURE1),M?(M.texture&&M.texture.bind(v,u.CLAMP_TO_EDGE),F=Math.pow(2,M.tileID.overscaledZ-T.tileID.overscaledZ),k=[T.tileID.canonical.x*F%1,T.tileID.canonical.y*F%1]):S.bind(v,u.CLAMP_TO_EDGE),S.useMipmap&&h.extTextureFilterAnisotropic&&t.transform.pitch>20&&u.texParameterf(u.TEXTURE_2D,h.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,h.extTextureFilterAnisotropicMax);const B=t.transform;let N;const U=l?Hr(B):[0,0,0,0];let G,j,V,q,H,Z=0;if(c&&d instanceof e.aJ&&d.coordinates.length>3)G=Float32Array.from(e.bb(e.cH(new e.bT(0,0,0)))),j=Float32Array.from(B.globeMatrix),V=Float32Array.from(e.cD(B)),q=[e.at(B.center.lng),e.aA(B.center.lat)],N=d.elevatedGlobePerspectiveTransform,H=d.elevatedGlobeGridMatrix||new Float32Array(9);else if(c){const t=e.cE(w.canonical);Z=e.cF(t.getCenter().lat),G=Float32Array.from(e.bb(e.cH(w.canonical))),j=Float32Array.from(B.globeMatrix),V=Float32Array.from(e.cD(B)),q=[e.at(B.center.lng),e.aA(B.center.lat)],N=[0,0],H=Float32Array.from(e.cG(w.canonical,t,Z,B.worldSize/B._pixelsPerMercatorPixel));}else N=d instanceof e.aJ?d.perspectiveTransform:[0,0],G=new Float32Array(16),j=new Float32Array(9),V=new Float32Array(16),q=[0,0],H=new Float32Array(9);const W=lr(A,G,j,V,H,k||[0,0],e.ae(t.transform.zoom),q,U,F||1,O,o,N,l?o.paint.get(\"raster-elevation\"):0,2,C,I,_.range,R,D,p),$=t.isTileAffectedByFog(w),X=t.getOrCreateProgram(\"raster\",{defines:_.defines,overrideFog:$});if(t.uploadCommonUniforms(h,X,s),d instanceof e.aJ){const i=d.elevatedGlobeVertexBuffer,s=d.elevatedGlobeIndexBuffer;if(m||!n)d.boundsBuffer&&d.boundsSegments&&X.draw(t,u.TRIANGLES,L,Bi.disabled,f,Gi.disabled,W,o.id,d.boundsBuffer,t.quadTriangleIndexBuffer,d.boundsSegments);else if(i&&s){const a=B.zoom<=e.c6?d.elevatedGlobeSegments:d.getSegmentsForLongitude(B.center.lng);a&&X.draw(t,u.TRIANGLES,L,Bi.disabled,f,r,W,o.id,i,s,a);}}else if(c){L=new Fi(u.LEQUAL,Fi.ReadOnly,t.depthRangeFor3D);const e=t.globeSharedBuffers;if(e){const[i,s,a]=e.getGridBuffers(Z,!1);X.draw(t,u.TRIANGLES,L,x||z,t.colorModeForRenderPass(),r,W,o.id,i,s,a);}}else {const{tileBoundsBuffer:e,tileBoundsIndexBuffer:i,tileBoundsSegments:s}=t.getTileBoundsBuffers(T);X.draw(t,u.TRIANGLES,L,z,f,Gi.disabled,W,o.id,e,i,s);}}if(!(d instanceof e.aJ)&&c)for(const e of s){const s=e.canonical.y===(1<<e.canonical.z)-1;0===e.canonical.y&&qr(!0,e,t,i,o,p,_,r,x||Bi.disabled),s&&qr(!1,e,t,i,o,p,_,r===Gi.frontCW?Gi.backCW:Gi.frontCW,x||Bi.disabled);}};c?w(x,t.renderElevatedRasterBackface?Gi.backCW:Gi.frontCW,t.stencilModeFor3D()):w(x,Gi.disabled,void 0),t.resetStencilClippingMasks();},\"raster-particle\":function(t,i,o,s,r,a){\"offscreen\"===t.renderPass&&function(t,i,o,s){if(!s.length)return;const r=t.context,a=r.gl,n=i.getSource();if(!(n instanceof ot))return;const l=Math.ceil(Math.sqrt(o.paint.get(\"raster-particle-count\")));let c=o.particlePositionRGBAImage;if(!c||c.width!==l){const t=function(e){const t=e*e,i=new Uint8Array(4*t),o=function(e){return e|=0,e=Math.imul(2747636419^e,2654435769),e=Math.imul(e^e>>>16,2654435769),((e=Math.imul(e^e>>>16,2654435769))>>>0)/4294967296},s=1/1.1;for(let e=0;e<t;e++){const t=s*(o(2*e+0)+hr),r=s*(o(2*e+1)+hr),a=255*t%1,n=255*r%1,l=a,c=r-n/255,h=n;i[4*e+0]=255*(t-a/255),i[4*e+1]=255*l,i[4*e+2]=255*c,i[4*e+3]=255*h;}return i}(l);c=o.particlePositionRGBAImage=new e.r({width:l,height:l},t);}let h=o.particleFramebuffer;h?h.width!==l&&(h.destroy(),h=o.particleFramebuffer=r.createFramebuffer(l,l,!0,null)):h=o.particleFramebuffer=r.createFramebuffer(l,l,!0,null);const u=[];for(const e of s){const t=i.getTile(e);if(!(t instanceof xt))continue;const s=Xr(t,n,o);if(!s)continue;const a=[t.tileSize,t.tileSize];let h=o.tileFramebuffer;h||(h=o.tileFramebuffer=r.createFramebuffer(a[0],a[1],!0,null));let d=t.rasterParticleState;d||(d=t.rasterParticleState=new $r(r,e,a,c));const _=d.update(o.lastInvalidatedAt);d.particleTextureDimension!==l&&d.updateParticleTexture(e,c);const p=d.targetColorTexture;d.targetColorTexture=d.backgroundColorTexture,d.backgroundColorTexture=p;const f=d.particleTexture0;d.particleTexture0=d.particleTexture1,d.particleTexture1=f,u.push([e,s,d,_]);}if(0===u.length)return;const d=e.q.now(),_=o.previousDrawTimestamp?.001*(d-o.previousDrawTimestamp):.0167;if(o.previousDrawTimestamp=d,o.hasColorMap()){r.activeTexture.set(a.TEXTURE0+2);let t=o.colorRampTexture;t||(t=o.colorRampTexture=new e.T(r,o.colorRamp,a.RGBA8)),t.bind(a.LINEAR,a.CLAMP_TO_EDGE);}r.bindFramebuffer.set(o.tileFramebuffer.framebuffer),function(t,i,o){const s=t.context,r=s.gl,a=i.tileFramebuffer;s.activeTexture.set(r.TEXTURE0);const n={u_texture:0,u_opacity:1.05*(c=i.paint.get(\"raster-particle-fade-opacity-factor\"))/(c+.05)},l=t.getOrCreateProgram(\"rasterParticleTexture\",{defines:[],overrideFog:!1});var c;for(const c of o){const[,,o,h]=c;a.colorAttachment.set(o.targetColorTexture.texture),s.viewport.set([0,0,a.width,a.height]),s.clear({color:e.aj.transparent}),h&&(o.backgroundColorTexture.bind(r.NEAREST,r.CLAMP_TO_EDGE),l.draw(t,r.TRIANGLES,Fi.disabled,Bi.disabled,Oi.alphaBlended,Gi.disabled,n,i.id,t.viewportBuffer,t.quadTriangleIndexBuffer,t.viewportSegments));}}(t,o,u),function(t,i,o,s){const r=t.context,a=r.gl,n=o.tileFramebuffer,l=\"globe\"===t.transform.projection.name,c=o.paint.get(\"raster-particle-max-speed\");for(const h of s){const[s,u,d]=h;r.activeTexture.set(a.TEXTURE0+0),u.texture.bind(a.LINEAR,a.CLAMP_TO_EDGE),n.colorAttachment.set(d.targetColorTexture.texture);const _=t.getOrCreateProgram(\"rasterParticleDraw\",{defines:u.defines,overrideFog:!1});r.activeTexture.set(a.TEXTURE0+1);const p=u.scalarData?[]:[0,1,2,3].map((t=>e.d4[t](s)));p.push(s);const f=s.canonical.x,m=s.canonical.y;for(const e of p){const r=i.getTile(l?e.wrapped():e);if(!r)continue;const n=r.rasterParticleState;if(!n)continue;const h=e.canonical.x+(1<<e.canonical.z)*(e.wrap-s.wrap),d=e.canonical.y;n.particleTexture0.bind(a.NEAREST,a.CLAMP_TO_EDGE);const p=dr(1,n.particleTexture0.size[0],[h-f,d-m],0,u.texture.size,2,c,u.textureOffset,u.scale,u.offset);_.draw(t,a.POINTS,Fi.disabled,Bi.disabled,Oi.alphaBlended,Gi.disabled,p,o.id,n.particleIndexBuffer,void 0,n.particleSegment);}}}(t,i,o,u),r.bindFramebuffer.set(o.particleFramebuffer.framebuffer),function(t,i,o,s){const r=t.context,a=r.gl,n=i.paint.get(\"raster-particle-max-speed\"),l=s*i.paint.get(\"raster-particle-speed-factor\")*.15,c=function(e){return Math.pow(e,6)}(.01+1*i.paint.get(\"raster-particle-reset-rate-factor\")),h=i.particleFramebuffer;r.viewport.set([0,0,h.width,h.height]);for(const s of o){const[,o,u]=s;r.activeTexture.set(a.TEXTURE0+0),o.texture.bind(a.LINEAR,a.CLAMP_TO_EDGE),r.activeTexture.set(a.TEXTURE0+1);const d=u.particleTexture0;d.bind(a.NEAREST,a.CLAMP_TO_EDGE);const _=_r(1,d.size[0],0,o.texture.size,n,l,c,o.textureOffset,o.scale,o.offset);h.colorAttachment.set(u.particleTexture1.texture),r.clear({color:e.aj.transparent}),t.getOrCreateProgram(\"rasterParticleUpdate\",{defines:o.defines}).draw(t,a.TRIANGLES,Fi.disabled,Bi.disabled,Oi.unblended,Gi.disabled,_,i.id,t.viewportBuffer,t.quadTriangleIndexBuffer,t.viewportSegments);}}(t,o,u,_);}(t,i,o,s),\"translucent\"===t.renderPass&&(function(t,i,o,s,r){const a=t.context,n=a.gl,l=i.getSource().tileSize,c=5*(1-e.ac(e.bY,e.bY+1,t.transform.zoom))*l+o.paint.get(\"raster-particle-elevation\"),h=!t.options.moving,u=\"globe\"===t.transform.projection.name;if(!s.length)return;const[d,_]=t.stencilConfigForOverlap(s),p=[];u&&p.push(\"PROJECTION_GLOBE_VIEW\");const f=t.stencilModeFor3D();for(const s of _){const r=s.toUnwrapped(),l=i.getTile(s);if(!l.rasterParticleState)continue;const _=l.rasterParticleState,m=100;l.registerFadeDuration(m);const g=i.findLoadedParent(s,0),v=ks(l,g,i,t.transform,m);let y,x;t.terrain&&t.terrain.prepareDrawTile(),a.activeTexture.set(n.TEXTURE0),_.targetColorTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE),a.activeTexture.set(n.TEXTURE1),g&&g.rasterParticleState?(g.rasterParticleState.targetColorTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE),y=Math.pow(2,g.tileID.overscaledZ-l.tileID.overscaledZ),x=[l.tileID.canonical.x*y%1,l.tileID.canonical.y*y%1]):_.targetColorTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE);const b=u?Float32Array.from(t.transform.expandedFarZProjMatrix):t.transform.calculateProjMatrix(r,h),w=t.transform,T=Kr(w),E=e.cE(s.canonical),S=e.cF(E.getCenter().lat);let C,I,R,D,L;u?(C=Float32Array.from(e.bb(e.cH(s.canonical))),I=Float32Array.from(w.globeMatrix),R=Float32Array.from(e.cD(w)),D=[e.at(w.center.lng),e.aA(w.center.lat)],L=Float32Array.from(e.cG(s.canonical,E,S,w.worldSize/w._pixelsPerMercatorPixel))):(C=new Float32Array(16),I=new Float32Array(9),R=new Float32Array(16),D=[0,0],L=new Float32Array(9));const A=ur(b,C,I,R,L,x||[0,0],e.ae(t.transform.zoom),D,T,y||1,v,c),z=t.isTileAffectedByFog(s),P=t.getOrCreateProgram(\"rasterParticle\",{defines:p,overrideFog:z});if(t.uploadCommonUniforms(a,P,r),u){const e=new Fi(n.LEQUAL,Fi.ReadOnly,t.depthRangeFor3D),i=0,s=t.globeSharedBuffers;if(s){const[r,a,l]=s.getGridBuffers(S,0!==i);P.draw(t,n.TRIANGLES,e,f,Oi.alphaBlended,t.renderElevatedRasterBackface?Gi.frontCCW:Gi.backCCW,A,o.id,r,a,l);}}else {const e=t.depthModeForSublayer(0,Fi.ReadOnly),i=d[s.overscaledZ],{tileBoundsBuffer:r,tileBoundsIndexBuffer:a,tileBoundsSegments:c}=t.getTileBoundsBuffers(l);P.draw(t,n.TRIANGLES,e,i,Oi.alphaBlended,Gi.disabled,A,o.id,r,a,c);}}t.resetStencilClippingMasks();}(t,i,o,s),t.style.map.triggerRepaint());},background:function(t,i,o,s){const r=o.paint.get(\"background-color\"),a=\"none\"===o.paint.get(\"background-color-use-theme\").constantOr(\"default\"),n=o.paint.get(\"background-opacity\"),l=o.paint.get(\"background-emissive-strength\"),c=\"viewport\"===o.paint.get(\"background-pitch-alignment\");if(0===n)return;const h=t.context,u=h.gl,d=t.transform,_=d.tileSize,p=o.paint.get(\"background-pattern\");let f;if(void 0!==p){if(null===p)return;if(f=t.imageManager.getPattern(p.toString(),o.scope,t.style.getLut(o.scope)),!f)return}const m=!p&&1===r.a&&1===n&&t.opaquePassEnabledForLayer()?\"opaque\":\"translucent\";if(t.renderPass!==m)return;const g=Bi.disabled,v=t.depthModeForSublayer(0,\"opaque\"===m?Fi.ReadWrite:Fi.ReadOnly),y=t.colorModeForDrapableLayerRenderPass(l),x=p?\"backgroundPattern\":\"background\";let b,w=s;if(w||(b=t.getBackgroundTiles(),w=Object.values(b).map((e=>e.tileID))),p&&(h.activeTexture.set(u.TEXTURE0),t.imageManager.bind(t.context,o.scope)),c){const i=t.getOrCreateProgram(x,{overrideFog:!1,overrideRtt:!0}),s=new Float32Array(e.ab.mat4.identity([])),h=new e.aG(0,0,0,0,0),d=p?gr(s,l,n,t,0,o.scope,f,c,{tileID:h,tileSize:_}):mr(s,l,n,r.toRenderColor(a?null:o.lut));i.draw(t,u.TRIANGLES,v,g,y,Gi.disabled,d,o.id,t.viewportBuffer,t.quadTriangleIndexBuffer,t.viewportSegments);}else for(const e of w){const m=t.isTileAffectedByFog(e),w=t.getOrCreateProgram(x,{overrideFog:m}),T=e.toUnwrapped(),E=s?e.projMatrix:t.transform.calculateProjMatrix(T);t.prepareDrawTile();const S=i?i.getTile(e):b?b[e.key]:new yt(e,_,d.zoom,t),C=p?gr(E,l,n,t,0,o.scope,f,c,{tileID:e,tileSize:_}):mr(E,l,n,r.toRenderColor(a?null:o.lut));t.uploadCommonUniforms(h,w,T);const{tileBoundsBuffer:I,tileBoundsIndexBuffer:R,tileBoundsSegments:D}=t.getTileBoundsBuffers(S);w.draw(t,u.TRIANGLES,v,g,y,Gi.disabled,C,o.id,I,R,D);}},sky:function(t,i,o){const s=t._atmosphere?e.ae(t.transform.zoom):1,r=o.paint.get(\"sky-opacity\")*s;if(0===r)return;const a=t.context,n=o.paint.get(\"sky-type\"),l=new Fi(a.gl.LEQUAL,Fi.ReadOnly,[0,1]),c=t.frameCounter/1e3%1;\"atmosphere\"===n?\"offscreen\"===t.renderPass?o.needsSkyboxCapture(t)&&(function(t,i,o,s){const r=t.context,a=r.gl;let n=i.skyboxFbo;if(!n){n=i.skyboxFbo=r.createFramebuffer(32,32,!0,null),i.skyboxGeometry=new ca(r),i.skyboxTexture=r.gl.createTexture(),a.bindTexture(a.TEXTURE_CUBE_MAP,i.skyboxTexture),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MIN_FILTER,a.LINEAR),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MAG_FILTER,a.LINEAR);for(let e=0;e<6;++e)a.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,a.RGBA,32,32,0,a.RGBA,a.UNSIGNED_BYTE,null);}r.bindFramebuffer.set(n.framebuffer),r.viewport.set([0,0,32,32]);const l=i.getCenter(t,!0),c=t.getOrCreateProgram(\"skyboxCapture\"),h=new Float64Array(16);e.ab.mat4.identity(h),e.ab.mat4.rotateY(h,h,.5*-Math.PI),ha(t,i,c,h,l,0),e.ab.mat4.identity(h),e.ab.mat4.rotateY(h,h,.5*Math.PI),ha(t,i,c,h,l,1),e.ab.mat4.identity(h),e.ab.mat4.rotateX(h,h,.5*-Math.PI),ha(t,i,c,h,l,2),e.ab.mat4.identity(h),e.ab.mat4.rotateX(h,h,.5*Math.PI),ha(t,i,c,h,l,3),e.ab.mat4.identity(h),ha(t,i,c,h,l,4),e.ab.mat4.identity(h),e.ab.mat4.rotateY(h,h,Math.PI),ha(t,i,c,h,l,5),r.viewport.set([0,0,t.width,t.height]);}(t,o),o.markSkyboxValid(t)):\"sky\"===t.renderPass&&function(e,t,i,o,s){const r=e.context,a=r.gl,n=e.transform,l=e.getOrCreateProgram(\"skybox\");r.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_CUBE_MAP,t.skyboxTexture);const c=((e,t,i,o,s)=>({u_matrix:e,u_sun_direction:t,u_cubemap:0,u_opacity:o,u_temporal_offset:s}))(n.skyboxMatrix,t.getCenter(e,!1),0,o,s);e.uploadCommonUniforms(r,l),l.draw(e,a.TRIANGLES,i,Bi.disabled,e.colorModeForRenderPass(),Gi.backCW,c,\"skybox\",t.skyboxGeometry.vertexBuffer,t.skyboxGeometry.indexBuffer,t.skyboxGeometry.segment);}(t,o,l,r,c):\"gradient\"===n&&\"sky\"===t.renderPass&&function(t,i,o,s,r){const a=t.context,n=a.gl,l=t.transform,c=t.getOrCreateProgram(\"skyboxGradient\");i.skyboxGeometry||(i.skyboxGeometry=new ca(a)),a.activeTexture.set(n.TEXTURE0);let h=i.colorRampTexture;h||(h=i.colorRampTexture=new e.T(a,i.colorRamp,n.RGBA8)),h.bind(n.LINEAR,n.CLAMP_TO_EDGE);const u=((t,i,o,s,r)=>({u_matrix:t,u_color_ramp:0,u_center_direction:i,u_radius:e.ai(o),u_opacity:s,u_temporal_offset:r}))(l.skyboxMatrix,i.getCenter(t,!1),i.paint.get(\"sky-gradient-radius\"),s,r);t.uploadCommonUniforms(a,c),c.draw(t,n.TRIANGLES,o,Bi.disabled,t.colorModeForRenderPass(),Gi.backCW,u,\"skyboxGradient\",i.skyboxGeometry.vertexBuffer,i.skyboxGeometry.indexBuffer,i.skyboxGeometry.segment);}(t,o,l,r,c);},debug:function(t,i,o,s,r,a){for(let n=0;n<o.length;n++)if(r){const r=1,l=.8,c=new e.aj(s.r*l,s.g*l,s.b*l,1);ia(t,i,o[n],s,-r,-r,a),ia(t,i,o[n],s,-r,r,a),ia(t,i,o[n],s,r,r,a),ia(t,i,o[n],s,r,-r,a),ia(t,i,o[n],c,0,0,a);}else ia(t,i,o[n],s,0,0,a);},custom:function(t,i,o,s){const r=t.context,a=o.implementation;if(!t.transform.projection.unsupportedLayers||!t.transform.projection.unsupportedLayers.includes(\"custom\")||t.terrain&&(t.terrain.renderingToTexture||\"offscreen\"===t.renderPass)&&o.isDraped(i)){if(\"offscreen\"===t.renderPass){const i=a.prerender;if(i){if(t.setCustomLayerDefaults(),r.setColorMode(t.colorModeForRenderPass()),\"globe\"===t.transform.projection.name){const o=t.transform.pointMerc;i.call(a,r.gl,t.transform.customLayerMatrix(),t.transform.getProjection(),t.transform.globeToMercatorMatrix(),e.ae(t.transform.zoom),[o.x,o.y],t.transform.pixelsPerMeterRatio);}else i.call(a,r.gl,t.transform.customLayerMatrix());r.setDirty(),t.setBaseState();}}else if(\"translucent\"===t.renderPass){if(t.terrain&&t.terrain.renderingToTexture){const i=a.renderToTile;if(i){const o=s[0].canonical,n=new e.aa(o.x+s[0].wrap*(1<<o.z),o.y,o.z);r.setDepthMode(Fi.disabled),r.setStencilMode(Bi.disabled),r.setColorMode(t.colorModeForRenderPass()),t.setCustomLayerDefaults(),i.call(a,r.gl,n),r.setDirty(),t.setBaseState();}return}t.setCustomLayerDefaults(),r.setColorMode(t.colorModeForRenderPass()),r.setStencilMode(Bi.disabled);const i=\"3d\"===a.renderingMode?new Fi(t.context.gl.LEQUAL,Fi.ReadWrite,t.depthRangeFor3D):t.depthModeForSublayer(0,Fi.ReadOnly);if(r.setDepthMode(i),\"globe\"===t.transform.projection.name){const i=t.transform.pointMerc;a.render(r.gl,t.transform.customLayerMatrix(),t.transform.getProjection(),t.transform.globeToMercatorMatrix(),e.ae(t.transform.zoom),[i.x,i.y],t.transform.pixelsPerMeterRatio);}else a.render(r.gl,t.transform.customLayerMatrix());r.setDirty(),t.setBaseState(),r.bindFramebuffer.set(null);}}else e.w(\"Custom layers are not yet supported with this projection. Use mercator or globe to enable usage of custom layers.\");},model:function(t,i,o,s){if(\"opaque\"===t.renderPass)return;const r=o.paint.get(\"model-opacity\").constantOr(1);if(0===r)return;const a=o.paint.get(\"model-cast-shadows\");if(\"shadow\"===t.renderPass){if(!a)return;if(t.terrain&&r<.65&&o._transitionablePaint._values[\"model-opacity\"].value.expression instanceof e.a9)return}const n=t.shadowRenderer,l=o.paint.get(\"model-receive-shadows\");n&&(n.useNormalOffset=!0,l||(n.enabled=!1));const c=()=>{n&&(n.useNormalOffset=!0,l||(n.enabled=!0));},h=i.getSource();if(\"light-beam\"===t.renderPass&&\"batched-model\"!==h.type)return;if(\"vector\"===h.type||\"geojson\"===h.type)return function(t,i,o,s,r){const a=t.transform;if(\"mercator\"!==a.projection.name)return void e.w(`Drawing 3D models for ${a.projection.name} projection is not yet implemented`);const n=a.getFreeCameraOptions().position;if(!t.modelManager)return;const l=t.modelManager;o.modelManager=l;const c=t.shadowRenderer;if(!o._unevaluatedLayout._values.hasOwnProperty(\"model-id\"))return;const h=o._unevaluatedLayout._values[\"model-id\"],u={...o.layout.get(\"model-id\").parameters},d=t.style.order.indexOf(o.fqid);for(const _ of s){const s=i.getTile(_).getBucket(o);if(!s||s.projection.name!==a.projection.name)continue;const p=s.getModelUris();p&&!s.modelsRequested&&(l.addModelsFromBucket(p,r),s.modelsRequested=!0);const f=Ta(_,a);u.zoom=f;const m=h.possiblyEvaluate(u);if(ba(t,s,_),wa.shadowUniformsInitialized=!1,wa.useSingleShadowCascade=!!c&&0===c.getMaxCascadeForTile(_.toUnwrapped()),\"shadow\"===t.renderPass&&c){if(1===t.currentShadowCascade&&s.isInsideFirstShadowMapFrustum)continue;const i=a.calculatePosMatrix(_.toUnwrapped(),a.worldSize);if(wa.tileMatrix.set(i),wa.shadowTileMatrix=Float32Array.from(c.calculateShadowPassMatrixFromMatrix(i)),wa.aabb.min.fill(0),wa.aabb.max[0]=wa.aabb.max[1]=e.ag,wa.aabb.max[2]=0,Ca(s,wa,t,o.scope))continue}const g=1<<_.canonical.z,v=[((n.x-_.wrap)*g-_.canonical.x)*e.ag,(n.y*g-_.canonical.y)*e.ag,n.z*g*e.ag];t.conflationActive&&Object.keys(s.instancesPerModel).length>0&&t.style.isLayerClipped(o,i.getSource())&&s.updateReplacement(_,t.replacementSource,d,r)&&(s.uploaded=!1,s.upload(t.context));for(let e in s.instancesPerModel){const i=s.instancesPerModel[e];i.features.length>0&&(e=m.evaluate(i.features[0].feature,{}));const a=l.getModel(e,r);if(a&&a.uploaded)for(const e of a.nodes)Ea(t,o,e,i,v,_,wa);}}}(t,i,o,s,\"vector\"===h.type?o.scope:\"\"),void c();if(!h.loaded())return;if(\"batched-model\"===h.type)return function(t,i,o,s){o.resetLayerRenderingStats(t);const r=t.context,a=t.transform,n=t.style.fog,l=t.shadowRenderer;if(\"mercator\"!==a.projection.name)return void e.w(`Drawing 3D landmark models for ${a.projection.name} projection is not yet implemented`);const c=t.transform.getFreeCameraOptions().position,h=e.ab.vec3.scale([],[c.x,c.y,c.z],t.transform.worldSize),u=e.ab.vec3.negate([],h),d=e.ab.mat4.identity([]),_=e.dj(a.center.lat,a.zoom),p=e.ab.mat4.fromScaling([],[1,1,1/_]);e.ab.mat4.translate(d,d,u);const f=o.paint.get(\"model-opacity\").constantOr(1),m=new Fi(r.gl.LEQUAL,Fi.ReadWrite,t.depthRangeFor3D),g=new Fi(r.gl.LEQUAL,Fi.ReadOnly,t.depthRangeFor3D),v=new e.cd([1/0,1/0,1/0],[-1/0,-1/0,-1/0]),y=\"shadow\"===t.renderPass,x=y&&l?l.getCurrentCascadeFrustum():a.getFrustum(a.scaleZoom(a.worldSize)),b=o.paint.get(\"model-front-cutoff\"),w=b[2]<1,T=Ji(t,o.paint.get(\"model-cutoff-fade-range\")),E=o.getLayerRenderingStats();((function(e,t,i,o){const s=e.terrain?e.terrain.exaggeration():0,r=e.transform.zoom;for(const a of o){const o=t.getTile(a).getBucket(i);o&&(e.conflationActive&&o.updateReplacement(a,e.replacementSource),o.evaluateScale(e,i),e.terrain&&s>0&&o.elevationUpdate(e.terrain,s,a,i.source),o.needsReEvaluation(e,r,i)&&o.evaluate(i));}}))(t,i,o,s),function(){let c,u,S;w?(c=s.length-1,u=-1,S=-1):(c=0,u=s.length,S=1);const C=new Float64Array(16),I=e.ab.vec3.create(),R=new e.P(0,0);for(let D=c;D!==u;D+=S){const c=s[D],u=i.getTile(c).getBucket(o);if(!u||!u.uploaded)continue;let S=!1;l&&(S=0===l.getMaxCascadeForTile(c.toUnwrapped()));const L=a.calculatePosMatrix(c.toUnwrapped(),a.worldSize),A=u.modelTraits;!y&&w&&(e.ab.mat4.invert(C,L),e.ab.vec3.transformMat4(I,h,C),R.x=I[0],R.y=I[1]);const z=[];for(const i of u.getNodesInfo()){if(i.hiddenByReplacement)continue;if(!i.node.meshes)continue;const o=i.node;let s=0;t.terrain&&o.elevation&&(s=o.elevation*t.terrain.exaggeration());const r=(()=>{const t=i.aabb;return v.min=[...t.min],v.max=[...t.max],v.min[2]+=s,v.max[2]+=s,e.ab.vec3.transformMat4(v.min,v.min,L),e.ab.vec3.transformMat4(v.max,v.max,L),v})(),n=i.evaluatedScale;if(n[0]<=1&&n[1]<=1&&n[2]<=1&&0===r.intersects(x))continue;if(!y&&w){const t=1/6;i.cameraCollisionOpacity=h[0]>r.min[0]&&h[0]<r.max[0]&&h[1]>r.min[1]&&h[1]<r.max[1]&&h[2]*_<r.max[2]&&o.footprint&&e.bA(R,o.footprint)?Math.max(i.cameraCollisionOpacity-t,0):Math.min(1,i.cameraCollisionOpacity+t);}const l=[...L],c=o.anchor?o.anchor[0]:0,u=o.anchor?o.anchor[1]:0;e.ab.mat4.translate(l,l,[c*(n[0]-1),u*(n[1]-1),s]),e.ab.vec3.exactEquals(n,e.dm)||e.ab.mat4.scale(l,l,n);const d=e.ab.mat4.multiply([],l,o.matrix),p=e.ab.mat4.multiply([],a.expandedFarZProjMatrix,d),m=e.ab.mat4.multiply([],a.expandedFarZProjMatrix,l),g=e.ab.vec4.transformMat4([],[c,u,s,1],p)[2];o.hidden=!1;let E=f;y||(w&&(E*=i.cameraCollisionOpacity,E*=Ra(l,a,i.aabb,b)),E*=Ia(T,g)),0!==E?z.push({nodeInfo:i,depth:g,opacity:E,wvpForNode:p,wvpForTile:m,nodeModelMatrix:d,tileModelMatrix:l}):o.hidden=!0;}y||z.sort(((e,t)=>!w||1===e.opacity&&1===t.opacity?e.depth<t.depth?-1:1:1===e.opacity?-1:1===t.opacity?1:e.depth>t.depth?-1:1));for(const i of z){const s=i.nodeInfo,c=s.node;let h=e.ab.mat4.multiply([],p,i.tileModelMatrix);e.ab.mat4.multiply(h,d,h);const u=e.ab.mat4.invert([],h);e.ab.mat4.transpose(u,u),e.ab.mat4.scale(u,u,Sa),h=e.ab.mat4.multiply(h,h,c.matrix);const _=\"light-beam\"===t.renderPass,f=\"none\"===o.paint.get(\"model-color-use-theme\").constantOr(\"default\"),v=A&e.dp.HasMapboxMeshFeatures,x=v?0:s.evaluatedRMEA[0][2];for(let e=0;e<c.meshes.length;++e){const d=c.meshes[e],p=e===c.lightMeshIndex;let b=i.wvpForNode;if(p){if(!_&&!t.terrain&&t.shadowRenderer){t.currentLayer<t.firstLightBeamLayer&&(t.firstLightBeamLayer=t.currentLayer);continue}b=i.wvpForTile;}else if(_)continue;const w={defines:[]},T=[];if(!y&&l&&(l.useNormalOffset=!!d.normalBuffer),ga(w.defines,T,d,t,f?null:o.lut),v||w.defines.push(\"DIFFUSE_SHADED\"),S&&w.defines.push(\"SHADOWS_SINGLE_CASCADE\"),E&&(y?E.numRenderedVerticesInShadowPass+=d.vertexArray.length:E.numRenderedVerticesInTransparentPass+=d.vertexArray.length),y){xa(d,i.nodeModelMatrix,t,o);continue}let C=null;if(n){const e=ma(i.nodeModelMatrix,t.transform);if(C=new Float32Array(e),\"globe\"!==a.projection.name){const t=d.aabb.min,i=d.aabb.max,[o,s]=n.getOpacityForBounds(e,t[0],t[1],i[0],i[1]);w.overrideFog=o>=Fe||s>=Fe;}}const I=d.material;let R;I.occlusionTexture&&I.occlusionTexture.offsetScale&&(R=I.occlusionTexture.offsetScale,w.defines.push(\"OCCLUSION_TEXTURE_TRANSFORM\"));const D=t.getOrCreateProgram(\"model\",w);!y&&l&&l.setupShadowsFromMatrix(i.tileModelMatrix,D,l.useNormalOffset),t.uploadCommonUniforms(r,D,null,C);const L=I.pbrMetallicRoughness;L.metallicFactor=.9,L.roughnessFactor=.5;const A=yr(new Float32Array(b),new Float32Array(h),new Float32Array(u),new Float32Array(c.matrix),t,i.opacity,L.baseColorFactor.toRenderColor(null),I.emissiveFactor,L.metallicFactor,L.roughnessFactor,I,x,o,[0,0,0],R);!p&&(s.hasTranslucentParts||i.opacity<1)&&D.draw(t,r.gl.TRIANGLES,m,Bi.disabled,Oi.disabled,Gi.backCCW,A,o.id,d.vertexBuffer,d.indexBuffer,d.segments,o.paint,t.transform.zoom,void 0,T),D.draw(t,r.gl.TRIANGLES,p?g:m,Bi.disabled,p||i.opacity<1||s.hasTranslucentParts?Oi.alphaBlended:Oi.unblended,Gi.backCCW,A,o.id,d.vertexBuffer,d.indexBuffer,d.segments,o.paint,t.transform.zoom,void 0,T);}}}}();}(t,i,o,s),void c();if(\"model\"!==h.type)return;const u=h.getModels(),d=[],_=t.transform.getFreeCameraOptions().position,p=e.ab.vec3.scale([],[_.x,_.y,_.z],t.transform.worldSize);e.ab.vec3.negate(p,p);const f=[],m=[];let g=0;for(const i of u){const s=o.paint.get(\"model-rotation\").constantOr(null),r=o.paint.get(\"model-scale\").constantOr(null),a=o.paint.get(\"model-translation\").constantOr(null);i.computeModelMatrix(t,s,r,a,!0,!0,!1);const n=e.ab.mat4.identity([]),l=e.dj(i.position.lat,t.transform.zoom),c=e.ab.mat4.fromScaling([],[1,1,1/l]);e.ab.mat4.translate(n,n,p),d.push({zScaleMatrix:c,negCameraPosMatrix:n});for(const e of i.nodes)ya(t.transform,e,i.matrix,t.transform.expandedFarZProjMatrix,g,f,m);g++;}if(f.sort(((e,t)=>t.depth-e.depth)),\"shadow\"!==t.renderPass){if(1===r)for(const e of m)va(e,t,o,d[e.modelIndex],Bi.disabled,t.colorModeForRenderPass());else {for(const e of m)va(e,t,o,d[e.modelIndex],Bi.disabled,Oi.disabled);for(const e of m)va(e,t,o,d[e.modelIndex],t.stencilModeFor3D(),t.colorModeForRenderPass());t.resetStencilClippingMasks();}for(const e of f)va(e,t,o,d[e.modelIndex],Bi.disabled,t.colorModeForRenderPass());c();}else {for(const e of m)xa(e.mesh,e.nodeModelMatrix,t,o);for(const e of f)xa(e.mesh,e.nodeModelMatrix,t,o);c();}}},Za={model:function(e,t,i){const o=t.getSource();if(!o.loaded())return;if(\"vector\"===o.type||\"geojson\"===o.type)return void(i.modelManager&&i.modelManager.upload(i,\"vector\"===o.type?e.scope:\"\"));if(\"batched-model\"===o.type)return;if(\"model\"!==o.type)return;const s=o.getModels();for(const e of s)e.upload(i.context);},raster:function(e,t,i){const o=t.getSource();if(!(o instanceof ot&&o.loaded()))return;const s=e.sourceLayer||o.rasterLayerIds&&o.rasterLayerIds[0];if(!s)return;const r=e.paint.get(\"raster-array-band\")||o.getInitialBand(s);if(null==r)return;const a=t.getIds().map((e=>t.getTileByID(e)));for(const e of a)e.updateNeeded(s,r)&&o.prepareTile(e,s,r);},\"raster-particle\":function(e,t,i){const o=t.getSource();if(!(o instanceof ot&&o.loaded()))return;const s=e.sourceLayer||o.rasterLayerIds&&o.rasterLayerIds[0];if(!s)return;const r=e.paint.get(\"raster-particle-array-band\")||o.getInitialBand(s);if(null==r)return;const a=t.getIds().map((e=>t.getTileByID(e)));for(const e of a)e.updateNeeded(s,r)&&o.prepareTile(e,s,r);}};class Wa{constructor(t,i,o,s,r){this.context=new Cr(t,i),this.transform=o,this._tileTextures={},this.frameCopies=[],this.loadTimeStamps=[],this.tp=r,this._timeStamp=e.q.now(),this._averageFPS=0,this._fpsHistory=[],this._dt=0,this._debugParams={forceEnablePrecipitation:!1,showTerrainProxyTiles:!1,fpsWindow:30,continousRedraw:!1,enabledLayers:{}};const a=[\"fill\",\"line\",\"symbol\",\"circle\",\"heatmap\",\"fill-extrusion\",\"raster\",\"raster-particle\",\"hillshade\",\"model\",\"background\",\"sky\"];for(const e of a)this._debugParams.enabledLayers[e]=!0;r.registerParameter(this._debugParams,[\"Terrain\"],\"showTerrainProxyTiles\",{},(()=>{this.style.map.triggerRepaint();})),r.registerParameter(this._debugParams,[\"Precipitation\"],\"forceEnablePrecipitation\"),r.registerParameter(this._debugParams,[\"FPS\"],\"fpsWindow\",{min:1,max:100,step:1}),r.registerBinding(this._debugParams,[\"FPS\"],\"continousRedraw\",{readonly:!0,label:\"continuous redraw\"}),r.registerBinding(this,[\"FPS\"],\"_averageFPS\",{readonly:!0,label:\"value\"}),r.registerBinding(this,[\"FPS\"],\"_averageFPS\",{readonly:!0,label:\"graph\",view:\"graph\",min:0,max:200});for(const e of a)r.registerParameter(this._debugParams.enabledLayers,[\"Debug\",\"Layers\"],e);this.occlusionParams=new Aa(r),this.setup(),this.numSublayers=Tt.maxUnderzooming+Tt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.deferredRenderGpuTimeQueries=[],this.gpuTimers={},this.frameCounter=0,this._backgroundTiles={},this.conflationActive=!1,this.replacementSource=new e.dv,this.longestCutoffRange=0,this.minCutoffZoom=0,this._fogVisible=!1,this._cachedTileFogOpacities={},this._shadowRenderer=new io(this),this._wireframeDebugCache=new La,this.renderDefaultNorthPole=!0,this.renderDefaultSouthPole=!0,this.layersWithOcclusionOpacity=[];const n=new e.r({width:1,height:1},Uint8Array.of(0,0,0,0));this.emptyDepthTexture=new e.T(this.context,n,t.RGBA8),this._clippingActiveLastFrame=!1,this.scaleFactor=s;}updateTerrain(e,t){const i=!!e&&!!e.terrain&&this.transform.projection.supportsTerrain;if(!(i||this._terrain&&this._terrain.enabled))return;this._terrain||(this._terrain=new Gs(this,e));const o=this._terrain;this.transform.elevation=i?o:null,o.update(e,this.transform,t),this.transform.elevation&&!o.enabled&&(this.transform.elevation=null);}_updateFog(e){const t=e.fog;if(!t||\"globe\"===this.transform.projection.name||t.getOpacity(this.transform.pitch)<1||t.properties.get(\"horizon-blend\")<.03)return void(this.transform.fogCullDistSq=null);const[i,o]=t.getFovAdjustedRange(this.transform._fov);if(i>o)return void(this.transform.fogCullDistSq=null);const s=i+.78*(o-i);this.transform.fogCullDistSq=s*s;}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled||this._forceTerrainMode?this._terrain:null}get forceTerrainMode(){return this._forceTerrainMode}set forceTerrainMode(e){e&&!this._terrain&&(this._terrain=new Gs(this,this.style)),this._forceTerrainMode=e;}get shadowRenderer(){return this._shadowRenderer&&this._shadowRenderer.enabled?this._shadowRenderer:null}get wireframeDebugCache(){return this._wireframeDebugCache}resize(t,i){if(this.width=t*e.q.devicePixelRatio,this.height=i*e.q.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const e of this.style.order)this.style._mergedLayers[e].resize();}setup(){const t=this.context,i=new e.b4;i.emplaceBack(0,0),i.emplaceBack(e.ag,0),i.emplaceBack(0,e.ag),i.emplaceBack(e.ag,e.ag),this.tileExtentBuffer=t.createVertexBuffer(i,e.b6.members),this.tileExtentSegments=e.b7.simpleSegment(0,0,4,2);const o=new e.b4;o.emplaceBack(0,0),o.emplaceBack(e.ag,0),o.emplaceBack(0,e.ag),o.emplaceBack(e.ag,e.ag),this.debugBuffer=t.createVertexBuffer(o,e.b6.members),this.debugSegments=e.b7.simpleSegment(0,0,4,5);const s=new e.b4;s.emplaceBack(-1,-1),s.emplaceBack(1,-1),s.emplaceBack(-1,1),s.emplaceBack(1,1),this.viewportBuffer=t.createVertexBuffer(s,e.b6.members),this.viewportSegments=e.b7.simpleSegment(0,0,4,2);const r=new e.aT;r.emplaceBack(0,0,0,0),r.emplaceBack(e.ag,0,e.ag,0),r.emplaceBack(0,e.ag,0,e.ag),r.emplaceBack(e.ag,e.ag,e.ag,e.ag),this.mercatorBoundsBuffer=t.createVertexBuffer(r,e.b9.members),this.mercatorBoundsSegments=e.b7.simpleSegment(0,0,4,2);const a=new e.aU;a.emplaceBack(0,1,2),a.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=t.createIndexBuffer(a);const n=new e.b5;for(const e of [0,1,3,2,0])n.emplaceBack(e);this.debugIndexBuffer=t.createIndexBuffer(n),this.emptyTexture=new e.T(t,new e.r({width:1,height:1},Uint8Array.of(0,0,0,0)),t.gl.RGBA8),this.identityMat=e.ab.mat4.create();const l=this.context.gl;this.stencilClearMode=new Bi({func:l.ALWAYS,mask:0},0,255,l.ZERO,l.ZERO,l.ZERO),this.loadTimeStamps.push(performance.now());}getMercatorTileBoundsBuffers(){return {tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(e){return e._makeTileBoundsBuffers(this.context,this.transform.projection),e._tileBoundsBuffer?{tileBoundsBuffer:e._tileBoundsBuffer,tileBoundsIndexBuffer:e._tileBoundsIndexBuffer,tileBoundsSegments:e._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const e=this.context.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.getOrCreateProgram(\"clippingMask\").draw(this,e.TRIANGLES,Fi.disabled,this.stencilClearMode,Oi.disabled,Gi.disabled,Fs(this.identityMat),\"$clipping\",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments);}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={});}_renderTileClippingMasks(e,t,i){if(!t||this.currentStencilSource===t.id||!e.isTileClipped()||!i||0===i.length)return;if(this._tileClippingMaskIDs&&!this.terrain){let e=!1;for(const t of i)if(void 0===this._tileClippingMaskIDs[t.key]){e=!0;break}if(!e)return}this.currentStencilSource=t.id;const o=this.context,s=o.gl;this.nextStencilID+i.length>256&&this.clearStencil(),o.setColorMode(Oi.disabled),o.setDepthMode(Fi.disabled);const r=this.getOrCreateProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(const e of i){const i=t.getTile(e),o=this._tileClippingMaskIDs[e.key]=this.nextStencilID++,{tileBoundsBuffer:a,tileBoundsIndexBuffer:n,tileBoundsSegments:l}=this.getTileBoundsBuffers(i);r.draw(this,s.TRIANGLES,Fi.disabled,new Bi({func:s.ALWAYS,mask:0},o,255,s.KEEP,s.KEEP,s.REPLACE),Oi.disabled,Gi.disabled,Fs(e.projMatrix),\"$clipping\",a,n,l);}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const e=this.nextStencilID++,t=this.context.gl;return new Bi({func:t.NOTEQUAL,mask:255},e,255,t.KEEP,t.KEEP,t.REPLACE)}stencilModeForClipping(e){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(e);const t=this.context.gl;return new Bi({func:t.EQUAL,mask:255},this._tileClippingMaskIDs[e.key],0,t.KEEP,t.KEEP,t.REPLACE)}stencilConfigForOverlap(e){const t=this.context.gl,i=e.sort(((e,t)=>t.overscaledZ-e.overscaledZ)),o=i[i.length-1].overscaledZ,s=i[0].overscaledZ-o+1;if(s>1){this.currentStencilSource=void 0,this.nextStencilID+s>256&&this.clearStencil();const e={};for(let i=0;i<s;i++)e[i+o]=new Bi({func:t.GEQUAL,mask:255},i+this.nextStencilID,255,t.KEEP,t.KEEP,t.REPLACE);return this.nextStencilID+=s,[e,i]}return [{[o]:Bi.disabled},i]}colorModeForRenderPass(){const t=this.context.gl;if(this._showOverdrawInspector){const i=1/8;return new Oi([t.CONSTANT_COLOR,t.ONE,t.CONSTANT_COLOR,t.ONE],new e.aj(i,i,i,0),[!0,!0,!0,!0])}return \"opaque\"===this.renderPass?Oi.unblended:Oi.alphaBlended}colorModeForDrapableLayerRenderPass(t){const i=this.context.gl;return (()=>this.style&&this.style.enable3dLights()&&this.terrain&&this.terrain.renderingToTexture)()&&\"translucent\"===this.renderPass?new Oi([i.ONE,i.ONE_MINUS_SRC_ALPHA,i.CONSTANT_ALPHA,i.ONE_MINUS_SRC_ALPHA],new e.aj(0,0,0,void 0===t?0:t),[!0,!0,!0,!0]):this.colorModeForRenderPass()}depthModeForSublayer(e,t,i,o=!1){if(this.depthOcclusion)return new Fi(this.context.gl.GREATER,Fi.ReadOnly,this.depthRangeFor3D);if(!this.opaquePassEnabledForLayer()&&!o)return Fi.disabled;const s=1-((1+this.currentLayer)*this.numSublayers+e)*this.depthEpsilon;return new Fi(i||this.context.gl.LEQUAL,t,[s,s])}opaquePassEnabledForLayer(){return this.currentLayer<this.opaquePassCutoff}blitDepth(){const t=this.context.gl,i=Math.ceil(this.width),o=Math.ceil(this.height),s=this.context.bindFramebuffer.get(),r=t.getParameter(t.TEXTURE_BINDING_2D);this.depthFBO&&this.depthFBO.width===i&&this.depthFBO.height===o||(this.depthFBO&&(this.depthFBO.destroy(),this.depthFBO=void 0,this.depthTexture=void 0),0!==i&&0!==o&&(this.depthFBO=new Sr(this.context,i,o,!1,\"texture\"),this.depthTexture=new e.T(this.context,{width:i,height:o,data:null},t.DEPTH24_STENCIL8),this.depthFBO.depthAttachment.set(this.depthTexture.texture))),this.context.bindFramebuffer.set(s),t.bindTexture(t.TEXTURE_2D,r),this.depthFBO&&(t.bindFramebuffer(t.READ_FRAMEBUFFER,null),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,this.depthFBO.framebuffer),t.blitFramebuffer(0,0,i,o,0,0,i,o,t.DEPTH_BUFFER_BIT,t.NEAREST),t.bindFramebuffer(t.FRAMEBUFFER,this.context.bindFramebuffer.current));}updateAverageFPS(){this._fpsHistory.push(0===this._dt?0:1e3/this._dt),this._fpsHistory.length>this._debugParams.fpsWindow&&this._fpsHistory.splice(0,this._fpsHistory.length-this._debugParams.fpsWindow),this._averageFPS=Math.round(this._fpsHistory.reduce(((e,t)=>e+t/this._fpsHistory.length),0));}render(t,i){const o=e.q.now();this._dt=o-this._timeStamp,this._timeStamp=o,this._wireframeDebugCache.update(this.frameCounter),this._debugParams.continousRedraw=t.map.repaint,this.style=t,this.options=i;const s=this.style._mergedLayers,r=this.style._getOrder(!(!this.terrain||!this.terrain.enabled)).filter((e=>{const t=s[e];return !(t.type in this._debugParams.enabledLayers)||this._debugParams.enabledLayers[t.type]}));let a=!1,n=!1;for(const e of r){const t=s[e];\"circle\"===t.type&&(a=!0),\"symbol\"===t.type&&(t.hasInitialOcclusionOpacityProperties?n=!0:a=!0);}const l=r.map((e=>s[e])),c=this.style._mergedSourceCaches;this.imageManager=t.imageManager,this.modelManager=t.modelManager,this.symbolFadeChange=t.placement.symbolFadeChange(e.q.now()),this.imageManager.beginFrame();let h=0,u=!1;for(const e in c){const t=c[e];t.used&&(t.prepare(this.context),t.getSource().usedInConflation&&++h);}let d=!1;for(const e of l)e.isHidden(this.transform.zoom)||(\"clip\"===e.type&&(d=!0),this.prepareLayer(e));const _={},p={},f={},m={},g={};for(const e in c){const t=c[e];_[e]=t.getVisibleCoordinates(),p[e]=_[e].slice().reverse(),f[e]=t.getVisibleCoordinates(!0).reverse(),m[e]=t.getShadowCasterCoordinates(),g[e]=t.sortCoordinatesByDistance(_[e]);}const v=e=>{const t=this.style.getLayerSourceCache(e);return t&&t.used?t.getSource():null};if(h||d||this._clippingActiveLastFrame){const t=[],i=[];let o=0;for(const e of l)this.isSourceForClippingOrConflation(e,v(e))&&(t.push(e),i.push(o)),o++;if(t&&(d||t.length>1)||this._clippingActiveLastFrame){d=!1;const o=[];for(let s=0;s<t.length;s++){const r=t[s],a=i[s],n=this.style.getLayerSourceCache(r);if(!n||!n.used||!n.getSource().usedInConflation&&\"clip\"!==r.type)continue;let l=e.dx,c=e.by.None;const h=[];let u=!0;if(\"clip\"===r.type){l=a;for(const t of r.layout.get(\"clip-layer-types\"))c|=\"model\"===t?e.by.Model:\"symbol\"===t?e.by.Symbol:e.by.FillExtrusion;for(const e of r.layout.get(\"clip-layer-scope\"))h.push(e);r.isHidden(this.transform.zoom)?u=!1:d=!0;}u&&o.push({layer:r.fqid,cache:n,order:l,clipMask:c,clipScope:h});}this.replacementSource.setSources(o),u=!0;}}this._clippingActiveLastFrame=d,u||this.replacementSource.clear(),this.conflationActive=u,this.minCutoffZoom=0,this.longestCutoffRange=0,this.opaquePassCutoff=1/0,this._lastOcclusionLayer=-1,this.layersWithOcclusionOpacity=[];for(let e=0;e<l.length;e++){const t=l[e],i=t.cutoffRange();if(this.longestCutoffRange=Math.max(i,this.longestCutoffRange),i>0){const e=v(t);e&&(this.minCutoffZoom=Math.max(e.minzoom,this.minCutoffZoom)),t.minzoom&&(this.minCutoffZoom=Math.max(t.minzoom,this.minCutoffZoom));}t.is3D()&&(this.opaquePassCutoff===1/0&&(this.opaquePassCutoff=e),this._lastOcclusionLayer=e);}const y=this.style&&this.style.fog;y?(this._fogVisible=0!==y.getOpacity(this.transform.pitch),this._fogVisible&&\"globe\"!==this.transform.projection.name&&(this._fogVisible=y.isVisibleOnFrustum(this.transform.cameraFrustum))):this._fogVisible=!1,this._cachedTileFogOpacities={},this.terrain&&(this.terrain.updateTileBinding(f),this.opaquePassCutoff=0);const x=this._shadowRenderer;if(x){x.updateShadowParameters(this.transform,this.style.directionalLight);for(const e in c)for(const t of _[e]){let e={min:0,max:0};this.terrain&&(e=this.terrain.getMinMaxForTile(t)||e),x.addShadowReceiver(t.toUnwrapped(),e.min,e.max);}}\"globe\"!==this.transform.projection.name||this.globeSharedBuffers||(this.globeSharedBuffers=new e.dw(this.context)),this.style.fog&&this.transform.projection.supportsFog?(this._atmosphere||(this._atmosphere=new fa(this)),this._atmosphere.update(this)):this._atmosphere&&(this._atmosphere.destroy(),this._atmosphere=void 0);const b=this._debugParams.forceEnablePrecipitation||!(!this.style||!this.style.snow),w=this._debugParams.forceEnablePrecipitation||!(!this.style||!this.style.rain);if(b&&!this._snow&&(this._snow=new qa(this)),!b&&this._snow&&(this._snow.destroy(),delete this._snow),w&&!this._rain&&(this._rain=new ja(this)),!w&&this._rain&&(this._rain.destroy(),delete this._rain),this._snow&&this._snow.update(this),this._rain&&this._rain.update(this),!U.has(this.context.gl))return;this.renderPass=\"offscreen\";for(const e of l){const i=t.getLayerSourceCache(e);if(!e.hasOffscreenPass()||e.isHidden(this.transform.zoom))continue;const o=i?p[i.id]:void 0;(\"custom\"===e.type||\"raster\"===e.type||\"raster-particle\"===e.type||e.isSky()||o&&o.length)&&this.renderLayer(this,i,e,o);}this.depthRangeFor3D=[0,1-(l.length+2)*this.numSublayers*this.depthEpsilon],this._shadowRenderer&&(this.renderPass=\"shadow\",this._shadowRenderer.drawShadowPass(this.style,m)),this.context.bindFramebuffer.set(null),this.context.viewport.set([0,0,this.width,this.height]);const T=\"globe\"===this.transform.projection.name||this.transform.isHorizonVisible(),E=(()=>{if(i.showOverdrawInspector)return e.aj.black;const t=this.style.fog;if(t&&this.transform.projection.supportsFog){const i=this.style.getLut(t.scope);if(!T){const o=\"none\"===t.properties.get(\"color-use-theme\"),s=t.properties.get(\"color\").toRenderColor(o?null:i).toArray01();return new e.aj(...s)}if(T){const o=\"none\"===t.properties.get(\"space-color-use-theme\"),s=t.properties.get(\"space-color\").toRenderColor(o?null:i).toArray01();return new e.aj(...s)}}return e.aj.transparent})();if(this.context.clear({color:E,depth:1}),this.clearStencil(),this._showOverdrawInspector=i.showOverdrawInspector,this.renderPass=\"opaque\",this.style.fog&&this.transform.projection.supportsFog&&this._atmosphere&&!this._showOverdrawInspector&&T&&this._atmosphere.drawStars(this,this.style.fog),!this.terrain)for(this.currentLayer=r.length-1;this.currentLayer>=0;this.currentLayer--){const e=l[this.currentLayer],i=t.getLayerSourceCache(e);if(e.isSky())continue;const o=i?(e.is3D()?g:p)[i.id]:void 0;this._renderTileClippingMasks(e,i,o),this.renderLayer(this,i,e,o);}if(this.style.fog&&this.transform.projection.supportsFog&&this._atmosphere&&!this._showOverdrawInspector&&T&&this._atmosphere.drawAtmosphereGlow(this,this.style.fog),this.renderPass=\"sky\",(!this._atmosphere||e.ae(this.transform.zoom)>0)&&(\"globe\"===this.transform.projection.name||this.transform.isHorizonVisible()))for(this.currentLayer=0;this.currentLayer<r.length;this.currentLayer++){const e=l[this.currentLayer],i=t.getLayerSourceCache(e);e.isSky()&&this.renderLayer(this,i,e,i?p[i.id]:void 0);}function S(e,t){let i;return t&&(i=(\"symbol\"===e.type?f:e.is3D()?g:p)[t.id]),i}if(this.renderPass=\"translucent\",\"globe\"===this.transform.projection.name){for(this.renderElevatedRasterBackface=!0,this.currentLayer=0;this.currentLayer<r.length;){const e=l[this.currentLayer];if(\"raster\"===e.type||\"raster-particle\"===e.type){const i=t.getLayerSourceCache(e);this.renderLayer(this,i,e,S(e,i));}++this.currentLayer;}this.renderElevatedRasterBackface=!1;}this.currentLayer=0,this.firstLightBeamLayer=Number.MAX_SAFE_INTEGER;let C=0;x&&(C=x.getShadowCastingLayerCount());let I=!1,R=-1;for(let e=0;e<r.length;++e){const t=l[e];t.isHidden(this.transform.zoom)||t.is3D()&&(R=e);}for(n&&-1===R&&(a=!0);this.currentLayer<r.length;){const e=l[this.currentLayer],i=t.getLayerSourceCache(e);if(e.isSky())++this.currentLayer;else if(this.terrain&&this.style.isLayerDraped(e)){if(e.isHidden(this.transform.zoom)){++this.currentLayer;continue}this.currentLayer=this.terrain.renderBatch(this.currentLayer),this._lastOcclusionLayer=Math.max(this.currentLayer,this._lastOcclusionLayer);}else {if(a&&!I&&this.terrain&&!this.transform.isOrthographic&&(I=!0,this.blitDepth()),n&&-1!==R&&this.currentLayer===R+1&&!this.transform.isOrthographic&&this.blitDepth(),e.is3D()||this.terrain||this._renderTileClippingMasks(e,i,i?_[i.id]:void 0),this.renderLayer(this,i,e,S(e,i)),!this.terrain&&x&&C>0&&e.hasShadowPass()&&0==--C&&(x.drawGroundShadows(),this.firstLightBeamLayer<=this.currentLayer)){const e=this.currentLayer;for(this.renderPass=\"light-beam\",this.currentLayer=this.firstLightBeamLayer;this.currentLayer<=e;this.currentLayer++){const e=l[this.currentLayer];if(!e.hasLightBeamPass())continue;const i=t.getLayerSourceCache(e);this.renderLayer(this,i,e,i?p[i.id]:void 0);}this.currentLayer=e,this.renderPass=\"translucent\";}if(this.currentLayer>=this._lastOcclusionLayer&&this.layersWithOcclusionOpacity.length>0){const e=this.currentLayer;this.depthOcclusion=!0;for(const e of this.layersWithOcclusionOpacity){this.currentLayer=e;const i=l[this.currentLayer],o=t.getLayerSourceCache(i),s=o?p[o.id]:void 0;i.is3D()||this.terrain||this._renderTileClippingMasks(i,o,o?_[o.id]:void 0),this.renderLayer(this,o,i,s);}this.depthOcclusion=!1,this.currentLayer=e,this.renderPass=\"translucent\",this.layersWithOcclusionOpacity=[];}++this.currentLayer;}}if(this.terrain&&this.terrain.postRender(),this._snow&&this._snow.draw(this),this._rain&&this._rain.draw(this),this.options.showTileBoundaries||this.options.showQueryGeometry||this.options.showTileAABBs){let i=null;l.forEach((e=>{const o=t.getLayerSourceCache(e);o&&!e.isHidden(this.transform.zoom)&&o.getVisibleCoordinates().length&&(!i||i.getSource().maxzoom<o.getSource().maxzoom)&&(i=o);})),i&&this.options.showTileBoundaries&&Ha.debug(this,i,i.getVisibleCoordinates(),e.aj.red,!1,this.options.showParseStatus);}this.terrain&&this._debugParams.showTerrainProxyTiles&&Ha.debug(this,this.terrain.proxySourceCache,this.terrain.proxyCoords,new e.aj(1,.8,.1,1),!0,this.options.showParseStatus),this.options.showPadding&&function(e){const t=e.transform.padding;oa(e,e.transform.height-(t.top||0),3,Yr),oa(e,t.bottom||0,3,Jr),sa(e,t.left||0,3,Qr),sa(e,e.transform.width-(t.right||0),3,ea);const i=e.transform.centerPoint;!function(e,t,i,o){ra(e,t-1,i-10,2,20,o),ra(e,t-10,i-1,20,2,o);}(e,i.x,e.transform.height-i.y,ta);}(this),this.context.setDefault(),this.frameCounter=(this.frameCounter+1)%Number.MAX_SAFE_INTEGER,this.tileLoaded&&this.options.speedIndexTiming&&(this.loadTimeStamps.push(performance.now()),this.saveCanvasCopy()),u||(this.conflationActive=!1);}prepareLayer(e){this.gpuTimingStart(e);const{unsupportedLayers:t}=this.transform.projection,i=!t||!t.includes(e.type);if(Za[e.type]&&(i||this.terrain&&\"custom\"===e.type)){const t=this.style.getLayerSourceCache(e);Za[e.type](e,t,this);}this.gpuTimingEnd();}renderLayer(e,t,i,o){i.isHidden(this.transform.zoom)||(\"background\"===i.type||\"sky\"===i.type||\"custom\"===i.type||\"model\"===i.type||\"raster\"===i.type||\"raster-particle\"===i.type||o&&o.length)&&(this.id=i.id,this.gpuTimingStart(i),e.transform.projection.unsupportedLayers&&e.transform.projection.unsupportedLayers.includes(i.type)&&(!e.terrain||\"custom\"!==i.type)||\"clip\"===i.type||Ha[i.type](e,t,i,o,this.style.placement.variableOffsets,this.options.isInitialLoad),this.gpuTimingEnd());}gpuTimingStart(e){if(!this.options.gpuTiming)return;const t=this.context.extTimerQuery,i=this.context.gl;let o=this.gpuTimers[e.id];o||(o=this.gpuTimers[e.id]={calls:0,cpuTime:0,query:i.createQuery()}),o.calls++,i.beginQuery(t.TIME_ELAPSED_EXT,o.query);}gpuTimingDeferredRenderStart(){if(this.options.gpuTimingDeferredRender){const e=this.context.extTimerQuery,t=this.context.gl,i=t.createQuery();this.deferredRenderGpuTimeQueries.push(i),t.beginQuery(e.TIME_ELAPSED_EXT,i);}}gpuTimingDeferredRenderEnd(){this.options.gpuTimingDeferredRender&&this.context.gl.endQuery(this.context.extTimerQuery.TIME_ELAPSED_EXT);}gpuTimingEnd(){this.options.gpuTiming&&this.context.gl.endQuery(this.context.extTimerQuery.TIME_ELAPSED_EXT);}collectGpuTimers(){const e=this.gpuTimers;return this.gpuTimers={},e}collectDeferredRenderGpuQueries(){const e=this.deferredRenderGpuTimeQueries;return this.deferredRenderGpuTimeQueries=[],e}queryGpuTimers(e){const t={};for(const i in e){const o=e[i],s=this.context.extTimerQuery,r=s.getQueryParameter(o.query,this.context.gl.QUERY_RESULT)/1e6;s.deleteQueryEXT(o.query),t[i]=r;}return t}queryGpuTimeDeferredRender(e){if(!this.options.gpuTimingDeferredRender)return 0;const t=this.context.gl;let i=0;for(const o of e)i+=t.getQueryParameter(o,t.QUERY_RESULT)/1e6,t.deleteQuery(o);return i}translatePosMatrix(t,i,o,s,r){if(!o[0]&&!o[1])return t;const a=r?\"map\"===s?this.transform.angle:0:\"viewport\"===s?-this.transform.angle:0;if(a){const e=Math.sin(a),t=Math.cos(a);o=[o[0]*t-o[1]*e,o[0]*e+o[1]*t];}const n=[r?o[0]:e.ar(i,o[0],this.transform.zoom),r?o[1]:e.ar(i,o[1],this.transform.zoom),0],l=new Float32Array(16);return e.ab.mat4.translate(l,t,n),l}saveTileTexture(e){const t=e.size[0],i=this._tileTextures[t];i?i.push(e):this._tileTextures[t]=[e];}getTileTexture(e){const t=this._tileTextures[e];return t&&t.length>0?t.pop():null}terrainRenderModeElevated(){return this.style&&!!this.style.getTerrain()&&!!this.terrain&&!this.terrain.renderingToTexture||this.forceTerrainMode}linearFloatFilteringSupported(){return null!=this.context.extTextureFloatLinear}currentGlobalDefines(e,t,i){const o=void 0===i?this.terrain&&this.terrain.renderingToTexture:i,s=[];return this.style&&this.style.enable3dLights()&&(\"globeRaster\"===e||\"terrainRaster\"===e?(s.push(\"LIGHTING_3D_MODE\"),s.push(\"LIGHTING_3D_ALPHA_EMISSIVENESS\")):o||s.push(\"LIGHTING_3D_MODE\")),\"shadow\"===this.renderPass&&(this._shadowMapDebug||s.push(\"DEPTH_TEXTURE\")),this.terrainRenderModeElevated()&&(s.push(\"TERRAIN\"),this.linearFloatFilteringSupported()&&s.push(\"TERRAIN_DEM_FLOAT_FORMAT\")),\"globe\"===this.transform.projection.name&&s.push(\"GLOBE\"),!this._fogVisible||o||void 0!==t&&!t||s.push(\"FOG\",\"FOG_DITHERING\"),o&&s.push(\"RENDER_TO_TEXTURE\"),this._showOverdrawInspector&&s.push(\"OVERDRAW_INSPECTOR\"),s}getOrCreateProgram(e,t){this.cache=this.cache||{};const i=t&&t.defines||[],o=t&&t.config,s=this.currentGlobalDefines(e,t&&t.overrideFog,t&&t.overrideRtt).concat(i),r=Hs.cacheKey(Bo[e],e,s,o);return this.cache[r]||(this.cache[r]=new Hs(this.context,e,Bo[e],o,br[e],s)),this.cache[r]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.frontFace.setDefault(),this.context.cullFaceSide.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault();}setBaseState(){const e=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(e.FUNC_ADD);}initDebugOverlayCanvas(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=document.createElement(\"canvas\"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new e.T(this.context,this.debugOverlayCanvas,this.context.gl.RGBA8));}destroy(){this._terrain&&this._terrain.destroy(),this._atmosphere&&(this._atmosphere.destroy(),this._atmosphere=void 0),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy(),this._wireframeDebugCache.destroy(),this.depthFBO&&(this.depthFBO.destroy(),this.depthFBO=void 0,this.depthTexture=void 0),this.emptyDepthTexture&&this.emptyDepthTexture.destroy();}prepareDrawTile(){this.terrain&&this.terrain.prepareDrawTile();}uploadCommonLightUniforms(t,i){if(this.style.enable3dLights()){const o=this.style.directionalLight,s=this.style.ambientLight;if(o&&s){const r=((t,i,o)=>{const s=t.properties.get(\"direction\"),r=\"none\"===t.properties.get(\"color-use-theme\"),a=t.properties.get(\"color\").toRenderColor(r?null:o.getLut(t.scope)).toArray01(),n=t.properties.get(\"intensity\"),l=\"none\"===i.properties.get(\"color-use-theme\"),c=i.properties.get(\"color\").toRenderColor(l?null:o.getLut(i.scope)).toArray01(),h=i.properties.get(\"intensity\"),u=[s.x,s.y,s.z],d=e.cM(c,h),_=e.cM(a,n);return {u_lighting_ambient_color:d,u_lighting_directional_dir:u,u_lighting_directional_color:_,u_ground_radiance:js(u,_,d)}})(o,s,this.style);i.setLightsUniformValues(t,r);}}}uploadCommonUniforms(t,i,o,s,r){if(this.uploadCommonLightUniforms(t,i),this.terrain&&this.terrain.renderingToTexture)return;const a=this.style.fog;if(a){const r=a.getOpacity(this.transform.pitch),n=((t,i,o,s,r,a,n,l,c,h,u,d)=>{const _=t.transform,p=\"none\"===i.properties.get(\"color-use-theme\"),f=i.properties.get(\"color\").toRenderColor(p?null:t.style.getLut(i.scope)).toArray01();f[3]=s;const m=t.frameCounter/1e3%1,[g,v]=i.properties.get(\"vertical-range\");return {u_fog_matrix:o?_.calculateFogTileMatrix(o):d||t.identityMat,u_fog_range:i.getFovAdjustedRange(_._fov),u_fog_color:f,u_fog_horizon_blend:i.properties.get(\"horizon-blend\"),u_fog_vertical_limit:[Math.min(g,v),v],u_fog_temporal_offset:m,u_frustum_tl:r,u_frustum_tr:a,u_frustum_br:n,u_frustum_bl:l,u_globe_pos:c,u_globe_radius:h,u_viewport:u,u_globe_transition:e.ae(_.zoom),u_is_globe:+(\"globe\"===_.projection.name)}})(this,a,o,r,this.transform.frustumCorners.TL,this.transform.frustumCorners.TR,this.transform.frustumCorners.BR,this.transform.frustumCorners.BL,this.transform.globeCenterInViewSpace,this.transform.globeRadius,[this.transform.width*e.q.devicePixelRatio,this.transform.height*e.q.devicePixelRatio],s);i.setFogUniformValues(t,n);}r&&i.setCutoffUniformValues(t,r.uniformValues);}setTileLoadedFlag(e){this.tileLoaded=e;}saveCanvasCopy(){const e=this.canvasCopy();e&&(this.frameCopies.push(e),this.tileLoaded=!1);}canvasCopy(){const e=this.context.gl,t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.copyTexImage2D(e.TEXTURE_2D,0,e.RGBA,0,0,e.drawingBufferWidth,e.drawingBufferHeight,0),t}getCanvasCopiesAndTimestamps(){return {canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return !1;const e=this.style&&this.style.fog;return !!e&&0!==e.getOpacity(this.transform.pitch)}getBackgroundTiles(){const e=this._backgroundTiles,t=this._backgroundTiles={},i=this.transform.coveringTiles({tileSize:512});for(const o of i)t[o.key]=e[o.key]||new yt(o,512,this.transform.tileZoom,this);return t}clearBackgroundTiles(){this._backgroundTiles={};}isSourceForClippingOrConflation(e,t){return !(!e.is3D()||\"clip\"!==e.type&&(e.minzoom&&e.minzoom>this.transform.zoom||(this.style._clipLayerPresent||\"building\"!==e.sourceLayer)&&(!t||\"batched-model\"!==t.type)))}isTileAffectedByFog(e){if(!this.style||!this.style.fog)return !1;if(\"globe\"===this.transform.projection.name)return !0;let t=this._cachedTileFogOpacities[e.key];return t||(this._cachedTileFogOpacities[e.key]=t=this.style.fog.getOpacityForTile(e)),t[0]>=Fe||t[1]>=Fe}setupDepthForOcclusion(e,t,i){const o=this.context,s=o.gl,r=!!i;var a;i||(i={u_dem:2,u_dem_prev:4,u_dem_tl:[0,0],u_dem_tl_prev:[0,0],u_dem_scale:0,u_dem_scale_prev:0,u_dem_size:0,u_dem_lerp:1,u_depth:3,u_depth_size_inv:[0,0],u_depth_range_unpack:[0,1],u_occluder_half_size:16,u_occlusion_depth_offset:-1e-4,u_exaggeration:0}),o.activeTexture.set(s.TEXTURE3),e&&this.depthFBO&&this.depthTexture?(this.depthTexture.bind(s.NEAREST,s.CLAMP_TO_EDGE),i.u_depth_size_inv=[1/this.depthFBO.width,1/this.depthFBO.height],i.u_depth_range_unpack=[2/((a=this.depthRangeFor3D)[1]-a[0]),-1-2*a[0]/(a[1]-a[0])],i.u_occluder_half_size=.5*this.occlusionParams.occluderSize,i.u_occlusion_depth_offset=this.occlusionParams.depthOffset):this.emptyDepthTexture.bind(s.NEAREST,s.CLAMP_TO_EDGE),o.activeTexture.set(s.TEXTURE0),r||t.setTerrainUniformValues(o,i);}}function $a(e,t){let i=!1,o=null;const s=()=>{o=null,i&&(e(),o=setTimeout(s,t),i=!1);};return ()=>(i=!0,o||s(),o)}class Xa{constructor(t){this._hashName=t&&encodeURIComponent(t),e.aP([\"_getCurrentHash\",\"_onHashChange\",\"_updateHash\"],this),this._updateHash=$a(this._updateHashUnthrottled.bind(this),300);}addTo(e){return this._map=e,window.addEventListener(\"hashchange\",this._onHashChange,!1),e.on(\"moveend\",this._updateHash),this}remove(){return this._map?(this._map.off(\"moveend\",this._updateHash),window.removeEventListener(\"hashchange\",this._onHashChange,!1),clearTimeout(this._updateHash()),this._map=void 0,this):this}getHashString(){const e=this._map;if(!e)return \"\";const t=Ka(e);if(this._hashName){const e=this._hashName;let i=!1;const o=location.hash.slice(1).split(\"&\").map((o=>{const s=o.split(\"=\")[0];return s===e?(i=!0,`${s}=${t}`):o})).filter((e=>e));return i||o.push(`${e}=${t}`),`#${o.join(\"&\")}`}return `#${t}`}_getCurrentHash(){const e=location.hash.replace(\"#\",\"\");if(this._hashName){let t;return e.split(\"&\").map((e=>e.split(\"=\"))).forEach((e=>{e[0]===this._hashName&&(t=e);})),(t&&t[1]||\"\").split(\"/\")}return e.split(\"/\")}_onHashChange(){const e=this._map;if(!e)return !1;const t=this._getCurrentHash();if(t.length>=3&&!t.some((e=>isNaN(e)))){const i=e.dragRotate.isEnabled()&&e.touchZoomRotate.isEnabled()?+(t[3]||0):e.getBearing();return e.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:i,pitch:+(t[4]||0)}),!0}return !1}_updateHashUnthrottled(){history.replaceState(history.state,\"\",location.href.replace(/(#.+)?$/,this.getHashString()));}}function Ka(e,t){const i=e.getCenter(),o=Math.round(100*e.getZoom())/100,s=Math.ceil((o*Math.LN2+Math.log(512/360/.5))/Math.LN10),r=Math.pow(10,s),a=Math.round(i.lng*r)/r,n=Math.round(i.lat*r)/r,l=e.getBearing(),c=e.getPitch();let h=t?`/${a}/${n}/${o}`:`${o}/${n}/${a}`;return (l||c)&&(h+=\"/\"+Math.round(10*l)/10),c&&(h+=`/${Math.round(c)}`),h}const Ya={linearity:.3,easing:e.dy(0,0,.3,1)},Ja=e.l({deceleration:2500,maxSpeed:1400},Ya),Qa=e.l({deceleration:20,maxSpeed:1400},Ya),en=e.l({deceleration:1e3,maxSpeed:360},Ya),tn=e.l({deceleration:1e3,maxSpeed:90},Ya);class on{constructor(e){this._map=e,this.clear();}clear(){this._inertiaBuffer=[];}record(t){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:e.q.now(),settings:t});}_drainInertiaBuffer(){const t=this._inertiaBuffer,i=e.q.now();for(;t.length>0&&i-t[0].time>160;)t.shift();}_onMoveEnd(t){if(this._map._prefersReducedMotion())return;if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const i={zoom:0,bearing:0,pitch:0,pan:new e.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:e}of this._inertiaBuffer)i.zoom+=e.zoomDelta||0,i.bearing+=e.bearingDelta||0,i.pitch+=e.pitchDelta||0,e.panDelta&&i.pan._add(e.panDelta),e.around&&(i.around=e.around),e.pinchAround&&(i.pinchAround=e.pinchAround);const o=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,s={};if(i.pan.mag()){const r=rn(i.pan.mag(),o,e.l({},Ja,t||{}));s.offset=i.pan.mult(r.amount/i.pan.mag()),s.center=this._map.transform.center,sn(s,r);}if(i.zoom){const e=rn(i.zoom,o,Qa);s.zoom=this._map.transform.zoom+e.amount,sn(s,e);}if(i.bearing){const t=rn(i.bearing,o,en);s.bearing=this._map.transform.bearing+e.aw(t.amount,-179,179),sn(s,t);}if(i.pitch){const e=rn(i.pitch,o,tn);s.pitch=this._map.transform.pitch+e.amount,sn(s,e);}if(s.zoom||s.bearing){const e=void 0===i.pinchAround?i.around:i.pinchAround;s.around=e?this._map.unproject(e):this._map.getCenter();}return this.clear(),s.noMoveStart=!0,s}}function sn(e,t){(!e.duration||e.duration<t.duration)&&(e.duration=t.duration,e.easing=t.easing);}function rn(t,i,o){const{maxSpeed:s,linearity:r,deceleration:a}=o,n=e.aw(t*r/(i/1e3),-s,s),l=Math.abs(n)/(a*r);return {easing:o.easing,duration:1e3*l,amount:n*(l/2)}}class an extends e.z{preventDefault(){this._defaultPrevented=!0;}get defaultPrevented(){return this._defaultPrevented}constructor(t,i,o,s={}){const r=g(i.getCanvasContainer(),o),a=i.unproject(r);super(t,e.l({point:r,lngLat:a,originalEvent:o},s)),this._defaultPrevented=!1,this.target=i;}}class nn extends e.z{preventDefault(){this._defaultPrevented=!0;}get defaultPrevented(){return this._defaultPrevented}constructor(t,i,o){const s=\"touchend\"===t?o.changedTouches:o.touches,r=v(i.getCanvasContainer(),s),a=r.map((e=>i.unproject(e))),n=r.reduce(((e,t,i,o)=>e.add(t.div(o.length))),new e.P(0,0));super(t,{points:r,point:n,lngLats:a,lngLat:i.unproject(n),originalEvent:o}),this._defaultPrevented=!1;}}class ln extends e.z{preventDefault(){this._defaultPrevented=!0;}get defaultPrevented(){return this._defaultPrevented}constructor(e,t){super(\"wheel\",{originalEvent:t}),this._defaultPrevented=!1;}}class cn{constructor(e,t){this._map=e,this._clickTolerance=t.clickTolerance;}reset(){this._mousedownPos=void 0;}wheel(e){return this._firePreventable(new ln(this._map,e))}mousedown(e,t){return this._mousedownPos=t,this._firePreventable(new an(e.type,this._map,e))}mouseup(e){this._map.fire(new an(e.type,this._map,e));}preclick(t){const i=e.l({},t);i.type=\"preclick\",this._map.fire(new an(i.type,this._map,i));}click(e,t){this._mousedownPos&&this._mousedownPos.dist(t)>=this._clickTolerance||(this.preclick(e),this._map.fire(new an(e.type,this._map,e)));}dblclick(e){return this._firePreventable(new an(e.type,this._map,e))}mouseover(e){this._map.fire(new an(e.type,this._map,e));}mouseout(e){this._map.fire(new an(e.type,this._map,e));}touchstart(e){return this._firePreventable(new nn(e.type,this._map,e))}touchmove(e){this._map.fire(new nn(e.type,this._map,e));}touchend(e){this._map.fire(new nn(e.type,this._map,e));}touchcancel(e){this._map.fire(new nn(e.type,this._map,e));}_firePreventable(e){if(this._map.fire(e),e.defaultPrevented)return {}}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class hn{constructor(e){this._map=e;}reset(){this._delayContextMenu=!1,this._contextMenuEvent=void 0;}mousemove(e){this._map.fire(new an(e.type,this._map,e));}mousedown(){this._delayContextMenu=!0;}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new an(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent);}contextmenu(e){this._delayContextMenu?this._contextMenuEvent=e:this._map.fire(new an(e.type,this._map,e)),this._map.listens(\"contextmenu\")&&e.preventDefault();}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class un{constructor(e,t){this._map=e,this._el=e.getCanvasContainer(),this._container=e.getContainer(),this._clickTolerance=t.clickTolerance||1;}isEnabled(){return !!this._enabled}isActive(){return !!this._active}enable(){this.isEnabled()||(this._enabled=!0);}disable(){this.isEnabled()&&(this._enabled=!1);}mousedown(e,t){this.isEnabled()&&e.shiftKey&&0===e.button&&(_(),this._startPos=this._lastPos=t,this._active=!0);}mousemoveWindow(e,t){if(!this._active)return;const i=t,o=this._startPos,s=this._lastPos;if(!o||!s||s.equals(i)||!this._box&&i.dist(o)<this._clickTolerance)return;this._lastPos=i,this._box||(this._box=l(\"div\",\"mapboxgl-boxzoom\",this._container),this._container.classList.add(\"mapboxgl-crosshair\"),this._fireEvent(\"boxzoomstart\",e));const r=Math.min(o.x,i.x),a=Math.max(o.x,i.x),n=Math.min(o.y,i.y),c=Math.max(o.y,i.y);this._map._requestDomTask((()=>{this._box&&(this._box.style.transform=`translate(${r}px,${n}px)`,this._box.style.width=a-r+\"px\",this._box.style.height=c-n+\"px\");}));}mouseupWindow(t,i){if(!this._active)return;const o=this._startPos,s=i;if(o&&0===t.button){if(this.reset(),m(),o.x!==s.x||o.y!==s.y)return this._map.fire(new e.z(\"boxzoomend\",{originalEvent:t})),{cameraAnimation:e=>e.fitScreenCoordinates(o,s,this._map.getBearing(),{linear:!1})};this._fireEvent(\"boxzoomcancel\",t);}}keydown(e){this._active&&27===e.keyCode&&(this.reset(),this._fireEvent(\"boxzoomcancel\",e));}blur(){this.reset();}reset(){this._active=!1,this._container.classList.remove(\"mapboxgl-crosshair\"),this._box&&(this._box.remove(),this._box=null),p(),delete this._startPos,delete this._lastPos;}_fireEvent(t,i){return this._map.fire(new e.z(t,{originalEvent:i}))}}function dn(e,t){const i={};for(let o=0;o<e.length;o++)i[e[o].identifier]=t[o];return i}class _n{constructor(e){this.reset(),this.numTouches=e.numTouches;}reset(){this.centroid=void 0,this.startTime=0,this.touches={},this.aborted=!1;}touchstart(t,i,o){(this.centroid||o.length>this.numTouches)&&(this.aborted=!0),this.aborted||(0===this.startTime&&(this.startTime=t.timeStamp),o.length===this.numTouches&&(this.centroid=function(t){const i=new e.P(0,0);for(const e of t)i._add(e);return i.div(t.length)}(i),this.touches=dn(o,i)));}touchmove(e,t,i){if(this.aborted||!this.centroid)return;const o=dn(i,t);for(const e in this.touches){const t=o[e];(!t||t.dist(this.touches[e])>30)&&(this.aborted=!0);}}touchend(e,t,i){if((!this.centroid||e.timeStamp-this.startTime>500)&&(this.aborted=!0),0===i.length){const e=!this.aborted&&this.centroid;if(this.reset(),e)return e}}}class pn{constructor(e){this.singleTap=new _n(e),this.numTaps=e.numTaps,this.reset();}reset(){this.lastTime=1/0,this.lastTap=void 0,this.count=0,this.singleTap.reset();}touchstart(e,t,i){this.singleTap.touchstart(e,t,i);}touchmove(e,t,i){this.singleTap.touchmove(e,t,i);}touchend(e,t,i){const o=this.singleTap.touchend(e,t,i);if(o){const t=e.timeStamp-this.lastTime<500,i=!this.lastTap||this.lastTap.dist(o)<30;if(t&&i||this.reset(),this.count++,this.lastTime=e.timeStamp,this.lastTap=o,this.count===this.numTaps)return this.reset(),o}}}class fn{constructor(){this._zoomIn=new pn({numTouches:1,numTaps:2}),this._zoomOut=new pn({numTouches:2,numTaps:1}),this.reset();}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset();}touchstart(e,t,i){this._zoomIn.touchstart(e,t,i),this._zoomOut.touchstart(e,t,i);}touchmove(e,t,i){this._zoomIn.touchmove(e,t,i),this._zoomOut.touchmove(e,t,i);}touchend(e,t,i){const o=this._zoomIn.touchend(e,t,i),s=this._zoomOut.touchend(e,t,i);return o?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:t.getZoom()+1,around:t.unproject(o)},{originalEvent:e})}):s?(this._active=!0,e.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:t=>t.easeTo({duration:300,zoom:t.getZoom()-1,around:t.unproject(s)},{originalEvent:e})}):void 0}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}const mn={0:1,2:2};class gn{constructor(e){this.reset(),this._clickTolerance=e.clickTolerance||1;}blur(){this.reset();}reset(){this._active=!1,this._moved=!1,this._lastPoint=void 0,this._eventButton=void 0;}_correctButton(e,t){return !1}_move(e,t){return {}}mousedown(e,t){if(this._lastPoint)return;const i=y(e);this._correctButton(e,i)&&(this._lastPoint=t,this._eventButton=i);}mousemoveWindow(e,t){const i=this._lastPoint;if(i)if(e.preventDefault(),null!=this._eventButton&&function(e,t){const i=mn[t];return void 0===e.buttons||(e.buttons&i)!==i}(e,this._eventButton))this.reset();else if(this._moved||!(t.dist(i)<this._clickTolerance))return this._moved=!0,this._lastPoint=t,this._move(i,t)}mouseupWindow(e){this._lastPoint&&y(e)===this._eventButton&&(this._moved&&m(),this.reset());}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class vn extends gn{mousedown(e,t){super.mousedown(e,t),this._lastPoint&&(this._active=!0);}_correctButton(e,t){return 0===t&&!e.ctrlKey}_move(e,t){return {around:t,panDelta:t.sub(e)}}}class yn extends gn{_correctButton(e,t){return 0===t&&e.ctrlKey||2===t}_move(e,t){const i=.8*(t.x-e.x);if(i)return this._active=!0,{bearingDelta:i}}contextmenu(e){e.preventDefault();}}class xn extends gn{_correctButton(e,t){return 0===t&&e.ctrlKey||2===t}_move(e,t){const i=-.5*(t.y-e.y);if(i)return this._active=!0,{pitchDelta:i}}contextmenu(e){e.preventDefault();}}class bn{constructor(t,i){this._map=t,this._el=t.getCanvasContainer(),this._minTouches=1,this._clickTolerance=i.clickTolerance||1,this.reset(),e.aP([\"_addTouchPanBlocker\",\"_showTouchPanBlockerAlert\"],this);}reset(){this._active=!1,this._touches={},this._sum=new e.P(0,0);}touchstart(e,t,i){return this._calculateTransform(e,t,i)}touchmove(t,i,o){if(this._active&&!(o.length<this._minTouches)){if(this._map._cooperativeGestures&&!this._map.isMoving()){if(1===o.length&&!e.dz())return void this._showTouchPanBlockerAlert();\"hidden\"!==this._alertContainer.style.visibility&&(this._alertContainer.style.visibility=\"hidden\",clearTimeout(this._alertTimer));}return t.cancelable&&t.preventDefault(),this._calculateTransform(t,i,o)}}touchend(e,t,i){this._calculateTransform(e,t,i),this._active&&i.length<this._minTouches&&this.reset();}touchcancel(){this.reset();}_calculateTransform(t,i,o){o.length>0&&(this._active=!0);const s=dn(o,i),r=new e.P(0,0),a=new e.P(0,0);let n=0;for(const e in s){const t=s[e],i=this._touches[e];i&&(r._add(t),a._add(t.sub(i)),n++,s[e]=t);}if(this._touches=s,n<this._minTouches||!a.mag())return;const l=a.div(n);return this._sum._add(l),this._sum.mag()<this._clickTolerance?void 0:{around:r.div(n),panDelta:l}}enable(){this._enabled=!0,this._map._cooperativeGestures&&(this._addTouchPanBlocker(),this._el.classList.add(\"mapboxgl-touch-pan-blocker-override\",\"mapboxgl-scrollable-page\"));}disable(){this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove(),this._el.classList.remove(\"mapboxgl-touch-pan-blocker-override\",\"mapboxgl-scrollable-page\")),this.reset();}isEnabled(){return !!this._enabled}isActive(){return !!this._active}_addTouchPanBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=l(\"div\",\"mapboxgl-touch-pan-blocker\",this._map._container),this._alertContainer.textContent=this._map._getUIString(\"TouchPanBlocker.Message\"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`);}_showTouchPanBlockerAlert(){this._alertContainer.style.visibility=\"visible\",this._alertContainer.classList.add(\"mapboxgl-touch-pan-blocker-show\"),this._alertContainer.setAttribute(\"role\",\"alert\"),clearTimeout(this._alertTimer),this._alertTimer=window.setTimeout((()=>{this._alertContainer.classList.remove(\"mapboxgl-touch-pan-blocker-show\"),this._alertContainer.removeAttribute(\"role\");}),500);}}class wn{constructor(){this.reset();}reset(){this._active=!1,this._firstTwoTouches=void 0;}_start(e){}_move(e,t,i){return {}}touchstart(e,t,i){this._firstTwoTouches||i.length<2||(this._firstTwoTouches=[i[0].identifier,i[1].identifier],this._start([t[0],t[1]]));}touchmove(e,t,i){const o=this._firstTwoTouches;if(!o)return;e.preventDefault();const[s,r]=o,a=Tn(i,t,s),n=Tn(i,t,r);if(!a||!n)return;const l=this._aroundCenter?null:a.add(n).div(2);return this._move([a,n],l,e)}touchend(e,t,i){if(!this._firstTwoTouches)return;const[o,s]=this._firstTwoTouches,r=Tn(i,t,o),a=Tn(i,t,s);r&&a||(this._active&&m(),this.reset());}touchcancel(){this.reset();}enable(e){this._enabled=!0,this._aroundCenter=!!e&&\"center\"===e.around;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}function Tn(e,t,i){for(let o=0;o<e.length;o++)if(e[o].identifier===i)return t[o]}function En(e,t){return Math.log(e/t)/Math.LN2}class Sn extends wn{reset(){super.reset(),this._distance=0,this._startDistance=0;}_start(e){this._startDistance=this._distance=e[0].dist(e[1]);}_move(e,t){const i=this._distance;if(this._distance=e[0].dist(e[1]),this._active||!(Math.abs(En(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:En(this._distance,i),pinchAround:t}}}function Cn(e,t){return 180*e.angleWith(t)/Math.PI}class In extends wn{reset(){super.reset(),this._minDiameter=0,this._startVector=void 0,this._vector=void 0;}_start(e){this._startVector=this._vector=e[0].sub(e[1]),this._minDiameter=e[0].dist(e[1]);}_move(e,t){const i=this._vector;if(this._vector=e[0].sub(e[1]),i&&(this._active||!this._isBelowThreshold(this._vector)))return this._active=!0,{bearingDelta:Cn(this._vector,i),pinchAround:t}}_isBelowThreshold(e){this._minDiameter=Math.min(this._minDiameter,e.mag());const t=25/(Math.PI*this._minDiameter)*360,i=this._startVector;if(!i)return !1;const o=Cn(e,i);return Math.abs(o)<t}}function Rn(e){return Math.abs(e.y)>Math.abs(e.x)}class Dn extends wn{constructor(e){super(),this._map=e;}reset(){super.reset(),this._valid=void 0,this._firstMove=void 0,this._lastPoints=void 0;}_start(e){this._lastPoints=e,Rn(e[0].sub(e[1]))&&(this._valid=!1);}_move(t,i,o){const s=this._lastPoints;if(!s)return;const r=t[0].sub(s[0]),a=t[1].sub(s[1]);return this._map._cooperativeGestures&&!e.dz()&&o.touches.length<3||(this._valid=this.gestureBeginsVertically(r,a,o.timeStamp),!this._valid)?void 0:(this._lastPoints=t,this._active=!0,{pitchDelta:(r.y+a.y)/2*-.5})}gestureBeginsVertically(e,t,i){if(void 0!==this._valid)return this._valid;const o=e.mag()>=2,s=t.mag()>=2;if(!o&&!s)return;if(!o||!s)return null==this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;const r=e.y>0==t.y>0;return Rn(e)&&Rn(t)&&r}}const Ln={panStep:100,bearingStep:15,pitchStep:10};class An{constructor(){const e=Ln;this._panStep=e.panStep,this._bearingStep=e.bearingStep,this._pitchStep=e.pitchStep,this._rotationDisabled=!1;}blur(){this.reset();}reset(){this._active=!1;}keydown(e){if(e.altKey||e.ctrlKey||e.metaKey)return;let t=0,i=0,o=0,s=0,r=0;switch(e.keyCode){case 61:case 107:case 171:case 187:t=1;break;case 189:case 109:case 173:t=-1;break;case 37:e.shiftKey?i=-1:(e.preventDefault(),s=-1);break;case 39:e.shiftKey?i=1:(e.preventDefault(),s=1);break;case 38:e.shiftKey?o=1:(e.preventDefault(),r=-1);break;case 40:e.shiftKey?o=-1:(e.preventDefault(),r=1);break;default:return}return this._rotationDisabled&&(i=0,o=0),{cameraAnimation:a=>{const n=a.getZoom();a.easeTo({duration:300,easeId:\"keyboardHandler\",easing:zn,zoom:t?Math.round(n)+t*(e.shiftKey?2:1):n,bearing:a.getBearing()+i*this._bearingStep,pitch:a.getPitch()+o*this._pitchStep,offset:[-s*this._panStep,-r*this._panStep],center:a.getCenter()},{originalEvent:e});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0;}enableRotation(){this._rotationDisabled=!1;}}function zn(e){return e*(2-e)}const Pn=4.000244140625,Mn=1/450;class On{constructor(t,i){this._map=t,this._el=t.getCanvasContainer(),this._handler=i,this._delta=0,this._lastDelta=0,this._defaultZoomRate=.01,this._wheelZoomRate=Mn,e.aP([\"_onTimeout\",\"_addScrollZoomBlocker\",\"_showBlockerAlert\"],this);}setZoomRate(e){this._defaultZoomRate=e;}setWheelZoomRate(e){this._wheelZoomRate=e;}isEnabled(){return !!this._enabled}isActive(){return this._active||void 0!==this._finishTimeout}isZooming(){return !!this._zooming}enable(e){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!e&&\"center\"===e.around,this._map._cooperativeGestures&&this._addScrollZoomBlocker());}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()));}wheel(t){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(t.ctrlKey||t.metaKey||this.isZooming()||e.dz()))return void this._showBlockerAlert();\"hidden\"!==this._alertContainer.style.visibility&&(this._alertContainer.style.visibility=\"hidden\",clearTimeout(this._alertTimer));}let i=t.deltaMode===WheelEvent.DOM_DELTA_LINE?40*t.deltaY:t.deltaY;const o=e.q.now(),s=o-(this._lastWheelEventTime||0);this._lastWheelEventTime=o,0!==i&&i%Pn==0?this._type=\"wheel\":0!==i&&Math.abs(i)<4?this._type=\"trackpad\":s>400?(this._type=null,this._lastValue=i,this._timeout=window.setTimeout(this._onTimeout,40,t)):this._type||(this._type=Math.abs(s*i)<200?\"trackpad\":\"wheel\",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),t.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=t,this._delta-=i,this._active||this._start(t)),t.preventDefault();}_onTimeout(e){this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(e);}_start(e){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const t=g(this._el,e);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:t,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame());}renderFrame(){if(!this._frameId)return;if(this._frameId=null,!this.isActive())return;const t=this._map.transform;\"wheel\"===this._type&&t.projection.wrap&&(t._center.lng>=180||t._center.lng<=-180)&&(this._prevEase=null,this._easing=null,this._lastWheelEvent=null,this._lastWheelEventTime=0);const i=()=>t._terrainEnabled()&&this._aroundCoord?t.computeZoomRelativeTo(this._aroundCoord):t.zoom;if(0!==this._delta){const e=\"wheel\"===this._type&&Math.abs(this._delta)>Pn?this._wheelZoomRate:this._defaultZoomRate;let o=2/(1+Math.exp(-Math.abs(this._delta*e)));this._delta<0&&0!==o&&(o=1/o);const s=i(),r=Math.pow(2,s),a=\"number\"==typeof this._targetZoom?t.zoomScale(this._targetZoom):r;this._targetZoom=Math.min(t.maxZoom,Math.max(t.minZoom,t.scaleZoom(a*o))),\"wheel\"===this._type&&(this._startZoom=s,this._easing=this._smoothOutEasing(200)),this._lastDelta=this._delta,this._delta=0;}const o=\"number\"==typeof this._targetZoom?this._targetZoom:i(),s=this._startZoom,r=this._easing;let a,n=!1;if(\"wheel\"===this._type&&s&&r){const t=Math.min((e.q.now()-this._lastWheelEventTime)/200,1),i=r(t);a=e.af(s,o,i),t<1?this._frameId||(this._frameId=!0):n=!0;}else a=o,n=!0;this._active=!0,n&&(this._active=!1,this._finishTimeout=window.setTimeout((()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout;}),200));let l=a-i();return l*this._lastDelta<0&&(l=0),{noInertia:!0,needsRenderFrame:!n,zoomDelta:l,around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(t){let i=e.dA;if(this._prevEase){const t=this._prevEase,o=(e.q.now()-t.start)/t.duration,s=t.easing(o+.01)-t.easing(o),r=.27/Math.sqrt(s*s+1e-4)*.01,a=Math.sqrt(.0729-r*r);i=e.dy(r,a,.25,1);}return this._prevEase={start:e.q.now(),duration:t,easing:i},i}blur(){this.reset();}reset(){this._active=!1;}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=l(\"div\",\"mapboxgl-scroll-zoom-blocker\",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(navigator.userAgent)?this._map._getUIString(\"ScrollZoomBlocker.CmdMessage\"):this._map._getUIString(\"ScrollZoomBlocker.CtrlMessage\"),this._alertContainer.style.fontSize=`${Math.max(10,Math.min(24,Math.floor(.05*this._el.clientWidth)))}px`);}_showBlockerAlert(){this._alertContainer.style.visibility=\"visible\",this._alertContainer.classList.add(\"mapboxgl-scroll-zoom-blocker-show\"),this._alertContainer.setAttribute(\"role\",\"alert\"),clearTimeout(this._alertTimer),this._alertTimer=window.setTimeout((()=>{this._alertContainer.classList.remove(\"mapboxgl-scroll-zoom-blocker-show\"),this._alertContainer.removeAttribute(\"role\");}),200);}}class Fn{constructor(e,t){this._clickZoom=e,this._tapZoom=t;}enable(){this._clickZoom.enable(),this._tapZoom.enable();}disable(){this._clickZoom.disable(),this._tapZoom.disable();}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class kn{constructor(){this.reset();}reset(){this._active=!1;}blur(){this.reset();}dblclick(e,t){return e.preventDefault(),{cameraAnimation:i=>{i.easeTo({duration:300,zoom:i.getZoom()+(e.shiftKey?-1:1),around:i.unproject(t)},{originalEvent:e});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Bn{constructor(){this._tap=new pn({numTouches:1,numTaps:1}),this.reset();}reset(){this._active=!1,this._swipePoint=void 0,this._swipeTouch=0,this._tapTime=0,this._tap.reset();}touchstart(e,t,i){this._swipePoint||(this._tapTime&&e.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?i.length>0&&(this._swipePoint=t[0],this._swipeTouch=i[0].identifier):this._tap.touchstart(e,t,i));}touchmove(e,t,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;const o=t[0],s=o.y-this._swipePoint.y;return this._swipePoint=o,e.preventDefault(),this._active=!0,{zoomDelta:s/128}}}else this._tap.touchmove(e,t,i);}touchend(e,t,i){this._tapTime?this._swipePoint&&0===i.length&&this.reset():this._tap.touchend(e,t,i)&&(this._tapTime=e.timeStamp);}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Nn{constructor(e,t,i){this._el=e,this._mousePan=t,this._touchPan=i;}enable(e){this._inertiaOptions=e||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add(\"mapboxgl-touch-drag-pan\");}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove(\"mapboxgl-touch-drag-pan\");}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Un{constructor(e,t,i){this._pitchWithRotate=e.pitchWithRotate,this._mouseRotate=t,this._mousePitch=i;}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable();}disable(){this._mouseRotate.disable(),this._mousePitch.disable();}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class Gn{constructor(e,t,i,o){this._el=e,this._touchZoom=t,this._touchRotate=i,this._tapDragZoom=o,this._rotationDisabled=!1,this._enabled=!0;}enable(e){this._touchZoom.enable(e),this._rotationDisabled||this._touchRotate.enable(e),this._tapDragZoom.enable(),this._el.classList.add(\"mapboxgl-touch-zoom-rotate\");}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove(\"mapboxgl-touch-zoom-rotate\");}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable();}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable();}}const jn=e=>e.zoom||e.drag||e.pitch||e.rotate;class Vn extends e.z{}class qn{constructor(){this.constants=[1,1,.01],this.radius=0;}setup(t,i){const o=e.ab.vec3.sub([],i,t);this.radius=e.ab.vec3.length(o[2]<0?e.ab.vec3.div([],o,this.constants):[o[0],o[1],0]);}projectRay(t){e.ab.vec3.div(t,t,this.constants),e.ab.vec3.normalize(t,t),e.ab.vec3.mul(t,t,this.constants);const i=e.ab.vec3.scale([],t,this.radius);if(i[2]>0){const t=e.ab.vec3.scale([],[0,0,1],e.ab.vec3.dot(i,[0,0,1])),o=e.ab.vec3.scale([],e.ab.vec3.normalize([],[i[0],i[1],0]),this.radius),s=e.ab.vec3.add([],i,e.ab.vec3.scale([],e.ab.vec3.sub([],e.ab.vec3.add([],o,t),i),2));i[0]=s[0],i[1]=s[1];}return i}}function Hn(e){return e.panDelta&&e.panDelta.mag()||e.zoomDelta||e.bearingDelta||e.pitchDelta}class Zn{constructor(t,i){this._map=t,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new on(t),this._bearingSnap=i.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new qn,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(i),e.aP([\"handleEvent\",\"handleWindowEvent\"],this);const o=this._el;this._listeners=[[o,\"touchstart\",{passive:!0}],[o,\"touchmove\",{passive:!1}],[o,\"touchend\",void 0],[o,\"touchcancel\",void 0],[o,\"mousedown\",void 0],[o,\"mousemove\",void 0],[o,\"mouseup\",void 0],[document,\"mousemove\",{capture:!0}],[document,\"mouseup\",void 0],[o,\"mouseover\",void 0],[o,\"mouseout\",void 0],[o,\"dblclick\",void 0],[o,\"click\",void 0],[o,\"keydown\",{capture:!1}],[o,\"keyup\",void 0],[o,\"wheel\",{passive:!1}],[o,\"contextmenu\",void 0],[window,\"blur\",void 0]];for(const[e,t,i]of this._listeners){const o=e===document?this.handleWindowEvent:this.handleEvent;e.addEventListener(t,o,i);}}destroy(){for(const[e,t,i]of this._listeners){const o=e===document?this.handleWindowEvent:this.handleEvent;e.removeEventListener(t,o,i);}}_addDefaultHandlers(e){const t=this._map,i=t.getCanvasContainer();this._add(\"mapEvent\",new cn(t,e));const o=t.boxZoom=new un(t,e);this._add(\"boxZoom\",o);const s=new fn,r=new kn;t.doubleClickZoom=new Fn(r,s),this._add(\"tapZoom\",s),this._add(\"clickZoom\",r);const a=new Bn;this._add(\"tapDragZoom\",a);const n=t.touchPitch=new Dn(t);this._add(\"touchPitch\",n);const l=new yn(e),c=new xn(e);t.dragRotate=new Un(e,l,c),this._add(\"mouseRotate\",l,[\"mousePitch\"]),this._add(\"mousePitch\",c,[\"mouseRotate\"]);const h=new vn(e),u=new bn(t,e);t.dragPan=new Nn(i,h,u),this._add(\"mousePan\",h),this._add(\"touchPan\",u,[\"touchZoom\",\"touchRotate\"]);const d=new In,_=new Sn;t.touchZoomRotate=new Gn(i,_,d,a),this._add(\"touchRotate\",d,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",_,[\"touchPan\",\"touchRotate\"]),this._add(\"blockableMapEvent\",new hn(t));const p=t.scrollZoom=new On(t,this);this._add(\"scrollZoom\",p,[\"mousePan\"]);const f=t.keyboard=new An;this._add(\"keyboard\",f);for(const i of [\"boxZoom\",\"doubleClickZoom\",\"tapDragZoom\",\"touchPitch\",\"dragRotate\",\"dragPan\",\"touchZoomRotate\",\"scrollZoom\",\"keyboard\"])e.interactive&&e[i]&&t[i].enable(e[i]);}_add(e,t,i){this._handlers.push({handlerName:e,handler:t,allowed:i}),this._handlersById[e]=t;}stop(e){if(!this._updatingCamera){for(const{handler:e}of this._handlers)e.reset();this._inertia.clear(),this._fireEvents({},{},e),this._changes=[],this._originalZoom=void 0;}}isActive(){for(const{handler:e}of this._handlers)if(e.isActive())return !0;return !1}isZooming(){return !!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return !!this._eventsInProgress.rotate}isMoving(){return !!jn(this._eventsInProgress)||this.isZooming()}_isDragging(){return !!this._eventsInProgress.drag}_blockedByActive(e,t,i){for(const o in e)if(o!==i&&(!t||t.indexOf(o)<0))return !0;return !1}handleWindowEvent(e){this.handleEvent(e,`${e.type}Window`);}_getMapTouches(e){const t=[];for(const i of e)this._el.contains(i.target)&&t.push(i);return t}handleEvent(e,t){this._updatingCamera=!0;const i=\"renderFrame\"===e.type,o=i?void 0:e,s={needsRenderFrame:!1},r={},a={},n=e.touches?this._getMapTouches(e.touches):void 0,l=n?v(this._el,n):i?void 0:g(this._el,e);for(const{handlerName:i,handler:c,allowed:h}of this._handlers){if(!c.isEnabled())continue;let u;this._blockedByActive(a,h,i)?c.reset():c[t||e.type]&&(u=c[t||e.type](e,l,n),this.mergeHandlerResult(s,r,u,i,o),u&&u.needsRenderFrame&&this._triggerRenderFrame()),(u||c.isActive())&&(a[i]=c);}const c={};for(const e in this._previousActiveHandlers)a[e]||(c[e]=o);this._previousActiveHandlers=a,(Object.keys(c).length||Hn(s))&&(this._changes.push([s,r,c]),this._triggerRenderFrame()),(Object.keys(a).length||Hn(s))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:h}=s;h&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],h(this._map));}mergeHandlerResult(t,i,o,s,r){if(!o)return;e.l(t,o);const a={handlerName:s,originalEvent:o.originalEvent||r};void 0!==o.zoomDelta&&(i.zoom=a),void 0!==o.panDelta&&(i.drag=a),void 0!==o.pitchDelta&&(i.pitch=a),void 0!==o.bearingDelta&&(i.rotate=a);}_applyChanges(){const t={},i={},o={};for(const[s,r,a]of this._changes)s.panDelta&&(t.panDelta=(t.panDelta||new e.P(0,0))._add(s.panDelta)),s.zoomDelta&&(t.zoomDelta=(t.zoomDelta||0)+s.zoomDelta),s.bearingDelta&&(t.bearingDelta=(t.bearingDelta||0)+s.bearingDelta),s.pitchDelta&&(t.pitchDelta=(t.pitchDelta||0)+s.pitchDelta),void 0!==s.around&&(t.around=s.around),void 0!==s.aroundCoord&&(t.aroundCoord=s.aroundCoord),void 0!==s.pinchAround&&(t.pinchAround=s.pinchAround),s.noInertia&&(t.noInertia=s.noInertia),e.l(i,r),e.l(o,a);this._updateMapTransform(t,i,o),this._changes=[];}_updateMapTransform(t,i,o){const s=this._map,r=s.transform,a=e=>[e.x,e.y,e.z];if((e=>{const t=this._eventsInProgress.drag;return t&&!this._handlersById[t.handlerName].isActive()})()&&!Hn(t)){const e=r.zoom;r.cameraElevationReference=\"sea\",null!=this._originalZoom&&r._orthographicProjectionAtLowPitch&&\"globe\"!==r.projection.name&&0===r.pitch?(r.cameraElevationReference=\"ground\",r.zoom=this._originalZoom):(r.recenterOnTerrain(),r.cameraElevationReference=\"ground\"),e!==r.zoom&&this._map._update(!0);}if(r._isCameraConstrained&&s._stop(!0),!Hn(t))return void this._fireEvents(i,o,!0);let{panDelta:n,zoomDelta:l,bearingDelta:c,pitchDelta:h,around:u,aroundCoord:d,pinchAround:_}=t;r._isCameraConstrained&&(l>0&&(l=0),r._isCameraConstrained=!1),void 0!==_&&(u=_),(l||(e=>i[e]&&!this._eventsInProgress[e])(\"drag\"))&&u&&(this._dragOrigin=a(r.pointCoordinate3D(u)),this._originalZoom=r.zoom,this._trackingEllipsoid.setup(r._camera.position,this._dragOrigin)),r.cameraElevationReference=\"sea\",s._stop(!0),u=u||s.transform.centerPoint,c&&(r.bearing+=c),h&&(r.pitch+=h),r._updateCameraState();const p=[0,0,0];if(n)if(\"mercator\"===r.projection.name){const e=this._trackingEllipsoid.projectRay(r.screenPointToMercatorRay(u).dir),t=this._trackingEllipsoid.projectRay(r.screenPointToMercatorRay(u.sub(n)).dir);p[0]=t[0]-e[0],p[1]=t[1]-e[1];}else {const t=r.pointCoordinate(u);if(\"globe\"===r.projection.name){n=n.rotate(-r.angle);const i=r._pixelsPerMercatorPixel/r.worldSize;p[0]=-n.x*e.dB(e.aS(t.y))*i,p[1]=-n.y*e.dB(r.center.lat)*i;}else {const e=r.pointCoordinate(u.sub(n));t&&e&&(p[0]=e.x-t.x,p[1]=e.y-t.y);}}const f=r.zoom,m=[0,0,0];if(l){const t=a(d||r.pointCoordinate3D(u)),i={dir:e.ab.vec3.normalize([],e.ab.vec3.sub([],t,r._camera.position))};if(i.dir[2]<0){const o=r.zoomDeltaToMovement(t,l);e.ab.vec3.scale(m,i.dir,o);}}const g=e.ab.vec3.add(p,p,m);r._translateCameraConstrained(g),l&&Math.abs(r.zoom-f)>1e-4&&r.recenterOnTerrain(),r.cameraElevationReference=\"ground\",this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(i,o,!0);}_fireEvents(t,i,o){const s=jn(this._eventsInProgress),r=jn(t),a={};for(const e in t){const{originalEvent:i}=t[e];this._eventsInProgress[e]||(a[`${e}start`]=i),this._eventsInProgress[e]=t[e];}!s&&r&&this._fireEvent(\"movestart\",r.originalEvent);for(const e in a)this._fireEvent(e,a[e]);r&&this._fireEvent(\"move\",r.originalEvent);for(const e in t){const{originalEvent:i}=t[e];this._fireEvent(e,i);}const n={};let l;for(const e in this._eventsInProgress){const{handlerName:t,originalEvent:o}=this._eventsInProgress[e];this._handlersById[t].isActive()||(delete this._eventsInProgress[e],l=i[t]||o,n[`${e}end`]=l);}for(const e in n)this._fireEvent(e,n[e]);const c=jn(this._eventsInProgress);if(o&&(s||r)&&!c){this._updatingCamera=!0;const t=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),i=e=>0!==e&&-this._bearingSnap<e&&e<this._bearingSnap;t?(i(t.bearing||this._map.getBearing())&&(t.bearing=0),this._map.easeTo(t,{originalEvent:l})):(this._map.fire(new e.z(\"moveend\",{originalEvent:l})),i(this._map.getBearing())&&this._map.resetNorth()),this._updatingCamera=!1;}}_fireEvent(t,i){this._map.fire(new e.z(t,i?{originalEvent:i}:{}));}_requestFrame(){return this._map.triggerRepaint(),this._map._renderTaskQueue.add((e=>{this._frameId=void 0,this.handleEvent(new Vn(\"renderFrame\",{timeStamp:e})),this._applyChanges();}))}_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame());}}const Wn=\"map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.\";class $n extends e.E{constructor(t,i){super(),this._moving=!1,this._zooming=!1,this.transform=t,this._bearingSnap=i.bearingSnap,this._respectPrefersReducedMotion=!1!==i.respectPrefersReducedMotion,e.aP([\"_renderFrameCallback\"],this);}getCenter(){return new e.bO(this.transform.center.lng,this.transform.center.lat)}setCenter(e,t){return this.jumpTo({center:e},t)}panBy(t,i,o){return t=e.P.convert(t).mult(-1),this.panTo(this.transform.center,e.l({offset:t},i),o)}panTo(t,i,o){return this.easeTo(e.l({center:t},i),o)}getZoom(){return this.transform.zoom}setZoom(e,t){return this.jumpTo({zoom:e},t),this}zoomTo(t,i,o){return this.easeTo(e.l({zoom:t},i),o)}zoomIn(e,t){return this.zoomTo(this.getZoom()+1,e,t),this}zoomOut(e,t){return this.zoomTo(this.getZoom()-1,e,t),this}getBearing(){return this.transform.bearing}setBearing(e,t){return this.jumpTo({bearing:e},t),this}getPadding(){return this.transform.padding}setPadding(e,t){return this.jumpTo({padding:e},t),this}rotateTo(t,i,o){return this.easeTo(e.l({bearing:t},i),o)}resetNorth(t,i){return this.rotateTo(0,e.l({duration:1e3},t),i),this}resetNorthPitch(t,i){return this.easeTo(e.l({bearing:0,pitch:0,duration:1e3},t),i),this}snapToNorth(e,t){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(e,t):this}getPitch(){return this.transform.pitch}setPitch(e,t){return this.jumpTo({pitch:e},t),this}cameraForBounds(t,i){t=e.az.convert(t);const o=i&&i.bearing||0,s=i&&i.pitch||0,r=t.getNorthWest(),a=t.getSouthEast();return this._cameraForBounds(this.transform,r,a,o,s,i)}_extendPadding(t){const i={top:0,right:0,bottom:0,left:0};return null==t?e.l({},i,this.transform.padding):\"number\"==typeof t?{top:t,bottom:t,right:t,left:t}:e.l({},i,t)}_extendCameraOptions(t){return (t=e.l({offset:[0,0],maxZoom:this.transform.maxZoom},t)).padding=this._extendPadding(t.padding),t}_minimumAABBFrustumDistance(e,t){const i=t.max[0]-t.min[0],o=t.max[1]-t.min[1];return i/o>e.aspect?i/(2*Math.tan(.5*e.fovX)*e.aspect):o/(2*Math.tan(.5*e.fovY)*e.aspect)}_cameraForBoundsOnGlobe(t,i,o,s,r,a){const n=t.clone(),l=this._extendCameraOptions(a);n.bearing=s,n.pitch=r;const c=e.bO.convert(i),h=e.bO.convert(o),u=.5*(c.lat+h.lat),d=.5*(c.lng+h.lng),_=e.dC(u,d),p=e.ab.vec3.normalize([],_),f=e.ab.vec3.normalize([],e.ab.vec3.cross([],p,[0,1,0])),m=e.ab.vec3.cross([],f,p),g=[f[0],f[1],f[2],0,m[0],m[1],m[2],0,p[0],p[1],p[2],0,0,0,0,1],v=[_,e.dC(c.lat,c.lng),e.dC(h.lat,c.lng),e.dC(h.lat,h.lng),e.dC(c.lat,h.lng),e.dC(u,c.lng),e.dC(u,h.lng),e.dC(c.lat,d),e.dC(h.lat,d)];let y=e.cd.fromPoints(v.map((t=>[e.ab.vec3.dot(f,t),e.ab.vec3.dot(m,t),e.ab.vec3.dot(p,t)])));const x=e.ab.vec3.transformMat4([],y.center,g);0===e.ab.vec3.squaredLength(x)&&e.ab.vec3.set(x,0,0,1),e.ab.vec3.normalize(x,x),e.ab.vec3.scale(x,x,e.ax),n.center=e.dD(x);const b=n.getWorldToCameraMatrix(),w=e.ab.mat4.invert(new Float64Array(16),b);y=e.cd.applyTransform(y,e.ab.mat4.multiply([],b,g));const T=this._extendAABB(y,n,l,s);if(!T)return void e.w(\"Map cannot fit within canvas with the given bounds, padding, and/or offset.\");y=T,e.ab.vec3.transformMat4(x,x,b);const E=.5*(y.max[2]-y.min[2]),S=this._minimumAABBFrustumDistance(n,y),C=e.ab.vec3.scale([],[0,0,1],E),I=e.ab.vec3.add(C,x,C),R=S+(0===n.pitch?0:e.ab.vec3.distance(x,I)),D=n.globeCenterInViewSpace,L=e.ab.vec3.sub([],x,[D[0],D[1],D[2]]);e.ab.vec3.normalize(L,L),e.ab.vec3.scale(L,L,R);const A=e.ab.vec3.add([],x,L);e.ab.vec3.transformMat4(A,A,w);const z=e.ds/e.ax,P=e.ab.vec3.length(A),M=e.bH(Math.max(P*z-e.ds,Number.EPSILON),0),O=Math.min(n.zoomFromMercatorZAdjusted(M),l.maxZoom);return O>.5*(e.c6+e.bY)?(n.setProjection({name:\"mercator\"}),n.zoom=O,this._cameraForBounds(n,i,o,s,r,a)):{center:n.center,zoom:O,bearing:s,pitch:r}}_extendAABB(t,i,o,s){const r=.5*((o.padding.left||0)+(o.padding.right||0)),a=.5*((o.padding.top||0)+(o.padding.bottom||0)),n=a,l=r,c=r,h=a,u=i.width-(l+c),d=i.height-(n+h),_=e.ab.vec3.sub([],t.max,t.min),p=Math.min(u/_[0],d/_[1]),f=Math.min(i.scaleZoom(i.scale*p),o.maxZoom);if(isNaN(f))return null;const m=i.scale/i.zoomScale(f),g=new e.cd([t.min[0]-l*m,t.min[1]-h*m,t.min[2]],[t.max[0]+c*m,t.max[1]+n*m,t.max[2]]),v=(\"number\"==typeof o.offset.x&&\"number\"==typeof o.offset.y?new e.P(o.offset.x,o.offset.y):e.P.convert(o.offset)).rotate(-e.ai(s));return g.center[0]-=v.x*m,g.center[1]+=v.y*m,g}queryTerrainElevation(t,i){const o=this.transform.elevation;return o?(i=e.l({},{exaggerated:!0},i),o.getAtPoint(e.aa.fromLngLat(t),null,i.exaggerated)):null}_cameraForBounds(t,i,o,s,r,a){if(\"globe\"===t.projection.name)return this._cameraForBoundsOnGlobe(t,i,o,s,r,a);const n=t.clone(),l=this._extendCameraOptions(a);n.bearing=s,n.pitch=r;const c=e.bO.convert(i),h=e.bO.convert(o),u=new e.bO(c.lng,h.lat),d=new e.bO(h.lng,c.lat),_=n.project(c),p=n.project(h),f=this.queryTerrainElevation(c),m=this.queryTerrainElevation(h),g=this.queryTerrainElevation(u),v=this.queryTerrainElevation(d),y=[[_.x,_.y,Math.min(f||0,m||0,g||0,v||0)],[p.x,p.y,Math.max(f||0,m||0,g||0,v||0)]];let x=e.cd.fromPoints(y);const b=n.getWorldToCameraMatrix(),w=e.ab.mat4.invert(new Float64Array(16),b);x=e.cd.applyTransform(x,b);const T=this._extendAABB(x,n,l,s);if(!T)return void e.w(\"Map cannot fit within canvas with the given bounds, padding, and/or offset.\");x=T;const E=.5*e.ab.vec3.sub([],x.max,x.min)[2],S=this._minimumAABBFrustumDistance(n,x),C=[0,0,1,0];e.ab.vec4.transformMat4(C,C,b),e.ab.vec4.normalize(C,C);const I=e.ab.vec3.scale([],C,S+E),R=e.ab.vec3.add([],x.center,I);e.ab.vec3.transformMat4(x.center,x.center,w),e.ab.vec3.transformMat4(R,R,w);const D=n.unproject(new e.P(x.center[0],x.center[1])),L=e.dE(n.projection,D),A=Math.pow(2,L),z=Math.min(n._zoomFromMercatorZ(R[2]*n.pixelsPerMeter*A/n.worldSize),l.maxZoom);return n.mercatorFromTransition&&z<.5*(e.c6+e.bY)?(n.setProjection({name:\"globe\"}),n.zoom=z,this._cameraForBounds(n,i,o,s,r,a)):{center:D,zoom:z,bearing:s,pitch:r}}fitBounds(e,t,i){const o=this.cameraForBounds(e,t);return this._fitInternal(o,t,i)}fitScreenCoordinates(t,i,o,s,r){const a=e.P.convert(t),n=e.P.convert(i),l=new e.P(Math.min(a.x,n.x),Math.min(a.y,n.y)),c=new e.P(Math.max(a.x,n.x),Math.max(a.y,n.y));if(\"mercator\"===this.transform.projection.name&&this.transform.anyCornerOffEdge(a,n))return this;const h=this.transform.pointLocation3D(l),u=this.transform.pointLocation3D(c),d=this.transform.pointLocation3D(new e.P(l.x,c.y)),_=this.transform.pointLocation3D(new e.P(c.x,l.y)),p=[Math.min(h.lng,u.lng,d.lng,_.lng),Math.min(h.lat,u.lat,d.lat,_.lat)],f=[Math.max(h.lng,u.lng,d.lng,_.lng),Math.max(h.lat,u.lat,d.lat,_.lat)],m=s&&s.pitch?s.pitch:this.getPitch(),g=this._cameraForBounds(this.transform,p,f,o,m,s);return this._fitInternal(g,s,r)}_fitInternal(t,i,o){return t?(i=e.l(t,i)).linear?this.easeTo(i,o):this.flyTo(i,o):this}jumpTo(t,i){this.stop();const o=t.preloadOnly?this.transform.clone():this.transform;let s=!1,r=!1,a=!1;\"zoom\"in t&&o.zoom!==+t.zoom&&(s=!0,o.zoom=+t.zoom),void 0!==t.center&&(o.center=e.bO.convert(t.center)),\"bearing\"in t&&o.bearing!==+t.bearing&&(r=!0,o.bearing=+t.bearing),\"pitch\"in t&&o.pitch!==+t.pitch&&(a=!0,o.pitch=+t.pitch);const n=\"number\"==typeof t.padding?this._extendPadding(t.padding):t.padding;if(null!=t.padding&&!o.isPaddingEqual(n))if(!1===t.retainPadding){const e=o.clone();e.padding=n,o.setLocationAtPoint(o.center,e.centerPoint);}else o.padding=n;return t.preloadOnly?(this._preloadTiles(o),this):(this.fire(new e.z(\"movestart\",i)).fire(new e.z(\"move\",i)),s&&this.fire(new e.z(\"zoomstart\",i)).fire(new e.z(\"zoom\",i)).fire(new e.z(\"zoomend\",i)),r&&this.fire(new e.z(\"rotatestart\",i)).fire(new e.z(\"rotate\",i)).fire(new e.z(\"rotateend\",i)),a&&this.fire(new e.z(\"pitchstart\",i)).fire(new e.z(\"pitch\",i)).fire(new e.z(\"pitchend\",i)),this.fire(new e.z(\"moveend\",i)))}getFreeCameraOptions(){return this.transform.projection.supportsFreeCamera||e.w(Wn),this.transform.getFreeCameraOptions()}setFreeCameraOptions(t,i){const o=this.transform;if(!o.projection.supportsFreeCamera)return e.w(Wn),this;this.stop();const s=o.zoom,r=o.pitch,a=o.bearing;o.setFreeCameraOptions(t);const n=s!==o.zoom,l=r!==o.pitch,c=a!==o.bearing;return this.fire(new e.z(\"movestart\",i)).fire(new e.z(\"move\",i)),n&&this.fire(new e.z(\"zoomstart\",i)).fire(new e.z(\"zoom\",i)).fire(new e.z(\"zoomend\",i)),c&&this.fire(new e.z(\"rotatestart\",i)).fire(new e.z(\"rotate\",i)).fire(new e.z(\"rotateend\",i)),l&&this.fire(new e.z(\"pitchstart\",i)).fire(new e.z(\"pitch\",i)).fire(new e.z(\"pitchend\",i)),this.fire(new e.z(\"moveend\",i)),this}easeTo(t,i){this._stop(!1,t.easeId),(!1===(t=e.l({offset:[0,0],duration:500,easing:e.dA},t)).animate||this._prefersReducedMotion(t))&&(t.duration=0);const o=this.transform,s=this.getZoom(),r=this.getBearing(),a=this.getPitch(),n=this.getPadding(),l=\"zoom\"in t?+t.zoom:s,c=\"bearing\"in t?this._normalizeBearing(t.bearing,r):r,h=\"pitch\"in t?+t.pitch:a,u=this._extendPadding(t.padding),d=e.P.convert(t.offset);let _,p,f;if(\"globe\"===o.projection.name){const i=e.aa.fromLngLat(o.center),s=d.rotate(-o.angle);i.x+=s.x/o.worldSize,i.y+=s.y/o.worldSize;const r=i.toLngLat(),a=e.bO.convert(t.center||r);this._normalizeCenter(a),_=o.centerPoint.add(s),p=new e.P(i.x,i.y).mult(o.worldSize),f=new e.P(e.at(a.lng),e.aA(a.lat)).mult(o.worldSize).sub(p);}else {_=o.centerPoint.add(d);const i=o.pointLocation(_),s=e.bO.convert(t.center||i);this._normalizeCenter(s),p=o.project(i),f=o.project(s).sub(p);}const m=o.zoomScale(l-s);let g,v;t.around&&(g=e.bO.convert(t.around),v=o.locationPoint(g));const y=this._zooming||l!==s,x=this._rotating||r!==c,b=this._pitching||h!==a,w=!o.isPaddingEqual(u),T=!1===t.retainPadding?o.clone():o,E=o=>E=>{if(y&&(o.zoom=e.af(s,l,E)),x&&(o.bearing=e.af(r,c,E)),b&&(o.pitch=e.af(a,h,E)),w&&(T.interpolatePadding(n,u,E),_=T.centerPoint.add(d)),g)o.setLocationAtPoint(g,v);else {const e=o.zoomScale(o.zoom-s),t=l>s?Math.min(2,m):Math.max(.5,m),i=Math.pow(t,1-E),r=o.unproject(p.add(f.mult(E*i)).mult(e));o.setLocationAtPoint(o.renderWorldCopies?r.wrap():r,_);}return t.preloadOnly||this._fireMoveEvents(i),o};if(t.preloadOnly){const e=this._emulate(E,t.duration,o);return this._preloadTiles(e),this}const S={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=y,this._rotating=x,this._pitching=b,this._padding=w,this._easeId=t.easeId,this._prepareEase(i,t.noMoveStart,S),this._ease(E(o),(e=>{\"sea\"===o.cameraElevationReference&&o.recenterOnTerrain(),this._afterEase(i,e);}),t),this}_prepareEase(t,i,o={}){this._moving=!0,this.transform.cameraElevationReference=\"sea\",this.transform._orthographicProjectionAtLowPitch&&0===this.transform.pitch&&\"globe\"!==this.transform.projection.name&&(this.transform.cameraElevationReference=\"ground\"),i||o.moving||this.fire(new e.z(\"movestart\",t)),this._zooming&&!o.zooming&&this.fire(new e.z(\"zoomstart\",t)),this._rotating&&!o.rotating&&this.fire(new e.z(\"rotatestart\",t)),this._pitching&&!o.pitching&&this.fire(new e.z(\"pitchstart\",t));}_fireMoveEvents(t){this.fire(new e.z(\"move\",t)),this._zooming&&this.fire(new e.z(\"zoom\",t)),this._rotating&&this.fire(new e.z(\"rotate\",t)),this._pitching&&this.fire(new e.z(\"pitch\",t));}_afterEase(t,i){if(this._easeId&&i&&this._easeId===i)return;this._easeId=void 0,this.transform.cameraElevationReference=\"ground\";const o=this._zooming,s=this._rotating,r=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,o&&this.fire(new e.z(\"zoomend\",t)),s&&this.fire(new e.z(\"rotateend\",t)),r&&this.fire(new e.z(\"pitchend\",t)),this.fire(new e.z(\"moveend\",t));}flyTo(t,i){if(this._prefersReducedMotion(t)){const o=e.ay(t,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\",\"padding\",\"retainPadding\"]);return this.jumpTo(o,i)}this.stop(),t=e.l({offset:[0,0],speed:1.2,curve:1.42,easing:e.dA},t);const o=this.transform,s=this.getZoom(),r=this.getBearing(),a=this.getPitch(),n=this.getPadding(),l=\"zoom\"in t?e.aw(+t.zoom,o.minZoom,o.maxZoom):s,c=\"bearing\"in t?this._normalizeBearing(t.bearing,r):r,h=\"pitch\"in t?+t.pitch:a,u=this._extendPadding(t.padding),d=o.zoomScale(l-s),_=e.P.convert(t.offset);let p=o.centerPoint.add(_);const f=o.pointLocation(p),m=e.bO.convert(t.center||f);this._normalizeCenter(m);const g=o.project(f),v=o.project(m).sub(g);let y=t.curve;const x=Math.max(o.width,o.height),b=x/d,w=v.mag();if(\"minZoom\"in t){const i=e.aw(Math.min(t.minZoom,s,l),o.minZoom,o.maxZoom),r=x/o.zoomScale(i-s);y=Math.sqrt(r/w*2);}const T=y*y;function E(e){const t=(b*b-x*x+(e?-1:1)*T*T*w*w)/(2*(e?b:x)*T*w);return Math.log(Math.sqrt(t*t+1)-t)}function S(e){return (Math.exp(e)-Math.exp(-e))/2}function C(e){return (Math.exp(e)+Math.exp(-e))/2}const I=E(0);let R=function(e){return C(I)/C(I+y*e)},D=function(e){return x*((C(I)*(S(t=I+y*e)/C(t))-S(I))/T)/w;var t;},L=(E(1)-I)/y;if(Math.abs(w)<1e-6||!isFinite(L)){if(Math.abs(x-b)<1e-6)return this.easeTo(t,i);const e=b<x?-1:1;L=Math.abs(Math.log(b/x))/y,D=function(){return 0},R=function(t){return Math.exp(e*y*t)};}t.duration=\"duration\"in t?+t.duration:1e3*L/(\"screenSpeed\"in t?+t.screenSpeed/y:+t.speed),t.maxDuration&&t.duration>t.maxDuration&&(t.duration=0);const A=r!==c,z=h!==a,P=!o.isPaddingEqual(u),M=!1===t.retainPadding?o.clone():o,O=o=>d=>{const f=d*L,y=1/R(f);o.zoom=1===d?l:s+o.scaleZoom(y),A&&(o.bearing=e.af(r,c,d)),z&&(o.pitch=e.af(a,h,d)),P&&(M.interpolatePadding(n,u,d),p=M.centerPoint.add(_));const x=1===d?m:o.unproject(g.add(v.mult(D(f))).mult(y));return o.setLocationAtPoint(o.renderWorldCopies?x.wrap():x,p),o._updateCameraOnTerrain(),t.preloadOnly||this._fireMoveEvents(i),o};if(t.preloadOnly){const e=this._emulate(O,t.duration,o);return this._preloadTiles(e),this}return this._zooming=!0,this._rotating=A,this._pitching=z,this._padding=P,this._prepareEase(i,!1),this._ease(O(o),(()=>this._afterEase(i)),t),this}isEasing(){return !!this._easeFrameId}stop(){return this._stop()}_requestRenderFrame(e){}_cancelRenderFrame(e){}_stop(e,t){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),this._easeFrameId=void 0,this._onEaseFrame=void 0),this._onEaseEnd){const e=this._onEaseEnd;this._onEaseEnd=void 0,e.call(this,t);}if(!e){const e=this.handlers;e&&e.stop(!1);}return this}_ease(t,i,o){!1===o.animate||0===o.duration?(t(1),i()):(this._easeStart=e.q.now(),this._easeOptions=o,this._onEaseFrame=t,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));}_renderFrameCallback(){const t=Math.min((e.q.now()-this._easeStart)/this._easeOptions.duration,1),i=this._onEaseFrame;i&&i(this._easeOptions.easing(t)),t<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop();}_normalizeBearing(t,i){t=e.bF(t,-180,180);const o=Math.abs(t-i);return Math.abs(t-360-i)<o&&(t-=360),Math.abs(t+360-i)<o&&(t+=360),t}_normalizeCenter(e){const t=this.transform;if(t.maxBounds)return;if(\"globe\"!==t.projection.name&&!t.renderWorldCopies)return;const i=e.lng-t.center.lng;e.lng+=i>180?-360:i<-180?360:0;}_prefersReducedMotion(t){return this._respectPrefersReducedMotion&&e.q.prefersReducedMotion&&!(t&&t.essential)}_emulate(e,t,i){const o=Math.ceil(15*t/1e3),s=[],r=e(i.clone());for(let e=0;e<=o;e++){const t=r(e/o);s.push(t.clone());}return s}_preloadTiles(e,t){}}class Xn{constructor(t={}){this.options=t,e.aP([\"_toggleAttribution\",\"_updateEditLink\",\"_updateData\",\"_updateCompact\"],this);}getDefaultPosition(){return \"bottom-right\"}onAdd(e){const t=this.options&&this.options.compact,i=e._getUIString(\"AttributionControl.ToggleAttribution\");this._map=e,this._container=l(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-attrib\"),this._compactButton=l(\"button\",\"mapboxgl-ctrl-attrib-button\",this._container),this._compactButton.type=\"button\",this._compactButton.addEventListener(\"click\",this._toggleAttribution),this._compactButton.setAttribute(\"aria-label\",i);const o=l(\"span\",\"mapboxgl-ctrl-icon\",this._compactButton);return o.setAttribute(\"aria-hidden\",\"true\"),o.setAttribute(\"title\",i),this._innerContainer=l(\"div\",\"mapboxgl-ctrl-attrib-inner\",this._container),t&&this._container.classList.add(\"mapboxgl-compact\"),this._updateAttributions(),this._updateEditLink(),this._map.on(\"styledata\",this._updateData),this._map.on(\"sourcedata\",this._updateData),this._map.on(\"moveend\",this._updateEditLink),void 0===t&&(this._map.on(\"resize\",this._updateCompact),this._updateCompact()),this._container}onRemove(){this._container.remove(),this._map.off(\"styledata\",this._updateData),this._map.off(\"sourcedata\",this._updateData),this._map.off(\"moveend\",this._updateEditLink),this._map.off(\"resize\",this._updateCompact),this._map=void 0,this._attribHTML=void 0;}_toggleAttribution(){this._container.classList.contains(\"mapboxgl-compact-show\")?(this._container.classList.remove(\"mapboxgl-compact-show\"),this._compactButton.setAttribute(\"aria-expanded\",\"false\")):(this._container.classList.add(\"mapboxgl-compact-show\"),this._compactButton.setAttribute(\"aria-expanded\",\"true\"));}_updateEditLink(){let t=this._editLink;t||(t=this._editLink=this._container.querySelector(\".mapbox-improve-map\"));const i=[{key:\"owner\",value:this.styleOwner},{key:\"id\",value:this.styleId},{key:\"access_token\",value:this._map._requestManager._customAccessToken||e.e.ACCESS_TOKEN}];if(t){const o=i.reduce(((e,t,o)=>(t.value&&(e+=`${t.key}=${t.value}${o<i.length-1?\"&\":\"\"}`),e)),\"?\");t.href=`${e.e.FEEDBACK_URL}/${o}#${Ka(this._map,!0)}`,t.rel=\"noopener nofollow\";}}_updateData(e){!e||\"metadata\"!==e.sourceDataType&&\"visibility\"!==e.sourceDataType&&\"style\"!==e.dataType||(this._updateAttributions(),this._updateEditLink());}_updateAttributions(){if(!this._map.style)return;let e=[];if(this._map.style.stylesheet){const e=this._map.style.stylesheet;this.styleOwner=e.owner,this.styleId=e.id;}const t=this._map.style._mergedSourceCaches;for(const i in t){const o=t[i];if(o.used){const t=o.getSource();t.attribution&&e.indexOf(t.attribution)<0&&e.push(t.attribution);}}e.sort(((e,t)=>e.length-t.length)),e=e.filter(((t,i)=>{for(let o=i+1;o<e.length;o++)if(e[o].indexOf(t)>=0)return !1;return !0})),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?e=[...this.options.customAttribution,...e]:e.unshift(this.options.customAttribution));const i=e.join(\" | \");i!==this._attribHTML&&(this._attribHTML=i,e.length?(this._innerContainer.innerHTML=i,this._container.classList.remove(\"mapboxgl-attrib-empty\")):this._container.classList.add(\"mapboxgl-attrib-empty\"),this._editLink=null);}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add(\"mapboxgl-compact\"):this._container.classList.remove(\"mapboxgl-compact\",\"mapboxgl-compact-show\");}}class Kn{constructor(){e.aP([\"_updateLogo\",\"_updateCompact\"],this);}onAdd(e){this._map=e,this._container=l(\"div\",\"mapboxgl-ctrl\");const t=l(\"a\",\"mapboxgl-ctrl-logo\");return t.target=\"_blank\",t.rel=\"noopener nofollow\",t.href=\"https://www.mapbox.com/\",t.setAttribute(\"aria-label\",this._map._getUIString(\"LogoControl.Title\")),t.setAttribute(\"rel\",\"noopener nofollow\"),this._container.appendChild(t),this._container.style.display=\"none\",this._map.on(\"sourcedata\",this._updateLogo),this._updateLogo(),this._map.on(\"resize\",this._updateCompact),this._updateCompact(),this._container}onRemove(){this._container.remove(),this._map.off(\"sourcedata\",this._updateLogo),this._map.off(\"resize\",this._updateCompact);}getDefaultPosition(){return \"bottom-left\"}_updateLogo(e){e&&\"metadata\"!==e.sourceDataType||(this._container.style.display=this._logoRequired()?\"block\":\"none\");}_logoRequired(){if(!this._map.style)return !0;const e=this._map.style._sourceCaches;if(0===Object.entries(e).length)return !0;for(const t in e){const i=e[t].getSource();if(i.hasOwnProperty(\"mapbox_logo\")&&!i.mapbox_logo)return !1}return !0}_updateCompact(){const e=this._container.children;if(e.length){const t=e[0];this._map.getCanvasContainer().offsetWidth<250?t.classList.add(\"mapboxgl-compact\"):t.classList.remove(\"mapboxgl-compact\");}}}class Yn{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1;}add(e){const t=++this._id;return this._queue.push({callback:e,id:t,cancelled:!1}),t}remove(e){const t=this._currentlyRunning,i=t?this._queue.concat(t):this._queue;for(const t of i)if(t.id===e)return void(t.cancelled=!0)}run(e=0){const t=this._currentlyRunning=this._queue;this._queue=[];for(const i of t)if(!i.cancelled&&(i.callback(e),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1;}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[];}}class Jn{constructor(e){this.jumpTo(e);}getValue(t){if(t<=this._startTime)return this._start;if(t>=this._endTime)return this._end;const i=e.cB((t-this._startTime)/(this._endTime-this._startTime));return this._start*(1-i)+this._end*i}isEasing(e){return e>=this._startTime&&e<=this._endTime}jumpTo(e){this._startTime=-1/0,this._endTime=-1/0,this._start=e,this._end=e;}easeTo(e,t,i){this._start=this.getValue(t),this._end=e,this._startTime=t,this._endTime=t+i;}}const Qn={\"AttributionControl.ToggleAttribution\":\"Toggle attribution\",\"FullscreenControl.Enter\":\"Enter fullscreen\",\"FullscreenControl.Exit\":\"Exit fullscreen\",\"GeolocateControl.FindMyLocation\":\"Find my location\",\"GeolocateControl.LocationNotAvailable\":\"Location not available\",\"LogoControl.Title\":\"Mapbox homepage\",\"Map.Title\":\"Map\",\"NavigationControl.ResetBearing\":\"Reset bearing to north\",\"NavigationControl.ZoomIn\":\"Zoom in\",\"NavigationControl.ZoomOut\":\"Zoom out\",\"ScrollZoomBlocker.CtrlMessage\":\"Use ctrl + scroll to zoom the map\",\"ScrollZoomBlocker.CmdMessage\":\"Use ⌘ + scroll to zoom the map\",\"TouchPanBlocker.Message\":\"Use two fingers to move the map\"},el=[\"mouseenter\",\"mouseover\",\"mouseleave\",\"mouseout\"];class tl extends e.z{constructor(e,t,i,o){const{point:s,lngLat:r,originalEvent:a,target:n}=e;super(e.type,{point:s,lngLat:r,originalEvent:a,target:n}),this.preventDefault=()=>{e.preventDefault();},this.id=t,this.interaction=i,this.feature=o;}}class il{constructor(e){this.map=e,this.interactionsByType=new Map,this.typeById=new Map,this.filters=new Map,this.delegatedHandlers=new Map,this.handleType=this.handleType.bind(this);}add(t,i){if(this.typeById.has(t))throw new Error(`Interaction id \"${t}\" already exists.`);const{type:o,filter:s}=i;s&&this.filters.set(t,e.aZ(s));const r=this.interactionsByType.get(o)||new Map;if(0===r.size){if(el.includes(o)){const{mousemove:e,mouseout:o}=this._createDelegatedHandlers(t,i);this.map.on(\"mousemove\",e),this.map.on(\"mouseout\",o),this.delegatedHandlers.set(t,{mousemove:e,mouseout:o});}else this.map.on(o,this.handleType);this.interactionsByType.set(o,r);}r.set(t,i),this.typeById.set(t,o);}get(e){const t=this.typeById.get(e);if(!t)return;const i=this.interactionsByType.get(t);return i?i.get(e):void 0}remove(e){const t=this.typeById.get(e);if(!t)return;this.typeById.delete(e),this.filters.delete(e);const i=this.interactionsByType.get(t);if(i){if(i.delete(e),this.delegatedHandlers.has(e)){const{mousemove:t,mouseout:i}=this.delegatedHandlers.get(e);this.map.off(\"mousemove\",t),this.map.off(\"mouseout\",i),this.delegatedHandlers.delete(e);}0===i.size&&this.map.off(t,this.handleType);}}queryTargets(e,t){const i=[];for(const[e,o]of t)o.target&&i.push({targetId:e,target:o.target,filter:this.filters.get(e)});return this.map.style.queryRenderedTargets(e,i,this.map.transform)}handleType(t,i){const o=this.interactionsByType.get(t.type),s=Array.from(o).reverse();i=i||this.queryTargets(t.point,s);let r=!1;for(const o of i){for(const[i,a]of s){if(!a.target)continue;const s=o.variants?o.variants[i]:null;if(s){for(const n of s){const s=new e.cw(o,n);if(!1!==a.handler(new tl(t,i,a,s))){r=!0;break}}if(r)break}}if(r)break}if(!r)for(const[e,i]of s){const{handler:o,target:s}=i;if(!s&&!1!==o(new tl(t,e,i,null)))break}}_createDelegatedHandlers(e,t){switch(t.type){case\"mouseenter\":case\"mouseover\":{let i=!1,o=new Set;return {mousemove:s=>{const r=this.queryTargets(s.point,[[e,t]]),a=new Set;if(!r.length)return i=!1,void o.clear();const n=[];for(const e of r)o.has(e.id)||(a.add(e.id),n.push(e));i&&!n.length||(i=!0,o=a,s.type=t.type,this.handleType(s,n));},mouseout:()=>{i=!1,o.clear();}}}case\"mouseleave\":case\"mouseout\":{let i=[];return {mousemove:o=>{const s=this.queryTargets(o.point,[[e,t]]);if(!s.length)return o.type=t.type,this.handleType(o,i),void(i=s);const r=[],a=new Set(s.map((e=>e.id)));for(const e of i)a.has(e.id)||r.push(e);r.length&&(o.type=t.type,this.handleType(o,r)),i=s;},mouseout:e=>{i.length&&(e.type=t.type,this.handleType(e,i),i=[]);}}}}}}function ol(t,i){if(Array.isArray(t)&&Array.isArray(i)){const e=new Set(t),o=new Set(i);return e.size===o.size&&t.every((e=>o.has(e)))}return e.bn(t,i)}const sl={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:85,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:!1,performanceMetricsCollection:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,antialias:!1,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,minTileCacheSize:null,maxTileCacheSize:null,localIdeographFontFamily:\"sans-serif\",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,respectPrefersReducedMotion:!0,crossSourceCollisions:!0,collectResourceTiming:!1,testMode:!1,precompilePrograms:!0,scaleFactor:1,spriteFormat:\"auto\"},rl={showCompass:!0,showZoom:!0,visualizePitch:!1};class al{constructor(t,i,o=!1){this._clickTolerance=10,this.element=i,this.mouseRotate=new yn({clickTolerance:t.dragRotate._mouseRotate._clickTolerance}),this.map=t,o&&(this.mousePitch=new xn({clickTolerance:t.dragRotate._mousePitch._clickTolerance})),e.aP([\"mousedown\",\"mousemove\",\"mouseup\",\"touchstart\",\"touchmove\",\"touchend\",\"reset\"],this),i.addEventListener(\"mousedown\",this.mousedown),i.addEventListener(\"touchstart\",this.touchstart,{passive:!1}),i.addEventListener(\"touchmove\",this.touchmove),i.addEventListener(\"touchend\",this.touchend),i.addEventListener(\"touchcancel\",this.reset);}down(e,t){this.mouseRotate.mousedown(e,t),this.mousePitch&&this.mousePitch.mousedown(e,t),_();}move(e,t){const i=this.map,o=this.mouseRotate.mousemoveWindow(e,t),s=o&&o.bearingDelta;if(s&&i.setBearing(i.getBearing()+s),this.mousePitch){const o=this.mousePitch.mousemoveWindow(e,t),s=o&&o.pitchDelta;s&&i.setPitch(i.getPitch()+s);}}off(){const e=this.element;e.removeEventListener(\"mousedown\",this.mousedown),e.removeEventListener(\"touchstart\",this.touchstart,{passive:!1}),e.removeEventListener(\"touchmove\",this.touchmove),e.removeEventListener(\"touchend\",this.touchend),e.removeEventListener(\"touchcancel\",this.reset),this.offTemp();}offTemp(){p(),window.removeEventListener(\"mousemove\",this.mousemove),window.removeEventListener(\"mouseup\",this.mouseup);}mousedown(t){this.down(e.l({},t,{ctrlKey:!0,preventDefault:()=>t.preventDefault()}),g(this.element,t)),window.addEventListener(\"mousemove\",this.mousemove),window.addEventListener(\"mouseup\",this.mouseup);}mousemove(e){this.move(e,g(this.element,e));}mouseup(e){this.mouseRotate.mouseupWindow(e),this.mousePitch&&this.mousePitch.mouseupWindow(e),this.offTemp();}touchstart(e){1!==e.targetTouches.length?this.reset():(this._startPos=this._lastPos=v(this.element,e.targetTouches)[0],this.down({type:\"mousedown\",button:0,ctrlKey:!0,preventDefault:()=>e.preventDefault()},this._startPos));}touchmove(e){1!==e.targetTouches.length?this.reset():(this._lastPos=v(this.element,e.targetTouches)[0],this.move({preventDefault:()=>e.preventDefault()},this._lastPos));}touchend(e){0===e.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),this.reset();}reset(){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp();}}function nl(t,i,o){if(t=new e.bO(t.lng,t.lat),i){const s=new e.bO(t.lng-360,t.lat),r=new e.bO(t.lng+360,t.lat),a=360*Math.ceil(Math.abs(t.lng-o.center.lng)/360),n=o.locationPoint(t).distSqr(i),l=i.x<0||i.y<0||i.x>o.width||i.y>o.height;o.locationPoint(s).distSqr(i)<n&&(l||Math.abs(s.lng-o.center.lng)<a)?t=s:o.locationPoint(r).distSqr(i)<n&&(l||Math.abs(r.lng-o.center.lng)<a)&&(t=r);}for(;Math.abs(t.lng-o.center.lng)>180;){const e=o.locationPoint(t);if(e.x>=0&&e.y>=0&&e.x<=o.width&&e.y<=o.height)break;t.lng>o.center.lng?t.lng-=360:t.lng+=360;}return t}const ll={center:\"translate(-50%,-50%)\",top:\"translate(-50%,0)\",\"top-left\":\"translate(0,0)\",\"top-right\":\"translate(-100%,0)\",bottom:\"translate(-50%,-100%)\",\"bottom-left\":\"translate(0,-100%)\",\"bottom-right\":\"translate(-100%,-100%)\",left:\"translate(0,-50%)\",right:\"translate(-100%,-50%)\"};class cl extends e.E{constructor(t,i){if(super(),(t instanceof HTMLElement||i)&&(t=e.l({element:t},i)),e.aP([\"_update\",\"_onMove\",\"_onUp\",\"_addDragHandler\",\"_onMapClick\",\"_onKeyPress\",\"_clearFadeTimer\"],this),this._anchor=t&&t.anchor||\"center\",this._color=t&&t.color||\"#3FB1CE\",this._scale=t&&t.scale||1,this._draggable=t&&t.draggable||!1,this._clickTolerance=t&&t.clickTolerance||0,this._isDragging=!1,this._state=\"inactive\",this._rotation=t&&t.rotation||0,this._rotationAlignment=t&&t.rotationAlignment||\"auto\",this._pitchAlignment=t&&t.pitchAlignment&&t.pitchAlignment||\"auto\",this._updateMoving=()=>this._update(!0),this._occludedOpacity=t&&t.occludedOpacity||.2,t&&t.element)this._element=t.element,this._offset=e.P.convert(t&&t.offset||[0,0]);else {this._defaultMarker=!0,this._element=l(\"div\");const i=41,o=27,s=c(\"svg\",{display:\"block\",height:i*this._scale+\"px\",width:o*this._scale+\"px\",viewBox:`0 0 ${o} ${i}`},this._element),r=c(\"radialGradient\",{id:\"shadowGradient\"},c(\"defs\",{},s));c(\"stop\",{offset:\"10%\",\"stop-opacity\":.4},r),c(\"stop\",{offset:\"100%\",\"stop-opacity\":.05},r),c(\"ellipse\",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:\"url(#shadowGradient)\"},s),c(\"path\",{fill:this._color,d:\"M27,13.5C27,19.07 20.25,27 14.75,34.5C14.02,35.5 12.98,35.5 12.25,34.5C6.75,27 0,19.22 0,13.5C0,6.04 6.04,0 13.5,0C20.96,0 27,6.04 27,13.5Z\"},s),c(\"path\",{opacity:.25,d:\"M13.5,0C6.04,0 0,6.04 0,13.5C0,19.22 6.75,27 12.25,34.5C13,35.52 14.02,35.5 14.75,34.5C20.25,27 27,19.07 27,13.5C27,6.04 20.96,0 13.5,0ZM13.5,1C20.42,1 26,6.58 26,13.5C26,15.9 24.5,19.18 22.22,22.74C19.95,26.3 16.71,30.14 13.94,33.91C13.74,34.18 13.61,34.32 13.5,34.44C13.39,34.32 13.26,34.18 13.06,33.91C10.28,30.13 7.41,26.31 5.02,22.77C2.62,19.23 1,15.95 1,13.5C1,6.58 6.58,1 13.5,1Z\"},s),c(\"circle\",{fill:\"white\",cx:13.5,cy:13.5,r:5.5},s),this._offset=e.P.convert(t&&t.offset||[0,-14]);}this._element.hasAttribute(\"aria-label\")||this._element.setAttribute(\"aria-label\",\"Map marker\"),this._element.hasAttribute(\"role\")||this._element.setAttribute(\"role\",\"img\"),this._element.classList.add(\"mapboxgl-marker\"),this._element.addEventListener(\"dragstart\",(e=>{e.preventDefault();})),this._element.addEventListener(\"mousedown\",(e=>{e.preventDefault();}));const o=this._element.classList;for(const e in ll)o.remove(`mapboxgl-marker-anchor-${e}`);o.add(`mapboxgl-marker-anchor-${this._anchor}`);const s=t&&t.className?t.className.trim().split(/\\s+/):[];o.add(...s),this._popup=null;}addTo(e){return e===this._map||(this.remove(),this._map=e,e.getCanvasContainer().appendChild(this._element),e.on(\"move\",this._updateMoving),e.on(\"moveend\",this._update),e.on(\"remove\",this._clearFadeTimer),e._addMarker(this),this.setDraggable(this._draggable),this._update(),e.on(\"click\",this._onMapClick)),this}remove(){const e=this._map;return e&&(e.off(\"click\",this._onMapClick),e.off(\"move\",this._updateMoving),e.off(\"moveend\",this._update),e.off(\"mousedown\",this._addDragHandler),e.off(\"touchstart\",this._addDragHandler),e.off(\"mouseup\",this._onUp),e.off(\"touchend\",this._onUp),e.off(\"mousemove\",this._onMove),e.off(\"touchmove\",this._onMove),e.off(\"remove\",this._clearFadeTimer),e._removeMarker(this),this._map=void 0),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(t){return this._lngLat=e.bO.convert(t),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(e){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeAttribute(\"role\"),this._element.removeEventListener(\"keypress\",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute(\"tabindex\")),e){if(!(\"offset\"in e.options)){const t=38.1,i=13.5,o=Math.sqrt(Math.pow(i,2)/2);e.options.offset=this._defaultMarker?{top:[0,0],\"top-left\":[0,0],\"top-right\":[0,0],bottom:[0,-t],\"bottom-left\":[o,-1*(t-i+o)],\"bottom-right\":[-o,-1*(t-i+o)],left:[i,-1*(t-i)],right:[-i,-1*(t-i)]}:this._offset;}this._popup=e,e._marker=this,this._lngLat&&this._popup.setLngLat(this._lngLat),this._element.setAttribute(\"role\",\"button\"),this._originalTabIndex=this._element.getAttribute(\"tabindex\"),this._originalTabIndex||this._element.setAttribute(\"tabindex\",\"0\"),this._element.addEventListener(\"keypress\",this._onKeyPress),this._element.setAttribute(\"aria-expanded\",\"false\");}return this}_onKeyPress(e){const t=e.code,i=e.charCode||e.keyCode;\"Space\"!==t&&\"Enter\"!==t&&32!==i&&13!==i||this.togglePopup();}_onMapClick(e){const t=e.originalEvent.target,i=this._element;this._popup&&(t===i||i.contains(t))&&this.togglePopup();}getPopup(){return this._popup}togglePopup(){const e=this._popup;return e?(e.isOpen()?(e.remove(),this._element.setAttribute(\"aria-expanded\",\"false\")):this._map&&(e.addTo(this._map),this._element.setAttribute(\"aria-expanded\",\"true\")),this):this}_behindTerrain(){const e=this._map,t=this._pos;if(!e||!t)return !1;const i=e.unproject(t),o=e.getFreeCameraOptions();if(!o.position)return !1;const s=o.position.toLngLat();return s.distanceTo(i)<.9*s.distanceTo(this._lngLat)}_evaluateOpacity(){const t=this._map;if(!t)return;const i=this._pos;if(!i||i.x<0||i.x>t.transform.width||i.y<0||i.y>t.transform.height)return void this._clearFadeTimer();const o=t.unproject(i);let s;t._showingGlobe()&&e.dH(t.transform,this._lngLat)?s=0:(s=1-t._queryFogOpacity(o),t.transform._terrainEnabled()&&t.getTerrain()&&this._behindTerrain()&&(s*=this._occludedOpacity)),this._element.style.opacity=`${s}`,this._element.style.pointerEvents=s>0?\"auto\":\"none\",this._popup&&this._popup._setOpacity(s),this._fadeTimer=null;}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null);}_updateDOM(){const e=this._pos;if(!e||!this._map)return;const t=this._offset.mult(this._scale);this._element.style.transform=`\\n translate(${e.x}px,${e.y}px)\\n ${ll[this._anchor]}\\n ${this._calculateXYTransform()} ${this._calculateZTransform()}\\n translate(${t.x}px,${t.y}px)\\n `;}_calculateXYTransform(){const t=this._pos,i=this._map,o=this.getPitchAlignment();if(!i||!t||\"map\"!==o)return \"\";if(!i._showingGlobe()){const e=i.getPitch();return e?`rotateX(${e}deg)`:\"\"}const s=e.c4(e.dI(i.transform,this._lngLat)),r=t.sub(e.dJ(i.transform)),a=Math.abs(r.x)+Math.abs(r.y);if(0===a)return \"\";const n=s/a;return `rotateX(${-r.y*n}deg) rotateY(${r.x*n}deg)`}_calculateZTransform(){const t=this._pos,i=this._map;if(!i||!t)return \"\";let o=0;const s=this.getRotationAlignment();if(\"map\"===s)if(i._showingGlobe()){const t=i.project(new e.bO(this._lngLat.lng,this._lngLat.lat+.001)),s=i.project(new e.bO(this._lngLat.lng,this._lngLat.lat-.001)).sub(t);o=e.c4(Math.atan2(s.y,s.x))-90;}else o=-i.getBearing();else if(\"horizon\"===s){const s=e.ac(4,6,i.getZoom()),r=e.dJ(i.transform);r.y+=s*i.transform.height;const a=t.sub(r),n=e.c4(Math.atan2(a.y,a.x));o=(n>90?n-270:n+90)*(1-s);}return o+=this._rotation,o?`rotateZ(${o}deg)`:\"\"}_update(e){cancelAnimationFrame(this._updateFrameId);const t=this._map;t&&(t.transform.renderWorldCopies&&(this._lngLat=nl(this._lngLat,this._pos,t.transform)),this._pos=t.project(this._lngLat),!0===e?this._updateFrameId=requestAnimationFrame((()=>{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM());})):this._pos=this._pos.round(),t._requestDomTask((()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(t._showingGlobe()||t.getTerrain()||t.getFog())&&!this._fadeTimer&&(this._fadeTimer=window.setTimeout(this._evaluateOpacity.bind(this),60)));})));}getOffset(){return this._offset}setOffset(t){return this._offset=e.P.convert(t),this._update(),this}addClassName(e){return this._element.classList.add(e),this}removeClassName(e){return this._element.classList.remove(e),this}toggleClassName(e){return this._element.classList.toggle(e)}_onMove(t){const i=this._map;if(!i)return;const o=this._pointerdownPos,s=this._positionDelta;if(o&&s){if(!this._isDragging){const e=this._clickTolerance||i._clickTolerance;if(t.point.dist(o)<e)return;this._isDragging=!0;}this._pos=t.point.sub(s),this._lngLat=i.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents=\"none\",\"pending\"===this._state&&(this._state=\"active\",this.fire(new e.z(\"dragstart\"))),this.fire(new e.z(\"drag\"));}}_onUp(){this._element.style.pointerEvents=\"auto\",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1;const t=this._map;t&&(t.off(\"mousemove\",this._onMove),t.off(\"touchmove\",this._onMove)),\"active\"===this._state&&this.fire(new e.z(\"dragend\")),this._state=\"inactive\";}_addDragHandler(e){const t=this._map,i=this._pos;t&&i&&this._element.contains(e.originalEvent.target)&&(e.preventDefault(),this._positionDelta=e.point.sub(i),this._pointerdownPos=e.point,this._state=\"pending\",t.on(\"mousemove\",this._onMove),t.on(\"touchmove\",this._onMove),t.once(\"mouseup\",this._onUp),t.once(\"touchend\",this._onUp));}setDraggable(e){this._draggable=!!e;const t=this._map;return t&&(e?(t.on(\"mousedown\",this._addDragHandler),t.on(\"touchstart\",this._addDragHandler)):(t.off(\"mousedown\",this._addDragHandler),t.off(\"touchstart\",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(e){return this._rotation=e||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(e){return this._rotationAlignment=e||\"auto\",this._update(),this}getRotationAlignment(){return \"auto\"===this._rotationAlignment||\"horizon\"===this._rotationAlignment&&this._map&&!this._map._showingGlobe()?\"viewport\":this._rotationAlignment}setPitchAlignment(e){return this._pitchAlignment=e||\"auto\",this._update(),this}getPitchAlignment(){return \"auto\"===this._pitchAlignment?this.getRotationAlignment():this._pitchAlignment}setOccludedOpacity(e){return this._occludedOpacity=e||.2,this._update(),this}getOccludedOpacity(){return this._occludedOpacity}}const hl={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0,showUserHeading:!1},ul={maxWidth:100,unit:\"metric\"},dl={kilometer:\"km\",meter:\"m\",mile:\"mi\",foot:\"ft\",\"nautical-mile\":\"nm\"},_l={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\"},pl=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function fl(t=new e.P(0,0),i=\"bottom\"){if(\"number\"==typeof t){const o=Math.round(Math.sqrt(.5*Math.pow(t,2)));switch(i){case\"top\":return new e.P(0,t);case\"top-left\":return new e.P(o,o);case\"top-right\":return new e.P(-o,o);case\"bottom\":return new e.P(0,-t);case\"bottom-left\":return new e.P(o,-o);case\"bottom-right\":return new e.P(-o,-o);case\"left\":return new e.P(t,0);case\"right\":return new e.P(-t,0)}return new e.P(0,0)}return t instanceof e.P||Array.isArray(t)?e.P.convert(t):e.P.convert(t[i]||[0,0])}const ml={version:t,supported:n.supported,setRTLTextPlugin:e.dK,getRTLTextPluginStatus:e.dL,Map:class extends $n{constructor(t){o.mark(i.create);const s=t;if(null!=(t=e.l({},sl,t)).minZoom&&null!=t.maxZoom&&t.minZoom>t.maxZoom)throw new Error(\"maxZoom must be greater than or equal to minZoom\");if(null!=t.minPitch&&null!=t.maxPitch&&t.minPitch>t.maxPitch)throw new Error(\"maxPitch must be greater than or equal to minPitch\");if(null!=t.minPitch&&t.minPitch<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(null!=t.maxPitch&&t.maxPitch>85)throw new Error(\"maxPitch must be less than or equal to 85\");if(t.antialias&&e.dF(window)&&(t.antialias=!1,e.w(\"Antialiasing is disabled for this WebGL context to avoid browser bug: https://github.com/mapbox/mapbox-gl-js/issues/11609\")),super(new Yi(t.minZoom,t.maxZoom,t.minPitch,t.maxPitch,t.renderWorldCopies),t),this._repaint=!!t.repaint,this._interactive=t.interactive,this._minTileCacheSize=t.minTileCacheSize,this._maxTileCacheSize=t.maxTileCacheSize,this._failIfMajorPerformanceCaveat=t.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=t.preserveDrawingBuffer,this._antialias=t.antialias,this._trackResize=t.trackResize,this._bearingSnap=t.bearingSnap,this._refreshExpiredTiles=t.refreshExpiredTiles,this._fadeDuration=t.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=t.crossSourceCollisions,this._collectResourceTiming=t.collectResourceTiming,this._language=this._parseLanguage(t.language),this._worldview=t.worldview,this._renderTaskQueue=new Yn,this._domRenderTaskQueue=new Yn,this._controls=[],this._markers=[],this._popups=[],this._mapId=e.aV(),this._locale=e.l({},Qn,t.locale),this._clickTolerance=t.clickTolerance,this._cooperativeGestures=t.cooperativeGestures,this._performanceMetricsCollection=t.performanceMetricsCollection,this._tessellationStep=t.tessellationStep,this._containerWidth=0,this._containerHeight=0,this._showParseStatus=!0,this._precompilePrograms=t.precompilePrograms,this._scaleFactorChanged=!1,this._averageElevationLastSampledAt=-1/0,this._averageElevationExaggeration=0,this._averageElevation=new Jn(0),this._interactionRange=[1/0,-1/0],this._visibilityHidden=0,this._useExplicitProjection=!1,this._frameId=0,this._scaleFactor=t.scaleFactor,this._requestManager=new T(t.transformRequest,t.accessToken,t.testMode),this._silenceAuthErrors=!!t.testMode,this._contextCreateOptions=t.contextCreateOptions?{...t.contextCreateOptions}:{},\"string\"==typeof t.container){const e=document.getElementById(t.container);if(!e)throw new Error(`Container '${t.container.toString()}' not found.`);this._container=e;}else {if(!(t.container instanceof HTMLElement))throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");this._container=t.container;}if(this._container.childNodes.length>0&&e.w(\"The map container element should be empty, otherwise the map's interactivity will be negatively impacted. If you want to display a message when WebGL is not supported, use the Mapbox GL Supported plugin instead.\"),t.maxBounds&&this.setMaxBounds(t.maxBounds),this._spriteFormat=t.spriteFormat,e.aP([\"_onWindowOnline\",\"_onWindowResize\",\"_onVisibilityChange\",\"_onMapScroll\",\"_contextLost\",\"_contextRestored\"],this),this._setupContainer(),this._tp||(this._tp=new Pa),this._tp.registerParameter(this,[\"Debug\"],\"showOverdrawInspector\"),this._tp.registerParameter(this,[\"Debug\"],\"showTileBoundaries\"),this._tp.registerParameter(this,[\"Debug\"],\"showParseStatus\"),this._tp.registerParameter(this,[\"Debug\"],\"repaint\"),this._tp.registerParameter(this,[\"Debug\"],\"showTileAABBs\"),this._tp.registerParameter(this,[\"Debug\"],\"showPadding\"),this._tp.registerParameter(this,[\"Debug\"],\"showCollisionBoxes\",{noSave:!0}),this._tp.registerParameter(this.transform,[\"Debug\"],\"freezeTileCoverage\",{noSave:!0},(()=>{this._update();})),this._tp.registerParameter(this,[\"Debug\",\"Wireframe\"],\"showTerrainWireframe\"),this._tp.registerParameter(this,[\"Debug\",\"Wireframe\"],\"showLayers2DWireframe\"),this._tp.registerParameter(this,[\"Debug\",\"Wireframe\"],\"showLayers3DWireframe\"),this._tp.registerParameter(this,[\"Scaling\"],\"_scaleFactor\",{min:.1,max:10,step:.1},(()=>{this.setScaleFactor(this._scaleFactor);})),this._setupPainter(),void 0===this.painter)throw new Error(\"Failed to initialize WebGL.\");if(this.on(\"move\",(()=>this._update(!1))),this.on(\"moveend\",(()=>this._update(!1))),this.on(\"zoom\",(()=>this._update(!0))),this._fullscreenchangeEvent=\"onfullscreenchange\"in document?\"fullscreenchange\":\"webkitfullscreenchange\",window.addEventListener(\"online\",this._onWindowOnline,!1),window.addEventListener(\"resize\",this._onWindowResize,!1),window.addEventListener(\"orientationchange\",this._onWindowResize,!1),window.addEventListener(this._fullscreenchangeEvent,this._onWindowResize,!1),window.addEventListener(\"visibilitychange\",this._onVisibilityChange,!1),this.handlers=new Zn(this,t),this._localFontFamily=t.localFontFamily,this._localIdeographFontFamily=t.localIdeographFontFamily,(t.style||!t.testMode)&&this.setStyle(t.style||e.e.DEFAULT_STYLE,{config:t.config,localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),t.projection&&this.setProjection(t.projection),this.indoor=new uo(this),t.hash&&(this._hash=new Xa(\"string\"==typeof t.hash&&t.hash||void 0).addTo(this)),!this._hash||!this._hash._onHashChange()){null==s.center&&null==s.zoom||(this.transform._unmodified=!1),this.jumpTo({center:t.center,zoom:t.zoom,bearing:t.bearing,pitch:t.pitch});const i=t.bounds;i&&(this.resize(),this.fitBounds(i,e.l({},t.fitBoundsOptions,{duration:0})));}this.resize(),t.attributionControl&&this.addControl(new Xn({customAttribution:t.customAttribution})),this._logoControl=new Kn,this.addControl(this._logoControl,t.logoPosition),this.on(\"style.load\",(()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet),this._postStyleLoadEvent();})),this.on(\"data\",(t=>{this._update(\"style\"===t.dataType),this.fire(new e.z(`${t.dataType}data`,t));})),this.on(\"dataloading\",(t=>{this.fire(new e.z(`${t.dataType}dataloading`,t));})),this._interactions=new il(this);}_getMapId(){return this._mapId}addControl(t,i){if(void 0===i&&(i=t.getDefaultPosition?t.getDefaultPosition():\"top-right\"),!t||!t.onAdd)return this.fire(new e.y(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));const o=t.onAdd(this);this._controls.push(t);const s=this._controlPositions[i];return -1!==i.indexOf(\"bottom\")?s.insertBefore(o,s.firstChild):s.appendChild(o),this}removeControl(t){if(!t||!t.onRemove)return this.fire(new e.y(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));const i=this._controls.indexOf(t);return i>-1&&this._controls.splice(i,1),t.onRemove(this),this}hasControl(e){return this._controls.indexOf(e)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(t){if(this._updateContainerDimensions(),this._containerWidth===this.transform.width&&this._containerHeight===this.transform.height)return this;this._resizeCanvas(this._containerWidth,this._containerHeight),this.transform.resize(this._containerWidth,this._containerHeight),this.painter.resize(Math.ceil(this._containerWidth),Math.ceil(this._containerHeight));const i=!this._moving;return i&&this.fire(new e.z(\"movestart\",t)).fire(new e.z(\"move\",t)),this.fire(new e.z(\"resize\",t)),i&&this.fire(new e.z(\"moveend\",t)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(t){return this.transform.setMaxBounds(e.az.convert(t)),this._update()}setMinZoom(t){if((t=t??-2)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()<t?this.setZoom(t):this.fire(new e.z(\"zoomstart\")).fire(new e.z(\"zoom\")).fire(new e.z(\"zoomend\")),this;throw new Error(\"minZoom must be between -2 and the current maxZoom, inclusive\")}getMinZoom(){return this.transform.minZoom}setMaxZoom(t){if((t=t??22)>=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t?this.setZoom(t):this.fire(new e.z(\"zoomstart\")).fire(new e.z(\"zoom\")).fire(new e.z(\"zoomend\")),this;throw new Error(\"maxZoom must be greater than the current minZoom\")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(t){if((t=t??0)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()<t?this.setPitch(t):this.fire(new e.z(\"pitchstart\")).fire(new e.z(\"pitch\")).fire(new e.z(\"pitchend\")),this;throw new Error(\"minPitch must be between 0 and the current maxPitch, inclusive\")}getMinPitch(){return this.transform.minPitch}setMaxPitch(t){if((t=t??85)>85)throw new Error(\"maxPitch must be less than or equal to 85\");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t?this.setPitch(t):this.fire(new e.z(\"pitchstart\")).fire(new e.z(\"pitch\")).fire(new e.z(\"pitchend\")),this;throw new Error(\"maxPitch must be greater than or equal to minPitch\")}getMaxPitch(){return this.transform.maxPitch}getScaleFactor(){return this._scaleFactor}setScaleFactor(e){return this._scaleFactor=e,this.painter.scaleFactor=e,this._tp.refreshUI(),this._scaleFactorChanged=!0,this.style._updateFilteredLayers((e=>\"symbol\"===e.type)),this._update(!0),this}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(e){return this.transform.renderWorldCopies=e,this.transform.renderWorldCopies||this._forceMarkerAndPopupUpdate(!0),this._update()}getLanguage(){return this._language}_parseLanguage(e){return \"auto\"===e?navigator.language:Array.isArray(e)?0===e.length?void 0:e.map((e=>\"auto\"===e?navigator.language:e)):e}setLanguage(e){const t=this._parseLanguage(e);if(!this.style||t===this._language)return this;this._language=t,this.style.reloadSources();for(const e of this._controls)e._setLanguage&&e._setLanguage(this._language);return this}getWorldview(){return this._worldview}setWorldview(e){return this.style&&e!==this._worldview?(this._worldview=e,this.style.reloadSources(),this):this}getProjection(){return this.transform.mercatorFromTransition?{name:\"globe\",center:[0,0]}:this.transform.getProjection()}_showingGlobe(){return \"globe\"===this.transform.projection.name}setProjection(e){return this._lazyInitEmptyStyle(),e?\"string\"==typeof e&&(e={name:e}):e=null,this._useExplicitProjection=!!e,this._prioritizeAndUpdateProjection(e,this.style.projection)}_updateProjectionTransition(){if(\"globe\"!==this.getProjection().name)return;const t=this.transform,i=t.projection.name;let o;\"globe\"===i&&t.zoom>=e.bY?(t.setMercatorFromTransition(),o=!0):\"mercator\"===i&&t.zoom<e.bY&&(t.setProjection({name:\"globe\"}),o=!0),o&&(this.style.applyProjectionUpdate(),this.style._forceSymbolLayerUpdate());}_prioritizeAndUpdateProjection(e,t){return this._updateProjection(e||t||{name:\"mercator\"})}_updateProjection(t){let i;return i=\"globe\"===t.name&&this.transform.zoom>=e.bY?this.transform.setMercatorFromTransition():this.transform.setProjection(t),this.style.applyProjectionUpdate(),i&&(this.painter.clearBackgroundTiles(),this.style.clearSources(),this._update(!0),this._forceMarkerAndPopupUpdate(!0)),this}project(t){return this.transform.locationPoint3D(e.bO.convert(t))}unproject(t){return this.transform.pointLocation3D(e.P.convert(t))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()||!1}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()||!1}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()||!1}_isDragging(){return this.handlers&&this.handlers._isDragging()||!1}_createDelegatedListener(e,t,i){const o=e=>{let i=[];if(Array.isArray(t)){const o=t.filter((e=>this.getLayer(e)));i=o.length?this.queryRenderedFeatures(e,{layers:o}):[];}else i=this.queryRenderedFeatures(e,{target:t});return i};if(\"mouseenter\"===e||\"mouseover\"===e){let s=!1;const r=t=>{const r=o(t.point);r.length?s||(s=!0,i.call(this,new an(e,this,t.originalEvent,{features:r}))):s=!1;};return {listener:i,targets:t,delegates:{mousemove:r,mouseout:()=>{s=!1;}}}}if(\"mouseleave\"===e||\"mouseout\"===e){let s=!1;const r=t=>{o(t.point).length?s=!0:s&&(s=!1,i.call(this,new an(e,this,t.originalEvent)));},a=t=>{s&&(s=!1,i.call(this,new an(e,this,t.originalEvent)));};return {listener:i,targets:t,delegates:{mousemove:r,mouseout:a}}}{const s=e=>{const t=o(e.point);t.length&&(e.features=t,i.call(this,e),delete e.features);};return {listener:i,targets:t,delegates:{[e]:s}}}}on(e,t,i){if(\"function\"==typeof t||void 0===i)return super.on(e,t);if(\"string\"==typeof t&&(t=[t]),!this._areTargetsValid(t))return this;const o=this._createDelegatedListener(e,t,i);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[e]=this._delegatedListeners[e]||[],this._delegatedListeners[e].push(o);for(const e in o.delegates)this.on(e,o.delegates[e]);return this}once(e,t,i){if(\"function\"==typeof t||void 0===i)return super.once(e,t);if(\"string\"==typeof t&&(t=[t]),!this._areTargetsValid(t))return this;const o=this._createDelegatedListener(e,t,i);for(const e in o.delegates)this.once(e,o.delegates[e]);return this}off(e,t,i){if(\"function\"==typeof t||void 0===i)return super.off(e,t);if(\"string\"==typeof t&&(t=[t]),!this._areTargetsValid(t))return this;const o=this._delegatedListeners?this._delegatedListeners[e]:void 0;return o&&(e=>{for(let o=0;o<e.length;o++){const s=e[o];if(s.listener===i&&ol(s.targets,t)){for(const e in s.delegates)this.off(e,s.delegates[e]);return e.splice(o,1),this}}})(o),this}queryRenderedFeatures(t,i){if(!this.style)return [];if(void 0===t||t instanceof e.P||Array.isArray(t)||void 0!==i||(i=t,t=void 0),t=t||[[0,0],[this.transform.width,this.transform.height]],!i){const e=this.style.queryRenderedFeatures(t,void 0,this.transform),i=this.style.queryRenderedFeatureset(t,void 0,this.transform);return e.concat(i)}let o=!0;if(i.target&&(o=this._isTargetValid(i.target),o&&!i.layers))return this.style.queryRenderedFeatureset(t,i,this.transform);let s=!0;if(i.layers&&Array.isArray(i.layers)){for(const e of i.layers)if(!this._isValidId(e)){s=!1;break}if(s&&!i.target)return this.style.queryRenderedFeatures(t,i,this.transform)}let r=[];return s&&(r=r.concat(this.style.queryRenderedFeatures(t,i,this.transform))),o&&(r=r.concat(this.style.queryRenderedFeatureset(t,i,this.transform))),r}querySourceFeatures(e,t){return !e||\"string\"==typeof e&&!this._isValidId(e)?[]:this.style.querySourceFeatures(e,t)}isPointOnSurface(t){const{name:i}=this.transform.projection;return \"globe\"!==i&&\"mercator\"!==i&&e.w(`${i} projection does not support isPointOnSurface, this API may behave unexpectedly.`),this.transform.isPointOnSurface(e.P.convert(t))}addInteraction(e,t){return this._interactions.add(e,t),this}removeInteraction(e){return this._interactions.remove(e),this}setStyle(t,i){return i=e.l({},{localIdeographFontFamily:this._localIdeographFontFamily,localFontFamily:this._localFontFamily},i),this.style&&t&&!1!==i.diff&&i.localFontFamily===this._localFontFamily&&i.localIdeographFontFamily===this._localIdeographFontFamily&&!i.config?(this.style._diffStyle(t,((o,s)=>{o?(e.w(`Unable to perform style diff: ${String(o.message||o.error||o)}. Rebuilding the style from scratch.`),this._updateStyle(t,i)):s&&this._update(!0);}),(()=>{this._postStyleLoadEvent();})),this):(this._localIdeographFontFamily=i.localIdeographFontFamily,this._localFontFamily=i.localFontFamily,this._updateStyle(t,i))}_getUIString(e){const t=this._locale[e];if(null==t)throw new Error(`Missing UI string '${e}'`);return t}_updateStyle(t,i){if(this.style&&(this.style.setEventedParent(null),this.style._remove(),this.style=void 0),t){const o=e.l({},i);i&&i.config&&(o.initialConfig=i.config,delete o.config),this.style=new bo(this,o).load(t),this.style.setEventedParent(this,{style:this.style});}return this._updateTerrain(),this}_lazyInitEmptyStyle(){this.style||(this.style=new bo(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty());}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():(e.w(\"There is no style added to the map.\"),!1)}_isValidId(t){return null==t?(this.fire(new e.y(new Error(\"IDs can't be empty.\"))),!1):!e.cr(t)||(this.fire(new e.y(new Error(`IDs can't contain special symbols: \"${t}\".`))),!1)}_isTargetValid(e){return \"featuresetId\"in e?this._isValidId(\"importId\"in e?e.importId:e.featuresetId):\"layerId\"in e&&this._isValidId(e.layerId)}_areTargetsValid(e){if(Array.isArray(e)){for(const t of e)if(!this._isValidId(t))return !1;return !0}return this._isTargetValid(e)}addSource(e,t){return this._isValidId(e)?(this._lazyInitEmptyStyle(),this.style.addSource(e,t),this._update(!0)):this}isSourceLoaded(e){return !!this._isValidId(e)&&!!this.style&&this.style._isSourceCacheLoaded(e)}areTilesLoaded(){return this.style.areTilesLoaded()}addSourceType(e,t,i){this._lazyInitEmptyStyle(),this.style.addSourceType(e,t,i);}removeSource(e){return this._isValidId(e)?(this.style.removeSource(e),this._updateTerrain(),this._update(!0)):this}getSource(e){return this._isValidId(e)?this.style.getOwnSource(e):null}addImage(t,i,{pixelRatio:o=1,sdf:s=!1,stretchX:r,stretchY:a,content:n}={}){if(this._lazyInitEmptyStyle(),i instanceof HTMLImageElement||ImageBitmap&&i instanceof ImageBitmap){const{width:l,height:c,data:h}=e.q.getImageData(i);this.style.addImage(t,{data:new e.r({width:l,height:c},h),pixelRatio:o,stretchX:r,stretchY:a,content:n,sdf:s,version:0,usvg:!1});}else if(void 0===i.width||void 0===i.height)this.fire(new e.y(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));else {const{width:l,height:c}=i,h=i;this.style.addImage(t,{data:new e.r({width:l,height:c},new Uint8Array(h.data)),pixelRatio:o,stretchX:r,stretchY:a,content:n,sdf:s,usvg:!1,version:0,userImage:h}),h.onAdd&&h.onAdd(this,t);}}updateImage(t,i){this._lazyInitEmptyStyle();const o=this.style.getImage(t);if(!o)return void this.fire(new e.y(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));const s=i instanceof HTMLImageElement||ImageBitmap&&i instanceof ImageBitmap?e.q.getImageData(i):i,{width:r,height:a,data:n}=s;if(void 0===r||void 0===a)return void this.fire(new e.y(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));if(r!==(o.usvg?o.icon.usvg_tree.width:o.data.width)||a!==(o.usvg?o.icon.usvg_tree.height:o.data.height))return void this.fire(new e.y(new Error(`The width and height of the updated image (${r}, ${a})\\n must be that same as the previous version of the image\\n (${o.data.width}, ${o.data.height})`)));const l=!(i instanceof HTMLImageElement||ImageBitmap&&i instanceof ImageBitmap);let c=!1;o.usvg?(o.data=new e.r({width:r,height:a},new Uint8Array(n)),o.usvg=!1,o.icon=void 0,c=!0):o.data.replace(n,l),this.style.updateImage(t,o,c);}hasImage(t){return t?!!this.style&&!!this.style.getImage(t):(this.fire(new e.y(new Error(\"Missing required image id\"))),!1)}removeImage(e){this.style.removeImage(e);}loadImage(t,i){e.o(this._requestManager.transformRequest(t,e.R.Image),((t,o)=>{i(t,o instanceof HTMLImageElement?e.q.getImageData(o):o);}));}listImages(){return this.style.listImages()}addModel(e,t){this._lazyInitEmptyStyle(),this.style.addModel(e,t);}hasModel(t){return t?this.style.hasModel(t):(this.fire(new e.y(new Error(\"Missing required model id\"))),!1)}removeModel(e){this.style.removeModel(e);}listModels(){return this.style.listModels()}addLayer(e,t){return this._isValidId(e.id)?(this._lazyInitEmptyStyle(),this.style.addLayer(e,t),this._update(!0)):this}getSlot(e){const t=this.getLayer(e);return t&&t.slot||null}setSlot(e,t){return this.style.setSlot(e,t),this.style.mergeLayers(),this._update(!0)}addImport(e,t){return this.style.addImport(e,t),this}updateImport(e,t){return \"string\"!=typeof t&&t.id!==e?(this.removeImport(e),this.addImport(t)):(this.style.updateImport(e,t),this._update(!0))}removeImport(e){return this.style.removeImport(e),this}moveImport(e,t){return this.style.moveImport(e,t),this._update(!0)}moveLayer(e,t){return this._isValidId(e)?(this.style.moveLayer(e,t),this._update(!0)):this}removeLayer(e){return this._isValidId(e)?(this.style.removeLayer(e),this._update(!0)):this}getLayer(e){if(!this._isValidId(e))return null;const t=this.style.getOwnLayer(e);return t?\"custom\"===t.type?t.implementation:t.serialize():void 0}getSlots(){return this.style.getSlots()}setLayerZoomRange(e,t,i){return this._isValidId(e)?(this.style.setLayerZoomRange(e,t,i),this._update(!0)):this}setFilter(e,t,i={}){return this._isValidId(e)?(this.style.setFilter(e,t,i),this._update(!0)):this}getFilter(e){return this._isValidId(e)?this.style.getFilter(e):null}setPaintProperty(e,t,i,o={}){return this._isValidId(e)?(this.style.setPaintProperty(e,t,i,o),this._update(!0)):this}getPaintProperty(e,t){return this._isValidId(e)?this.style.getPaintProperty(e,t):null}setLayoutProperty(e,t,i,o={}){return this._isValidId(e)?(this.style.setLayoutProperty(e,t,i,o),this._update(!0)):this}getLayoutProperty(e,t){return this._isValidId(e)?this.style.getLayoutProperty(e,t):null}getSchema(e){return this.style.getSchema(e)}setSchema(e,t){return this.style.setSchema(e,t),this._update(!0)}getConfig(e){return this.style.getConfig(e)}setConfig(e,t){return this.style.setConfig(e,t),this._update(!0)}getConfigProperty(e,t){return this.style.getConfigProperty(e,t)}setConfigProperty(e,t,i){return this.style.setConfigProperty(e,t,i),this._update(!0)}getFeaturesetDescriptors(e){return this.style.getFeaturesetDescriptors(e)}setLights(e){if(this._lazyInitEmptyStyle(),e&&1===e.length&&\"flat\"===e[0].type){const t=e[0];t.properties?this.style.setFlatLight(t.properties,t.id,{}):this.style.setFlatLight({},\"flat\");}else this.style.setLights(e),this.painter.terrain&&(this.painter.terrain.invalidateRenderCache=!0);return this._update(!0)}getLights(){const e=this.style.getLights()||[];return 0===e.length&&e.push({id:this.style.light.id,type:\"flat\",properties:this.style.getFlatLight()}),e}setLight(e,t={}){return console.log(\"The `map.setLight` function is deprecated, prefer using `map.setLights` with `flat` light type instead.\"),this.setLights([{id:\"flat\",type:\"flat\",properties:e}])}getLight(){return console.log(\"The `map.getLight` function is deprecated, prefer using `map.getLights` instead.\"),this.style.getFlatLight()}setTerrain(e){return this._lazyInitEmptyStyle(),!e&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(e),this._averageElevationLastSampledAt=-1/0,this._update(!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(e){return this._lazyInitEmptyStyle(),this.style.setFog(e),this._update(!0)}getFog(){return this.style?this.style.getFog():null}setSnow(e){return this._lazyInitEmptyStyle(),this.style.setSnow(e),this._update(!0)}getSnow(){return this.style?this.style.getSnow():null}setRain(e){return this._lazyInitEmptyStyle(),this.style.setRain(e),this._update(!0)}getRain(){return this.style?this.style.getRain():null}setColorTheme(e){return this._lazyInitEmptyStyle(),this.style.setColorTheme(e),this._update(!0)}setImportColorTheme(e,t){return this._lazyInitEmptyStyle(),this.style.setImportColorTheme(e,t),this._update(!0)}setCamera(e){return this.style.setCamera(e),this._triggerCameraUpdate(e)}_triggerCameraUpdate(e){return this._update(this.transform.setOrthographicProjectionAtLowPitch(\"orthographic\"===e[\"camera-projection\"]))}getCamera(){return this.style.camera}_queryFogOpacity(t){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(e.bO.convert(t),this.transform):0}setFeatureState(e,t){return e.source&&!this._isValidId(e.source)?this:(this.style.setFeatureState(e,t),this._update())}removeFeatureState(e,t){return e.source&&!this._isValidId(e.source)?this:(this.style.removeFeatureState(e,t),this._update())}getFeatureState(e){return e.source&&!this._isValidId(e.source)?null:this.style.getFeatureState(e)}_updateContainerDimensions(){if(!this._container)return;const e=this._container.getBoundingClientRect().width||400,t=this._container.getBoundingClientRect().height||300;let i,o,s,r=this._container;for(;r&&(!o||!s);){const e=window.getComputedStyle(r).transform;e&&\"none\"!==e&&(i=e.match(/matrix.*\\((.+)\\)/)[1].split(\", \"),i[0]&&\"0\"!==i[0]&&\"1\"!==i[0]&&(o=i[0]),i[3]&&\"0\"!==i[3]&&\"1\"!==i[3]&&(s=i[3])),r=r.parentElement;}this._containerWidth=o?Math.abs(e/o):e,this._containerHeight=s?Math.abs(t/s):t;}_detectMissingCSS(){\"rgb(250, 128, 114)\"!==window.getComputedStyle(this._missingCSSCanary).getPropertyValue(\"background-color\")&&e.w(\"This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.\");}_setupContainer(){const e=this._container;e.classList.add(\"mapboxgl-map\"),(this._missingCSSCanary=l(\"div\",\"mapboxgl-canary\",e)).style.visibility=\"hidden\",this._detectMissingCSS();const t=this._canvasContainer=l(\"div\",\"mapboxgl-canvas-container\",e);this._canvas=l(\"canvas\",\"mapboxgl-canvas\",t),this._interactive&&(t.classList.add(\"mapboxgl-interactive\"),this._canvas.setAttribute(\"tabindex\",\"0\")),this._canvas.addEventListener(\"webglcontextlost\",this._contextLost,!1),this._canvas.addEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.setAttribute(\"aria-label\",this._getUIString(\"Map.Title\")),this._canvas.setAttribute(\"role\",\"region\"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const i=this._controlContainer=l(\"div\",\"mapboxgl-control-container\",e),o=this._controlPositions={};[\"top-left\",\"top\",\"top-right\",\"right\",\"bottom-right\",\"bottom\",\"bottom-left\",\"left\"].forEach((e=>{o[e]=l(\"div\",`mapboxgl-ctrl-${e}`,i);})),this._container.addEventListener(\"scroll\",this._onMapScroll,!1);}_resizeCanvas(t,i){const o=e.q.devicePixelRatio||1;this._canvas.width=o*Math.ceil(t),this._canvas.height=o*Math.ceil(i),this._canvas.style.width=`${t}px`,this._canvas.style.height=`${i}px`;}_addMarker(e){this._markers.push(e);}_removeMarker(e){const t=this._markers.indexOf(e);-1!==t&&this._markers.splice(t,1);}_addPopup(e){this._popups.push(e);}_removePopup(e){const t=this._popups.indexOf(e);-1!==t&&this._popups.splice(t,1);}_setupPainter(){const t=e.l({},n.supported.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),i=this._canvas.getContext(\"webgl2\",t);i?(G(i,!0),this.painter=new Wa(i,this._contextCreateOptions,this.transform,this._scaleFactor,this._tp),this.on(\"data\",(e=>{\"source\"===e.dataType&&this.painter.setTileLoadedFlag(!0);})),e.m.testSupport(i)):this.fire(new e.y(new Error(\"Failed to initialize WebGL\")));}_contextLost(t){t.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new e.z(\"webglcontextlost\",{originalEvent:t}));}_contextRestored(t){this._setupPainter(),this.resize(),this._update(),this.fire(new e.z(\"webglcontextrestored\",{originalEvent:t}));}_onMapScroll(e){if(e.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}idle(){return !this.isMoving()&&this.loaded()}loaded(){return !this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}frameReady(){return this.loaded()&&!this._placementDirty}_update(e){return this.style?(this._styleDirty=this._styleDirty||e,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(e){return this._update(),this._renderTaskQueue.add(e)}_cancelRenderFrame(e){this._renderTaskQueue.remove(e);}_requestDomTask(e){!this.loaded()||this.loaded()&&!this.isMoving()?e():this._domRenderTaskQueue.add(e);}_render(t){let s;this.fire(new e.z(\"renderstart\")),++this._frameId;const r=this.painter.context.extTimerQuery,a=e.q.now(),n=this.painter.context.gl;if(this.listens(\"gpu-timing-frame\")&&(s=n.createQuery(),n.beginQuery(r.TIME_ELAPSED_EXT,s)),this.painter.context.setDirty(),this.painter.setBaseState(),(this.isMoving()||this.isRotating()||this.isZooming())&&(this._interactionRange[0]=Math.min(this._interactionRange[0],performance.now()),this._interactionRange[1]=Math.max(this._interactionRange[1],performance.now())),this._renderTaskQueue.run(t),this._domRenderTaskQueue.run(t),this._removed)return;this._updateProjectionTransition();const l=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const t=this.transform.zoom,i=this.transform.pitch,o=e.q.now(),s=new e.a8(t,{now:o,fadeDuration:l,pitch:i,transition:this.style.transition});this.style.update(s);}this.style&&this.style.hasFogTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0);let c=!1;this.style&&this._sourcesDirty?(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),c=this._updateAverageElevation(a),this.style.updateSources(this.transform),this._forceMarkerAndPopupUpdate()):c=this._updateAverageElevation(a);const h=this.style&&this.style._updatePlacement(this.painter,this.painter.transform,this.showCollisionBoxes,l,this._crossSourceCollisions,this.painter.replacementSource,this._scaleFactorChanged);if(this._scaleFactorChanged&&(this._scaleFactorChanged=!1),h&&(this._placementDirty=h.needsRerender),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showParseStatus:this.showParseStatus,wireframe:{terrain:this.showTerrainWireframe,layers2D:this.showLayers2DWireframe,layers3D:this.showLayers3DWireframe},showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,showTileAABBs:this.showTileAABBs,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:l,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens(\"gpu-timing-layer\"),gpuTimingDeferredRender:!!this.listens(\"gpu-timing-deferred-render\"),speedIndexTiming:this.speedIndexTiming}),this.fire(new e.z(\"render\")),this.loaded()&&!this._loaded&&(this._loaded=!0,o.mark(i.load),this.fire(new e.z(\"load\"))),this.style&&this.style.hasTransitions()&&(this._styleDirty=!0),this.style&&(this.style.snow||this.style.rain)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),s){const t=e.q.now()-a;n.endQuery(r.TIME_ELAPSED_EXT),setTimeout((()=>{const i=n.getQueryParameter(s,n.QUERY_RESULT)/1e6;n.deleteQuery(s),this.fire(new e.z(\"gpu-timing-frame\",{cpuTime:t,gpuTime:i}));}),50);}if(this.listens(\"gpu-timing-layer\")){const t=this.painter.collectGpuTimers();setTimeout((()=>{const i=this.painter.queryGpuTimers(t);this.fire(new e.z(\"gpu-timing-layer\",{layerTimes:i}));}),50);}if(this.listens(\"gpu-timing-deferred-render\")){const t=this.painter.collectDeferredRenderGpuQueries();setTimeout((()=>{const i=this.painter.queryGpuTimeDeferredRender(t);this.fire(new e.z(\"gpu-timing-deferred-render\",{gpuTime:i}));}),50);}const u=this._sourcesDirty||this._styleDirty||this._placementDirty||c;if(u||this._repaint)this.triggerRepaint();else {const t=this.idle();if(t&&(c=this._updateAverageElevation(a,!0)),c)this.triggerRepaint();else if(this._triggerFrame(!1),t&&(this.fire(new e.z(\"idle\")),this._isInitialLoad=!1,this.speedIndexTiming)){const t=this._calculateSpeedIndex();this.fire(new e.z(\"speedindexcompleted\",{speedIndex:t})),this.speedIndexTiming=!1;}}!this._loaded||this._fullyLoaded||u||(this._fullyLoaded=!0,o.mark(i.fullLoad),this._performanceMetricsCollection&&k(this._requestManager._customAccessToken,{width:this.painter.width,height:this.painter.height,interactionRange:this._interactionRange,visibilityHidden:this._visibilityHidden,terrainEnabled:!!this.painter.style.getTerrain(),fogEnabled:!!this.painter.style.getFog(),projection:this.getProjection().name,zoom:this.transform.zoom,renderer:this.painter.context.renderer,vendor:this.painter.context.vendor}),this._authenticate());}_forceMarkerAndPopupUpdate(e){for(const t of this._markers)e&&!this.getRenderWorldCopies()&&(t._lngLat=t._lngLat.wrap()),t._update();for(const t of this._popups)!e||this.getRenderWorldCopies()||t._trackPointer||(t._lngLat=t._lngLat.wrap()),t._update();}_updateAverageElevation(e,t=!1){const i=e=>(this.transform.averageElevation=e,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return 0!==this.transform.averageElevation&&i(0);const o=this.transform.elevation&&this.transform.elevation.exaggeration()!==this._averageElevationExaggeration;if(o||(t||e-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(e)){const t=this.transform.averageElevation;let s=this.transform.sampleAverageElevation();null!=this.transform.elevation&&(this._averageElevationExaggeration=this.transform.elevation.exaggeration()),isNaN(s)?s=0:this._averageElevationLastSampledAt=e;const r=Math.abs(t-s);if(r>1){if(this._isInitialLoad||o)return this._averageElevation.jumpTo(s),i(s);this._averageElevation.easeTo(s,e,300);}else if(r>1e-4)return this._averageElevation.jumpTo(s),i(s)}return !!this._averageElevation.isEasing(e)&&i(this._averageElevation.getValue(e))}_authenticate(){N(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,(t=>{if(t&&(t.message===w||401===t.status)){const t=this.painter.context.gl;G(t,!1),this._logoControl instanceof Kn&&this._logoControl._updateLogo(),t&&t.clear(t.DEPTH_BUFFER_BIT|t.COLOR_BUFFER_BIT|t.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new e.y(new Error(\"A valid Mapbox access token is required to use Mapbox GL JS. To create an account or a new access token, visit https://account.mapbox.com/\")));}})),P(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,(()=>{}));}_postStyleLoadEvent(){this.style.globalId&&O(this._requestManager._customAccessToken,{map:this,skuToken:this._requestManager._skuToken,style:this.style.globalId,importedStyles:this.style.getImportGlobalIds()});}_updateTerrain(){const e=this._isDragging();this.painter.updateTerrain(this.style,e);}_calculateSpeedIndex(){const e=this.painter.canvasCopy(),t=this.painter.getCanvasCopiesAndTimestamps();t.timeStamps.push(performance.now());const i=this.painter.context.gl,o=i.createFramebuffer();function s(e){i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,e,0);const t=new Uint8Array(i.drawingBufferWidth*i.drawingBufferHeight*4);return i.readPixels(0,0,i.drawingBufferWidth,i.drawingBufferHeight,i.RGBA,i.UNSIGNED_BYTE,t),t}return i.bindFramebuffer(i.FRAMEBUFFER,o),this._canvasPixelComparison(s(e),t.canvasCopies.map(s),t.timeStamps)}_canvasPixelComparison(e,t,i){let o=i[1]-i[0];const s=e.length/4;for(let r=0;r<t.length;r++){const a=t[r];let n=0;for(let t=0;t<a.length;t+=4)a[t]===e[t]&&a[t+1]===e[t+1]&&a[t+2]===e[t+2]&&a[t+3]===e[t+3]&&(n+=1);o+=(i[r+2]-i[r+1])*(1-n/s);}return o}remove(){this._hash&&this._hash.remove();for(const e of this._controls)e.onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this._domRenderTaskQueue.clear(),this.style&&this.style.destroy(),this.indoor.destroy(),this.painter.destroy(),this.handlers&&this.handlers.destroy(),this.handlers=void 0,this.setStyle(null),window.removeEventListener(\"resize\",this._onWindowResize,!1),window.removeEventListener(\"orientationchange\",this._onWindowResize,!1),window.removeEventListener(this._fullscreenchangeEvent,this._onWindowResize,!1),window.removeEventListener(\"online\",this._onWindowOnline,!1),window.removeEventListener(\"visibilitychange\",this._onVisibilityChange,!1);const t=this.painter.context.gl.getExtension(\"WEBGL_lose_context\");t&&t.loseContext(),this._canvas.removeEventListener(\"webglcontextlost\",this._contextLost,!1),this._canvas.removeEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvasContainer.remove(),this._controlContainer.remove(),this._missingCSSCanary.remove(),this._canvas=void 0,this._canvasContainer=void 0,this._controlContainer=void 0,this._missingCSSCanary=void 0,this._container.classList.remove(\"mapboxgl-map\"),this._container.removeEventListener(\"scroll\",this._onMapScroll,!1),U.delete(this.painter.context.gl),B.remove(),z.remove(),this._removed=!0,this.fire(new e.z(\"remove\"));}triggerRepaint(){this._triggerFrame(!0);}_triggerFrame(t){this._renderNextFrame=this._renderNextFrame||t,this.style&&!this._frame&&(this._frame=e.q.frame((e=>{const t=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,t&&this._render(e);})));}_preloadTiles(t){const i=this.style?this.style.getSourceCaches():[];return e.bl(i,((e,i)=>e._preloadTiles(t,i)),(()=>{this.triggerRepaint();})),this}_onWindowOnline(){this._update();}_onWindowResize(e){this._trackResize&&this.resize({originalEvent:e})._update();}_onVisibilityChange(){\"hidden\"===document.visibilityState&&this._visibilityHidden++;}get showTileBoundaries(){return !!this._showTileBoundaries}set showTileBoundaries(e){this._showTileBoundaries!==e&&(this._showTileBoundaries=e,this._tp.refreshUI(),this._update());}get showParseStatus(){return !!this._showParseStatus}set showParseStatus(e){this._showParseStatus!==e&&(this._showParseStatus=e,this._tp.refreshUI(),this._update());}get showTerrainWireframe(){return !!this._showTerrainWireframe}set showTerrainWireframe(e){this._showTerrainWireframe!==e&&(this._showTerrainWireframe=e,this._tp.refreshUI(),this._update());}get showLayers2DWireframe(){return !!this._showLayers2DWireframe}set showLayers2DWireframe(e){this._showLayers2DWireframe!==e&&(this._showLayers2DWireframe=e,this._tp.refreshUI(),this._update());}get showLayers3DWireframe(){return !!this._showLayers3DWireframe}set showLayers3DWireframe(e){this._showLayers3DWireframe!==e&&(this._showLayers3DWireframe=e,this._tp.refreshUI(),this._update());}get speedIndexTiming(){return !!this._speedIndexTiming}set speedIndexTiming(e){this._speedIndexTiming!==e&&(this._speedIndexTiming=e,this._update());}get showPadding(){return !!this._showPadding}set showPadding(e){this._showPadding!==e&&(this._showPadding=e,this._tp.refreshUI(),this._update());}get showCollisionBoxes(){return !!this._showCollisionBoxes}set showCollisionBoxes(e){this._showCollisionBoxes!==e&&(this._showCollisionBoxes=e,this._tp.refreshUI(),e?this.style._generateCollisionBoxes():this._update());}get showOverdrawInspector(){return !!this._showOverdrawInspector}set showOverdrawInspector(e){this._showOverdrawInspector!==e&&(this._showOverdrawInspector=e,this._tp.refreshUI(),this._update());}get repaint(){return !!this._repaint}set repaint(e){this._repaint!==e&&(this._repaint=e,this._tp.refreshUI(),this.triggerRepaint());}get vertices(){return !!this._vertices}set vertices(e){this._vertices=e,this._update();}get showTileAABBs(){return !!this._showTileAABBs}set showTileAABBs(e){this._showTileAABBs!==e&&(this._showTileAABBs=e,this._tp.refreshUI(),e&&this._update());}_setCacheLimits(t,i){e.dG(t,i);}get version(){return t}},NavigationControl:class{constructor(t={}){this.options=e.l({},rl,t),this._container=l(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-group\"),this._container.addEventListener(\"contextmenu\",(e=>e.preventDefault())),this.options.showZoom&&(e.aP([\"_setButtonTitle\",\"_updateZoomButtons\"],this),this._zoomInButton=this._createButton(\"mapboxgl-ctrl-zoom-in\",(e=>{this._map&&this._map.zoomIn({},{originalEvent:e});})),l(\"span\",\"mapboxgl-ctrl-icon\",this._zoomInButton).setAttribute(\"aria-hidden\",\"true\"),this._zoomOutButton=this._createButton(\"mapboxgl-ctrl-zoom-out\",(e=>{this._map&&this._map.zoomOut({},{originalEvent:e});})),l(\"span\",\"mapboxgl-ctrl-icon\",this._zoomOutButton).setAttribute(\"aria-hidden\",\"true\")),this.options.showCompass&&(e.aP([\"_rotateCompassArrow\"],this),this._compass=this._createButton(\"mapboxgl-ctrl-compass\",(e=>{const t=this._map;t&&(this.options.visualizePitch?t.resetNorthPitch({},{originalEvent:e}):t.resetNorth({},{originalEvent:e}));})),this._compassIcon=l(\"span\",\"mapboxgl-ctrl-icon\",this._compass),this._compassIcon.setAttribute(\"aria-hidden\",\"true\"));}_updateZoomButtons(){const e=this._map;if(!e)return;const t=e.getZoom(),i=t===e.getMaxZoom(),o=t===e.getMinZoom();this._zoomInButton.disabled=i,this._zoomOutButton.disabled=o,this._zoomInButton.setAttribute(\"aria-disabled\",i.toString()),this._zoomOutButton.setAttribute(\"aria-disabled\",o.toString());}_rotateCompassArrow(){const e=this._map;if(!e)return;const t=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(e.transform.pitch*(Math.PI/180)),.5)}) rotateX(${e.transform.pitch}deg) rotateZ(${e.transform.angle*(180/Math.PI)}deg)`:`rotate(${e.transform.angle*(180/Math.PI)}deg)`;e._requestDomTask((()=>{this._compassIcon&&(this._compassIcon.style.transform=t);}));}onAdd(e){return this._map=e,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,\"ZoomIn\"),this._setButtonTitle(this._zoomOutButton,\"ZoomOut\"),e.on(\"zoom\",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,\"ResetBearing\"),this.options.visualizePitch&&e.on(\"pitch\",this._rotateCompassArrow),e.on(\"rotate\",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new al(e,this._compass,this.options.visualizePitch)),this._container}onRemove(){const e=this._map;e&&(this._container.remove(),this.options.showZoom&&e.off(\"zoom\",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&e.off(\"pitch\",this._rotateCompassArrow),e.off(\"rotate\",this._rotateCompassArrow),this._handler&&this._handler.off(),this._handler=void 0),this._map=void 0);}_createButton(e,t){const i=l(\"button\",e,this._container);return i.type=\"button\",i.addEventListener(\"click\",t),i}_setButtonTitle(e,t){if(!this._map)return;const i=this._map._getUIString(`NavigationControl.${t}`);e.setAttribute(\"aria-label\",i),e.firstElementChild&&e.firstElementChild.setAttribute(\"title\",i);}},GeolocateControl:class extends e.E{constructor(t={}){super();const i=navigator.geolocation;this.options=e.l({geolocation:i},hl,t),e.aP([\"_onSuccess\",\"_onError\",\"_onZoom\",\"_finish\",\"_setupUI\",\"_updateCamera\",\"_updateMarker\",\"_updateMarkerRotation\",\"_onDeviceOrientation\"],this),this._updateMarkerRotationThrottled=$a(this._updateMarkerRotation,20),this._numberOfWatches=0;}onAdd(e){return this._map=e,this._container=l(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-group\"),this._checkGeolocationSupport(this._setupUI),this._container}onRemove(){void 0!==this._geolocationWatchID&&(this.options.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),this._container.remove(),this._map.off(\"zoom\",this._onZoom),this._map=void 0,this._numberOfWatches=0,this._noTimeout=!1;}_checkGeolocationSupport(e){const t=(t=!!this.options.geolocation)=>{this._supportsGeolocation=t,e(t);};void 0!==this._supportsGeolocation?e(this._supportsGeolocation):void 0!==navigator.permissions?navigator.permissions.query({name:\"geolocation\"}).then((e=>t(\"denied\"!==e.state))).catch((()=>t())):t();}_isOutOfMapMaxBounds(e){const t=this._map.getMaxBounds(),i=e.coords;return !!t&&(i.longitude<t.getWest()||i.longitude>t.getEast()||i.latitude<t.getSouth()||i.latitude>t.getNorth())}_setErrorState(){switch(this._watchState){case\"WAITING_ACTIVE\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");break;case\"ACTIVE_LOCK\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");break;case\"BACKGROUND\":this._watchState=\"BACKGROUND_ERROR\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");}}_onSuccess(t){if(this._map){if(this._isOutOfMapMaxBounds(t))return this._setErrorState(),this.fire(new e.z(\"outofmaxbounds\",t)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=t,this._watchState){case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");break;case\"BACKGROUND\":case\"BACKGROUND_ERROR\":this._watchState=\"BACKGROUND\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\");}this.options.showUserLocation&&\"OFF\"!==this._watchState&&this._updateMarker(t),this.options.trackUserLocation&&\"ACTIVE_LOCK\"!==this._watchState||this._updateCamera(t),this.options.showUserLocation&&this._userLocationDotMarker.removeClassName(\"mapboxgl-user-location-dot-stale\"),this.fire(new e.z(\"geolocate\",t)),this._finish();}}_updateCamera(t){const i=new e.bO(t.coords.longitude,t.coords.latitude),o=t.coords.accuracy,s=this._map.getBearing(),r=e.l({bearing:s},this.options.fitBoundsOptions);this._map.fitBounds(i.toBounds(o),r,{geolocateSource:!0});}_updateMarker(t){if(t){const i=new e.bO(t.coords.longitude,t.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=t.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove();}_updateCircleRadius(){const t=this._map.transform,i=e.bH(1,t._center.lat)*t.worldSize,o=Math.ceil(2*this._accuracy*i);this._circleElement.style.width=`${o}px`,this._circleElement.style.height=`${o}px`;}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}_updateMarkerRotation(){this._userLocationDotMarker&&\"number\"==typeof this._heading?(this._userLocationDotMarker.setRotation(this._heading),this._userLocationDotMarker.addClassName(\"mapboxgl-user-location-show-heading\")):(this._userLocationDotMarker.removeClassName(\"mapboxgl-user-location-show-heading\"),this._userLocationDotMarker.setRotation(0));}_onError(t){if(this._map){if(this.options.trackUserLocation)if(1===t.code){this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\"),this._geolocateButton.disabled=!0;const e=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.setAttribute(\"aria-label\",e),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute(\"title\",e),void 0!==this._geolocationWatchID&&this._clearWatch();}else {if(3===t.code&&this._noTimeout)return;this._setErrorState();}\"OFF\"!==this._watchState&&this.options.showUserLocation&&this._userLocationDotMarker.addClassName(\"mapboxgl-user-location-dot-stale\"),this.fire(new e.z(\"error\",t)),this._finish();}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;}_setupUI(t){if(void 0!==this._map){if(this._container.addEventListener(\"contextmenu\",(e=>e.preventDefault())),this._geolocateButton=l(\"button\",\"mapboxgl-ctrl-geolocate\",this._container),l(\"span\",\"mapboxgl-ctrl-icon\",this._geolocateButton).setAttribute(\"aria-hidden\",\"true\"),this._geolocateButton.type=\"button\",!1===t){e.w(\"Geolocation support is not available so the GeolocateControl will be disabled.\");const t=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute(\"aria-label\",t),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute(\"title\",t);}else {const e=this._map._getUIString(\"GeolocateControl.FindMyLocation\");this._geolocateButton.setAttribute(\"aria-label\",e),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute(\"title\",e);}this.options.trackUserLocation&&(this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this._watchState=\"OFF\"),this.options.showUserLocation&&(this._dotElement=l(\"div\",\"mapboxgl-user-location\"),this._dotElement.appendChild(l(\"div\",\"mapboxgl-user-location-dot\")),this._dotElement.appendChild(l(\"div\",\"mapboxgl-user-location-heading\")),this._userLocationDotMarker=new cl({element:this._dotElement,rotationAlignment:\"map\",pitchAlignment:\"map\"}),this._circleElement=l(\"div\",\"mapboxgl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new cl({element:this._circleElement,pitchAlignment:\"map\"}),this.options.trackUserLocation&&(this._watchState=\"OFF\"),this._map.on(\"zoom\",this._onZoom)),this._geolocateButton.addEventListener(\"click\",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on(\"movestart\",(t=>{t.geolocateSource||\"ACTIVE_LOCK\"!==this._watchState||t.originalEvent&&\"resize\"===t.originalEvent.type||(this._watchState=\"BACKGROUND\",this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),this.fire(new e.z(\"trackuserlocationend\")));}));}}_onDeviceOrientation(e){this._userLocationDotMarker&&(e.webkitCompassHeading?this._heading=e.webkitCompassHeading:!0===e.absolute&&(this._heading=-1*e.alpha),this._updateMarkerRotationThrottled());}trigger(){if(!this._setup)return e.w(\"Geolocate control triggered before added to a map\"),!1;if(this.options.trackUserLocation){switch(this._watchState){case\"OFF\":this._watchState=\"WAITING_ACTIVE\",this.fire(new e.z(\"trackuserlocationstart\"));break;case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":case\"BACKGROUND_ERROR\":this._numberOfWatches--,this._noTimeout=!1,this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\"),this.fire(new e.z(\"trackuserlocationend\"));break;case\"BACKGROUND\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new e.z(\"trackuserlocationstart\"));}switch(this._watchState){case\"WAITING_ACTIVE\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");break;case\"ACTIVE_LOCK\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");break;case\"ACTIVE_ERROR\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");break;case\"BACKGROUND\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\");break;case\"BACKGROUND_ERROR\":this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background-error\");}if(\"OFF\"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){let e;this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),this._numberOfWatches++,this._numberOfWatches>1?(e={maximumAge:6e5,timeout:0},this._noTimeout=!0):(e=this.options.positionOptions,this._noTimeout=!1),this._geolocationWatchID=this.options.geolocation.watchPosition(this._onSuccess,this._onError,e),this.options.showUserHeading&&this._addDeviceOrientationListener();}}else this.options.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=window.setTimeout(this._finish,1e4);return !0}_addDeviceOrientationListener(){const e=()=>{\"ondeviceorientationabsolute\"in window?window.addEventListener(\"deviceorientationabsolute\",this._onDeviceOrientation):window.addEventListener(\"deviceorientation\",this._onDeviceOrientation);};\"undefined\"!=typeof DeviceMotionEvent&&\"function\"==typeof DeviceMotionEvent.requestPermission?DeviceOrientationEvent.requestPermission().then((t=>{\"granted\"===t&&e();})).catch(console.error):e();}_clearWatch(){this.options.geolocation.clearWatch(this._geolocationWatchID),window.removeEventListener(\"deviceorientation\",this._onDeviceOrientation),window.removeEventListener(\"deviceorientationabsolute\",this._onDeviceOrientation),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this.options.showUserLocation&&this._updateMarker(null);}},AttributionControl:Xn,ScaleControl:class{constructor(t={}){this.options=e.l({},ul,t),this._isNumberFormatSupported=function(){try{return new Intl.NumberFormat(\"en\",{style:\"unit\",unitDisplay:\"short\",unit:\"meter\"}),!0}catch(e){return !1}}(),e.aP([\"_update\",\"_setScale\",\"setUnit\"],this);}getDefaultPosition(){return \"bottom-left\"}_update(){const e=this.options.maxWidth||100,t=this._map,i=t._containerHeight/2,o=t._containerWidth/2-e/2,s=t.unproject([o,i]),r=t.unproject([o+e,i]),a=s.distanceTo(r);if(\"imperial\"===this.options.unit){const t=3.2808*a;t>5280?this._setScale(e,t/5280,\"mile\"):this._setScale(e,t,\"foot\");}else \"nautical\"===this.options.unit?this._setScale(e,a/1852,\"nautical-mile\"):a>=1e3?this._setScale(e,a/1e3,\"kilometer\"):this._setScale(e,a,\"meter\");}_setScale(e,t,i){this._map._requestDomTask((()=>{const o=function(e){const t=Math.pow(10,`${Math.floor(e)}`.length-1);let i=e/t;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:i>=1?1:function(e){const t=Math.pow(10,Math.ceil(-Math.log(e)/Math.LN10));return Math.round(e*t)/t}(i),t*i}(t),s=o/t;this._container.innerHTML=this._isNumberFormatSupported&&\"nautical-mile\"!==i?new Intl.NumberFormat(this._language,{style:\"unit\",unitDisplay:\"short\",unit:i}).format(o):`${o}&nbsp;${dl[i]}`,this._container.style.width=e*s+\"px\";}));}onAdd(e){return this._map=e,this._language=e.getLanguage(),this._container=l(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-scale\",e.getContainer()),this._container.dir=\"auto\",this._map.on(\"move\",this._update),this._update(),this._container}onRemove(){this._container.remove(),this._map.off(\"move\",this._update),this._map=void 0;}_setLanguage(e){this._language=e,this._update();}setUnit(e){this.options.unit=e,this._update();}},FullscreenControl:class{constructor(t={}){this._fullscreen=!1,t&&t.container&&(t.container instanceof HTMLElement?this._container=t.container:e.w(\"Full screen control 'container' must be a DOM element.\")),e.aP([\"_onClickFullscreen\",\"_changeIcon\"],this),\"onfullscreenchange\"in document?this._fullscreenchange=\"fullscreenchange\":\"onwebkitfullscreenchange\"in document&&(this._fullscreenchange=\"webkitfullscreenchange\");}onAdd(t){return this._map=t,this._container||(this._container=this._map.getContainer()),this._controlContainer=l(\"div\",\"mapboxgl-ctrl mapboxgl-ctrl-group\"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display=\"none\",e.w(\"This device does not support fullscreen mode.\")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,document.removeEventListener(this._fullscreenchange,this._changeIcon);}_checkFullscreenSupport(){return !(!document.fullscreenEnabled&&!document.webkitFullscreenEnabled)}_setupUI(){const e=this._fullscreenButton=l(\"button\",\"mapboxgl-ctrl-fullscreen\",this._controlContainer);l(\"span\",\"mapboxgl-ctrl-icon\",e).setAttribute(\"aria-hidden\",\"true\"),e.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),document.addEventListener(this._fullscreenchange,this._changeIcon);}_updateTitle(){const e=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",e),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute(\"title\",e);}_getTitle(){return this._map._getUIString(this._isFullscreen()?\"FullscreenControl.Exit\":\"FullscreenControl.Enter\")}_isFullscreen(){return this._fullscreen}_changeIcon(){(document.fullscreenElement||document.webkitFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-shrink\"),this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-fullscreen\"),this._updateTitle());}_onClickFullscreen(){this._isFullscreen()?document.exitFullscreen?document.exitFullscreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen();}},Popup:class extends e.E{constructor(t){super(),this.options=e.l(Object.create(_l),t),e.aP([\"_update\",\"_onClose\",\"remove\",\"_onMouseEvent\"],this),this._classList=new Set(t&&t.className?t.className.trim().split(/\\s+/):[]);}addTo(t){return this._map&&this.remove(),this._map=t,this.options.closeOnClick&&t.on(\"preclick\",this._onClose),this.options.closeOnMove&&t.on(\"move\",this._onClose),t.on(\"remove\",this.remove),this._update(),t._addPopup(this),this._focusFirstElement(),this._trackPointer?(t.on(\"mousemove\",this._onMouseEvent),t.on(\"mouseup\",this._onMouseEvent),t._canvasContainer.classList.add(\"mapboxgl-track-pointer\")):t.on(\"move\",this._update),this.fire(new e.z(\"open\")),this}isOpen(){return !!this._map}remove(){this._content&&this._content.remove(),this._container&&(this._container.remove(),this._container=void 0);const t=this._map;return t&&(t.off(\"move\",this._update),t.off(\"move\",this._onClose),t.off(\"preclick\",this._onClose),t.off(\"click\",this._onClose),t.off(\"remove\",this.remove),t.off(\"mousemove\",this._onMouseEvent),t.off(\"mouseup\",this._onMouseEvent),t.off(\"drag\",this._onMouseEvent),t._canvasContainer&&t._canvasContainer.classList.remove(\"mapboxgl-track-pointer\"),t._removePopup(this),this._map=void 0),this.fire(new e.z(\"close\")),this}getLngLat(){return this._lngLat}setLngLat(t){this._lngLat=e.bO.convert(t),this._pos=null,this._trackPointer=!1,this._update();const i=this._map;return i&&(i.on(\"move\",this._update),i.off(\"mousemove\",this._onMouseEvent),i._canvasContainer.classList.remove(\"mapboxgl-track-pointer\")),this}trackPointer(){this._trackPointer=!0,this._pos=null,this._update();const e=this._map;return e&&(e.off(\"move\",this._update),e.on(\"mousemove\",this._onMouseEvent),e.on(\"drag\",this._onMouseEvent),e._canvasContainer.classList.add(\"mapboxgl-track-pointer\")),this}getElement(){return this._container}setText(e){return this.setDOMContent(document.createTextNode(e))}setHTML(e){const t=document.createDocumentFragment(),i=document.createElement(\"body\");let o;for(i.innerHTML=e;o=i.firstChild,o;)t.appendChild(o);return this.setDOMContent(t)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(e){return this.options.maxWidth=e,this._update(),this}setDOMContent(e){let t=this._content;if(t)for(;t.hasChildNodes();)t.firstChild&&t.removeChild(t.firstChild);else t=this._content=l(\"div\",\"mapboxgl-popup-content\",this._container||void 0);if(t.appendChild(e),this.options.closeButton){const e=this._closeButton=l(\"button\",\"mapboxgl-popup-close-button\",t);e.type=\"button\",e.setAttribute(\"aria-label\",\"Close popup\"),e.setAttribute(\"aria-hidden\",\"true\"),e.innerHTML=\"&#215;\",e.addEventListener(\"click\",this._onClose);}return this._update(),this._focusFirstElement(),this}addClassName(e){return this._classList.add(e),this._updateClassList(),this}removeClassName(e){return this._classList.delete(e),this._updateClassList(),this}setOffset(e){return this.options.offset=e,this._update(),this}toggleClassName(e){let t;return this._classList.delete(e)?t=!1:(this._classList.add(e),t=!0),this._updateClassList(),t}_onMouseEvent(e){this._update(e.point);}_getAnchor(e){if(this.options.anchor)return this.options.anchor;const t=this._map,i=this._container,o=this._pos;if(!t||!i||!o)return \"bottom\";const s=i.offsetWidth,r=i.offsetHeight,a=o.x<s/2,n=o.x>t.transform.width-s/2;if(o.y+e<r)return a?\"top-left\":n?\"top-right\":\"top\";if(o.y>t.transform.height-r){if(a)return \"bottom-left\";if(n)return \"bottom-right\"}return a?\"left\":n?\"right\":\"bottom\"}_updateClassList(){const e=this._container;if(!e)return;const t=[...this._classList];t.push(\"mapboxgl-popup\"),this._anchor&&t.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&t.push(\"mapboxgl-popup-track-pointer\"),e.className=t.join(\" \");}_update(t){const i=this._map,o=this._content;if(!i||!this._lngLat&&!this._trackPointer||!o)return;let s=this._container;if(s||(s=this._container=l(\"div\",\"mapboxgl-popup\",i.getContainer()),this._tip=l(\"div\",\"mapboxgl-popup-tip\",s),s.appendChild(o)),this.options.maxWidth&&s.style.maxWidth!==this.options.maxWidth&&(s.style.maxWidth=this.options.maxWidth),i.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=nl(this._lngLat,this._pos,i.transform)),!this._trackPointer||t){const o=this._pos=this._trackPointer&&t instanceof e.P?t:i.project(this._lngLat),s=fl(this.options.offset),r=this._anchor=this._getAnchor(s.y),a=fl(this.options.offset,r),n=o.add(a).round();i._requestDomTask((()=>{this._container&&r&&(this._container.style.transform=`${ll[r]} translate(${n.x}px,${n.y}px)`);}));}if(!this._marker&&i._showingGlobe()){const t=e.dH(i.transform,this._lngLat)?0:1;this._setOpacity(t);}this._updateClassList();}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const e=this._container.querySelector(pl);e&&e.focus();}_onClose(){this.remove();}_setOpacity(e){this._container&&(this._container.style.opacity=`${e}`),this._content&&(this._content.style.pointerEvents=e?\"auto\":\"none\");}},Marker:cl,Style:bo,LngLat:e.bO,LngLatBounds:e.az,Point:e.P,MercatorCoordinate:e.aa,FreeCameraOptions:Hi,Evented:e.E,config:e.e,prewarm:e.dM,clearPrewarmedResources:e.dN,get accessToken(){return e.e.ACCESS_TOKEN},set accessToken(t){e.e.ACCESS_TOKEN=t;},get baseApiUrl(){return e.e.API_URL},set baseApiUrl(t){e.e.API_URL=t;},get workerCount(){return e.dO.workerCount},set workerCount(t){e.dO.workerCount=t;},get maxParallelImageRequests(){return e.e.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(t){e.e.MAX_PARALLEL_IMAGE_REQUESTS=t;},clearStorage(t){e.dP(t);},get workerUrl(){return e.dQ.workerUrl},set workerUrl(t){e.dQ.workerUrl=t;},get workerClass(){return e.dQ.workerClass},set workerClass(t){e.dQ.workerClass=t;},get workerParams(){return e.dQ.workerParams},set workerParams(t){e.dQ.workerParams=t;},get dracoUrl(){return e.dR()},set dracoUrl(t){e.dS(t);},get meshoptUrl(){return e.dT()},set meshoptUrl(t){e.dU(t);},setNow:e.q.setNow,restoreNow:e.q.restoreNow};return ml}));\n\n//\n// Our custom intro provides a specialized \"define()\" function, called by the\n// AMD modules below, that sets up the worker blob URL and then executes the\n// main module, storing its exported value as 'mapboxgl'\n\n\nvar mapboxgl$1 = mapboxgl;\n\nreturn mapboxgl$1;\n\n}));\n//# sourceMappingURL=mapbox-gl.js.map\n","/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexport var earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: earthRadius / 111325,\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1000,\n kilometres: earthRadius / 1000,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1000,\n millimetres: earthRadius * 1000,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936,\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / earthRadius,\n yards: 1.0936133,\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n hectares: 0.0001,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nexport function feature(geom, properties, options) {\n if (options === void 0) { options = {}; }\n var feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array<any>} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nexport function geometry(type, coordinates, _options) {\n if (_options === void 0) { _options = {}; }\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array<number>} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Point>} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nexport function point(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n var geom = {\n type: \"Point\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array<Array<number>>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Point>} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nexport function points(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<Polygon>} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nexport function polygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<Polygon>} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nexport function polygons(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<LineString>} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nexport function lineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array<Array<Array<number>>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection<LineString>} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nexport function lineStrings(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nexport function featureCollection(features, options) {\n if (options === void 0) { options = {}; }\n var fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\n/**\n * Creates a {@link Feature<MultiLineString>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array<Array<Array<number>>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiLineString>} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nexport function multiLineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<MultiPoint>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array<Array<number>>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPoint>} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nexport function multiPoint(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<MultiPolygon>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array<Array<Array<Array<number>>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<MultiPolygon>} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nexport function multiPolygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature<GeometryCollection>} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array<Geometry>} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array<number>} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature<GeometryCollection>} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nexport function geometryCollection(geometries, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries,\n };\n return feature(geom, properties, options);\n}\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nexport function round(num, precision) {\n if (precision === void 0) { precision = 0; }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nexport function radiansToLength(radians, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nexport function lengthToRadians(distance, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nexport function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nexport function bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nexport function radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return (degrees * 180) / Math.PI;\n}\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nexport function degreesToRadians(degrees) {\n var radians = degrees % 360;\n return (radians * Math.PI) / 180;\n}\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nexport function convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"kilometers\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted area\n */\nexport function convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"meters\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return (area / startFactor) * finalFactor;\n}\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nexport function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nexport function isObject(input) {\n return !!input && input.constructor === Object;\n}\n/**\n * Validate BBox\n *\n * @private\n * @param {Array<number>} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nexport function validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nexport function validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\n","import { feature, lineString, isObject, point } from '@turf/helpers';\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array<number>} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j,\n k,\n l,\n geometry,\n stopG,\n coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === \"FeatureCollection\",\n isFeature = type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[featureIndex].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[geomIndex]\n : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n\n wrapShrink =\n excludeWrapCoord &&\n (geomType === \"Polygon\" || geomType === \"MultiPolygon\")\n ? 1\n : 0;\n\n switch (geomType) {\n case null:\n break;\n case \"Point\":\n if (\n callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case \"LineString\":\n case \"MultiPoint\":\n for (j = 0; j < coords.length; j++) {\n if (\n callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n if (geomType === \"MultiPoint\") multiFeatureIndex++;\n }\n if (geomType === \"LineString\") multiFeatureIndex++;\n break;\n case \"Polygon\":\n case \"MultiLineString\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (\n callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n if (geomType === \"MultiLineString\") multiFeatureIndex++;\n if (geomType === \"Polygon\") geometryIndex++;\n }\n if (geomType === \"Polygon\") multiFeatureIndex++;\n break;\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (\n callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case \"GeometryCollection\":\n for (j = 0; j < geometry.geometries.length; j++)\n if (\n coordEach(geometry.geometries[j], callback, excludeWrapCoord) ===\n false\n )\n return false;\n break;\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array<number>} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(\n geojson,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (coordIndex === 0 && initialValue === undefined)\n previousValue = currentCoord;\n else\n previousValue = callback(\n previousValue,\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n },\n excludeWrapCoord\n );\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case \"FeatureCollection\":\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case \"Feature\":\n callback(geojson.properties, 0);\n break;\n }\n}\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentProperties;\n else\n previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature<any>} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === \"Feature\") {\n callback(geojson, 0);\n } else if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array<Array<number>>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array<number>} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i,\n j,\n g,\n geometry,\n stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === \"FeatureCollection\",\n isFeature = geojson.type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[i].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n featureProperties = isFeatureCollection\n ? geojson.features[i].properties\n : isFeature\n ? geojson.properties\n : {};\n featureBBox = isFeatureCollection\n ? geojson.features[i].bbox\n : isFeature\n ? geojson.bbox\n : undefined;\n featureId = isFeatureCollection\n ? geojson.features[i].id\n : isFeature\n ? geojson.id\n : undefined;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[g]\n : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (\n callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n continue;\n }\n switch (geometry.type) {\n case \"Point\":\n case \"LineString\":\n case \"MultiPoint\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\": {\n if (\n callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (\n callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n }\n break;\n }\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array<number>} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(\n geojson,\n function (\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentGeometry;\n else\n previousValue = callback(\n previousValue,\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = geometry === null ? null : geometry.type;\n switch (type) {\n case null:\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n if (\n callback(\n feature(geometry, properties, { bbox: bbox, id: id }),\n featureIndex,\n 0\n ) === false\n )\n return false;\n return;\n }\n\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case \"MultiPoint\":\n geomType = \"Point\";\n break;\n case \"MultiLineString\":\n geomType = \"LineString\";\n break;\n case \"MultiPolygon\":\n geomType = \"Polygon\";\n break;\n }\n\n for (\n var multiFeatureIndex = 0;\n multiFeatureIndex < geometry.coordinates.length;\n multiFeatureIndex++\n ) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate,\n };\n if (\n callback(feature(geom, properties), featureIndex, multiFeatureIndex) ===\n false\n )\n return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(\n geojson,\n function (currentFeature, featureIndex, multiFeatureIndex) {\n if (\n featureIndex === 0 &&\n multiFeatureIndex === 0 &&\n initialValue === undefined\n )\n previousValue = currentFeature;\n else\n previousValue = callback(\n previousValue,\n currentFeature,\n featureIndex,\n multiFeatureIndex\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature<LineString>} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\") return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (\n coordEach(\n feature,\n function (\n currentCoord,\n coordIndex,\n featureIndexCoord,\n multiPartIndexCoord,\n geometryIndex\n ) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (\n previousCoords === undefined ||\n featureIndex > previousFeatureIndex ||\n multiPartIndexCoord > previousMultiIndex ||\n geometryIndex > prevGeomIndex\n ) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = lineString(\n [previousCoords, currentCoord],\n feature.properties\n );\n if (\n callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false\n )\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false\n )\n return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature<LineString>} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentIndex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(\n geojson,\n function (\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) {\n if (started === false && initialValue === undefined)\n previousValue = currentSegment;\n else\n previousValue = callback(\n previousValue,\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n );\n started = true;\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature<LineString>} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature<LineString|Polygon|MultiLineString|MultiPolygon>} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error(\"geojson is required\");\n\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n switch (type) {\n case \"LineString\":\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false)\n return false;\n break;\n case \"Polygon\":\n for (\n var geometryIndex = 0;\n geometryIndex < coords.length;\n geometryIndex++\n ) {\n if (\n callback(\n lineString(coords[geometryIndex], feature.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n }\n break;\n }\n });\n}\n\n/**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature<LineString>} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature<LineString|Polygon|MultiLineString|MultiPolygon>} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(\n geojson,\n function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentLine;\n else\n previousValue = callback(\n previousValue,\n currentLine,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature<LineString>} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature<LineString<[[10, 10], [50, 30]]>>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature<LineString<[[-10, -10], [-50, -30]]>>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature<LineString<[[-50, -30], [-30, -40]]>>\n */\nfunction findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find SegmentIndex\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return lineString(\n [coords[segmentIndex], coords[segmentIndex + 1]],\n properties,\n options\n );\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[geometryIndex][segmentIndex],\n coords[geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][segmentIndex],\n coords[multiFeatureIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex =\n coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\n coords[multiFeatureIndex][geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\n\n/**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature<Point>} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature<Point<[10, 10]>>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature<Point<[-10, -10]>>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature<Point<[-30, -40]>>\n */\nfunction findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find Coord Index\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n return point(coords, properties, options);\n case \"MultiPoint\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n return point(coords[multiFeatureIndex], properties, options);\n case \"LineString\":\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return point(coords[coordIndex], properties, options);\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[geometryIndex].length + coordIndex;\n return point(coords[geometryIndex][coordIndex], properties, options);\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return point(coords[multiFeatureIndex][coordIndex], properties, options);\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0)\n coordIndex =\n coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return point(\n coords[multiFeatureIndex][geometryIndex][coordIndex],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\n\nexport { coordAll, coordEach, coordReduce, featureEach, featureReduce, findPoint, findSegment, flattenEach, flattenReduce, geomEach, geomReduce, lineEach, lineReduce, propEach, propReduce, segmentEach, segmentReduce };\n","import { isNumber, } from \"@turf/helpers\";\n/**\n * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.\n *\n * @name getCoord\n * @param {Array<number>|Geometry<Point>|Feature<Point>} coord GeoJSON Point or an Array of numbers\n * @returns {Array<number>} coordinates\n * @example\n * var pt = turf.point([10, 10]);\n *\n * var coord = turf.getCoord(pt);\n * //= [10, 10]\n */\nexport function getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" &&\n coord.geometry !== null &&\n coord.geometry.type === \"Point\") {\n return coord.geometry.coordinates;\n }\n if (coord.type === \"Point\") {\n return coord.coordinates;\n }\n }\n if (Array.isArray(coord) &&\n coord.length >= 2 &&\n !Array.isArray(coord[0]) &&\n !Array.isArray(coord[1])) {\n return coord;\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\n/**\n * Unwrap coordinates from a Feature, Geometry Object or an Array\n *\n * @name getCoords\n * @param {Array<any>|Geometry|Feature} coords Feature, Geometry Object or an Array\n * @returns {Array<any>} coordinates\n * @example\n * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);\n *\n * var coords = turf.getCoords(poly);\n * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]\n */\nexport function getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n // Feature\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n }\n else {\n // Geometry\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\"coords must be GeoJSON Feature, Geometry Object or an Array\");\n}\n/**\n * Checks if coordinates contains a number\n *\n * @name containsNumber\n * @param {Array<any>} coordinates GeoJSON Coordinates\n * @returns {boolean} true if Array contains a number\n */\nexport function containsNumber(coordinates) {\n if (coordinates.length > 1 &&\n isNumber(coordinates[0]) &&\n isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\n/**\n * Enforce expectations about types of GeoJSON objects for Turf.\n *\n * @name geojsonType\n * @param {GeoJSON} value any GeoJSON object\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n value.type);\n }\n}\n/**\n * Enforce expectations about types of {@link Feature} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name featureOf\n * @param {Feature} feature a feature with an expected geometry type\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} error if value is not the expected type.\n */\nexport function featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n}\n/**\n * Enforce expectations about types of {@link FeatureCollection} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name collectionOf\n * @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\"Invalid input to \" + name + \", FeatureCollection required\");\n }\n for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {\n var feature = _a[_i];\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n }\n}\n/**\n * Get Geometry from Feature or Geometry Object\n *\n * @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object\n * @returns {Geometry|null} GeoJSON Geometry Object\n * @throws {Error} if geojson is not a Feature or Geometry Object\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getGeom(point)\n * //={\"type\": \"Point\", \"coordinates\": [110, 40]}\n */\nexport function getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\n/**\n * Get GeoJSON object's type, Geometry type is prioritize.\n *\n * @param {GeoJSON} geojson GeoJSON object\n * @param {string} [name=\"geojson\"] name of the variable to display in error message (unused)\n * @returns {string} GeoJSON type\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getType(point)\n * //=\"Point\"\n */\nexport function getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}\n","import { getCoord } from \"@turf/invariant\";\nimport { radiansToLength, degreesToRadians, } from \"@turf/helpers\";\n//http://en.wikipedia.org/wiki/Haversine_formula\n//http://www.movable-type.co.uk/scripts/latlong.html\n/**\n * Calculates the distance between two {@link Point|points} in degrees, radians, miles, or kilometers.\n * This uses the [Haversine formula](http://en.wikipedia.org/wiki/Haversine_formula) to account for global curvature.\n *\n * @name distance\n * @param {Coord | Point} from origin point or coordinate\n * @param {Coord | Point} to destination point or coordinate\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] can be degrees, radians, miles, or kilometers\n * @returns {number} distance between the two points\n * @example\n * var from = turf.point([-75.343, 39.984]);\n * var to = turf.point([-75.534, 39.123]);\n * var options = {units: 'miles'};\n *\n * var distance = turf.distance(from, to, options);\n *\n * //addToMap\n * var addToMap = [from, to];\n * from.properties.distance = distance;\n * to.properties.distance = distance;\n */\nfunction distance(from, to, options) {\n if (options === void 0) { options = {}; }\n var coordinates1 = getCoord(from);\n var coordinates2 = getCoord(to);\n var dLat = degreesToRadians(coordinates2[1] - coordinates1[1]);\n var dLon = degreesToRadians(coordinates2[0] - coordinates1[0]);\n var lat1 = degreesToRadians(coordinates1[1]);\n var lat2 = degreesToRadians(coordinates2[1]);\n var a = Math.pow(Math.sin(dLat / 2), 2) +\n Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2);\n return radiansToLength(2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)), options.units);\n}\nexport default distance;\n","// http://en.wikipedia.org/wiki/Haversine_formula\n// http://www.movable-type.co.uk/scripts/latlong.html\nimport { degreesToRadians, lengthToRadians, point, radiansToDegrees, } from \"@turf/helpers\";\nimport { getCoord } from \"@turf/invariant\";\n/**\n * Takes a {@link Point} and calculates the location of a destination point given a distance in\n * degrees, radians, miles, or kilometers; and bearing in degrees.\n * This uses the [Haversine formula](http://en.wikipedia.org/wiki/Haversine_formula) to account for global curvature.\n *\n * @name destination\n * @param {Coord} origin starting point\n * @param {number} distance distance from the origin point\n * @param {number} bearing ranging from -180 to 180\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] miles, kilometers, degrees, or radians\n * @param {Object} [options.properties={}] Translate properties to Point\n * @returns {Feature<Point>} destination point\n * @example\n * var point = turf.point([-75.343, 39.984]);\n * var distance = 50;\n * var bearing = 90;\n * var options = {units: 'miles'};\n *\n * var destination = turf.destination(point, distance, bearing, options);\n *\n * //addToMap\n * var addToMap = [point, destination]\n * destination.properties['marker-color'] = '#f00';\n * point.properties['marker-color'] = '#0f0';\n */\nexport default function destination(origin, distance, bearing, options) {\n if (options === void 0) { options = {}; }\n // Handle input\n var coordinates1 = getCoord(origin);\n var longitude1 = degreesToRadians(coordinates1[0]);\n var latitude1 = degreesToRadians(coordinates1[1]);\n var bearingRad = degreesToRadians(bearing);\n var radians = lengthToRadians(distance, options.units);\n // Main\n var latitude2 = Math.asin(Math.sin(latitude1) * Math.cos(radians) +\n Math.cos(latitude1) * Math.sin(radians) * Math.cos(bearingRad));\n var longitude2 = longitude1 +\n Math.atan2(Math.sin(bearingRad) * Math.sin(radians) * Math.cos(latitude1), Math.cos(radians) - Math.sin(latitude1) * Math.sin(latitude2));\n var lng = radiansToDegrees(longitude2);\n var lat = radiansToDegrees(latitude2);\n return point([lng, lat], options.properties);\n}\n","import { degreesToRadians, radiansToDegrees } from \"@turf/helpers\";\nimport { getCoord } from \"@turf/invariant\";\n// http://en.wikipedia.org/wiki/Haversine_formula\n// http://www.movable-type.co.uk/scripts/latlong.html\n/**\n * Takes two {@link Point|points} and finds the geographic bearing between them,\n * i.e. the angle measured in degrees from the north line (0 degrees)\n *\n * @name bearing\n * @param {Coord} start starting Point\n * @param {Coord} end ending Point\n * @param {Object} [options={}] Optional parameters\n * @param {boolean} [options.final=false] calculates the final bearing if true\n * @returns {number} bearing in decimal degrees, between -180 and 180 degrees (positive clockwise)\n * @example\n * var point1 = turf.point([-75.343, 39.984]);\n * var point2 = turf.point([-75.534, 39.123]);\n *\n * var bearing = turf.bearing(point1, point2);\n *\n * //addToMap\n * var addToMap = [point1, point2]\n * point1.properties['marker-color'] = '#f00'\n * point2.properties['marker-color'] = '#0f0'\n * point1.properties.bearing = bearing\n */\nexport default function bearing(start, end, options) {\n if (options === void 0) { options = {}; }\n // Reverse calculation\n if (options.final === true) {\n return calculateFinalBearing(start, end);\n }\n var coordinates1 = getCoord(start);\n var coordinates2 = getCoord(end);\n var lon1 = degreesToRadians(coordinates1[0]);\n var lon2 = degreesToRadians(coordinates2[0]);\n var lat1 = degreesToRadians(coordinates1[1]);\n var lat2 = degreesToRadians(coordinates2[1]);\n var a = Math.sin(lon2 - lon1) * Math.cos(lat2);\n var b = Math.cos(lat1) * Math.sin(lat2) -\n Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1);\n return radiansToDegrees(Math.atan2(a, b));\n}\n/**\n * Calculates Final Bearing\n *\n * @private\n * @param {Coord} start starting Point\n * @param {Coord} end ending Point\n * @returns {number} bearing\n */\nfunction calculateFinalBearing(start, end) {\n // Swap start & end\n var bear = bearing(end, start);\n bear = (bear + 180) % 360;\n return bear;\n}\n","import bearing from \"@turf/bearing\";\nimport destination from \"@turf/destination\";\nimport measureDistance from \"@turf/distance\";\nimport { point } from \"@turf/helpers\";\nimport { getGeom } from \"@turf/invariant\";\n/**\n * Takes a {@link LineString} and returns a {@link Point} at a specified distance along the line.\n *\n * @name along\n * @param {Feature<LineString>} line input line\n * @param {number} distance distance along the line\n * @param {Object} [options] Optional parameters\n * @param {string} [options.units=\"kilometers\"] can be degrees, radians, miles, or kilometers\n * @returns {Feature<Point>} Point `distance` `units` along the line\n * @example\n * var line = turf.lineString([[-83, 30], [-84, 36], [-78, 41]]);\n * var options = {units: 'miles'};\n *\n * var along = turf.along(line, 200, options);\n *\n * //addToMap\n * var addToMap = [along, line]\n */\nexport default function along(line, distance, options) {\n if (options === void 0) { options = {}; }\n // Get Coords\n var geom = getGeom(line);\n var coords = geom.coordinates;\n var travelled = 0;\n for (var i = 0; i < coords.length; i++) {\n if (distance >= travelled && i === coords.length - 1) {\n break;\n }\n else if (travelled >= distance) {\n var overshot = distance - travelled;\n if (!overshot) {\n return point(coords[i]);\n }\n else {\n var direction = bearing(coords[i], coords[i - 1]) - 180;\n var interpolated = destination(coords[i], overshot, direction, options);\n return interpolated;\n }\n }\n else {\n travelled += measureDistance(coords[i], coords[i + 1], options);\n }\n }\n return point(coords[coords.length - 1]);\n}\n","import distance from \"@turf/distance\";\nimport { segmentReduce } from \"@turf/meta\";\n/**\n * Takes a {@link GeoJSON} and measures its length in the specified units, {@link (Multi)Point}'s distance are ignored.\n *\n * @name length\n * @param {Feature<LineString|MultiLineString>} geojson GeoJSON to measure\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units=kilometers] can be degrees, radians, miles, or kilometers\n * @returns {number} length of GeoJSON\n * @example\n * var line = turf.lineString([[115, -32], [131, -22], [143, -25], [150, -34]]);\n * var length = turf.length(line, {units: 'miles'});\n *\n * //addToMap\n * var addToMap = [line];\n * line.properties.distance = length;\n */\nexport default function length(geojson, options) {\n if (options === void 0) { options = {}; }\n // Calculate distance from 2-vertex line segments\n return segmentReduce(geojson, function (previousValue, segment) {\n var coords = segment.geometry.coordinates;\n return previousValue + distance(coords[0], coords[1], options);\n }, 0);\n}\n","import { WPGPXMAPS } from '../Utils/Utils';\r\nimport { MapboxStyleDefinition, MapboxStyleSwitcherOptions, MapboxStyleSwitcherControl } from \"mapbox-gl-style-switcher\";\r\nimport mapboxgl, { ControlPosition, GeoJSONSource, IControl, LngLatBounds, Map, Marker } from 'mapbox-gl';\r\nimport * as turf from '@turf/turf';\r\n\r\nimport 'mapbox-gl/dist/mapbox-gl.css';\r\nimport \"mapbox-gl-style-switcher/styles.css\";\r\n\r\nclass AnumationControl implements IControl {\r\n\r\n container: HTMLElement;\r\n\r\n start: number = 0.0;\r\n animationDuration: number = 80000;\r\n cameraAltitude: number = 1000;\r\n\r\n targetRoute: Array<number[]> = [];\r\n cameraRoute: Array<number[]> = [];\r\n\r\n map: Map;\r\n\r\n iconDefault: string = '/wp-content/plugins/wp-gpx-maps/img/map-play-svgrepo-com.svg';\r\n iconStop: string = '/wp-content/plugins/wp-gpx-maps/img/stop-svgrepo-com.svg';\r\n\r\n routeDistance: number = 0.0;\r\n cameraRouteDistance: number = 0.0;\r\n\r\n isPlaying: boolean = false;\r\n\r\n onAdd(map: Map): HTMLElement {\r\n\r\n this.map = map;\r\n\r\n this.container = document.createElement('div');\r\n this.container.className = 'mapboxgl-ctrl mapboxgl-ctrl-group mapboxgl-wp-gpx-maps';\r\n this.container.innerHTML = `<button style='background-image: url(${this.iconDefault});'>&nbsp;</div>`;\r\n this.container.onclick = () => {\r\n // Your custom logic here\r\n\r\n if (this.isPlaying == false) {\r\n this.isPlaying = true;\r\n this._playAnimation();\r\n }\r\n else {\r\n this.isPlaying = false;\r\n }\r\n };\r\n return this.container;\r\n }\r\n\r\n _animationFrame(time) {\r\n\r\n if (this.isPlaying == false) {\r\n this.start = 0.0;\r\n return;\r\n }\r\n\r\n if (!this.start) this.start = time;\r\n // phase determines how far through the animation we are\r\n const phase = (time - this.start) / this.animationDuration;\r\n\r\n // phase is normalized between 0 and 1\r\n // when the animation is finished, reset start to loop the animation\r\n if (phase > 1) {\r\n // wait 1.5 seconds before looping\r\n setTimeout(() => {\r\n this.start = 0.0;\r\n }, 1500);\r\n }\r\n\r\n // use the phase to get a point that is the appropriate distance along the route\r\n // this approach syncs the camera and route positions ensuring they move\r\n // at roughly equal rates even if they don't contain the same number of points\r\n const alongRoute = turf.along(\r\n turf.lineString(this.targetRoute),\r\n this.routeDistance * phase\r\n ).geometry.coordinates;\r\n\r\n const alongCamera = turf.along(\r\n turf.lineString(this.cameraRoute),\r\n this.cameraRouteDistance * phase\r\n ).geometry.coordinates;\r\n\r\n const camera = this.map.getFreeCameraOptions();\r\n\r\n // set the position and altitude of the camera\r\n camera.position = mapboxgl.MercatorCoordinate.fromLngLat(\r\n {\r\n lng: alongCamera[0],\r\n lat: alongCamera[1]\r\n },\r\n this.cameraAltitude\r\n );\r\n\r\n // tell the camera to look at a point along the route\r\n camera.lookAtPoint({\r\n lng: alongRoute[0],\r\n lat: alongRoute[1]\r\n });\r\n\r\n this.map.setFreeCameraOptions(camera);\r\n\r\n window.requestAnimationFrame((time) => this._animationFrame(time));\r\n }\r\n\r\n _stopAnimation() {\r\n\r\n }\r\n\r\n _playAnimation() {\r\n\r\n this.cameraRouteDistance = turf.lineDistance(\r\n turf.lineString(this.cameraRoute)\r\n );\r\n\r\n this.routeDistance = turf.lineDistance(\r\n turf.lineString(this.targetRoute)\r\n );\r\n\r\n window.requestAnimationFrame((time) => this._animationFrame(time));\r\n }\r\n\r\n onRemove(map: Map) {\r\n this.container.remove();\r\n }\r\n\r\n getDefaultPosition?: () => ControlPosition;\r\n _setLanguage?: (language?: string | string[]) => void;\r\n\r\n\r\n}\r\n\r\nexport class MapBoxMapEngine implements MapEngine<Map> {\r\n\r\n map: Map;\r\n Bounds: Array<number[]> = [];\r\n EventSelectChart: null | Function = null;\r\n CurrentLocationMarker: mapboxgl.Marker | null = null;\r\n\r\n animationControl: AnumationControl | null = null;\r\n otherParams: any;\r\n\r\n animateLineOptions: any = {\r\n SpeedFactor: 30, // number of frames per longitude degree\r\n Animation: null, // to store and cancel the animation\r\n StartTime: 0,\r\n Progress: 0, // progress = timestamp - startTime\r\n ResetTime: false // indicator of whether time reset is needed for the animation\r\n }\r\n\r\n init(targetElement: HTMLElement, mapType: string, scrollWheelZoom: boolean, MapBoxApiKey: string | null | undefined, otherParams: any): void {\r\n\r\n this.otherParams = otherParams;\r\n\r\n this.map = new mapboxgl.Map({\r\n container: targetElement,\r\n style: 'mapbox://styles/mapbox/streets-v11',\r\n accessToken: \"pk.eyJ1Ijoic2VjdXJjdWJlbWF4IiwiYSI6ImNsbW94MzRodjE4YjEya3BuM3liZXl6MXYifQ.db3c6nnAcFwFm5jD2NCg6w\", // MapBoxApiKey ?? \r\n center: [0, 0],\r\n zoom: 1,\r\n scrollZoom: scrollWheelZoom\r\n });\r\n\r\n this.animationControl = new AnumationControl();\r\n\r\n this.map.addControl(new mapboxgl.NavigationControl());\r\n this.map.addControl(new mapboxgl.FullscreenControl());\r\n\r\n const styles: MapboxStyleDefinition[] = [\r\n { uri: 'mapbox://styles/mapbox/standard', title: 'Standard' },\r\n { uri: 'mapbox://styles/mapbox/standard-satellite', title: 'Standard Satelite' },\r\n { uri: 'mapbox://styles/mapbox/streets-v12', title: 'Streets' },\r\n { uri: 'mapbox://styles/mapbox/outdoors-v12', title: 'Outdoors' },\r\n { uri: 'mapbox://styles/mapbox/light-v11', title: 'Light' },\r\n { uri: 'mapbox://styles/mapbox/dark-v11', title: 'Dark' },\r\n { uri: 'mapbox://styles/mapbox/satellite-v9', title: 'Satellite' },\r\n { uri: 'mapbox://styles/mapbox/satellite-streets-v12', title: 'Satellite Streets' },\r\n { uri: 'mapbox://styles/mapbox/navigation-day-v1', title: 'Navigation Day' },\r\n { uri: 'mapbox://styles/mapbox/navigation-night-v1', title: 'Navigation Night' }\r\n ];\r\n\r\n // Pass options (optional)\r\n const options: MapboxStyleSwitcherOptions = {\r\n defaultStyle: \"Satellite Streets\",\r\n eventListeners: {\r\n // return true if you want to stop execution\r\n // onOpen: (event: MouseEvent) => boolean;\r\n // onSelect: (event: MouseEvent) => boolean;\r\n // onChange: (event: MouseEvent, style: string) => boolean;\r\n }\r\n };\r\n\r\n this.map.addControl(new MapboxStyleSwitcherControl() as IControl, 'top-left');\r\n this.map.addControl(this.animationControl);\r\n\r\n this.map.on('style.load', async () => {\r\n\r\n if (otherParams.MapBoxFog) {\r\n\r\n // Add daytime fog\r\n this.map.setFog({\r\n 'range': [-1, 2],\r\n 'horizon-blend': 0.3,\r\n 'color': 'white',\r\n 'high-color': '#add8e6',\r\n 'space-color': '#d8f2ff',\r\n 'star-intensity': 0.0\r\n });\r\n\r\n }\r\n\r\n if (otherParams.MapBox3dTerrain) {\r\n\r\n // 3d terrain\r\n this.map.addSource('mapbox-dem', {\r\n 'type': 'raster-dem',\r\n 'url': 'mapbox://mapbox.mapbox-terrain-dem-v1',\r\n 'tileSize': 512,\r\n 'maxzoom': 14\r\n });\r\n\r\n // add the DEM source as a terrain layer with exaggerated height\r\n this.map.setTerrain({ 'source': 'mapbox-dem', 'exaggeration': 1.5 });\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n _addMarker(ll: [number, number], icon: string | null, popup: Function | null): Marker {\r\n\r\n // Create a DOM element for each marker.\r\n const el = document.createElement('div');\r\n const width = 32;\r\n const height = 32;\r\n el.className = 'marker';\r\n el.style.backgroundImage = `url(${icon})`;\r\n el.style.width = `${width}px`;\r\n el.style.height = `${height}px`;\r\n el.style.backgroundSize = '100%';\r\n\r\n el.addEventListener('click', (e) => {\r\n popup?.call(this, e);\r\n });\r\n\r\n return new mapboxgl.Marker(el).setLngLat([ll[1], ll[0]]).addTo(this.map);\r\n\r\n }\r\n\r\n AppPolylines(mapData: Array<[number, number] | null>, colors: string[], currentIcon: string | null, startIcon: string | null, endIcon: string | null): void {\r\n\r\n this.Bounds = mapData.filter(o => o != null);\r\n\r\n this.map.on('style.load', async () => {\r\n\r\n const pointsArray = WPGPXMAPS.Utils.DividePolylinesPoints(mapData);\r\n\r\n const LngLatRute = this.Bounds.map((point) => [point[1], point[0]]);\r\n this.animationControl.cameraRoute = LngLatRute;\r\n this.animationControl.targetRoute = LngLatRute;\r\n\r\n this.map.addSource('route', {\r\n 'type': 'geojson',\r\n 'data': {\r\n 'type': 'FeatureCollection',\r\n 'features': pointsArray.map((points, i) => {\r\n\r\n return ({\r\n 'type': 'Feature',\r\n 'properties': {\r\n color: (i < colors.length ? colors[i] : colors[colors.length - 1])\r\n },\r\n 'geometry': {\r\n 'type': 'LineString',\r\n 'coordinates': points.map((point) => [point[1], point[0]])\r\n }\r\n });\r\n })\r\n\r\n }\r\n });\r\n\r\n this.map.addLayer({\r\n 'id': 'route',\r\n 'type': 'line',\r\n 'source': 'route',\r\n 'layout': {\r\n 'line-join': 'round',\r\n 'line-cap': 'round'\r\n },\r\n 'paint': {\r\n 'line-color': ['get', 'color'],\r\n 'line-width': 3\r\n }\r\n });\r\n\r\n if ('' == currentIcon || null == currentIcon) {\r\n currentIcon = 'https://maps.google.com/mapfiles/kml/pal4/icon25.png';\r\n }\r\n\r\n this.CurrentLocationMarker = this._addMarker(mapData[0], currentIcon, (e) => {\r\n\r\n\r\n });\r\n\r\n\r\n if (startIcon != '') {\r\n\r\n let ll = mapData[0];\r\n\r\n if (ll != null) {\r\n this._addMarker(ll, startIcon, null);\r\n }\r\n\r\n }\r\n\r\n if (endIcon != '' && mapData[mapData.length - 1] != null) {\r\n\r\n let ll = mapData[mapData.length - 1];\r\n\r\n if (ll != null) {\r\n this._addMarker(ll, endIcon, null);\r\n }\r\n\r\n }\r\n\r\n this.CenterMap();\r\n\r\n\r\n if (this.otherParams.MapBoxAnimateOnLoading == '1') {\r\n\r\n this.animateLineOptions.StartTime = performance.now();\r\n this.animateLine();\r\n }\r\n\r\n });\r\n\r\n }\r\n AddWaypoints(waypoints: any, waypointIcon: string | null): void {\r\n //throw new Error('Method not implemented.');\r\n }\r\n MoveMarkerToPosition(LatLon: [number, number], updateChart: boolean): void {\r\n\r\n this.CurrentLocationMarker?.setLngLat([LatLon[1], LatLon[0]]);\r\n\r\n //throw new Error('Method not implemented.');\r\n }\r\n SetCurrentGPSPosition(LatLon: [number, number], currentpositioncon: string, lng: LangTranslation): void {\r\n ///throw new Error('Method not implemented.');\r\n }\r\n CenterMap(): void {\r\n\r\n try {\r\n\r\n if (this.Bounds && this.Bounds.length > 0) {\r\n\r\n let bounds = {\r\n minLat: Number.POSITIVE_INFINITY,\r\n maxLat: Number.NEGATIVE_INFINITY,\r\n minLng: Number.POSITIVE_INFINITY,\r\n maxLng: Number.NEGATIVE_INFINITY\r\n };\r\n\r\n this.Bounds.forEach(coord => {\r\n if (!Array.isArray(coord) || coord.length !== 2) {\r\n throw new Error(\"Each coordinate must be an array with [latitude, longitude].\");\r\n }\r\n\r\n const [lat, lng] = coord;\r\n bounds.minLat = Math.min(bounds.minLat, lat);\r\n bounds.maxLat = Math.max(bounds.maxLat, lat);\r\n bounds.minLng = Math.min(bounds.minLng, lng);\r\n bounds.maxLng = Math.max(bounds.maxLng, lng);\r\n });\r\n\r\n const sw = new mapboxgl.LngLat(bounds.minLng, bounds.minLat);\r\n const ne = new mapboxgl.LngLat(bounds.maxLng, bounds.maxLat);\r\n\r\n this.map?.fitBounds(new mapboxgl.LngLatBounds(sw, ne), { padding: 30, animate: false });\r\n\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n //throw new Error('Method not implemented.'); \r\n }\r\n\r\n AddPhotos(photos: any[]): void {\r\n\r\n const width = 40;\r\n const height = 40;\r\n\r\n for (const photo of photos) {\r\n let _m = this._addMarker([photo.lat, photo.lng], photo.thumbnail, (e) => {\r\n let _selector = `a[data-image-id='${photo.image_id}']`;\r\n let galleryEl = document.querySelector(_selector);\r\n (galleryEl as HTMLAnchorElement)?.click()\r\n });\r\n _m._element.classList.add('wp-gpx-maps-photo-marker');\r\n _m._element.style.width = `${width}px`;\r\n _m._element.style.height = `${height}px`;\r\n //_m.setPopup(new mapboxgl.Popup({ maxWidth: \"900px\"}).setHTML(`<img src='${photo.url}' alt='${photo.name}' />`));\r\n\r\n }\r\n\r\n //new ClusterPhotos(this.map).populate(photos)\r\n }\r\n\r\n // animated in a circle as a sine wave along the map.\r\n animateLine(timestamp: number | null = null) {\r\n\r\n if (timestamp == null) {\r\n // fist call\r\n var geojson = (this.map.getSource('route') as GeoJSONSource)._data;\r\n this.animateLineOptions.ruteJeoJson = geojson;\r\n this.animateLineOptions.ruteCoordinates = (geojson as any).features[0].geometry.coordinates;\r\n (geojson as any).features[0].geometry.coordinates = [];\r\n }\r\n\r\n if (this.animateLineOptions.ResetTime) {\r\n // resume previous progress\r\n this.animateLineOptions.sta = performance.now() - this.animateLineOptions.Progress;\r\n this.animateLineOptions.ResetTime = false;\r\n } else {\r\n this.animateLineOptions.Progress = timestamp - this.animateLineOptions.StartTime;\r\n }\r\n\r\n if (this.animateLineOptions.Progress < 0)\r\n this.animateLineOptions.Progress = 0;\r\n\r\n // restart if it finishes a loop\r\n if (this.animateLineOptions.Progress > this.animateLineOptions.SpeedFactor * 360) {\r\n this.animateLineOptions.startTime = timestamp;\r\n\r\n // stop the animation \r\n return;\r\n\r\n } else {\r\n\r\n let len = this.animateLineOptions.ruteCoordinates.length;\r\n let slice = Math.floor(len * this.animateLineOptions.Progress / (this.animateLineOptions.SpeedFactor * 360));\r\n\r\n this.animateLineOptions.ruteJeoJson.features[0].geometry.coordinates =\r\n this.animateLineOptions.ruteCoordinates.slice(0, slice);\r\n\r\n // then update the map\r\n var s = (this.map.getSource('route') as GeoJSONSource).setData(this.animateLineOptions.ruteJeoJson);\r\n }\r\n // Request the next frame of the animation.\r\n this.animateLineOptions.animation = requestAnimationFrame((time) => this.animateLine(time));\r\n }\r\n\r\n\r\n\r\n}","/*\r\nPlugin Name: WP-GPX-Maps\r\nPlugin URI: http://www.devfarm.it/\r\nDescription: Draws a gpx track with altitude graph\r\nVersion: 1.6.02\r\nAuthor: Bastianon Massimo\r\nAuthor URI: http://www.devfarm.it/\r\n*/\r\n\r\nimport './../../css/admin-style.css';\r\nimport './../../css/bootstrap-table.css';\r\nimport './../../css/wp-gpx-maps-output.css';\r\n\r\nimport { ActiveElement, Chart, ScaleOptions, LinearScale, ChartConfiguration, registerables, ActiveDataPoint } from 'chart.js'\r\nimport { WPGPXMAPS } from './Utils/Utils';\r\n\r\nimport { LeafletMapEngine } from './maps-engines/LeafletMapEngine';\r\n\r\nimport { MapBoxMapEngine } from './maps-engines/MapBoxMapEngine';\r\n\r\nconst wpgpxmaps_FEET_MILES = \"1\";\r\nconst wpgpxmaps_METERS_KILOMETERS = \"2\";\r\nconst wpgpxmaps_METERS_NAUTICALMILES = \"3\";\r\nconst wpgpxmaps_METER_MILES = \"4\";\r\nconst wpgpxmaps_FEET_NAUTICALMILES = \"5\";\r\nconst wpgpxmaps_MINUTES_PER_100METERS = \"6\";\r\nconst wpgpxmaps_KNOTS = \"5\";\r\nconst wpgpxmaps_MINUTES_PER_MILES = \"4\";\r\nconst wpgpxmaps_MINUTES_PER_KM = \"3\";\r\nconst wpgpxmaps_MILES_PER_HOURS = \"2\";\r\nconst wpgpxmaps_KM_PER_HOURS = \"1\";\r\n\r\nexport class WPGPXMaps {\r\n\tprivate params: Params;\r\n\r\n\tpublic map : MapEngine<any>|null = null;\r\n\r\n\tpublic myChart: Chart|null = null;\r\n\r\n\tconstructor(params: Params) {\r\n\t\tthis.params = params;\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tprivate init() {\r\n\t\tlet {\r\n\t\t\ttargetId,\r\n\t\t\tmapType,\r\n\t\t\tmapData,\r\n\t\t\tgraphDist,\r\n\t\t\tgraphEle,\r\n\t\t\tgraphSpeed,\r\n\t\t\tgraphHr,\r\n\t\t\tgraphAtemp,\r\n\t\t\tgraphCad,\r\n\t\t\tgraphGrade,\r\n\t\t\twaypoints,\r\n\t\t\tunit,\r\n\t\t\tunitspeed,\r\n\t\t\tcolor1,\r\n\t\t\tcolor2,\r\n\t\t\tcolor3,\r\n\t\t\tcolor4,\r\n\t\t\tcolor5,\r\n\t\t\tcolor6,\r\n\t\t\tcolor7,\r\n\t\t\tchartFrom1,\r\n\t\t\tchartTo1,\r\n\t\t\tchartFrom2,\r\n\t\t\tchartTo2,\r\n\t\t\tstartIcon,\r\n\t\t\twaypointIcon,\r\n\t\t\tendIcon,\r\n\t\t\tcurrentIcon,\r\n\t\t\tzoomOnScrollWheel,\r\n\t\t\tlangs,\r\n\t\t\tpluginUrl,\r\n\t\t\tusegpsposition,\r\n\t\t\tcurrentpositioncon,\r\n\t\t\tTFApiKey,\r\n\t\t} = this.params;\r\n\r\n\t\tvar _formats: ChartLabels[] = [];\r\n\r\n\t\t/* Unit of measure settings. */\r\n\t\tvar l_s: ChartUom = { suf: '', dec: 0 };\r\n\t\tvar label_x: ChartUom = { suf: '', dec: 0 };\r\n\t\tvar label_y: ChartUom = { suf: '', dec: 0 };\r\n\t\tvar l_grade: ChartUom = { suf: '%', dec: 1 };\r\n\t\tvar l_hr: ChartUom = { suf: '', dec: 0 };\r\n\t\tvar l_cad: ChartUom = { suf: '', dec: 0 };\r\n\r\n\t\tvar el = document.getElementById('wpgpxmaps_' + targetId);\r\n\t\tvar el_map = document.getElementById('map_' + targetId);\r\n\t\tvar el_chart = document.getElementById('chart_' + targetId);\r\n\t\tvar el_report = document.getElementById('report_' + targetId);\r\n\t\tvar el_osm_credits = document.getElementById('wpgpxmaps_' + targetId + '_osm_footer');\r\n\r\n\t\tif (el_map == null)\r\n\t\t\treturn;\r\n\r\n\t\tlet _this = this;\r\n\r\n\t\tif (this.params.MapBoxApiKey && this.params.MapBoxApiKey.length>20)\r\n\t\t{\r\n\t\t\tthis.map = new MapBoxMapEngine();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.map = new LeafletMapEngine();\r\n\t\t}\r\n\r\n\t\t//map.lng = lng;\r\n\t\tthis.map.init(\r\n\t\t\tel_map,\r\n\t\t\tmapType,\r\n\t\t\t('true' == zoomOnScrollWheel),\r\n\t\t\tTFApiKey,\r\n\t\t\tthis.params\r\n\t\t);\r\n\r\n\t\tthis.map.EventSelectChart = function (LatLon: LatLng) {\r\n\r\n\t\t\tif (_this.myChart) {\r\n\t\t\t\tvar l1 = LatLon[0];\r\n\t\t\t\tvar l2 = LatLon[1];\r\n\t\t\t\tvar ci = _this.getClosestIndex(mapData, l1, l2);\r\n\t\t\t\tvar activeElements: any[] = [];\r\n\t\t\t\tvar seriesLen = (_this.myChart as any)._metasets.length;\r\n\t\t\t\tfor (var i = 0; i < seriesLen; i++) {\r\n\t\t\t\t\tactiveElements.push(((_this.myChart as any)._metasets[i] as any).data[ci]);\r\n\t\t\t\t}\r\n\t\t\t\tif (activeElements.length > 0) {\r\n\r\n\t\t\t\t\tlet _active = _this.myChart.tooltip?.getActiveElements();\r\n\t\t\t\t\tif (_active == undefined || _active.length == 0) {\r\n\t\t\t\t\t\t_this.myChart.tooltip?.setActiveElements([{\r\n\t\t\t\t\t\t\tdatasetIndex: 0,\r\n\t\t\t\t\t\t\tindex: ci,\r\n\t\t\t\t\t\t}], {\r\n\t\t\t\t\t\t\tx: activeElements[0].x,\r\n\t\t\t\t\t\t\ty: activeElements[0].y\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t(_this.myChart.tooltip as any).setActiveElements(activeElements);\r\n\t\t\t\t\t//(_this.myChart.tooltip as any).draw();\r\n\t\t\t\t\t_this.myChart.draw();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// var bounds = new google.maps.LatLngBounds();\r\n\r\n\t\tif ('true' == usegpsposition) {\r\n\r\n\t\t\t/* Try HTML5 geolocation. */\r\n\t\t\tif (navigator.geolocation) {\r\n\t\t\t\tnavigator.geolocation.watchPosition(function (position) {\r\n\t\t\t\t\tvar radius = position.coords.accuracy / 2;\r\n\r\n\t\t\t\t\t/* User position. */\r\n\t\t\t\t\tvar pos = [position.coords.latitude, position.coords.longitude];\r\n\r\n\t\t\t\t\tthis.map.SetCurrentGPSPosition([pos[0], pos[1]], currentpositioncon, langs);\r\n\r\n\r\n\t\t\t\t},\r\n\t\t\t\t\tfunction (e) {\r\n\r\n\t\t\t\t\t\t// Some errors.\r\n\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tenableHighAccuracy: false,\r\n\t\t\t\t\t\ttimeout: 5000,\r\n\t\t\t\t\t\tmaximumAge: 0\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/* Print WayPoints. */\r\n\t\tif (waypoints != null && waypoints.length > 0) {\r\n\t\t\tthis.map.AddWaypoints(waypoints, waypointIcon);\r\n\t\t}\r\n\r\n\t\t/* Print Images. */\r\n\r\n\t\tlet nggEl = document.getElementById(\"ngimages_\" + targetId);\r\n\r\n\t\tnggEl?.setAttribute(\"style\", \"display:block;position:absolute;left:-50000px\");\r\n\r\n\t\tvar nggImages = nggEl?.querySelectorAll(\"span\");\r\n\r\n\t\tif (nggImages && nggImages.length > 0) {\r\n\t\t\tvar photos = [];\r\n\r\n\t\t\tfor (var i = 0; i < nggImages.length; i++) {\r\n\r\n\t\t\t\tvar ngg_span = nggImages[i];\r\n\t\t\t\tvar ngg_span_a = ngg_span.children[0];\r\n\r\n\t\t\t\tvar pos = [\r\n\t\t\t\t\tNumber(ngg_span.getAttribute('lat')),\r\n\t\t\t\t\tNumber(ngg_span.getAttribute('lon'))\r\n\t\t\t\t];\r\n\r\n\t\t\t\tthis.map.Bounds.push(pos);\r\n\r\n\t\t\t\tphotos.push({\r\n\t\t\t\t\t'lat': pos[0],\r\n\t\t\t\t\t'lng': pos[1],\r\n\t\t\t\t\t'name': ngg_span_a.children[0].getAttribute('alt'),\r\n\t\t\t\t\t'image_id': ngg_span_a.getAttribute('data-image-id'),\r\n\t\t\t\t\t'url': ngg_span_a.getAttribute('href'),\r\n\t\t\t\t\t'thumbnail': ngg_span_a.children[0].getAttribute('src')\r\n\t\t\t\t});\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif (photos.length > 0) {\r\n\r\n\t\t\t\tthis.map.AddPhotos(photos);\r\n\r\n\t\t\t\t/*\r\n\t\t\t\tvar showHideImagesCustomControl = L.Control.extend({\r\n\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tposition: 'topleft'\r\n\t\t\t\t\t\t//control position - allowed: 'topleft', 'topright', 'bottomleft', 'bottomright'\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t onAdd: function (map) {\r\n\r\n\t\t\t\t\tvar container = document.createElement('img');\r\n\t\t\t\t\tcontainer.class= \"leaflet-bar leaflet-control leaflet-control-custom\"\r\n\t\t\t\t\tcontainer.style.backgroundColor = 'white';\r\n\t\t\t\t\tcontainer.style.width = '30px';\r\n\t\t\t\t\tcontainer.style.height = '30px';\r\n\t\t\t\t\tcontainer.src = pluginUrl + \"/wp-gpx-maps/img/hideImages.png\";\r\n\t\t\t\t\tcontainer.style.cursor = 'pointer';\r\n\t\t\t\t\tcontainer.title = lng.hideImages;\r\n\r\n\t\t\t\t\tcontainer.onclick = function(){\r\n\r\n\t\t\t\t\t\tvar isImagesHidden = (controlUIhi.isImagesHidden == true);\r\n\t\t\t\t\t\tvar mapDiv = map.getDiv();\r\n\t\t\t\t\t\tvar center = map.getCenter();\r\n\r\n\t\t\t\t\t\tif (isImagesHidden)\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfor (var i=0; i<ngImageMarkers.length; i++) {\r\n\t\t\t\t\t\t\t\tngImageMarkers[i].setMap(map);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tcontrolUIhi.src = pluginUrl + \"/wp-gpx-maps/img/hideImages.png\";\r\n\t\t\t\t\t\t\tcontrolUIhi.title = lng.hideImages;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfor (var i=0; i<ngImageMarkers.length; i++) {\r\n\t\t\t\t\t\t\t\tngImageMarkers[i].setMap(null);\r\n\t\t\t}\r\n\t\t\t\t\t\t\tcontrolUIhi.src = pluginUrl + \"/wp-gpx-maps/img/showImages.png\";\r\n\t\t\t\t\t\t\tcontrolUIhi.title = lng.showImages;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcontrolUIhi.isImagesHidden = !isImagesHidden;\r\n\t\t\t\t\t\treturn false;\r\n\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn container;\r\n\t\t\t\t },\r\n\r\n\t\t\t\t});\r\n\r\n\t\t\t\tmap.map.addControl(new showHideImagesCustomControl());\r\n\t\t\t\t*/\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t/*\r\n\r\n\t\t// Nextgen Pro Lightbox FIX\r\n\t\tvar _xx = jQuery(\"#ngimages_\" + targetId + \" .nextgen_pro_lightbox\");\r\n\t\tif (_xx.length > 0)\r\n\t\t{\r\n\r\n\t\t\tvar rnd1 = Math.random().toString(36).substring(7);\r\n\t\t\tvar rnd2 = Math.random().toString(36).substring(7);\r\n\r\n\t\t\t//get first gallery without images\r\n\t\t\tfor (var _temp in galleries) {\r\n\t\t\t\tvar _gal = galleries[_temp];\r\n\r\n\t\t\t\tif (_gal.source == \"random_images\" && _gal.wpgpxmaps != true )\r\n\t\t\t\t{\r\n\r\n\t\t\t\t\t_gal.source == \"galleries\";\r\n\t\t\t\t\t_gal.wpgpxmaps = true;\r\n\t\t\t\t\t_transient_id = _temp.replace(\"gallery_\",\"\")\r\n\t\t\t\t\t_gal[\"entity_ids\"] = [];\r\n\t\t\t\t\t_gal[\"image_ids\"] = [];\r\n\t\t\t\t\t_gal[\"gallery_ids\"] = [96];\r\n\t\t\t\t\tfor (var i=0;i<_xx.length;i++)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar __xx = jQuery(_xx[i]);\r\n\t\t\t\t\t\t__xx.attr(\"data-nplmodal-gallery-id\", _transient_id);\r\n\t\t\t\t\t\t_gal[\"image_ids\"].push(__xx.attr(\"data-image-id\"));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t*/\r\n\r\n\t\t/* Print Track. */\r\n\t\tif (mapData) {\r\n\t\t\tthis.map.AppPolylines(mapData, color1, currentIcon, startIcon, endIcon);\r\n\t\t}\r\n\r\n\t\t/*\r\n\t\tmap.setCenter(bounds.getCenter());\r\n\t\tmap.fitBounds(bounds);\r\n\t\t*/\r\n\r\n\t\tvar contextMap = this.map;\r\n\r\n\t\t// Fix post tabs. */\r\n\t\tlet _tab: HTMLElement | null = null;\r\n\t\tlet _p = el?.parentElement;\r\n\t\twhile (_p != null) {\r\n\t\t\tif (_p.classList.contains(\"wordpress-post-tabs\") && _p.classList.contains(\"tab-pane\")) {\r\n\t\t\t\t_tab = _p;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\t_p = _p.parentElement;\r\n\t\t}\r\n\r\n\t\tif (_tab) {\r\n\t\t\tvar tabResized = false;\r\n\r\n\t\t\tvar FixMapSize = function (e: any) {\r\n\t\t\t\tsetTimeout(function (e: any) {\r\n\r\n\t\t\t\t\t// google.maps.event.trigger(map, 'resize');\r\n\t\t\t\t\tcontextMap.map?.invalidateSize();\r\n\t\t\t\t\tcontextMap.CenterMap();\r\n\t\t\t\t\ttabResized = true;\r\n\t\t\t\t}, 300);\r\n\t\t\t};\r\n\r\n\t\t\tdocument.querySelector(\".wpsm_nav-tabs a\")?.addEventListener(\"click\", FixMapSize, false);\r\n\t\t\t_tab.querySelector(\"div > ul > li > a\")?.addEventListener(\"click\", FixMapSize, false);\r\n\t\t}\r\n\r\n\t\tvar graphh = el_chart?.style.height;\r\n\r\n\t\tif (graphDist && (graphEle || graphSpeed || graphHr || graphAtemp || graphCad) && graphh != '0px') {\r\n\r\n\t\t\tvar valLen = graphDist.length;\r\n\r\n\t\t\tif (wpgpxmaps_FEET_MILES == unit) {\r\n\r\n\t\t\t\t/* feet / miles */\r\n\t\t\t\tlabel_x = { suf: 'mi', dec: 1 };\r\n\t\t\t\tlabel_y = { suf: 'ft', dec: 0 };\r\n\r\n\t\t\t} else if (wpgpxmaps_METERS_KILOMETERS == unit) {\r\n\r\n\t\t\t\t/* meters / kilometers */\r\n\t\t\t\tlabel_x = { suf: 'km', dec: 1 };\r\n\t\t\t\tlabel_y = { suf: 'm', dec: 2 };\r\n\r\n\t\t\t} else if (wpgpxmaps_METERS_NAUTICALMILES == unit) {\r\n\r\n\t\t\t\t/* meters / nautical miles */\r\n\t\t\t\tlabel_x = { suf: 'NM', dec: 1 };\r\n\t\t\t\tlabel_y = { suf: 'm', dec: 0 };\r\n\r\n\t\t\t} else if (wpgpxmaps_METER_MILES == unit) {\r\n\r\n\t\t\t\t/* meters / miles */\r\n\t\t\t\tlabel_x = { suf: 'mi', dec: 1 };\r\n\t\t\t\tlabel_y = { suf: 'm', dec: 0 };\r\n\r\n\t\t\t} else if (wpgpxmaps_FEET_NAUTICALMILES == unit) {\r\n\r\n\t\t\t\t/* feet / nautical miles */\r\n\t\t\t\tlabel_x = { suf: 'NM', dec: 1 };\r\n\t\t\t\tlabel_y = { suf: 'ft', dec: 0 };\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t/* meters / meters */\r\n\t\t\t\tlabel_x = { suf: 'm', dec: 0 };\r\n\t\t\t\tlabel_y = { suf: 'm', dec: 0 };\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar nn = 1111.1;\r\n\t\t\tvar _nn = nn.toLocaleString();\r\n\t\t\tvar _nnLen = _nn.length;\r\n\t\t\tvar decPoint = _nn.substring(_nnLen - 2, _nnLen - 1);\r\n\t\t\tvar thousandsSep = _nn.substring(1, 2);\r\n\r\n\t\t\tif ('1' == decPoint)\r\n\t\t\t\tdecPoint = '.';\r\n\r\n\t\t\tif ('1' == thousandsSep)\r\n\t\t\t\tthousandsSep = '';\r\n\r\n\t\t\t// trik per caricare tutti imoduli di chart.js\r\n\t\t\tChart.register(...registerables);\r\n\r\n\t\t\t/* Define the options. */\r\n\t\t\tvar hoptions: ChartConfiguration = {\r\n\t\t\t\ttype: 'line',\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tdatasets: []\r\n\t\t\t\t},\r\n\t\t\t\t//borderWidth: 1,\r\n\t\t\t\toptions: {\r\n\t\t\t\t\tanimation: {\r\n\r\n\t\t\t\t\t\t// duration: 0,\r\n\t\t\t\t\t\t// general animation time\r\n\t\t\t\t\t},\r\n\t\t\t\t\thover: {\r\n\r\n\t\t\t\t\t\t// animationDuration: 0,\r\n\t\t\t\t\t\t// duration of animations when hovering an item\r\n\t\t\t\t\t},\r\n\t\t\t\t\tinteraction: {\r\n\t\t\t\t\t\tintersect: false,\r\n\t\t\t\t\t\tmode: 'index',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t// responsiveAnimationDuration: 0,\r\n\t\t\t\t\t// animation duration after a resize\r\n\t\t\t\t\t//customLine: {\r\n\t\t\t\t\t//\tcolor: 'gray'\r\n\t\t\t\t\t//},\r\n\t\t\t\t\tscales: {\r\n\t\t\t\t\t\txAxe: {\r\n\t\t\t\t\t\t\ttype: 'linear',\r\n\t\t\t\t\t\t\tmin: 0,\r\n\t\t\t\t\t\t\tmax: graphDist[graphDist.length - 1],\r\n\t\t\t\t\t\t\tticks: {\r\n\r\n\t\t\t\t\t\t\t\t/* Include a dollar sign in the ticks. */\r\n\t\t\t\t\t\t\t\tcallback: function (value, index, values) {\r\n\t\t\t\t\t\t\t\t\treturn parseFloat(value + \"\").toFixed(label_x.dec) + label_x.suf;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tplugins: {\r\n\r\n\t\t\t\t\t\ttooltip: {\r\n\t\t\t\t\t\t\tposition: 'average',\r\n\t\t\t\t\t\t\tmode: 'index',\r\n\t\t\t\t\t\t\tintersect: false,\r\n\t\t\t\t\t\t\tcallbacks: {\r\n\t\t\t\t\t\t\t\ttitle: function (tooltipItems) {\r\n\r\n\t\t\t\t\t\t\t\t\t/* Return value for title: */\r\n\t\t\t\t\t\t\t\t\tvar label_x = _formats[0].label_x;\r\n\t\t\t\t\t\t\t\t\tvar x_pos = tooltipItems[0].element.x as number;\r\n\t\t\t\t\t\t\t\t\tvar x_dec = label_x.dec;\r\n\t\t\t\t\t\t\t\t\tvar x_unit = label_x.suf;\r\n\t\t\t\t\t\t\t\t\treturn x_pos.toFixed(x_dec) + x_unit;\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tlabel: function (tooltipItem) {\r\n\r\n\t\t\t\t\t\t\t\t\t/* Format list values: */\r\n\t\t\t\t\t\t\t\t\tvar label = tooltipItem.label || '';\r\n\t\t\t\t\t\t\t\t\tvar label_y = _formats[tooltipItem.datasetIndex].label_y;\r\n\t\t\t\t\t\t\t\t\tvar y_dec = label_y.dec;\r\n\t\t\t\t\t\t\t\t\tvar y_unit = label_y.suf;\r\n\t\t\t\t\t\t\t\t\tvar y_pos = tooltipItem.element.y as number;\r\n\t\t\t\t\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\t\t\t\t\tlabel += ': ';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tlabel += y_pos.toFixed(y_dec) + y_unit;\r\n\t\t\t\t\t\t\t\t\treturn label;\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tfooter: function (tooltipItem: any) {\r\n\r\n\t\t\t\t\t\t\t\t\t/* Move the point in map. */\r\n\t\t\t\t\t\t\t\t\tvar i = tooltipItem[0].dataIndex;\r\n\t\t\t\t\t\t\t\t\tvar point = WPGPXMAPS.Utils.GetItemFromArray(mapData, i);\r\n\t\t\t\t\t\t\t\t\tif (point)\r\n\t\t\t\t\t\t\t\t\t\tcontextMap.MoveMarkerToPosition(point, false);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t/*\r\n\t\t\t\t\t\t\tdecimation: {\r\n\t\t\t\t\t\t\t\tbeforeEvent: function (chart, args, options) {\r\n\t\t\t\t\t\t\t\t\tif ((args.event.type === 'mousemove' && args.event.x)\r\n\t\t\t\t\t\t\t\t\t\t&& (args.event.x >= chart.chartArea.left)\r\n\t\t\t\t\t\t\t\t\t\t&& (args.event.x <= chart.chartArea.right)\r\n\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\tchart.options.customLine.x = args.event.x;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tafterDraw: function (chart, args, opt) {\r\n\t\t\t\t\t\t\t\t\tvar ctx = chart.ctx;\r\n\t\t\t\t\t\t\t\t\tvar chartArea = chart.chartArea;\r\n\t\t\t\t\t\t\t\t\tvar x = chart.options.customLine.x;\r\n\t\t\t\t\t\t\t\t\tif (!isNaN(x)) {\r\n\t\t\t\t\t\t\t\t\t\tctx.save();\r\n\t\t\t\t\t\t\t\t\t\tctx.strokeStyle = chart.options.customLine.color;\r\n\t\t\t\t\t\t\t\t\t\tctx.moveTo(chart.options.customLine.x, chartArea.bottom);\r\n\t\t\t\t\t\t\t\t\t\tctx.lineTo(chart.options.customLine.x, chartArea.top);\r\n\t\t\t\t\t\t\t\t\t\tctx.stroke();\r\n\t\t\t\t\t\t\t\t\t\tctx.restore();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t\t*/\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\r\n\t\t\t\t//labels: graphDist\r\n\t\t\t};\r\n\r\n\t\t\tlet yAxeCount = 1;\r\n\r\n\t\t\tif (graphEle && graphEle.length > 0) {\r\n\t\t\t\tvar myData = this.mergeArrayForChart(graphDist, graphEle);\r\n\r\n\t\t\t\tlet _min: number, _max: number\r\n\r\n\t\t\t\tif (chartFrom1 != '') {\r\n\r\n\t\t\t\t\t_min = parseFloat(chartFrom1);\r\n\t\t\t\t\t//yaxe.startOnTick = false;\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t_min = myData.Min;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (chartTo1 != '') {\r\n\r\n\t\t\t\t\t_max = parseFloat(chartTo1);\r\n\t\t\t\t\t//yaxe.endOnTick = false;\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t_max = myData.Max;\r\n\t\t\t\t}\r\n\t\t\t\tvar _id = 'yaxis' + yAxeCount++;\r\n\r\n\t\t\t\tvar yaxe: ScaleOptions = {\r\n\t\t\t\t\ttype: 'linear',\r\n\t\t\t\t\tmax: _max,\r\n\t\t\t\t\tmin: _min,\r\n\t\t\t\t\tticks: {\r\n\t\t\t\t\t\tcallback(tickValue, index, ticks) {\r\n\t\t\t\t\t\t\treturn parseFloat(tickValue + \"\").toFixed(label_y.dec) + label_y.suf;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\r\n\t\t\t\t(hoptions.options?.scales as any)[_id] = yaxe;\r\n\t\t\t\t_formats.push({ \"label_x\": label_x, \"label_y\": label_y });\r\n\t\t\t\thoptions.data.datasets.push(this.wpgpxmapsGetDataset(langs.altitude, myData.Items, color2, _id));\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif (graphSpeed && graphSpeed.length > 0) {\r\n\r\n\r\n\t\t\t\tif (wpgpxmaps_MINUTES_PER_100METERS == unitspeed) {\r\n\r\n\t\t\t\t\t/* min/100 meters */\r\n\t\t\t\t\tl_s = { suf: 'min/100m', dec: 2 };\r\n\r\n\t\t\t\t} else if (wpgpxmaps_KNOTS == unitspeed) {\r\n\r\n\t\t\t\t\t/* knots */\r\n\t\t\t\t\tl_s = { suf: 'knots', dec: 2 };\r\n\r\n\t\t\t\t} else if (wpgpxmaps_MINUTES_PER_MILES == unitspeed) {\r\n\r\n\t\t\t\t\t/* min/miles */\r\n\t\t\t\t\tl_s = { suf: 'min/mi', dec: 2 };\r\n\r\n\t\t\t\t} else if (wpgpxmaps_MINUTES_PER_KM == unitspeed) {\r\n\r\n\t\t\t\t\t/* min/km */\r\n\t\t\t\t\tl_s = { suf: 'min/km', dec: 2 };\r\n\r\n\t\t\t\t} else if (wpgpxmaps_MILES_PER_HOURS == unitspeed) {\r\n\r\n\t\t\t\t\t/* miles/h */\r\n\t\t\t\t\tl_s = { suf: 'mi/h', dec: 0 };\r\n\r\n\t\t\t\t} else if (wpgpxmaps_KM_PER_HOURS == unitspeed) {\r\n\r\n\t\t\t\t\t/* km/h */\r\n\t\t\t\t\tl_s = { suf: 'km/h', dec: 0 };\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t/* dafault m/s */\r\n\t\t\t\t\tl_s = { suf: 'm/s', dec: 0 };\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar myData = this.mergeArrayForChart(graphDist, graphSpeed);\r\n\t\t\t\tlet yaxe: ScaleOptions = {\r\n\t\t\t\t\ttype: 'linear',\r\n\t\t\t\t\tticks: {\r\n\r\n\t\t\t\t\t\t/* Include a dollar sign in the ticks. */\r\n\t\t\t\t\t\tcallback(tickValue, index, ticks) {\r\n\t\t\t\t\t\t\treturn parseFloat(tickValue + \"\").toFixed(l_s.dec) + l_s.suf;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tposition: 'right',\r\n\t\t\t\t\t//scalePositionLeft: false,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (chartFrom2 != '') {\r\n\r\n\t\t\t\t\tyaxe.min = parseFloat(chartFrom2);\r\n\t\t\t\t\t//yaxe.startOnTick = false;\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tyaxe.min = myData.Min;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (chartTo2 != '') {\r\n\r\n\t\t\t\t\tyaxe.max = parseFloat(chartTo2);\r\n\t\t\t\t\t//yaxe.endOnTick = false;\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tyaxe.max = myData.Max;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_formats.push( { label_x: _formats[0].label_x , label_y : l_s});\r\n\r\n\t\t\t\tvar _id = 'yaxis' + yAxeCount++;\r\n\t\t\t\t(hoptions.options?.scales as any)[_id] = yaxe;\r\n\r\n\t\t\t\thoptions.data.datasets.push(this.wpgpxmapsGetDataset(langs.speed, myData.Items, color3, _id));\r\n\t\t\t}\r\n\r\n\t\t\tif (graphHr && graphHr.length > 0) {\r\n\t\t\t\tvar myData = this.mergeArrayForChart(graphDist, graphHr);\r\n\t\t\t\tvar yaxe: ScaleOptions = {\r\n\t\t\t\t\ttype: 'linear',\r\n\t\t\t\t\tticks: {\r\n\r\n\t\t\t\t\t\t/* Include a dollar sign in the ticks. */\r\n\t\t\t\t\t\tcallback(tickValue, index, ticks) {\r\n\t\t\t\t\t\t\treturn parseFloat(tickValue + \"\").toFixed(l_hr.dec) + l_hr.suf;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tposition: 'right',\r\n\t\t\t\t\t//scalePositionLeft: false,\r\n\t\t\t\t};\r\n\t\t\t\tvar _id = 'yaxis' + yAxeCount++;\r\n\t\t\t\t(hoptions.options?.scales as any)[_id] = yaxe;\r\n\t\t\t\thoptions.data.datasets.push(this.wpgpxmapsGetDataset(langs.heartRate, myData.Items, color4, _id));\r\n\t\t\t\t_formats.push( { label_x: _formats[0].label_x , label_y : l_hr});\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif (graphAtemp && graphAtemp.length > 0) {\r\n\t\t\t\tvar myData = this.mergeArrayForChart(graphDist, graphAtemp);\r\n\t\t\t\tvar yaxe: ScaleOptions = {\r\n\t\t\t\t\ttype: 'linear',\r\n\t\t\t\t\tticks: {\r\n\r\n\t\t\t\t\t\t/* Include a dollar sign in the ticks. */\r\n\t\t\t\t\t\tcallback(tickValue, index, ticks) {\r\n\t\t\t\t\t\t\treturn parseFloat(tickValue + \"\").toFixed(1) + \"°C\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tposition: 'right',\r\n\t\t\t\t\t//scalePositionLeft: false,\r\n\t\t\t\t};\r\n\t\t\t\tvar _id = 'yaxis' + yAxeCount++;\r\n\t\t\t\t(hoptions.options?.scales as any)[_id] = yaxe;\r\n\t\t\t\thoptions.data.datasets.push(this.wpgpxmapsGetDataset(langs.atemp, myData.Items, color7, _id));\r\n\t\t\t\t_formats.push( { label_x: _formats[0].label_x , label_y : { suf: '°C', dec: 1 }});\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif (graphCad && graphCad.length > 0) {\r\n\r\n\t\t\t\tvar myData = this.mergeArrayForChart(graphDist, graphCad, true);\r\n\t\t\t\tvar yaxe: ScaleOptions = {\r\n\t\t\t\t\ttype: 'linear',\r\n\t\t\t\t\tticks: {\r\n\r\n\t\t\t\t\t\t// Include a dollar sign in the ticks.\r\n\t\t\t\t\t\tcallback(tickValue, index, ticks) {\r\n\t\t\t\t\t\t\treturn parseFloat(tickValue + \"\").toFixed(l_cad.dec) + l_cad.suf;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tposition: 'right',\r\n\t\t\t\t\t//scalePositionLeft: false,\r\n\t\t\t\t};\r\n\r\n\t\t\t\tvar _id = 'yaxis' + yAxeCount++;\r\n\t\t\t\t(hoptions.options?.scales as any)[_id] = yaxe;\r\n\t\t\t\t\t\t\t\thoptions.data.datasets.push(this.wpgpxmapsGetDataset(langs.cadence, myData.Items, color5, _id));\r\n\t\t\t\t\t\t\t\t_formats.push( { label_x: _formats[0].label_x , label_y : l_cad});\r\n\r\n\t\t\t}\r\n\r\n\t\t\tif (graphGrade && graphGrade.length > 0) {\r\n\r\n\t\t\t\tvar myData = this.mergeArrayForChart(graphDist, graphGrade);\r\n\t\t\t\tvar yaxe : ScaleOptions = {\r\n\t\t\t\t\ttype: 'linear',\r\n\t\t\t\t\tticks: {\r\n\r\n\t\t\t\t\t\t// Include a dollar sign in the ticks.\r\n\t\t\t\t\t\tcallback: function (value, index, values) {\r\n\t\t\t\t\t\t\treturn parseFloat(value+\"\").toFixed(l_grade.dec) + l_grade.suf;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tposition: 'right',\r\n\t\t\t\t\t//scalePositionLeft: false,\r\n\r\n\t\t\t\t};\r\n\r\n\t\t\t\t_formats.push( { label_x: _formats[0].label_x , label_y : l_grade});\r\n\r\n\t\t\t\tvar _id = 'yaxis' + yAxeCount++;\r\n\t\t\t\t(hoptions.options?.scales as any)[_id] = yaxe;\r\n\t\t\t\thoptions.data.datasets.push(this.wpgpxmapsGetDataset(langs.grade, myData.Items, color6, _id));\r\n\t\t\t}\r\n\r\n\t\t\tvar ctx = (document.getElementById('myChart_' + targetId) as HTMLCanvasElement)?.getContext('2d');\r\n\t\t\tif (ctx)\r\n\t\t\t\tthis.myChart = new Chart(ctx, hoptions);\r\n\r\n\t\t} else {\r\n\t\t\tel_chart?.style.setProperty(\"display\", \"none\");\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\r\n\t};\r\n\r\n\tprivate mergeArrayForChart(distArr: any[], dataArr: any[], setZerosAsNull?: boolean) {\r\n\t\tconst l = distArr.length;\r\n\t\tconst items = new Array(l);\r\n\t\tlet min = 10000;\r\n\t\tlet max = -10000;\r\n\r\n\t\tfor (let i = 0; i < l; i++) {\r\n\t\t\tif (distArr[i] != null) {\r\n\t\t\t\tlet _item = dataArr[i];\r\n\r\n\t\t\t\tif (setZerosAsNull === true && _item === 0) {\r\n\t\t\t\t\t_item = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\titems[i] = {\r\n\t\t\t\t\tx: distArr[i],\r\n\t\t\t\t\ty: _item\r\n\t\t\t\t};\r\n\t\t\t\tif (_item > max) max = _item;\r\n\t\t\t\tif (_item < min) min = _item;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tItems: items,\r\n\t\t\tMin: min,\r\n\t\t\tMax: max\r\n\t\t};\r\n\t}\r\n\r\n\tprivate wpgpxmapsGetDataset(name: string, data: any[], color: string, id: string) {\r\n\t\treturn {\r\n\t\t\tlabel: name,\r\n\t\t\tdata: data,\r\n\t\t\tborderColor: color,\r\n\t\t\tbackgroundColor: this.hexToRgbA(color, 0.3),\r\n\t\t\tpointRadius: 0,\r\n\t\t\tborderWidth: 1,\r\n\t\t\tpointHoverRadius: 1,\r\n\t\t\tyAxisID: id\r\n\t\t};\r\n\t}\r\n\r\n\tprivate hexToRgbA(hex: string, a: number) {\r\n\t\tlet c: any;\r\n\t\tif (/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)) {\r\n\t\t\tc = hex.substring(1).split('');\r\n\t\t\tif (c.length == 3) {\r\n\t\t\t\tc = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n\t\t\t}\r\n\t\t\tc = '0x' + c.join('');\r\n\t\t\treturn 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',' + a + ')';\r\n\t\t}\r\n\t\tthrow new Error('Bad Hex');\r\n\t}\r\n\r\n\tprivate getItemFromArray(arr: any[], index: number) {\r\n\t\ttry {\r\n\t\t\treturn arr[index];\r\n\t\t} catch (e) {\r\n\t\t\treturn [0, 0];\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getClosestIndex(points: any[], lat: number, lon: number) {\r\n\t\tlet dd = 10000;\r\n\t\tlet ii = 0;\r\n\t\tfor (let i = 0; i < points.length; i++) {\r\n\t\t\tif (points[i] === null) continue;\r\n\r\n\t\t\tconst d = this.wpgpxmapsDist(points[i][0], points[i][1], lat, lon);\r\n\t\t\tif (d < dd) {\r\n\t\t\t\tii = i;\r\n\t\t\t\tdd = d;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn ii;\r\n\t}\r\n\r\n\tprivate getClosestImage(lat: number, lon: number, targetId: string) {\r\n\t\tlet dd = 10000;\r\n\t\tlet img;\r\n\t\tconst divImages = document.getElementById(\"ngimages_\" + targetId);\r\n\t\tif (divImages == null)\r\n\t\t\treturn;\r\n\t\tconst img_spans = divImages.getElementsByTagName(\"span\");\r\n\t\tfor (let i = 0; i < img_spans.length; i++) {\r\n\t\t\tlet imageLat = img_spans[i].getAttribute('lat');\r\n\t\t\tlet imageLon = img_spans[i].getAttribute('lon');\r\n\r\n\t\t\tif (imageLat == null || imageLon == null)\r\n\t\t\t\treturn;\r\n\r\n\t\t\timageLat = imageLat.replace(\",\", \".\");\r\n\t\t\timageLon = imageLon.replace(\",\", \".\");\r\n\r\n\t\t\tconst d = this.wpgpxmapsDist(parseFloat(imageLat), parseFloat(imageLon), lat, lon);\r\n\t\t\tif (d < dd) {\r\n\t\t\t\timg = img_spans[i];\r\n\t\t\t\tdd = d;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn img;\r\n\t}\r\n\r\n\tprivate isNumeric(input: string) {\r\n\t\tconst RE = /^-{0,1}\\d*\\.{0,1}\\d+$/;\r\n\t\treturn RE.test(input);\r\n\t}\r\n\r\n\tprivate wpgpxmapsDist(lat1: number, lon1: number, lat2: number, lon2: number) {\r\n\t\tconst dLat = (lat2 - lat1);\r\n\t\tconst dLon = (lon2 - lon1);\r\n\t\treturn Math.sqrt(dLat * dLat + dLon * dLon);\r\n\t}\r\n\r\n}"],"names":["round","v","lim","l","h","p2b","n2b","b2n","n2p","map$1","hex","h1","b","h2","eq","isShort","hexParse","str","len","ret","alpha","a","f","hexString","HUE_RE","hsl2rgbn","s","n","k","hsv2rgbn","hwb2rgbn","w","rgb","i","hueValue","r","g","d","max","rgb2hsl","min","calln","c","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","m","p1","p2","rotate","deg","hslString","map","names$1","unpack","unpacked","keys","tkeys","j","ok","nk","names","nameParse","RGB_RE","rgbParse","rgbString","to","from","interpolate","rgb1","rgb2","t","modHSL","ratio","tmp","clone","proto","fromObject","input","functionParse","Color","type","obj","color","weight","c1","c2","w2","p","w1","val","noop","uid","id","isNullOrUndef","value","isArray","isObject","isNumberFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","toDimension","callback","fn","args","thisArg","each","loopable","reverse","_elementsEqual","a0","a1","ilen","v0","v1","source","target","klen","isValidKey","key","_merger","options","tval","sval","merge","sources","merger","current","mergeIf","_mergerIf","keyResolvers","o","_splitKey","parts","part","_getKeyResolver","resolveObjectKey","_capitalize","defined","isFunction","setsEqual","item","_isClickEvent","e","PI","TAU","PITAU","INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","almostEquals","x","y","epsilon","niceNum","range","roundedRange","niceRange","fraction","_factorize","result","sqrt","isNumber","almostWhole","rounded","_setMinAndMaxByKey","array","property","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","start","end","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","table","cmp","index","hi","lo","mid","_lookupByKey","last","ti","_rlookupByKey","_filterBetween","values","arrayEvents","listenArrayEvents","listener","method","base","res","object","unlistenArrayEvents","stub","listeners","_arrayUnique","items","set","requestAnimFrame","throttled","argsToUse","ticking","debounce","delay","timeout","_toLeftRightCenter","align","_alignStartEnd","_textX","left","right","rtl","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","count","iScale","_parsed","axis","minDefined","maxDefined","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","changed","atEdge","elasticIn","elasticOut","effects","isPatternOrGradient","getHoverColor","numbers","colors","applyAnimationsDefaults","defaults","name","applyLayoutsDefaults","intlCache","getNumberFormat","locale","cacheKey","formatter","formatNumber","num","formatters","tickValue","ticks","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","remain","Ticks","applyScaleDefaults","_ctx","overrides","descriptors","getScope$1","node","root","scope","Defaults","_descriptors","_appliers","context","ctx","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","appliers","apply","toFontString","font","_measureText","data","gc","longest","string","textWidth","_longestText","arrayOfThings","cache","jlen","thing","nestedThing","gcLen","_alignPixel","chart","pixel","width","devicePixelRatio","halfWidth","clearCanvas","canvas","drawPoint","drawPointLegend","xOffset","yOffset","size","cornerRadius","xOffsetW","yOffsetW","style","rotation","radius","rad","_isPointInArea","point","area","margin","clipArea","unclipArea","_steppedLineTo","previous","flip","mode","midpoint","_bezierCurveTo","setRenderOpts","opts","decorateText","line","metrics","top","bottom","yDecoration","drawBackdrop","oldColor","renderText","text","lines","stroke","addRoundedRectPath","rect","LINE_HEIGHT","FONT_STYLE","toLineHeight","matches","numberOrZero","_readValueToProps","props","objProps","read","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","resolve","inputs","info","cacheable","_addGrace","minmax","grace","beginAtZero","change","keepZero","add","createContext","parentContext","_createResolver","scopes","prefixes","rootScopes","getTarget","finalRootScopes","_resolve","_cached","_resolveWithPrefixes","getKeysFromAllScopes","storage","_attachContext","proxy","subProxy","descriptorDefaults","receiver","_resolveWithContext","_scriptable","_indexable","_allKeys","readKey","prefix","needsSubResolver","_proxy","_context","_subProxy","_resolveScriptable","_resolveArray","getValue","_stack","createSubResolver","isIndexable","arr","resolver","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","parsed","EPSILON","getPoint","getValueAxis","indexAxis","splineCurve","firstPoint","middlePoint","afterPoint","next","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","monotoneCompute","valueAxis","pointBefore","iPixel","vPixel","splineCurveMonotone","slopeDelta","capControlPoint","pt","capBezierPoints","inArea","inAreaPrev","inAreaNext","_updateBezierControlPoints","loop","controlPoints","prev","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","getStyle","el","positions","getPositionedStyle","styles","suffix","pos","useOffsetPos","getCanvasPosition","touches","offsetX","offsetY","box","getRelativePosition","event","currentDevicePixelRatio","borderBox","paddings","borders","height","getContainerSize","maxWidth","maxHeight","container","containerStyle","containerBorder","containerPadding","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","supportsEventListenerOptions","passiveSupported","readUsedSize","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","getRightToLeftAdapter","rectX","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","overrideTextDirection","direction","original","restoreTextDirection","propertyFn","normalizeSegment","getSegment","segment","bounds","startBound","endBound","between","normalize","_boundSegment","compare","inside","subStart","prevValue","startIsBefore","endIsBefore","shouldStart","shouldStop","_boundSegments","segments","sub","findStartAndEnd","spanGaps","solidSegments","cur","_computeSegments","segmentOptions","splitByStyles","completeLoop","doSplitByStyles","chartContext","baseStyle","readStyle","datasetIndex","prevStyle","addStyle","st","dir","styleChanged","replacer","Animator","anims","date","callbacks","numSteps","remaining","draw","charts","cb","acc","animator","transparent","interpolators","factor","c0","Animation","cfg","currentValue","elapsed","duration","promises","rej","resolved","Animations","config","animationOptions","animatedProps","option","newOptions","resolveTargetOptions","animations","awaitAll","running","animation","properties","anim","scaleClip","scale","allowedOverflow","defaultClip","toClip","getSortedDatasetIndices","filterVisible","metasets","applyStack","stack","dsIndex","singleMode","otherValue","found","convertObjectDataToArray","vScale","iAxisKey","vAxisKey","adata","isStacked","stacked","getStackKey","indexScale","valueScale","getUserBounds","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","positive","updateStacks","controller","iAxis","vAxis","itemStacks","visualValues","getFirstScaleId","scales","createDatasetContext","createDataContext","clearStacks","isDirectUpdateMode","cloneIfNotShared","cached","shared","createStack","canStack","DatasetController","dataset","chooseId","xid","yid","rid","iid","vid","scaleID","_data","resetNewElements","stackChanged","oldStacked","scopeKeys","_stacked","sorted","isNotInOrderComparedToPrev","labels","singleScale","xAxisKey","yAxisKey","parsedValue","otherScale","otherMin","otherMax","_skip","elements","active","drawActiveElementsOnTop","elementType","sharing","transition","sharedOptions","firstOpts","previouslySharedOptions","includeOptions","arg1","arg2","numMeta","numData","move","removed","newCount","__publicField","getAllScaleValues","visibleMetas","computeMinSampleSize","curr","updateMinAndPrev","computeFitCategoryTraits","ruler","stackCount","thickness","computeFlexCategoryTraits","pixels","percent","parseFloatBar","entry","startValue","endValue","barStart","barEnd","parseValue","parseArrayOrPrimitive","isFloatBar","custom","barSign","actualBase","borderProps","setBorderSkipped","edge","parseEdge","swap","startEnd","orig","v2","setInflateAmount","inflateAmount","BarController","bars","reset","horizontal","vpixels","ipixels","dataIndex","currentParsed","iScaleValue","skipNull","barThickness","baseValue","minBarLength","floating","length","head","startPixel","endPixel","halfGrid","maxBarThickness","center","stackIndex","rects","BubbleController","getRatioAndOffset","circumference","cutout","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","DoughnutController","getter","chartArea","arcs","spacing","maxSize","chartWeight","maxRadius","outerRadius","innerRadius","radiusLength","animationOpts","centerX","centerY","animateScale","arc","metaData","total","ringWeightOffset","pointStyle","label","legendItem","legend","LineController","_dataset","maxGapLength","directUpdate","pointsCount","prevParsed","nullData","border","lastPoint","PolarAreaController","minSize","datasetStartAngle","defaultAngle","PieController","RadarController","pointPosition","ScatterController","showLine","controllers","abstract","DateAdapterBase","members","adapters","binarySearch","metaset","intersect","_sorted","lookupMethod","evaluateInteractionItems","position","handler","getDistanceMetricForAxis","useX","useY","deltaX","deltaY","getIntersectItems","useFinalPosition","includeInvisible","getNearestRadialItems","evaluationFunc","getNearestCartesianItems","distanceMetric","minDistance","inRange","distance","getNearestItems","getAxisItems","rangeMethod","intersectsItem","Interaction","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","wrapBoxes","boxes","layoutBoxes","stackWeight","buildStacks","layouts","wrap","setLayoutDims","params","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","buildLayoutBoxes","centerHorizontal","centerVertical","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","newWidth","newHeight","widthChanged","heightChanged","handleMaxPadding","updatePos","getMargins","marginForPositions","fitBoxes","refitBoxes","refit","same","other","setBoxDims","placeBoxes","userPadding","layoutItem","minPadding","padding","availableWidth","availableHeight","verticalBoxes","horizontalBoxes","visibleVerticalBoxCount","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","isNullOrEmpty","initCanvas","renderHeight","renderWidth","displayWidth","displayHeight","eventListenerOptions","addListener","removeListener","fromNativeEvent","nodeListContains","nodeList","createAttachObserver","observer","entries","trigger","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","resize","listenDevicePixelRatioChanges","unlistenDevicePixelRatioChanges","createResizeObserver","releaseObserver","createProxyAndListen","DomPlatform","initial","proxies","_detectPlatform","Element$1","_a","final","autoSkip","tickOpts","determinedMaxTicks","determineMaxTicks","ticksLimit","majorIndices","getMajorIndices","numMajorIndices","first","newTicks","skipMajors","calculateSpacing","avgMajorSpacing","skip","offset","tickLength","maxScale","maxChart","evenMajorSpacing","getEvenSpacing","factors","majorStart","majorEnd","diff","reverseAlign","offsetFromEdge","getTicksLimit","ticksLength","maxTicksLimit","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","garbageCollect","caches","getTickMarkLength","getTitleHeight","createScaleContext","createTickContext","tick","titleAlign","titleArgs","titleX","titleY","positionAxisID","Scale","Element","raw","_userMin","_userMax","_suggestedMin","_suggestedMax","metas","sampleSize","samplingEnabled","reversePixels","numTicks","minRotation","maxRotation","labelRotation","tickWidth","maxLabelDiagonal","labelSizes","maxLabelWidth","maxLabelHeight","titleOpts","gridOpts","display","isHorizontal","titleHeight","widest","highest","tickPadding","angleRadians","cos","sin","labelHeight","labelWidth","isRotated","labelsBelowTicks","offsetLeft","offsetRight","paddingLeft","paddingRight","paddingTop","paddingBottom","widths","heights","widestLabelSize","highestLabelSize","tickFont","fontString","lineHeight","nestedLabel","valueAt","idx","decimal","optionTicks","rot","grid","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","limit","step","optsAtIndex","optsAtIndexBorder","lineWidth","lineColor","borderDash","borderDashOffset","tickColor","tickBorderDash","tickBorderDashOffset","crossAlign","mirror","tickAndPadding","hTickAndPadding","textAlign","lineCount","textOffset","textBaseline","halfCount","strokeColor","strokeWidth","tickTextAlign","backdrop","labelPadding","backgroundColor","drawLine","lastLineWidth","renderTextOptions","title","tz","gz","bz","axisID","fontSize","TypedRegistry","override","parentScope","isIChartComponent","registerDefaults","itemDefaults","routeDefaults","routes","propertyParts","sourceName","sourceScope","Registry","typedRegistry","arg","reg","itemReg","registry","component","camelMethod","PluginService","hook","filter","descriptor","plugin","all","plugins","allPlugins","createDescriptors","previousDescriptors","localIds","getOpts","pluginOpts","getIndexAxis","datasetDefaults","getAxisFromDefaultScaleID","getDefaultScaleIDFromAxis","idMatchesAxis","axisFromPosition","determineAxis","scaleOptions","getAxisFromDataset","retrieveAxisFromDatasets","boundDs","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","scaleConf","defaultId","defaultScaleOptions","defaultID","initOptions","initData","initConfig","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","datasetType","mainScope","resetCache","_scopeCache","keyLists","subPrefixes","getResolver","needContext","subResolver","resolverCache","hasFunction","isScriptable","scriptable","indexable","version","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onAnimationProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","determineLastEvent","lastEvent","inChartArea","isClick","getSizeForArea","field","getDatasetArea","Chart","invalidatePlugins","userConfig","initialCanvas","existingChart","maintainAspectRatio","_aspectRatio","newSize","newRatio","scalesOptions","axisOptions","scaleOpts","updated","isRadial","scaleType","scaleClass","hasUpdated","datasets","newControllers","ControllerClass","datasetElementType","dataElementType","animsDisabled","_active","_lastEvent","existingEvents","newEvents","_hiddenIndices","changes","_dataChanges","datasetCount","makeSet","changeSet","noArea","layers","clip","useClip","visible","platform","_add","_remove","detached","attached","enabled","activeElements","lastActive","pluginId","replay","hoverOptions","deactivated","activated","eventFilter","clipArc","pixelMargin","angleMargin","toRadiusCorners","parseBorderRadius$1","angleDelta","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","rThetaToXY","theta","pathArc","circular","innerR","spacingOffset","noSpacingInnerRadius","noSpacingOuterRadius","avNogSpacingRadius","adjustedAngle","beta","angleOffset","outerStart","outerEnd","innerStart","innerEnd","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","outerMidAdjustedAngle","pCenter","p4","innerMidAdjustedAngle","p8","outerStartX","outerStartY","outerEndX","outerEndY","drawArc","fullCircles","drawBorder","borderWidth","borderJoinStyle","inner","ArcElement","chartX","chartY","rAdjust","_circumference","nonZeroBetween","betweenAngles","withinRadius","halfAngle","halfRadius","fix","radiusOffset","setStyle","lineTo","getLineMethod","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","fastPathSegment","avgX","countX","prevX","lastY","pointIndex","drawX","truncX","_getSegmentMethod","_getInterpolationMethod","strokePathWithCache","path","strokePathDirect","segmentMethod","usePath2D","LineElement","_interpolate","interpolated","inRange$1","PointElement","mouseX","mouseY","getBarBounds","bar","half","skipOrLimit","parseBorderWidth","maxW","maxH","parseBorderRadius","enableBorderRadius","maxR","enableBorder","boundingRects","skipX","skipY","hasRadius","addNormalRectPath","inflateRect","amount","refRect","BarElement","borderColor","outer","addRectPath","BORDER_COLORS","BACKGROUND_COLORS","getBorderColor","getBackgroundColor","colorizeDefaultDataset","colorizeDoughnutDataset","colorizePolarAreaDataset","getColorizer","containsColorsDefinitions","containsColorsDefinition","containsDefaultColorsDefenitions","plugin_colors","_args","chartOptions","containsColorDefenition","colorizer","lttbDecimation","samples","decimated","bucketWidth","sampledIndex","endIndex","maxAreaPoint","maxArea","nextA","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","pointAx","pointAy","minMaxDecimation","minIndex","maxIndex","startIndex","xMin","dx","lastIndex","intermediateIndex1","intermediateIndex2","cleanDecimatedDataset","cleanDecimatedData","getStartAndCountOfVisiblePointsSimplified","plugin_decimation","xAxis","threshold","_segments","tpoints","_findSegmentEnd","_getBounds","targetSegments","tgt","subBounds","fillSources","fillSource","_getEdge","_pointsFromSegments","boundary","linePoints","_createBoundaryLine","_loop","_shouldApplyFill","_resolveTarget","propagate","fill","visited","_decodeFill","parseFillOption","decodeTargetIndex","firstCh","_getTargetPixel","_getTargetValue","fillOption","_buildStackLine","sourcePoints","linesBelow","getLinesBelow","addPointsBelow","below","sourcePoint","postponed","findPoint","pointValue","firstValue","lastValue","simpleArc","_getTarget","getLineByIndex","computeBoundary","computeCircularBoundary","computeLinearBoundary","_drawfill","lineOpts","above","doFill","clipVertical","clipY","lineLoop","src","notShape","clipBounds","interpolatedLineTo","targetLoop","interpolatedPoint","getBoxSize","labelOpts","boxHeight","boxWidth","itemsEqual","Legend","legendItems","labelFont","itemHeight","hitboxes","lineWidths","totalHeight","row","_itemHeight","columnSizes","heightLimit","totalWidth","currentColWidth","currentColHeight","col","calculateItemSize","rtlHelper","hitbox","defaultColor","halfFontSize","cursor","drawLegendBox","drawOptions","yBoxTop","xBoxLeft","borderRadius","fillText","realX","fontLineHeight","calculateLegendItemHeight","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","isListened","hoveredItem","sameItem","calculateItemWidth","calculateItemHeight","legendItemText","plugin_legend","ci","usePointStyle","useBorderRadius","Title","textSize","fontOpts","createTitle","plugin_title","titleBlock","plugin_subtitle","positioners","xSet","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getTooltipSize","tooltip","body","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","bodyLineHeight","widthPadding","maxLineWidth","determineYAlign","doesNotFitWithAlign","xAlign","caret","determineXAlign","yAlign","chartWidth","determineAlignment","alignX","alignY","paddingAndSize","getBackgroundPoint","alignment","caretSize","caretPadding","topLeft","topRight","bottomLeft","bottomRight","getAlignedX","getBeforeAfterBodyLines","createTooltipContext","tooltipItems","overrideCallbacks","defaultCallbacks","labelCount","tooltipItem","invokeCallbackWithFallback","Tooltip","beforeTitle","afterTitle","bodyItems","scoped","beforeFooter","afterFooter","labelColors","labelPointStyles","labelTextColors","positionAndSize","backgroundPoint","tooltipPoint","caretPosition","ptX","ptY","x3","y3","titleSpacing","labelColor","labelPointStyle","colorX","rtlColorX","yOffSet","colorY","outerX","innerX","bodySpacing","bodyAlign","displayColors","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","tooltipSize","animX","animY","opacity","hasTooltipContent","positionChanged","caretX","caretY","plugin_tooltip","addIfString","addedLabels","findOrAddLabel","_getLabelForValue","CategoryScale","added","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","unit","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","decimalPlaces","relativeLabelSize","LinearScaleBase","setMin","setMax","minSign","maxSign","stepSize","numericGeneratorOptions","LinearScale","log10Floor","changeExponent","isMajor","tickVal","steps","rangeExp","rangeStep","startExp","generateTicks","minExp","exp","significand","lastTick","LogarithmicScale","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","limits","valueCount","pointLabelOpts","additionalAngle","plFont","hLimits","vLimits","updateLimits","buildPointLabelItems","createPointLabelItem","itemOpts","outerDistance","extra","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","isNotOverlapped","centerPointLabels","drawPointLabelBox","backdropColor","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawPointLabels","pointLabels","pathRadiusLine","drawRadiusLine","gridLineOpts","createPointLabelContext","RadialLinearScale","leftMovement","rightMovement","topMovement","bottomMovement","angleMultiplier","scalingFactor","scaledDistance","pointLabel","distanceFromCenter","angleLines","INTERVALS","UNITS","sorter","parse","adapter","parser","isoWeekday","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","addTick","time","timestamps","timestamp","setMajorTicks","majorUnit","major","ticksFromTimestamps","TimeScale","_applyBounds","timeOpts","minor","weekday","hasWeekday","format","formats","fmt","minorFormat","majorFormat","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","displayFormats","exampleLabel","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","registerables","WPGPXMAPS","mapData","lastCut","_len","global","factory","exports","this","extend","dest","create$2","F","bind","slice","lastId","stamp","throttle","lock","wrapperFn","later","wrapNum","includeMax","falseFn","formatNum","pow","trim","splitWords","setOptions","getParamString","existingUrl","uppercase","templateRe","template","indexOf","emptyImageUrl","getPrefixed","lastTime","timeoutDefer","timeToCall","requestFn","cancelFn","immediate","cancelAnimFrame","Util","Class","NewClass","parentProto","checkDeprecatedMixinEvents","parentOptions","init","includes","Events","types","removeAll","_once","newListener","_fn","Evented","Point","trunc","toPoint","Bounds","min2","max2","toBounds","xIntersects","yIntersects","xOverlaps","yOverlaps","bufferRatio","heightBuffer","widthBuffer","LatLngBounds","corner1","corner2","latlngs","sw","ne","sw2","ne2","LatLng","toLatLng","toLatLngBounds","latIntersects","lngIntersects","latOverlaps","lngOverlaps","maxMargin","lat","lng","alt","Earth","sizeInMeters","latAccuracy","lngAccuracy","CRS","latlng","zoom","projectedPoint","untransformedPoint","newCenter","latShift","lngShift","newSw","newNe","latlng1","latlng2","lat1","lat2","sinDLat","sinDLon","earthRadius","SphericalMercator","Transformation","toTransformation","EPSG3857","EPSG900913","svgCreate","pointsToPath","rings","closed","len2","Browser","ie","ielt9","webkit","userAgentContains","android","android23","webkitVer","androidStock","opera","chrome","gecko","safari","phantom","opera12","win","ie3d","webkit3d","gecko3d","any3d","mobile","mobileWebkit","mobileWebkit3d","msPointer","pointer","touchNative","touch","mobileOpera","mobileGecko","retina","passiveEvents","supportsPassiveOption","canvas$1","svg$1","inlineSvg","div","vml","shape","mac","linux","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","pEvent","handle","_onPointerStart","_handlePointer","_pointers","_pointerDocListener","addPointerListener","_addPointerDocListener","removePointerListener","_globalPointerDown","_globalPointerMove","_globalPointerUp","preventDefault","makeDblclick","newEvent","addDoubleTapListener","detail","simDblclick","getPropagationPath","now","removeDoubleTapListener","handlers","TRANSFORM","testProp","TRANSITION","TRANSITION_END","get","css","create$1","tagName","className","remove","empty","toFront","toBack","hasClass","getClass","addClass","classes","setClass","removeClass","setOpacity","_setOpacityIE","filterName","setTransform","setPosition","getPosition","disableTextSelection","enableTextSelection","_userSelect","on","off","userSelectProperty","disableImageDrag","enableImageDrag","_outlineElement","_outlineStyle","preventOutline","restoreOutline","getSizedParentNode","getScale","DomUtil","addOne","eventsKey","batchRemove","removeOne","filterFn","mouseSubst","originalHandler","isExternalTarget","stopPropagation","disableScrollPropagation","disableClickPropagation","stop","ev","getMousePosition","wheelPxFactor","getWheelDelta","related","DomEvent","PosAnimation","newPos","easeLinearity","progress","Map","moved","viewHalf","containerPoint","centerOffset","paddingTL","paddingBR","paddingOffset","swPoint","nePoint","targetCenter","targetZoom","startZoom","w0","u1","rho","rho2","s1","s2","t1","b1","sq","log","sinh","cosh","tanh","r0","u","easeOut","S","frame","oldZoom","pixelCenter","pixelPoint","pixelBounds","paddedBounds","paddedSize","oldSize","oldCenter","onResponse","onError","error","message","HandlerClass","pane","nw","se","boundsSize","snap","scalex","scaley","topLeftPoint","toZoom","fromZoom","crs","layerPoint","panes","noMoveStart","loading","zoomChanged","supressEvent","onOff","targets","isHover","dragging","canvasTargets","synth","filtered","isMarker","pixelOrigin","latLngBounds","centerPoint","viewBounds","newBounds","pxBounds","maxBounds","projectedMaxBounds","minOffset","maxOffset","dy","transform","z","startAnim","noUpdate","createMap","Control","corner","control","corners","createCorner","vSide","hSide","Layers","layerA","layerB","nameA","nameB","baseLayers","overlays","layer","acceptableHeight","collapsed","section","link","overlay","baseLayersPresent","overlaysPresent","baseLayersCount","checked","radioHtml","radioFragment","holder","addedLayers","removedLayers","that","Zoom","zoomName","html","maxMeters","meters","maxFeet","maxMiles","miles","feet","pow10","ukrainianFlag","Attribution","attribs","prefixAndAttribs","attribution","Handler","Mixin","START","Draggable","dragStartTarget","sizedParent","mouseevent","noInertia","fireDragend","clipPolygon","clippedPoints","edges","_getBitCode","_getEdgeIntersection","polygonCenter","isFlat","centroidLatLng","areaBounds","centroid","latlngCenter","coords","latSum","lngSum","PolyUtil","simplify","tolerance","sqTolerance","_reducePoints","_simplifyDP","pointToSegmentDistance","_sqClosestPointOnSegment","closestPointOnSegment","ArrayConstructor","markers","_simplifyDPStep","newPoints","maxSqDist","sqDist","reducedPoints","_sqDist","_lastCode","clipSegment","useLastCode","codeA","codeB","codeOut","newCode","code","dot","_flat","polylineCenter","halfDist","segDist","dist","LineUtil","LonLat","Mercator","con","ts","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","targetEl","events","minZoom","maxZoom","oldZoomSpan","LayerGroup","layerId","methodName","zIndex","layerGroup","FeatureGroup","featureGroup","Icon","oldIcon","img","sizeOption","anchor","icon","IconDefault","strip","re","match","MarkerDrag","marker","speed","iconPos","origin","panBounds","movement","shadow","Marker","oldLatLng","classToAdd","addIcon","newShadow","addShadow","opt","draggable","iconOpts","Path","CircleMarker","r2","circleMarker","Circle","legacyOptions","latR","lngR","circle","Polyline","minPoint","closest","jLen","flat","projectedBounds","ring","polyline","Polygon","clipped","polygon","GeoJSON","geojson","features","feature","geometryToLayer","asFeature","geometry","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","geoLayer","featureLayer","pointToLayerFn","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","multi","holes","isGeometryCollection","jsons","json","geoJSON","geoJson","ImageOverlay","url","styleOpts","wasElementSupplied","image","errorUrl","imageOverlay","VideoOverlay","sourceElements","videoOverlay","video","SVGOverlay","svgOverlay","DivOverlay","content","OverlayClass","old","Popup","wrapper","closeButton","scrolledClass","marginBottom","containerHeight","containerWidth","layerPos","containerPos","popup","subX","subY","tooltipWidth","tooltipHeight","DivIcon","bgPos","divIcon","GridLayer","tileZoom","edgeZIndex","nextFrame","willPrune","tile","fade","level","z2","coords2","animating","noPrune","tileZoomChanged","translate","tileSize","mapZoom","halfSize","tileRange","tileCenter","queue","noPruneRange","fragment","tileBounds","nwPoint","sePoint","bp","tilePos","err","newCoords","gridLayer","TileLayer","noRedraw","done","invertedY","zoomReverse","zoomOffset","tilePoint","tileLayer","TileLayerWMS","wmsParams","realRetina","projectionKey","bbox","tileLayerWMS","Renderer","currentCenterPoint","topLeftOffset","Canvas","order","dashArray","dashValue","clickedLayer","candidateHoveredLayer","vmlCreate","vmlMixin","create","SVG","svg","renderer","Rectangle","rectangle","BoxZoom","DoubleClickZoom","Drag","pxCenter","pxWorldCenter","worldWidth","newX1","newX2","newX","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","Keyboard","docEl","panDelta","codes","zoomDelta","newLatLng","ScrollWheelZoom","d2","d3","d4","tapHoldDelay","TapHold","cancelClickPrevent","simulatedEvent","TouchZoom","moveFn","oldL","module","require$$0","leaflet","nativeAPI","methodMap","baseList","methodList","eventNameMap","fullscreenAPI","reject","onFullScreenEntered","returnPromise","onFullScreenExit","eventName","MarkerClusterGroup","animate","visibleLayer","currentZoom","layersArray","skipLayerAddEvent","fg","npg","chunked","chunkInterval","chunkProgress","originalArray","started","process","otherMarker","needsClustering","layersArray2","needsRemoving","thisNeedsRemoving","anArray","showMarker","vMarker","gridUnclustered","isPopupOpen","dragStart","removeFromDistanceGrid","dontUpdateMap","gridClusters","cluster","oel","childCount","spiderfyOnMaxZoom","showCoverageOnHover","zoomToBoundsOnClick","spiderfyOnEveryZoom","bottomCluster","radiusFn","markerPoint","newCluster","lastParent","maxLat","group","output","previousZoomLevel","newZoomLevel","startPos","me","MarkerCluster","storageArray","ignoreDraggedMarker","fitBoundsOptions","childClusters","boundsZoom","newClusters","new1","isNotificationFromChild","child","totalCount","childLatLng","cm","mapMinZoom","zoomLevel","nm","previousBounds","exceptBounds","boundsToApplyTo","zoomLevelToStart","zoomLevelToStop","runAtEveryLevel","runAtBottomLevel","backup","cellSize","cell","objectPoint","closestDistSq","coord","cpt","bl","vY","vX","baseLine","latLngs","maxD","maxPt","convexHullBaseLines","minLat","maxLng","minLng","maxLatPt","minLatPt","maxLngPt","minLngPt","minPt","ch","childMarkers","zoomDetails","centerPt","legLength","angleStep","spiderfyDistanceMultiplier","separation","lengthFactor","legOptions","leg","thisLayerLatLng","thisLayerPos","finalLegOpacity","legPath","nonAnimatable","stillThereChildCount","directlyRefreshClusters","LeafletMapEngine","targetElement","mapType","scrollWheelZoom","ThunderforestApiKey","otherParams","L","fsControl","hasThunderforestApiKey","baseMaps","overlayMaps","currentIcon","startIcon","endIcon","CurrentPositionMarker","pointsArray","ll","endMarker","currentpositioncon","waypoints","waypointIcon","wpt","lon","cnt","LatLon","updateChart","southWest","northEast","photos","photo","MapboxStyleSwitcherControl","defaultStyle","styleElement","srcElement","elms","MapboxStyleSwitcherControl_1","worker","mapboxgl","define","_","chunk","workerBundleString","sharedChunk","M","A","I","P","E","T","B","V","C","D","R","O","N","U","q","$","G","Y","X","Z","H","W","K","J","Q","tt","et","rt","nt","it","at","ot","lt","ut","ct","ht","ft","dt","mt","yt","gt","xt","vt","bt","_t","wt","Mt","At","St","It","Pt","zt","Et","kt","Tt","Bt","Vt","Ct","Dt","Lt","Rt","Ft","Ot","Nt","Ut","jt","qt","$t","Gt","Yt","Xt","Wt","Ht","Kt","Qt","Zt","Jt","te","ee","ae","oe","le","ue","ce","he","pe","fe","de","ye","ge","xe","ve","be","_e","we","Me","Ae","Se","Ie","Pe","ze","Ee","ke","Te","Be","Ve","Ce","De","Le","Re","Fe","Oe","Ne","Ue","je","qe","$e","Ge","Ye","Xe","Ze","He","We","Ke","Je","Qe","tr","er","rr","nr","ir","ar","sr","or","lr","ur","cr","hr","pr","fr","dr","mr","yr","Rn","gr","xr","vr","_r","br","wr","Mr","Ar","Sr","Ir","Pr","zr","Er","kr","Tr","Br","Vr","Cr","Dr","Lr","Rr","Fr","Or","Nr","Ur","jr","qr","$r","Gr","Zr","Xr","Yr","Hr","Wr","Kr","Jr","Qr","tn","en","rn","nn","an","sn","ln","un","cn","hn","pn","dn","mn","yn","gn","xn","vn","bn","_n","wn","Mn","An","Sn","In","Pn","zn","En","kn","Tn","Bn","Vn","Cn","Dn","Ln","Fn","On","Nn","Un","jn","qn","$n","Gn","Yn","Xn","Zn","Hn","Wn","Kn","Jn","Qn","ei","ri","ni","ii","ai","si","oi","li","ui","pi","fi","di","mi","yi","gi","xi","vi","bi","_i","wi","Mi","Ai","Si","Ii","Pi","zi","Ei","ki","Ti","Bi","Vi","Ci","Di","Li","Ri","Fi","Oi","Ni","Ui","ji","Yi","Gi","$i","Xi","qi","Zi","Hi","Wi","Ki","Ji","Qi","ea","ta","ra","na","ia","aa","sa","oa","la","ua","ca","ha","pa","ya","da","ma","ga","xa","va","ba","wa","Ma","Aa","Sa","Ia","Pa","za","Ea","ka","Ta","Ba","Va","Ca","Da","Ra","La","Fa","Ua","Oa","Na","ja","qa","$a","Ga","Ya","Xa","Za","Ha","Wa","ns","Qa","Ja","Ka","rs","es","is","os","as","ss","ls","us","cs","hs","ps","fs","ds","ms","ys","gs","xs","vs","bs","_s","ws","Ms","As","Ss","Is","Ps","zs","Es","ks","Ts","Bs","Vs","Cs","Ds","Ls","Rs","Fs","Os","Ns","Us","js","qs","$s","Gs","Ys","Xs","Zs","Hs","Ws","Ks","Js","Qs","eo","ro","no","io","ao","so","oo","uo","co","ho","po","fo","mo","yo","go","xo","vo","bo","_o","wo","Mo","Ao","So","Io","Po","zo","Eo","ko","To","Bo","Vo","Co","Do","Lo","Ro","Fo","Oo","jo","Go","No","Uo","qo","$o","Yo","Xo","Zo","Ho","Wo","Ko","Jo","Qo","rl","nl","il","al","sl","ol","ul","cl","hl","pl","fl","dl","ml","yl","gl","xl","vl","_l","wl","Ml","Al","Sl","Il","Pl","zl","El","kl","Tl","Bl","Vl","jl","Rl","Cl","Ol","Dl","Ul","Ll","Fl","Nl","ql","$l","Gl","Yl","Xl","Zl","Hl","Wl","Kl","Jl","Ql","tu","eu","ru","au","nu","iu","su","ou","lu","uu","cu","hu","pu","fu","du","mu","yu","gu","xu","vu","bu","_u","wu","Mu","Au","Eu","zu","Su","Iu","Pu","Fu","ku","Tu","Bu","Vu","Cu","Du","Lu","Ru","Ou","Nu","Uu","ju","qu","$u","Gu","Yu","Xu","Wu","Zu","Hu","Ku","Ju","Qu","tc","ec","rc","nc","ic","ac","sc","oc","lc","uc","cc","hc","pc","Mc","vc","bc","dc","Vc","Pc","Cc","fc","Ic","wc","yc","mc","xc","Ac","zc","Tc","Sc","Bc","_c","kc","Ec","Dc","Lc","Rc","Fc","Oc","Nc","Uc","jc","qc","$c","Gc","Yc","Xc","Zc","Hc","Wc","Kc","Jc","Qc","th","eh","rh","nh","ih","ah","sh","oh","uh","hh","ph","fh","dh","mh","yh","gh","xh","vh","bh","_h","wh","Mh","Ah","Sh","Ih","Ph","zh","Eh","kh","Th","Bh","Vh","Ch","Dh","Lh","Rh","Fh","Oh","Nh","Uh","jh","qh","$h","Gh","Yh","Xh","Zh","Hh","Wh","ep","rp","Kh","sp","np","Qh","Jh","ip","op","ap","lp","up","cp","hp","pp","fp","dp","mp","yp","gp","xp","vp","_p","wp","Mp","Ap","Sp","Ip","Pp","zp","Ep","kp","Tp","Bp","Vp","Cp","Dp","Lp","Rp","Fp","Op","Np","Up","jp","qp","$p","Gp","Yp","Xp","Zp","Hp","Wp","Kp","Jp","Qp","tf","ef","rf","nf","af","sf","of","lf","uf","cf","hf","pf","ff","df","mf","yf","gf","xf","vf","bf","wf","_f","Af","Mf","Pf","If","zf","kf","Ef","Sf","Tf","Bf","Vf","Cf","Df","Lf","Rf","Ff","Of","Nf","Uf","jf","qf","$f","Gf","Yf","Xf","Zf","Hf","Wf","Kf","Jf","Qf","td","ed","nd","rd","ad","sd","od","ld","ud","cd","hd","pd","fd","gd","vd","xd","md","dd","yd","bd","_d","wd","Md","Ad","Sd","Id","Pd","zd","Ed","kd","Td","Bd","Vd","Cd","Dd","Ld","Rd","Fd","Od","Nd","Ud","jd","qd","$d","Gd","Yd","Xd","Zd","Hd","Wd","Kd","Jd","Qd","tm","em","rm","im","am","sm","om","lm","um","hm","pm","fm","dm","mm","ym","gm","xm","vm","bm","_m","wm","Mm","Am","Sm","Im","Pm","zm","Em","km","Bm","Vm","Dm","Tm","Cm","Lm","Rm","Fm","Om","Nm","Um","jm","qm","$m","Gm","Ym","Xm","Zm","Hm","Wm","Km","Jm","Qm","ty","ey","ry","ny","iy","ay","sy","oy","ly","uy","cy","hy","py","fy","my","yy","gy","vy","xy","by","_y","wy","My","Ay","Sy","Iy","Py","zy","Ey","ky","Ty","By","Vy","Cy","Dy","Ly","Ry","Fy","Oy","Ny","Uy","jy","Gy","qy","$y","Qy","Yy","eg","ig","ag","sg","Xy","Zy","Ky","Hy","Wy","Jy","tg","rg","ng","og","lg","ug","cg","hg","pg","vg","gg","xg","bg","dg","mg","yg","_g","wg","Mg","Ag","Sg","Ig","Pg","zg","kg","Eg","Tg","Bg","Vg","Cg","Dg","Ng","Lg","Rg","Fg","Og","Ug","jg","qg","$g","Gg","Yg","Xg","Zg","Hg","Wg","Kg","Jg","Qg","tx","ex","rx","nx","ix","ax","sx","ox","lx","ux","cx","hx","px","fx","mx","yx","gx","xx","vx","bx","_x","wx","Mx","Ax","Sx","Ix","Px","zx","Ex","kx","Tx","Bx","Vx","Cx","Dx","Lx","Rx","Fx","Ox","Nx","Xx","Ux","jx","qx","$x","Gx","Yx","Zx","Hx","Wx","Kx","Jx","Qx","tv","rv","nv","iv","av","sv","ov","lv","uv","hv","cv","pv","fv","dv","xv","mv","yv","gv","mapboxgl$1","geom","feat","coordinates","lineString","radiansToLength","units","lengthToRadians","radiansToDegrees","degreesToRadians","coordEach","excludeWrapCoord","stopG","geometryMaybeCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","geomEach","featureProperties","featureBBox","featureId","flattenEach","coordinate","segmentEach","segmentIndex","previousCoords","previousFeatureIndex","previousMultiIndex","prevGeomIndex","currentCoord","featureIndexCoord","multiPartIndexCoord","currentSegment","segmentReduce","initialValue","previousValue","getCoord","getGeom","coordinates1","coordinates2","dLat","dLon","destination","bearing","longitude1","latitude1","bearingRad","latitude2","longitude2","calculateFinalBearing","lon1","lon2","bear","along","travelled","overshot","measureDistance","AnumationControl","phase","alongRoute","turf.along","turf.lineString","alongCamera","camera","turf.lineDistance","MapBoxMapEngine","MapBoxApiKey","LngLatRute","_selector","galleryEl","wpgpxmaps_FEET_MILES","wpgpxmaps_METERS_KILOMETERS","wpgpxmaps_METERS_NAUTICALMILES","wpgpxmaps_METER_MILES","wpgpxmaps_FEET_NAUTICALMILES","wpgpxmaps_MINUTES_PER_100METERS","wpgpxmaps_KNOTS","wpgpxmaps_MINUTES_PER_MILES","wpgpxmaps_MINUTES_PER_KM","wpgpxmaps_MILES_PER_HOURS","wpgpxmaps_KM_PER_HOURS","WPGPXMaps","targetId","graphDist","graphEle","graphSpeed","graphHr","graphAtemp","graphCad","graphGrade","unitspeed","color1","color2","color3","color4","color5","color6","color7","chartFrom1","chartTo1","chartFrom2","chartTo2","zoomOnScrollWheel","langs","pluginUrl","usegpsposition","TFApiKey","_formats","l_s","label_x","label_y","l_grade","l_hr","l_cad","el_map","el_chart","_this","seriesLen","_b","nggEl","nggImages","ngg_span","ngg_span_a","contextMap","_tab","FixMapSize","graphh","_nn","_nnLen","hoptions","x_pos","x_dec","x_unit","y_dec","y_unit","y_pos","yAxeCount","myData","_min","_max","_id","yaxe","distArr","dataArr","setZerosAsNull","_item","divImages","img_spans","imageLat","imageLon"],"mappings":"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AA08C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAiyD,GAAE,aAAYA,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA80C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAsrD,GAAE,eAAcA,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAwlH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAk1O,GAAE,oBAAmBA,GAAG;AAAA;AAAA;AAAA;AAAA,IAA2G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2KAAokE,GAAE,sBAAqBA,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAm2D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA+8J,GAAE,cAAaA,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAA0qB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAye,GAAE,2BAA0BA,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAo5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAuvE,GAAE,kBAAiBA,GAAG;AAAA;AAAA;AAAA,sDAAs7B,mRAAmR,GAAE,WAAUA,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAo2C;AAAA;AAAA;AAAA;AAAA;AAAA,EAAoP,GAAE,MAAKA,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA04I;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA6kN,GAAE,aAAYA,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAs+H;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","x_google_ignoreList":[0,1,2,4,5,6,8,9,10,11,12,13,14,15,16,17]}