From d65fba134d50609543c1d1ef0dc07db9891913ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donny/=EA=B0=95=EB=8F=99=EC=9C=A4?= Date: Thu, 6 Oct 2022 11:46:22 +0900 Subject: [PATCH] fix(es/minifier): Fix infection analysis of sequential inliner (#6053) **Description:** This PR fixes the callee issue by fixing the infection analyzer. **Related issue:** - Closes https://github.com/swc-project/swc/issues/6047 --- ...importsNotUsedAsValues_error.2.minified.js | 4 +- crates/swc_ecma_minifier/src/alias/mod.rs | 7 +- .../src/compress/optimize/inline.rs | 1 + .../src/compress/optimize/sequences.rs | 2 + .../tests/benches-full/d3.js | 14 +- .../tests/benches-full/echarts.js | 154 ++++++----- .../tests/benches-full/jquery.js | 2 +- .../tests/benches-full/lodash.js | 8 +- .../tests/benches-full/moment.js | 6 +- .../tests/benches-full/react.js | 2 +- .../tests/benches-full/terser.js | 2 +- .../tests/benches-full/three.js | 8 +- .../tests/benches-full/victory.js | 96 ++++--- .../tests/benches-full/vue.js | 6 +- crates/swc_ecma_minifier/tests/exec.rs | 40 ++- .../tests/fixture/issues/2257/full/output.js | 53 ++-- .../fixture/issues/firebase-core/1/output.js | 17 +- .../tests/fixture/issues/moment/1/output.js | 6 +- .../fixture/issues/quagga2/1.4.2/1/output.js | 29 +- .../fixture/issues/react-countup/1/output.js | 11 +- .../1606726a.10299989c08cb523/output.js | 9 +- .../d6e1aeb5-38a8d7ae57119c23/output.js | 30 +- .../pages/index-cb36c1bf7f830e3c/output.js | 16 +- .../next/feedback-2/codemirror/output.js | 24 +- .../8a28b14e.d8fbda268ed281a1/output.js | 17 +- .../fixture/next/react-pdf-renderer/output.js | 75 ++--- .../framework-798bab57daac3897/output.js | 18 +- .../next/styled-components/1/output.js | 4 +- .../syncfusion/933-e9f9a6bf671b96fc/output.js | 29 +- .../fixture/next/wrap-contracts/output.js | 16 +- .../2c796e83-0724e2af5f19128a/output.js | 4 +- .../785-e1932cc99ac3bb67/output.js | 2 +- .../full/issue-5912-bigdecimal/output.js | 2 +- .../tests/projects/output/angular-1.2.5.js | 8 +- .../tests/projects/output/jquery-1.9.1.js | 2 +- .../projects/output/jquery.mobile-1.4.2.js | 8 +- .../tests/projects/output/react-17.0.1.js | 2 +- .../tests/projects/output/react-dom-17.0.2.js | 257 ++++++++++-------- .../tests/projects/output/underscore-1.5.2.js | 6 +- .../tests/projects/output/yui-3.12.0.js | 2 +- 40 files changed, 571 insertions(+), 428 deletions(-) diff --git a/crates/swc/tests/tsc-references/importsNotUsedAsValues_error.2.minified.js b/crates/swc/tests/tsc-references/importsNotUsedAsValues_error.2.minified.js index 6b2de6457622..6044901a5325 100644 --- a/crates/swc/tests/tsc-references/importsNotUsedAsValues_error.2.minified.js +++ b/crates/swc/tests/tsc-references/importsNotUsedAsValues_error.2.minified.js @@ -27,7 +27,9 @@ console.log(A, void 0); export { }; //// [/f.ts] import { C } from "./a"; -C.One, console.log(C.Two, C.Two); +C.One; +var c = C.Two, d = C.Two; +console.log(c, d); //// [/g.ts] console.log(void 0, void 0); export { }; diff --git a/crates/swc_ecma_minifier/src/alias/mod.rs b/crates/swc_ecma_minifier/src/alias/mod.rs index beb1190150b6..55cb78feb2e6 100644 --- a/crates/swc_ecma_minifier/src/alias/mod.rs +++ b/crates/swc_ecma_minifier/src/alias/mod.rs @@ -16,6 +16,9 @@ mod ctx; pub(crate) struct AliasConfig { pub marks: Option, pub ignore_nested: bool, + /// TODO(kdy1): This field is used for sequential inliner. + /// It should be renamed to some correct name. + pub need_all: bool, } pub(crate) trait InfectableNode { @@ -200,7 +203,7 @@ impl Visit for InfectionCollector<'_> { fn visit_member_expr(&mut self, n: &MemberExpr) { { let ctx = Ctx { - track_expr_ident: false, + track_expr_ident: self.config.need_all, ..self.ctx }; n.obj.visit_with(&mut *self.with_ctx(ctx)); @@ -208,7 +211,7 @@ impl Visit for InfectionCollector<'_> { { let ctx = Ctx { - track_expr_ident: false, + track_expr_ident: self.config.need_all, ..self.ctx }; n.prop.visit_with(&mut *self.with_ctx(ctx)); diff --git a/crates/swc_ecma_minifier/src/compress/optimize/inline.rs b/crates/swc_ecma_minifier/src/compress/optimize/inline.rs index e79d872b3a95..fd21375a4e72 100644 --- a/crates/swc_ecma_minifier/src/compress/optimize/inline.rs +++ b/crates/swc_ecma_minifier/src/compress/optimize/inline.rs @@ -534,6 +534,7 @@ where AliasConfig { marks: Some(self.marks), ignore_nested: false, + need_all: true, }, ) { if let Some(usage) = self.data.vars.get_mut(&i) { diff --git a/crates/swc_ecma_minifier/src/compress/optimize/sequences.rs b/crates/swc_ecma_minifier/src/compress/optimize/sequences.rs index 2ed4677b56aa..650cf97f1b36 100644 --- a/crates/swc_ecma_minifier/src/compress/optimize/sequences.rs +++ b/crates/swc_ecma_minifier/src/compress/optimize/sequences.rs @@ -995,6 +995,7 @@ where AliasConfig { marks: Some(self.marks), ignore_nested: true, + need_all: true, }, ) }), @@ -1011,6 +1012,7 @@ where AliasConfig { marks: Some(self.marks), ignore_nested: true, + need_all: true, }, )) } else { diff --git a/crates/swc_ecma_minifier/tests/benches-full/d3.js b/crates/swc_ecma_minifier/tests/benches-full/d3.js index 58c07871d197..e5fe282b177a 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/d3.js +++ b/crates/swc_ecma_minifier/tests/benches-full/d3.js @@ -184,7 +184,7 @@ for(; tz[m - 1] > x1;)tz.pop(), --m; var bin, bins = Array(m + 1); for(i = 0; i <= m; ++i)(bin = bins[i] = []).x0 = i > 0 ? tz[i - 1] : x0, bin.x1 = i < m ? tz[i] : x1; - for(i = 0; i < n; ++i)x0 <= (x = values[i]) && x <= x1 && bins[bisectRight(tz, x, 0, m)].push(data[i]); + for(i = 0; i < n; ++i)x = values[i], x0 <= x && x <= x1 && bins[bisectRight(tz, x, 0, m)].push(data[i]); return bins; } return histogram.value = function(_) { @@ -4577,11 +4577,11 @@ phi * radians$1 ]); if (p0) { - var normal = cartesianCross(p0, p), inflection = cartesianCross([ + var normal = cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 - ], normal); + ], inflection = cartesianCross(equatorial, normal); cartesianNormalizeInPlace(inflection); var phii, delta = lambda - lambda2, sign = delta > 0 ? 1 : -1, lambdai = (inflection = spherical(inflection))[0] * degrees$2 * sign, antimeridian = abs$2(delta) > 180; antimeridian ^ (sign * lambda2 < lambdai && lambdai < sign * lambda) ? (phii = inflection[1] * degrees$2) > phi1 && (phi1 = phii) : antimeridian ^ (sign * lambda2 < (lambdai = (lambdai + 360) % 360 - 180) && lambdai < sign * lambda) ? (phii = -inflection[1] * degrees$2) < phi0 && (phi0 = phii) : (phi < phi0 && (phi0 = phi), phi > phi1 && (phi1 = phi)), antimeridian ? lambda < lambda2 ? angle(lambda0$1, lambda) > angle(lambda0$1, lambda1) && (lambda1 = lambda) : angle(lambda, lambda1) > angle(lambda0$1, lambda1) && (lambda0$1 = lambda) : lambda1 >= lambda0$1 ? (lambda < lambda0$1 && (lambda0$1 = lambda), lambda > lambda1 && (lambda1 = lambda)) : lambda > lambda2 ? angle(lambda0$1, lambda) > angle(lambda0$1, lambda1) && (lambda1 = lambda) : angle(lambda, lambda1) > angle(lambda0$1, lambda1) && (lambda0$1 = lambda); @@ -6685,7 +6685,7 @@ var transform, untransform, unknown, piecewise, output, input, domain = unit, range = unit, interpolate$1 = interpolate, clamp = identity$6; function rescale() { var a, b, t, n = Math.min(domain.length, range.length); - return clamp !== identity$6 && ((a = domain[0]) > (b = domain[n - 1]) && (t = a, a = b, b = t), clamp = function(x) { + return clamp !== identity$6 && (a = domain[0], b = domain[n - 1], a > b && (t = a, a = b, b = t), clamp = function(x) { return Math.max(a, Math.min(b, x)); }), piecewise = n > 2 ? polymap : bimap, output = input = null, scale; } @@ -9582,7 +9582,7 @@ }, find: function(x, y, radius) { var dx, dy, d2, node, closest, i = 0, n = nodes.length; - for(null == radius ? radius = 1 / 0 : radius *= radius, i = 0; i < n; ++i)(d2 = (dx = x - (node = nodes[i]).x) * dx + (dy = y - node.y) * dy) < radius && (closest = node, radius = d2); + for(null == radius ? radius = 1 / 0 : radius *= radius, i = 0; i < n; ++i)node = nodes[i], (d2 = (dx = x - node.x) * dx + (dy = y - node.y) * dy) < radius && (closest = node, radius = d2); return closest; }, on: function(name, _) { @@ -9757,7 +9757,7 @@ if (phi1 = lambda1 = -(lambda0$1 = phi0 = 1 / 0), ranges = [], geoStream(feature, boundsStream), n = ranges.length) { for(ranges.sort(rangeCompare), i = 1, merged = [ a = ranges[0] - ]; i < n; ++i)rangeContains(a, (b = ranges[i])[0]) || rangeContains(a, b[1]) ? (angle(a[0], b[1]) > angle(a[0], a[1]) && (a[1] = b[1]), angle(b[0], a[1]) > angle(a[0], a[1]) && (a[0] = b[0])) : merged.push(a = b); + ]; i < n; ++i)b = ranges[i], rangeContains(a, b[0]) || rangeContains(a, b[1]) ? (angle(a[0], b[1]) > angle(a[0], a[1]) && (a[1] = b[1]), angle(b[0], a[1]) > angle(a[0], a[1]) && (a[0] = b[0])) : merged.push(a = b); for(deltaMax = -1 / 0, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i)b = merged[i], (delta = angle(a[1], b[0])) > deltaMax && (deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1]); } return ranges = range$1 = null, lambda0$1 === 1 / 0 || phi0 === 1 / 0 ? [ @@ -10165,7 +10165,7 @@ return sortValues(arcs[i], arcs[j]); }) : null != sort && index.sort(function(i, j) { return sort(data[i], data[j]); - }), i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1)a1 = a0 + ((v = arcs[j = index[i]]) > 0 ? v * k : 0) + pa, arcs[j] = { + }), i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1)v = arcs[j = index[i]], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { data: data[j], index: i, value: v, diff --git a/crates/swc_ecma_minifier/tests/benches-full/echarts.js b/crates/swc_ecma_minifier/tests/benches-full/echarts.js index 02448f4eb77e..3c577402d81e 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/echarts.js +++ b/crates/swc_ecma_minifier/tests/benches-full/echarts.js @@ -2242,10 +2242,10 @@ function lerp$1(normalizedValue, colors, fullOutput) { if (colors && colors.length && normalizedValue >= 0 && normalizedValue <= 1) { var a, b, p, a1, b1, p1, a2, b2, p2, a3, b3, p3, value = normalizedValue * (colors.length - 1), leftIndex = Math.floor(value), rightIndex = Math.ceil(value), leftColor = parse(colors[leftIndex]), rightColor = parse(colors[rightIndex]), dv = value - leftIndex, color = stringify([ - clampCssByte((a = leftColor[0], a + ((b = rightColor[0]) - a) * dv)), - clampCssByte((a1 = leftColor[1], a1 + ((b1 = rightColor[1]) - a1) * dv)), - clampCssByte((a2 = leftColor[2], a2 + ((b2 = rightColor[2]) - a2) * dv)), - clampCssFloat((a3 = leftColor[3], a3 + ((b3 = rightColor[3]) - a3) * dv)) + clampCssByte((a = leftColor[0], b = rightColor[0], a + (b - a) * dv)), + clampCssByte((a1 = leftColor[1], b1 = rightColor[1], a1 + (b1 - a1) * dv)), + clampCssByte((a2 = leftColor[2], b2 = rightColor[2], a2 + (b2 - a2) * dv)), + clampCssFloat((a3 = leftColor[3], b3 = rightColor[3], a3 + (b3 - a3) * dv)) ], 'rgba'); return fullOutput ? { color: color, @@ -6252,7 +6252,7 @@ ctlPtx = cpx, ctlPty = cpy, len = path.len(), pathData = path.data, prevCmd === CMD.Q && (ctlPtx += cpx - pathData[len - 4], ctlPty += cpy - pathData[len - 3]), cpx += p[off++], cpy += p[off++], cmd = CMD.Q, path.addData(cmd, ctlPtx, ctlPty, cpx, cpy); break; case 'A': - rx = p[off++], ry = p[off++], psi = p[off++], fa = p[off++], fs = p[off++], x1 = cpx, y1 = cpy, cpx = p[off++], processArc(x1, y1, cpx, cpy = p[off++], fa, fs, rx, ry, psi, cmd = CMD.A, path); + rx = p[off++], ry = p[off++], psi = p[off++], fa = p[off++], fs = p[off++], x1 = cpx, y1 = cpy, cpx = p[off++], cpy = p[off++], processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd = CMD.A, path); break; case 'a': rx = p[off++], ry = p[off++], psi = p[off++], fa = p[off++], fs = p[off++], x1 = cpx, y1 = cpy, cpx += p[off++], processArc(x1, y1, cpx, cpy += p[off++], fa, fs, rx, ry, psi, cmd = CMD.A, path); @@ -7950,9 +7950,12 @@ } : inOpt || {}, color = opt.color, type = opt.type; extraCssText = opt.extraCssText; var renderMode = opt.renderMode || 'html'; - return color ? 'html' === renderMode ? 'subItem' === type ? '' : '' : { + if (!color) return ''; + if ('html' === renderMode) return 'subItem' === type ? '' : ''; + var markerId = opt.markerId || 'markerX'; + return { renderMode: renderMode, - content: '{' + (opt.markerId || 'markerX') + '|} ', + content: '{' + markerId + '|} ', style: 'subItem' === type ? { width: 4, height: 4, @@ -7964,7 +7967,7 @@ borderRadius: 5, backgroundColor: color } - } : ''; + }; } function convertToColorString(color, defaultColor) { return defaultColor = defaultColor || 'transparent', isString(color) ? color : isObject(color) && color.colorStops && (color.colorStops[0] || {}).color || defaultColor; @@ -8368,8 +8371,8 @@ function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) { var baseCategoryDimIndex, categoryWayValueDimStart, encode = {}, datasetModel = querySeriesUpstreamDatasetModel(seriesModel); if (!datasetModel || !coordDimensions) return encode; - var encodeItemName = [], encodeSeriesName = [], datasetMap = innerGlobalModel(seriesModel.ecModel).datasetMap, key = datasetModel.uid + '_' + source.seriesLayoutBy; - each(coordDimensions = coordDimensions.slice(), function(coordDimInfoLoose, coordDimIdx) { + var encodeItemName = [], encodeSeriesName = [], ecModel = seriesModel.ecModel, datasetMap = innerGlobalModel(ecModel).datasetMap, key = datasetModel.uid + '_' + source.seriesLayoutBy; + coordDimensions = coordDimensions.slice(), each(coordDimensions, function(coordDimInfoLoose, coordDimIdx) { var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = { name: coordDimInfoLoose }; @@ -11640,7 +11643,7 @@ el.beforeBrush && el.beforeBrush(), el.innerBeforeBrush(); var prevEl1 = scope.prevEl; prevEl1 || (forceSetStyle = forceSetTransform = !0); - var canBatchPath = el instanceof Path && el.autoBatch && (hasFill = styleHasFill(style = el.style), hasStroke = styleHasStroke(style), !(style.lineDash || !(+hasFill ^ +hasStroke) || hasFill && 'string' != typeof style.fill || hasStroke && 'string' != typeof style.stroke || style.strokePercent < 1 || style.strokeOpacity < 1 || style.fillOpacity < 1)); + var canBatchPath = el instanceof Path && el.autoBatch && (style = el.style, hasFill = styleHasFill(style), hasStroke = styleHasStroke(style), !(style.lineDash || !(+hasFill ^ +hasStroke) || hasFill && 'string' != typeof style.fill || hasStroke && 'string' != typeof style.stroke || style.strokePercent < 1 || style.strokeOpacity < 1 || style.fillOpacity < 1)); !forceSetTransform && (m1 = prevEl1.transform, m && m1 ? m[0] === m1[0] && m[1] === m1[1] && m[2] === m1[2] && m[3] === m1[3] && m[4] === m1[4] && m[5] === m1[5] : m || m1 ? 0 : 1) ? canBatchPath || flushPathDrawn(ctx, scope) : (flushPathDrawn(ctx, scope), setContextTransform(ctx, el)); var style1 = getStyle(el, scope.inHover); el instanceof Path ? (1 !== scope.lastDrawType && (forceSetStyle = !0, scope.lastDrawType = 1), bindPathAndTextCommonStyle(ctx, el, prevEl1, forceSetStyle, scope), canBatchPath && (scope.batchFill || scope.batchStroke) || ctx.beginPath(), function(ctx, el, style, inBatch) { @@ -13538,8 +13541,8 @@ var eventObjBatch = [], isSelectChange = isSelectChangePayload(payload), isHighDown = isHighDownPayload(payload); if (each(payloads, function(batchItem) { if ((eventObj = (eventObj = actionWrap.action(batchItem, _this._model, _this._api)) || extend({}, batchItem)).type = actionInfo.event || eventObj.type, eventObjBatch.push(eventObj), isHighDown) { - var _a = preParseFinder(payload), queryOptionMap = _a.queryOptionMap; - updateDirectly(_this, updateMethod, batchItem, _a.mainTypeSpecified ? queryOptionMap.keys()[0] : 'series'), markStatusToUpdate(_this); + var _a = preParseFinder(payload), queryOptionMap = _a.queryOptionMap, componentMainType = _a.mainTypeSpecified ? queryOptionMap.keys()[0] : 'series'; + updateDirectly(_this, updateMethod, batchItem, componentMainType), markStatusToUpdate(_this); } else isSelectChange ? (updateDirectly(_this, updateMethod, batchItem, 'series'), markStatusToUpdate(_this)) : cptType && updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub); }), 'none' === updateMethod || isHighDown || isSelectChange || cptType || (this[OPTION_UPDATED_KEY] ? (prepare(this), updateMethods.update.call(this, payload), this[OPTION_UPDATED_KEY] = !1) : updateMethods[updateMethod].call(this, payload)), eventObj = batched ? { type: actionInfo.event || payloadType, @@ -15176,7 +15179,8 @@ opt.fixMax || (extent[1] += expandSize / 2), extent[0] -= expandSize / 2; } else extent[1] = 1; } - isFinite(extent[1] - extent[0]) || (extent[0] = 0, extent[1] = 1), this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); + var span = extent[1] - extent[0]; + isFinite(span) || (extent[0] = 0, extent[1] = 1), this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); var interval = this._interval; opt.fixMin || (extent[0] = round(Math.floor(extent[0] / interval) * interval)), opt.fixMax || (extent[1] = round(Math.ceil(extent[1] / interval) * interval)); }, IntervalScale.type = 'interval', IntervalScale; @@ -16110,7 +16114,7 @@ return data = scale.normalize(data), this.onBand && 'ordinal' === scale.type && fixExtentWithBands(extent = extent.slice(), scale.count()), linearMap(data, NORMALIZED_EXTENT, extent, clamp); }, Axis.prototype.coordToData = function(coord, clamp) { var extent = this._extent, scale = this.scale; - this.onBand && 'ordinal' === scale.type && fixExtentWithBands(extent = extent.slice(), scale.count()); + this.onBand && 'ordinal' === scale.type && (extent = extent.slice(), fixExtentWithBands(extent, scale.count())); var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp); return this.scale.scale(t); }, Axis.prototype.pointToData = function(point, clamp) {}, Axis.prototype.getTicksCoords = function(opt) { @@ -16137,7 +16141,7 @@ coord: this.dataToCoord('ordinal' === this.scale.type ? this.scale.getRawOrdinalNumber(tickVal) : tickVal), tickValue: tickVal }; - }, this); + }, this), alignWithLabel = tickModel1.get('alignWithLabel'); return function(axis, ticksCoords, alignWithLabel, clamp) { var last, diffSize, ticksLen = ticksCoords.length; if (axis.onBand && !alignWithLabel && ticksLen) { @@ -16163,7 +16167,7 @@ function littleThan(a, b) { return a = round(a), b = round(b), inverse ? a > b : a < b; } - }(this, ticksCoords, tickModel1.get('alignWithLabel'), opt.clamp), ticksCoords; + }(this, ticksCoords, alignWithLabel, opt.clamp), ticksCoords; }, Axis.prototype.getMinorTicksCoords = function() { if ('ordinal' === this.scale.type) return []; var splitNumber = this.model.getModel('minorTick').get('splitNumber'); @@ -19182,7 +19186,7 @@ if (!(len1 < 1e-3) && !(len2 < 1e-3) && (dir.scale(1 / len1), dir2.scale(1 / len2), dir.dot(surfaceNormal) < Math.cos(maxSurfaceAngle))) { var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, !1); tmpProjPoint.fromArray(tmpArr); - var HALF_PI = Math.PI / 2, newAngle = HALF_PI + Math.acos(dir2.dot(surfaceNormal)) - maxSurfaceAngle; + var HALF_PI = Math.PI / 2, angle2 = Math.acos(dir2.dot(surfaceNormal)), newAngle = HALF_PI + angle2 - maxSurfaceAngle; if (newAngle >= HALF_PI) Point.copy(tmpProjPoint, pt2); else { tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle)); @@ -19919,9 +19923,9 @@ var axisLabelModel = axis.getLabelModel(), labelFormatter = makeLabelFormatter(axis), step = 1; tickCount > 40 && (step = Math.ceil(tickCount / 40)); for(var i = 0; i < tickCount; i += step){ - var label = labelFormatter(realNumberScaleTicks ? realNumberScaleTicks[i] : { + var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : { value: categoryScaleExtent[0] + i - }, i), singleRect = function(textRect, rotate) { + }, label = labelFormatter(tick, i), singleRect = function(textRect, rotate) { var rotateRadians = rotate * Math.PI / 180, beforeWidth = textRect.width, beforeHeight = textRect.height; return new BoundingRect(textRect.x, textRect.y, beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians)), beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians))); }(axisLabelModel.getTextRect(label), axisLabelModel.get('rotate') || 0); @@ -19963,7 +19967,7 @@ return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null; }, Grid.prototype._findConvertTarget = function(finder) { var cartesian, axis, seriesModel = finder.seriesModel, xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0], yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0], gridModel = finder.gridModel, coordsList = this._coordsList; - return seriesModel ? 0 > indexOf(coordsList, cartesian = seriesModel.coordinateSystem) && (cartesian = null) : xAxisModel && yAxisModel ? cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex) : xAxisModel ? axis = this.getAxis('x', xAxisModel.componentIndex) : yAxisModel ? axis = this.getAxis('y', yAxisModel.componentIndex) : gridModel && gridModel.coordinateSystem === this && (cartesian = this._coordsList[0]), { + return seriesModel ? (cartesian = seriesModel.coordinateSystem, 0 > indexOf(coordsList, cartesian) && (cartesian = null)) : xAxisModel && yAxisModel ? cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex) : xAxisModel ? axis = this.getAxis('x', xAxisModel.componentIndex) : yAxisModel ? axis = this.getAxis('y', yAxisModel.componentIndex) : gridModel && gridModel.coordinateSystem === this && (cartesian = this._coordsList[0]), { cartesian: cartesian, axis: axis }; @@ -20296,7 +20300,7 @@ rotation: rotationDiff, textAlign: textAlign, textVerticalAlign: textVerticalAlign - }, null != (axisNameAvailableWidth = opt.axisNameAvailableWidth) && (isFinite(axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation))) || (axisNameAvailableWidth = null))); + }, null != (axisNameAvailableWidth = opt.axisNameAvailableWidth) && (axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation)), isFinite(axisNameAvailableWidth) || (axisNameAvailableWidth = null))); var textFont = textStyleModel.getFont(), truncateOpt = axisModel.get('nameTruncate', !0) || {}, ellipsis = truncateOpt.ellipsis, maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth), textEl = new ZRText({ x: pos[0], y: pos[1], @@ -21536,7 +21540,8 @@ var name_2 = data.getName(i); dataNameMap.set(name_2, !0); } - return each(geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty).regions, function(region) { + var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty); + return each(geoSource.regions, function(region) { var name = region.name; dataNameMap.get(name) || toAppendNames.push(name); }), data.appendValues([], toAppendNames), data; @@ -21877,7 +21882,8 @@ }), geoList; }, GeoCreator.prototype.getFilledRegions = function(originRegionArr, mapName, nameMap, nameProperty) { for(var regionsArr = (originRegionArr || []).slice(), dataNameMap = createHashMap(), i = 0; i < regionsArr.length; i++)dataNameMap.set(regionsArr[i].name, regionsArr[i]); - return each(geoSourceManager.load(mapName, nameMap, nameProperty).regions, function(region) { + var source = geoSourceManager.load(mapName, nameMap, nameProperty); + return each(source.regions, function(region) { var name = region.name; dataNameMap.get(name) || regionsArr.push({ name: name @@ -27513,7 +27519,7 @@ }); var iterations1 = 0 !== filter(nodes3, function(node) { return 0 === node.getLayout().value; - }).length ? 0 : seriesModel.get('layoutIterations'), orient1 = seriesModel.get('orient'); + }).length ? 0 : seriesModel.get('layoutIterations'), orient1 = seriesModel.get('orient'), nodeAlign = seriesModel.get('nodeAlign'); nodes1 = nodes3, edges = edges1, nodeWidth = nodeWidth1, nodeGap = nodeGap1, width = width1, height = height1, iterations = iterations1, orient = orient1, function(nodes, edges, nodeWidth, width, height, orient, nodeAlign) { for(var nodes1, kx, orient1, remainEdges = [], indegreeArr = [], zeroIndegrees = [], nextTargetNode = [], x = 0, i = 0; i < edges.length; i++)remainEdges[i] = 1; for(var i = 0; i < nodes.length; i++)indegreeArr[i] = nodes[i].inEdges.length, 0 === indegreeArr[i] && zeroIndegrees.push(nodes[i]); @@ -27573,7 +27579,7 @@ x: nodeDepth }, !0); }); - }(nodes1, edges, nodeWidth, width, height, orient, seriesModel.get('nodeAlign')), function(nodes, edges, height, width, nodeGap, iterations, orient) { + }(nodes1, edges, nodeWidth, width, height, orient, nodeAlign), function(nodes, edges, height, width, nodeGap, iterations, orient) { var nodes1, orient1, nodesByBreadth, keyAttr, groupResult, nodesByBreadth1, edges1, height1, width1, nodeGap1, orient2, minKy, nodesByBreadth2 = (nodes1 = nodes, orient1 = orient, nodesByBreadth = [], keyAttr = 'vertical' === orient1 ? 'y' : 'x', (groupResult = groupData(nodes1, function(node) { return node.getLayout()[keyAttr]; })).keys.sort(function(a, b) { @@ -29766,7 +29772,16 @@ var data = seriesModel.getData(), single = seriesModel.coordinateSystem, layoutInfo = {}, rect = single.getRect(); layoutInfo.rect = rect; var boundaryGap = seriesModel.get('boundaryGap'), axis = single.getAxis(); - layoutInfo.boundaryGap = boundaryGap, 'horizontal' === axis.orient ? (boundaryGap[0] = parsePercent$1(boundaryGap[0], rect.height), boundaryGap[1] = parsePercent$1(boundaryGap[1], rect.height), doThemeRiverLayout(data, seriesModel, rect.height - boundaryGap[0] - boundaryGap[1])) : (boundaryGap[0] = parsePercent$1(boundaryGap[0], rect.width), boundaryGap[1] = parsePercent$1(boundaryGap[1], rect.width), doThemeRiverLayout(data, seriesModel, rect.width - boundaryGap[0] - boundaryGap[1])), data.setLayout('layoutInfo', layoutInfo); + if (layoutInfo.boundaryGap = boundaryGap, 'horizontal' === axis.orient) { + boundaryGap[0] = parsePercent$1(boundaryGap[0], rect.height), boundaryGap[1] = parsePercent$1(boundaryGap[1], rect.height); + var height = rect.height - boundaryGap[0] - boundaryGap[1]; + doThemeRiverLayout(data, seriesModel, height); + } else { + boundaryGap[0] = parsePercent$1(boundaryGap[0], rect.width), boundaryGap[1] = parsePercent$1(boundaryGap[1], rect.width); + var width = rect.width - boundaryGap[0] - boundaryGap[1]; + doThemeRiverLayout(data, seriesModel, width); + } + data.setLayout('layoutInfo', layoutInfo); }); } function doThemeRiverLayout(data, seriesModel, height) { @@ -30135,7 +30150,9 @@ for(var current = node; current && current.depth > 1;)current = current.parentNode; var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + '', paletteScope); return node.depth > 1 && 'string' == typeof color && (color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5)), color; - }(node, seriesModel, tree.root.height)), extend(data.ensureUniqueItemVisual(node.dataIndex, 'style'), style); + }(node, seriesModel, tree.root.height)); + var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style'); + extend(existsStyle, style); }); }); } @@ -30341,7 +30358,7 @@ newArray1, newArray2 ]; - }(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy)); + }(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy)), fromBezierCurves = _a[0], toBezierCurves = _a[1]; !function(path, morphingData, morphT) { if (isIndividualMorphingPath(path)) { updateIndividualMorphingPath(path, morphingData, morphT); @@ -30393,7 +30410,7 @@ }); } return result; - }(_a[0], _a[1], 10, Math.PI), 0); + }(fromBezierCurves, toBezierCurves, 10, Math.PI), 0); var oldDone = animationOpts && animationOpts.done, oldAborted = animationOpts && animationOpts.aborted, oldDuring = animationOpts && animationOpts.during; return toPath.animateTo({ __morphT: 1 @@ -30439,7 +30456,7 @@ } else fromIndividuals.push(fromPath), separateCount++; } if (separateCount) { - var toPathSplittedList = divideShape(toPath, separateCount, animationOpts ? animationOpts.dividingMethod : null); + var dividingMethod = animationOpts ? animationOpts.dividingMethod : null, toPathSplittedList = divideShape(toPath, separateCount, dividingMethod); assert(toPathSplittedList.length === separateCount); for(var oldDone = animationOpts && animationOpts.done, oldAborted = animationOpts && animationOpts.aborted, oldDuring = animationOpts && animationOpts.during, doneCount = 0, abortedCalled = !1, morphAnimationOpts = defaults({ during: function(p) { @@ -35949,16 +35966,18 @@ var seriesIndex = payload.seriesIndex, dataIndex = payload.dataIndex, coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo; if (null != seriesIndex && null != dataIndex && null != coordSysAxesInfo) { var seriesModel = ecModel.getSeriesByIndex(seriesIndex); - if (seriesModel && 'axis' === buildTooltipModel([ - seriesModel.getData().getItemModel(dataIndex), - seriesModel, - (seriesModel.coordinateSystem || {}).model - ], this._tooltipModel).get('trigger')) return api.dispatchAction({ - type: 'updateAxisPointer', - seriesIndex: seriesIndex, - dataIndex: dataIndex, - position: payload.position - }), !0; + if (seriesModel) { + if ('axis' === buildTooltipModel([ + seriesModel.getData().getItemModel(dataIndex), + seriesModel, + (seriesModel.coordinateSystem || {}).model + ], this._tooltipModel).get('trigger')) return api.dispatchAction({ + type: 'updateAxisPointer', + seriesIndex: seriesIndex, + dataIndex: dataIndex, + position: payload.position + }), !0; + } } }, TooltipView.prototype._tryShow = function(e, dispatchAction) { var seriesDispatcher_1, cmptDispatcher_1, el = e.target; @@ -36003,7 +36022,7 @@ } }); }), articleMarkup.blocks.reverse(), markupTextArrLegacy.reverse(); - var positionExpr = e.position, builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, singleTooltipModel.get('order'), ecModel.get('useUTC'), singleTooltipModel.get('textStyle')); + var positionExpr = e.position, orderMode = singleTooltipModel.get('order'), builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle')); builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText); var allMarkupText = markupTextArrLegacy.join('richText' === renderMode ? '\n\n' : '
'); this._showOrMove(singleTooltipModel, function() { @@ -36876,11 +36895,12 @@ if (this.model = timelineModel, this.api = api, this.ecModel = ecModel, this.group.removeAll(), timelineModel.get('show', !0)) { var layoutInfo_1 = this._layout(timelineModel, api), mainGroup_1 = this._createGroup('_mainGroup'), labelGroup = this._createGroup('_labelGroup'), axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel); timelineModel.formatTooltip = function(dataIndex) { + var name = axis_1.scale.getLabel({ + value: dataIndex + }); return createTooltipMarkup('nameValue', { noName: !0, - value: axis_1.scale.getLabel({ - value: dataIndex - }) + value: name }); }, each([ 'AxisLine', @@ -39848,8 +39868,8 @@ function setter(key, value) { visualObj[key] = value; } - var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)]; - return each(VisualMapping.prepareVisualTypes(mappings), function(type) { + var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)], visualTypes = VisualMapping.prepareVisualTypes(mappings); + return each(visualTypes, function(type) { var visualMapping = mappings[type]; opts.convertOpacityToAlpha && 'opacity' === type && (type = 'colorAlpha', visualMapping = mappings.__alphaForOpacity), VisualMapping.dependsOn(type, visualCluster) && visualMapping && visualMapping.applyVisual(targetValue, getter, setter); }), visualObj[visualCluster]; @@ -40854,23 +40874,25 @@ var seriesCnt = ecModel.getSeriesCount(), maxDataCnt = labelModel.get([ 'data', 'maxCount' - ]) || 10, displaySeriesCnt = Math.min(seriesCnt, labelModel.get([ + ]) || 10, maxSeriesCnt = labelModel.get([ 'series', 'maxCount' - ]) || 10); + ]) || 10, displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt); if (!(seriesCnt < 1)) { var title, title1 = ((title = ecModel.get('title')) && title.length && (title = title[0]), title && title.text); - ariaLabel = title1 ? replace(labelModel.get([ - 'general', - 'withTitle' - ]), { - title: title1 - }) : labelModel.get([ + if (title1) { + var withTitle = labelModel.get([ + 'general', + 'withTitle' + ]); + ariaLabel = replace(withTitle, { + title: title1 + }); + } else ariaLabel = labelModel.get([ 'general', 'withoutTitle' ]); - var seriesLabels_1 = []; - ariaLabel += replace(seriesCnt > 1 ? labelModel.get([ + var seriesLabels_1 = [], prefix = seriesCnt > 1 ? labelModel.get([ 'series', 'multiple', 'prefix' @@ -40878,7 +40900,8 @@ 'series', 'single', 'prefix' - ]), { + ]); + ariaLabel += replace(prefix, { seriesCount: seriesCnt }), ecModel.eachSeries(function(seriesModel, idx) { if (idx < displaySeriesCnt) { @@ -40900,12 +40923,15 @@ ])[type] || '自定义图') }); var data = seriesModel.getData(); - data.count() > maxDataCnt ? seriesLabel += replace(labelModel.get([ - 'data', - 'partialData' - ]), { - displayCnt: maxDataCnt - }) : seriesLabel += labelModel.get([ + if (data.count() > maxDataCnt) { + var partialLabel = labelModel.get([ + 'data', + 'partialData' + ]); + seriesLabel += replace(partialLabel, { + displayCnt: maxDataCnt + }); + } else seriesLabel += labelModel.get([ 'data', 'allData' ]); diff --git a/crates/swc_ecma_minifier/tests/benches-full/jquery.js b/crates/swc_ecma_minifier/tests/benches-full/jquery.js index 0ace7fc26bca..4f7662462d94 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/jquery.js +++ b/crates/swc_ecma_minifier/tests/benches-full/jquery.js @@ -1838,7 +1838,7 @@ }, reliableTrDimensions: function() { var table, tr, trChild, trStyle; - return null == reliableTrDimensionsVal && (table = document.createElement("table"), tr = document.createElement("tr"), trChild = document.createElement("div"), table.style.cssText = "position:absolute;left:-11111px", tr.style.height = "1px", trChild.style.height = "9px", documentElement.appendChild(table).appendChild(tr).appendChild(trChild), reliableTrDimensionsVal = parseInt(window1.getComputedStyle(tr).height) > 3, documentElement.removeChild(table)), reliableTrDimensionsVal; + return null == reliableTrDimensionsVal && (table = document.createElement("table"), tr = document.createElement("tr"), trChild = document.createElement("div"), table.style.cssText = "position:absolute;left:-11111px", tr.style.height = "1px", trChild.style.height = "9px", documentElement.appendChild(table).appendChild(tr).appendChild(trChild), trStyle = window1.getComputedStyle(tr), reliableTrDimensionsVal = parseInt(trStyle.height) > 3, documentElement.removeChild(table)), reliableTrDimensionsVal; } })); }(); diff --git a/crates/swc_ecma_minifier/tests/benches-full/lodash.js b/crates/swc_ecma_minifier/tests/benches-full/lodash.js index 821b4ab1f1d4..da58edab51f7 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/lodash.js +++ b/crates/swc_ecma_minifier/tests/benches-full/lodash.js @@ -743,7 +743,9 @@ this.__data__ = [], this.size = 0; }, ListCache.prototype.delete = function(key) { var data = this.__data__, index = assocIndexOf(data, key); - return !(index < 0) && (index == data.length - 1 ? data.pop() : splice.call(data, index, 1), --this.size, !0); + if (index < 0) return !1; + var lastIndex = data.length - 1; + return index == lastIndex ? data.pop() : splice.call(data, index, 1), --this.size, !0; }, ListCache.prototype.get = function(key) { var data = this.__data__, index = assocIndexOf(data, key); return index < 0 ? undefined : data[index][1]; @@ -1723,8 +1725,8 @@ }); var isMaskable = coreJsData ? isFunction : stubFalse; function isPrototype(value) { - var Ctor = value && value.constructor; - return value === ('function' == typeof Ctor && Ctor.prototype || objectProto); + var Ctor = value && value.constructor, proto = 'function' == typeof Ctor && Ctor.prototype || objectProto; + return value === proto; } function isStrictComparable(value) { return value == value && !isObject(value); diff --git a/crates/swc_ecma_minifier/tests/benches-full/moment.js b/crates/swc_ecma_minifier/tests/benches-full/moment.js index 88e0f41dbd02..470534764a89 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/moment.js +++ b/crates/swc_ecma_minifier/tests/benches-full/moment.js @@ -83,7 +83,7 @@ var token, getSetMillisecond, momentProperties = hooks.momentProperties = [], updateInProgress = !1; function copyConfig(to, from) { var i, prop, val; - if (isUndefined(from._isAMomentObject) || (to._isAMomentObject = from._isAMomentObject), isUndefined(from._i) || (to._i = from._i), isUndefined(from._f) || (to._f = from._f), isUndefined(from._l) || (to._l = from._l), isUndefined(from._strict) || (to._strict = from._strict), isUndefined(from._tzm) || (to._tzm = from._tzm), isUndefined(from._isUTC) || (to._isUTC = from._isUTC), isUndefined(from._offset) || (to._offset = from._offset), isUndefined(from._pf) || (to._pf = getParsingFlags(from)), isUndefined(from._locale) || (to._locale = from._locale), momentProperties.length > 0) for(i = 0; i < momentProperties.length; i++)isUndefined(val = from[prop = momentProperties[i]]) || (to[prop] = val); + if (isUndefined(from._isAMomentObject) || (to._isAMomentObject = from._isAMomentObject), isUndefined(from._i) || (to._i = from._i), isUndefined(from._f) || (to._f = from._f), isUndefined(from._l) || (to._l = from._l), isUndefined(from._strict) || (to._strict = from._strict), isUndefined(from._tzm) || (to._tzm = from._tzm), isUndefined(from._isUTC) || (to._isUTC = from._isUTC), isUndefined(from._offset) || (to._offset = from._offset), isUndefined(from._pf) || (to._pf = getParsingFlags(from)), isUndefined(from._locale) || (to._locale = from._locale), momentProperties.length > 0) for(i = 0; i < momentProperties.length; i++)val = from[prop = momentProperties[i]], isUndefined(val) || (to[prop] = val); return to; } function Moment(config) { @@ -129,8 +129,8 @@ null != config && this.set(config); } function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number); - return (number >= 0 ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, targetLength - absNumber.length)).toString().substr(1) + absNumber; + var absNumber = '' + Math.abs(number), zerosToFill = targetLength - absNumber.length; + return (number >= 0 ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; } hooks.suppressDeprecationWarnings = !1, hooks.deprecationHandler = null, keys = Object.keys ? Object.keys : function(obj) { var i, res = []; diff --git a/crates/swc_ecma_minifier/tests/benches-full/react.js b/crates/swc_ecma_minifier/tests/benches-full/react.js index 514e1a08c115..ad7cf139d22d 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/react.js +++ b/crates/swc_ecma_minifier/tests/benches-full/react.js @@ -294,7 +294,7 @@ return; } var subtreeCount = 0, nextNamePrefix = '' === nameSoFar ? '.' : nameSoFar + ':'; - if (Array.isArray(children)) for(var i = 0; i < children.length; i++)nextName = nextNamePrefix + getElementKey(child = children[i], i), subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback); + if (Array.isArray(children)) for(var i = 0; i < children.length; i++)child = children[i], nextName = nextNamePrefix + getElementKey(child, i), subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback); else { var iteratorFn = getIteratorFn(children); if ('function' == typeof iteratorFn) { diff --git a/crates/swc_ecma_minifier/tests/benches-full/terser.js b/crates/swc_ecma_minifier/tests/benches-full/terser.js index 193ba1c947af..73ea9ec78744 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/terser.js +++ b/crates/swc_ecma_minifier/tests/benches-full/terser.js @@ -4395,7 +4395,7 @@ to_utf8: to_utf8, print_name: function(name) { var name1; - print(to_utf8(name.toString(), !0)); + print((name1 = (name1 = name).toString(), name1 = to_utf8(name1, !0))); }, print_string: function(str, quote, escape_directive) { var encoded = encode_string(str, quote); diff --git a/crates/swc_ecma_minifier/tests/benches-full/three.js b/crates/swc_ecma_minifier/tests/benches-full/three.js index 3ffd251ff17e..3e1091c47194 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/three.js +++ b/crates/swc_ecma_minifier/tests/benches-full/three.js @@ -1154,11 +1154,11 @@ 0, 0, 1 - ], _v0, _v1, _v2, _extents)) && (_triangleNormal.crossVectors(_f0, _f1), satForAxes(axes = [ + ], _v0, _v1, _v2, _extents)) && (_triangleNormal.crossVectors(_f0, _f1), axes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z - ], _v0, _v1, _v2, _extents)); + ], satForAxes(axes, _v0, _v1, _v2, _extents)); }, _proto.clampPoint = function(point, target) { return void 0 === target && (console.warn('THREE.Box3: .clampPoint() target is now required'), target = new Vector3()), target.copy(point).clamp(this.min, this.max); }, _proto.distanceToPoint = function(point) { @@ -5073,7 +5073,7 @@ return 'highp' === parameters.precision ? precisionstring += '\n#define HIGH_PRECISION' : 'mediump' === parameters.precision ? precisionstring += '\n#define MEDIUM_PRECISION' : 'lowp' === parameters.precision && (precisionstring += '\n#define LOW_PRECISION'), precisionstring; } function WebGLProgram(renderer, cacheKey, parameters, bindingStates) { - var parameters1, shadowMapTypeDefine, parameters2, components, prefixVertex, prefixFragment, cachedUniforms, cachedAttributes, gl = renderer.getContext(), defines = parameters.defines, vertexShader = parameters.vertexShader, fragmentShader = parameters.fragmentShader, shadowMapTypeDefine1 = (shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC', 1 === parameters.shadowMapType ? shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF' : 2 === parameters.shadowMapType ? shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT' : 3 === parameters.shadowMapType && (shadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM'), shadowMapTypeDefine), envMapTypeDefine = function(parameters) { + var parameters1, shadowMapTypeDefine, parameters2, encoding, components, prefixVertex, prefixFragment, cachedUniforms, cachedAttributes, gl = renderer.getContext(), defines = parameters.defines, vertexShader = parameters.vertexShader, fragmentShader = parameters.fragmentShader, shadowMapTypeDefine1 = (shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC', 1 === parameters.shadowMapType ? shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF' : 2 === parameters.shadowMapType ? shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT' : 3 === parameters.shadowMapType && (shadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM'), shadowMapTypeDefine), envMapTypeDefine = function(parameters) { var envMapTypeDefine = 'ENVMAP_TYPE_CUBE'; if (parameters.envMap) switch(parameters.envMapMode){ case 301: @@ -5295,7 +5295,7 @@ parameters.envMap ? getTexelDecodingFunction('envMapTexelToLinear', parameters.envMapEncoding) : '', parameters.emissiveMap ? getTexelDecodingFunction('emissiveMapTexelToLinear', parameters.emissiveMapEncoding) : '', parameters.lightMap ? getTexelDecodingFunction('lightMapTexelToLinear', parameters.lightMapEncoding) : '', - "vec4 linearToOutputTexel( vec4 value ) { return LinearTo" + (components = getEncodingComponents(parameters.outputEncoding))[0] + components[1] + '; }', + (encoding = parameters.outputEncoding, "vec4 linearToOutputTexel( vec4 value ) { return LinearTo" + (components = getEncodingComponents(encoding))[0] + components[1] + '; }'), parameters.depthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '', '\n' ].filter(filterEmptyLine).join('\n')), vertexShader = resolveIncludes(vertexShader), vertexShader = replaceLightNums(vertexShader, parameters), vertexShader = replaceClippingPlaneNums(vertexShader, parameters), fragmentShader = resolveIncludes(fragmentShader), fragmentShader = replaceLightNums(fragmentShader, parameters), fragmentShader = replaceClippingPlaneNums(fragmentShader, parameters), vertexShader = unrollLoops(vertexShader), fragmentShader = unrollLoops(fragmentShader), parameters.isWebGL2 && !0 !== parameters.isRawShaderMaterial && (versionString = '#version 300 es\n', prefixVertex = "#define attribute in\n#define varying out\n#define texture2D texture\n" + prefixVertex, prefixFragment = [ diff --git a/crates/swc_ecma_minifier/tests/benches-full/victory.js b/crates/swc_ecma_minifier/tests/benches-full/victory.js index b4748e49f5ae..c3726f8a056d 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/victory.js +++ b/crates/swc_ecma_minifier/tests/benches-full/victory.js @@ -158,7 +158,7 @@ for(; tz[m - 1] > x1;)tz.pop(), --m; var bin, bins = Array(m + 1); for(i = 0; i <= m; ++i)(bin = bins[i] = []).x0 = i > 0 ? tz[i - 1] : x0, bin.x1 = i < m ? tz[i] : x1; - for(i = 0; i < n; ++i)x0 <= (x = values[i]) && x <= x1 && bins[Object(_bisect__WEBPACK_IMPORTED_MODULE_1__.default)(tz, x, 0, m)].push(data[i]); + for(i = 0; i < n; ++i)x = values[i], x0 <= x && x <= x1 && bins[Object(_bisect__WEBPACK_IMPORTED_MODULE_1__.default)(tz, x, 0, m)].push(data[i]); return bins; } return histogram.value = function(_) { @@ -4680,7 +4680,7 @@ return sortValues(arcs[i], arcs[j]); }) : null != sort && index.sort(function(i, j) { return sort(data[i], data[j]); - }), i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1)a1 = a0 + ((v = arcs[j = index[i]]) > 0 ? v * k : 0) + pa, arcs[j] = { + }), i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1)v = arcs[j = index[i]], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = { data: data[j], index: i, value: v, @@ -7757,7 +7757,9 @@ var assocIndexOf = __webpack_require__("../../../node_modules/lodash/_assocIndexOf.js"), splice = Array.prototype.splice; module1.exports = function(key) { var data = this.__data__, index = assocIndexOf(data, key); - return !(index < 0) && (index == data.length - 1 ? data.pop() : splice.call(data, index, 1), --this.size, !0); + if (index < 0) return !1; + var lastIndex = data.length - 1; + return index == lastIndex ? data.pop() : splice.call(data, index, 1), --this.size, !0; }; }, "../../../node_modules/lodash/_listCacheGet.js": function(module1, exports1, __webpack_require__) { @@ -8524,7 +8526,7 @@ }, oneOf: function(expectedValues) { return Array.isArray(expectedValues) ? createChainableTypeChecker(function(props, propName, componentName, location, propFullName) { - for(var x, y, propValue = props[propName], i = 0; i < expectedValues.length; i++)if ((x = propValue) === (y = expectedValues[i]) ? 0 !== x || 1 / x == 1 / y : x != x && y != y) return null; + for(var x, y, propValue = props[propName], i = 0; i < expectedValues.length; i++)if (x = propValue, y = expectedValues[i], x === y ? 0 !== x || 1 / x == 1 / y : x != x && y != y) return null; var valuesString = JSON.stringify(expectedValues, function(key, value) { return 'symbol' === getPreciseType(value) ? String(value) : value; }); @@ -10864,15 +10866,15 @@ }, scale = { x: victory_core__WEBPACK_IMPORTED_MODULE_8__.Scale.getBaseScale(props, "x").domain(domain.x).range(props.horizontal ? range.y : range.x), y: victory_core__WEBPACK_IMPORTED_MODULE_8__.Scale.getBaseScale(props, "y").domain(domain.y).range(props.horizontal ? range.x : range.y) - }, defaultStyles = theme && theme.boxplot && theme.boxplot.style ? theme.boxplot.style : {}, style = getStyles(props, defaultStyles), defaultOrientation = props.horizontal ? "top" : "right"; + }, defaultStyles = theme && theme.boxplot && theme.boxplot.style ? theme.boxplot.style : {}, style = getStyles(props, defaultStyles), defaultOrientation = props.horizontal ? "top" : "right", labelOrientation = props.labelOrientation || defaultOrientation, boxWidth = props.boxWidth || 1; return { data: data, horizontal: horizontal, domain: domain, scale: scale, style: style, - labelOrientation: props.labelOrientation || defaultOrientation, - boxWidth: props.boxWidth || 1 + labelOrientation: labelOrientation, + boxWidth: boxWidth }; }, getWhiskerProps = function(props, type) { var horizontal = props.horizontal, style = props.style, boxWidth = props.boxWidth, whiskerWidth = props.whiskerWidth, datum = props.datum, scale = props.scale, index = props.index, _props$positions = props.positions, min = _props$positions.min, max = _props$positions.max, q1 = _props$positions.q1, q3 = _props$positions.q3, x = _props$positions.x, y = _props$positions.y, boxValue = "min" === type ? q1 : q3, whiskerValue = "min" === type ? min : max, width = "number" == typeof whiskerWidth ? whiskerWidth : boxWidth; @@ -10977,7 +10979,7 @@ }, isUnderMinX = underMin(minDomainX), isUnderMinY = underMin(minDomainY), isOverMaxX = overMax(maxDomainX), isOverMaxY = overMax(maxDomainY); return (isUnderMinX(_x) || isOverMaxX(_x)) && (xOutOfBounds = !0), (isUnderMinY(_min) && isUnderMinY(_max) || isOverMaxY(_min) && isOverMaxY(_max)) && (yOutOfBounds = !0), yOutOfBounds || xOutOfBounds; }, getBaseProps = function(props, fallbackProps) { - var modifiedProps = victory_core__WEBPACK_IMPORTED_MODULE_8__.Helpers.modifyProps(props, fallbackProps, "boxplot"), _props = props = lodash_assign__WEBPACK_IMPORTED_MODULE_5___default()({}, modifiedProps, getCalculatedValues(modifiedProps)), groupComponent = _props.groupComponent, width = _props.width, height = _props.height, padding = _props.padding, standalone = _props.standalone, theme = _props.theme, events = _props.events, sharedEvents = _props.sharedEvents, scale = _props.scale, horizontal = _props.horizontal, data = _props.data, style = _props.style, domain = _props.domain, initialChildProps = { + var modifiedProps = victory_core__WEBPACK_IMPORTED_MODULE_8__.Helpers.modifyProps(props, fallbackProps, "boxplot"), _props = props = lodash_assign__WEBPACK_IMPORTED_MODULE_5___default()({}, modifiedProps, getCalculatedValues(modifiedProps)), groupComponent = _props.groupComponent, width = _props.width, height = _props.height, padding = _props.padding, standalone = _props.standalone, theme = _props.theme, events = _props.events, sharedEvents = _props.sharedEvents, scale = _props.scale, horizontal = _props.horizontal, data = _props.data, style = _props.style, domain = _props.domain, name = _props.name, initialChildProps = { parent: { domain: domain, scale: scale, @@ -10985,7 +10987,7 @@ height: height, data: data, standalone: standalone, - name: _props.name, + name: name, theme: theme, style: style.parent || {}, padding: padding, @@ -12796,14 +12798,14 @@ }, scale = { x: victory_core__WEBPACK_IMPORTED_MODULE_5__.Scale.getBaseScale(props, "x").domain(domain.x).range(props.horizontal ? range.y : range.x), y: victory_core__WEBPACK_IMPORTED_MODULE_5__.Scale.getBaseScale(props, "y").domain(domain.y).range(props.horizontal ? range.x : range.y) - }, origin = polar ? props.origin || victory_core__WEBPACK_IMPORTED_MODULE_5__.Helpers.getPolarOrigin(props) : void 0, defaultOrientation = props.horizontal ? "top" : "right"; + }, origin = polar ? props.origin || victory_core__WEBPACK_IMPORTED_MODULE_5__.Helpers.getPolarOrigin(props) : void 0, defaultOrientation = props.horizontal ? "top" : "right", labelOrientation = props.labelOrientation || defaultOrientation; return { domain: domain, data: data, scale: scale, style: style, origin: origin, - labelOrientation: props.labelOrientation || defaultOrientation + labelOrientation: labelOrientation }; }, getDataStyles = function(datum, style, props) { style = style || {}; @@ -12863,12 +12865,12 @@ computedType: type || "labels", candleWidth: candleWidth, orientation: orientation - }), yValue = _calculatePlotValues.yValue, xValue = _calculatePlotValues.xValue, labelProps = { + }), yValue = _calculatePlotValues.yValue, xValue = _calculatePlotValues.xValue, dx = _calculatePlotValues.dx, dy = _calculatePlotValues.dy, labelProps = { style: labelStyle, y: yValue, x: xValue, - dx: _calculatePlotValues.dx, - dy: _calculatePlotValues.dy, + dx: dx, + dy: dy, text: text, index: index, scale: scale, @@ -15985,10 +15987,10 @@ tabIndex: tabIndex }); }, Whisker = function(props) { - var _props = props = evaluateProps(props), ariaLabel = _props.ariaLabel, groupComponent = _props.groupComponent, lineComponent = _props.lineComponent, events = _props.events, className = _props.className, majorWhisker = _props.majorWhisker, minorWhisker = _props.minorWhisker, transform = _props.transform, clipPath = _props.clipPath, role = _props.role, shapeRendering = _props.shapeRendering, style = _props.style, baseProps = _objectSpread({}, events, { + var _props = props = evaluateProps(props), ariaLabel = _props.ariaLabel, groupComponent = _props.groupComponent, lineComponent = _props.lineComponent, events = _props.events, className = _props.className, majorWhisker = _props.majorWhisker, minorWhisker = _props.minorWhisker, transform = _props.transform, clipPath = _props.clipPath, role = _props.role, shapeRendering = _props.shapeRendering, style = _props.style, desc = _props.desc, tabIndex = _props.tabIndex, baseProps = _objectSpread({}, events, { style: style, - desc: _props.desc, - tabIndex: _props.tabIndex, + desc: desc, + tabIndex: tabIndex, className: className, transform: transform, clipPath: clipPath, @@ -18297,8 +18299,8 @@ return "number" == typeof degrees ? degrees * (Math.PI / 180) : degrees; } function getRadius(props) { - var _getPadding = getPadding(props), left = _getPadding.left, right = _getPadding.right, top = _getPadding.top, bottom = _getPadding.bottom; - return Math.min(props.width - left - right, props.height - top - bottom) / 2; + var _getPadding = getPadding(props), left = _getPadding.left, right = _getPadding.right, top = _getPadding.top, bottom = _getPadding.bottom, width = props.width; + return Math.min(width - left - right, props.height - top - bottom) / 2; } function isHorizontal(props) { if (void 0 !== props.horizontal || !props.children) return props.horizontal; @@ -18400,7 +18402,7 @@ } : lodash_property__WEBPACK_IMPORTED_MODULE_3___default()(key); }, modifyProps: function(props, fallbackProps, role) { - var themeProps = omit(props.theme && props.theme[role] ? props.theme[role] : {}, [ + var theme = props.theme && props.theme[role] ? props.theme[role] : {}, themeProps = omit(theme, [ "style" ]), horizontal = isHorizontal(props); return lodash_defaults__WEBPACK_IMPORTED_MODULE_5___default()(void 0 === horizontal ? {} : { @@ -18538,7 +18540,7 @@ dx: padding.x, dy: padding.y }; - }(props, datum3), labelProps = { + }(props, datum3), dx = _getOffset.dx, dy = _getOffset.dy, labelProps = { angle: angle, data: data, datum: datum3, @@ -18552,8 +18554,8 @@ verticalAnchor: verticalAnchor, x: x, y: y, - dx: _getOffset.dx, - dy: _getOffset.dy, + dx: dx, + dy: dy, width: width, height: height, style: style1.labels @@ -22894,13 +22896,13 @@ }); }, getDataFromChildren: function(props, childComponents) { - var polar = props.polar, startAngle = props.startAngle, endAngle = props.endAngle, categories = props.categories, parentProps = { + var polar = props.polar, startAngle = props.startAngle, endAngle = props.endAngle, categories = props.categories, minDomain = props.minDomain, maxDomain = props.maxDomain, parentProps = { polar: polar, startAngle: startAngle, endAngle: endAngle, categories: categories, - minDomain: props.minDomain, - maxDomain: props.maxDomain + minDomain: minDomain, + maxDomain: maxDomain }, stack = 0, children = childComponents ? childComponents.slice(0) : react__WEBPACK_IMPORTED_MODULE_10___default.a.Children.toArray(props.children); parentProps = this.addBinsToParentPropsIfHistogram({ children: children, @@ -24764,7 +24766,7 @@ for(; tz[m - 1] > x1;)tz.pop(), --m; var bin, bins = Array(m + 1); for(i = 0; i <= m; ++i)(bin = bins[i] = []).x0 = i > 0 ? tz[i - 1] : x0, bin.x1 = i < m ? tz[i] : x1; - for(i = 0; i < n; ++i)x0 <= (x = values[i]) && x <= x1 && bins[Object(_bisect_js__WEBPACK_IMPORTED_MODULE_1__.default)(tz, x, 0, m)].push(data[i]); + for(i = 0; i < n; ++i)x = values[i], x0 <= x && x <= x1 && bins[Object(_bisect_js__WEBPACK_IMPORTED_MODULE_1__.default)(tz, x, 0, m)].push(data[i]); return bins; } return histogram.value = function(_) { @@ -25336,8 +25338,8 @@ if (n = (values = Float64Array.from(Object(_number_js__WEBPACK_IMPORTED_MODULE_3__.numbers)(values, valueof))).length) { if ((p = +p) <= 0 || n < 2) return Object(_min_js__WEBPACK_IMPORTED_MODULE_1__.default)(values); if (p >= 1) return Object(_max_js__WEBPACK_IMPORTED_MODULE_0__.default)(values); - var n, i = (n - 1) * p, i0 = Math.floor(i), value0 = Object(_max_js__WEBPACK_IMPORTED_MODULE_0__.default)(Object(_quickselect_js__WEBPACK_IMPORTED_MODULE_2__.default)(values, i0).subarray(0, i0 + 1)); - return value0 + (Object(_min_js__WEBPACK_IMPORTED_MODULE_1__.default)(values.subarray(i0 + 1)) - value0) * (i - i0); + var n, i = (n - 1) * p, i0 = Math.floor(i), value0 = Object(_max_js__WEBPACK_IMPORTED_MODULE_0__.default)(Object(_quickselect_js__WEBPACK_IMPORTED_MODULE_2__.default)(values, i0).subarray(0, i0 + 1)), value1 = Object(_min_js__WEBPACK_IMPORTED_MODULE_1__.default)(values.subarray(i0 + 1)); + return value0 + (value1 - value0) * (i - i0); } } function quantileSorted(values, p, valueof = _number_js__WEBPACK_IMPORTED_MODULE_3__.default) { @@ -25687,7 +25689,7 @@ }, gutterOffset = { x: gutter && "object" == typeof gutter && gutter.left || 0, y: rowGutter && "object" == typeof rowGutter && rowGutter.top || 0 - }, _getDimensions = getDimensions(props, fallbackProps), borderProps = getBorderProps(props, _getDimensions.height, _getDimensions.width), titleProps = getTitleProps(props, borderProps), initialProps = { + }, _getDimensions = getDimensions(props, fallbackProps), height = _getDimensions.height, width = _getDimensions.width, borderProps = getBorderProps(props, height, width), titleProps = getTitleProps(props, borderProps), initialProps = { parent: { data: data, standalone: standalone, @@ -27006,10 +27008,13 @@ }, getRange = function(props, axis) { if (props.range && props.range[axis]) return props.range[axis]; if (props.range && Array.isArray(props.range)) return props.range; - if ("angular" === getAxisType(props)) return [ - victory_core__WEBPACK_IMPORTED_MODULE_3__.Helpers.degreesToRadians(props.startAngle), - victory_core__WEBPACK_IMPORTED_MODULE_3__.Helpers.degreesToRadians(props.endAngle) - ]; + if ("angular" === getAxisType(props)) { + var startAngle = victory_core__WEBPACK_IMPORTED_MODULE_3__.Helpers.degreesToRadians(props.startAngle), endAngle = victory_core__WEBPACK_IMPORTED_MODULE_3__.Helpers.degreesToRadians(props.endAngle); + return [ + startAngle, + endAngle + ]; + } var radius = getRadius(props); return [ props.innerRadius || 0, @@ -27610,9 +27615,9 @@ } }; return data.reduce(function(childProps, datum, index) { - var eventKey = lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default()(datum.eventKey) ? index : datum.eventKey, _Helpers$scalePoint = victory_core__WEBPACK_IMPORTED_MODULE_3__.Helpers.scalePoint(props, datum), dataProps = { - x: _Helpers$scalePoint.x, - y: _Helpers$scalePoint.y, + var eventKey = lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default()(datum.eventKey) ? index : datum.eventKey, _Helpers$scalePoint = victory_core__WEBPACK_IMPORTED_MODULE_3__.Helpers.scalePoint(props, datum), x = _Helpers$scalePoint.x, y = _Helpers$scalePoint.y, dataProps = { + x: x, + y: y, datum: datum, data: data, index: index, @@ -28401,8 +28406,8 @@ name: name }, child.props))); }, []); - }, childNames = lodash_keys__WEBPACK_IMPORTED_MODULE_1___default()(baseProps); - return alterChildren(react__WEBPACK_IMPORTED_MODULE_7___default.a.Children.toArray(props.children), childNames); + }, childNames = lodash_keys__WEBPACK_IMPORTED_MODULE_1___default()(baseProps), childComponents = react__WEBPACK_IMPORTED_MODULE_7___default.a.Children.toArray(props.children); + return alterChildren(childComponents, childNames); } }, { @@ -28617,13 +28622,13 @@ }, scale = { x: baseScale.x.domain(domain.x).range(props.horizontal ? range.y : range.x), y: baseScale.y.domain(domain.y).range(props.horizontal ? range.x : range.y) - }, _props = props, colorScale = _props.colorScale; + }, _props = props, colorScale = _props.colorScale, horizontal = _props.horizontal; return { datasets: datasets2, categories: categories, range: range, domain: domain, - horizontal: _props.horizontal, + horizontal: horizontal, scale: scale, style: style, colorScale: colorScale, @@ -30093,9 +30098,9 @@ } }; return data.reduce(function(childProps, datum, index) { - var polygon = lodash_without__WEBPACK_IMPORTED_MODULE_1___default()(polygons[index], "data"), eventKey = lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default()(datum.eventKey) ? index : datum.eventKey, _Helpers$scalePoint = victory_core__WEBPACK_IMPORTED_MODULE_4__.Helpers.scalePoint(props, datum), dataProps = { - x: _Helpers$scalePoint.x, - y: _Helpers$scalePoint.y, + var polygon = lodash_without__WEBPACK_IMPORTED_MODULE_1___default()(polygons[index], "data"), eventKey = lodash_isNil__WEBPACK_IMPORTED_MODULE_0___default()(datum.eventKey) ? index : datum.eventKey, _Helpers$scalePoint = victory_core__WEBPACK_IMPORTED_MODULE_4__.Helpers.scalePoint(props, datum), x = _Helpers$scalePoint.x, y = _Helpers$scalePoint.y, dataProps = { + x: x, + y: y, datum: datum, data: data, index: index, @@ -30674,7 +30679,8 @@ return evt.deltaY > 0; }, getScaleFactor: function(evt) { - return Math.abs(1 + (this.zoommingOut(evt) ? 1 : -1) * Math.min(Math.abs(evt.deltaY / 300), 0.5)); + var sign = this.zoommingOut(evt) ? 1 : -1, delta = Math.min(Math.abs(evt.deltaY / 300), 0.5); + return Math.abs(1 + sign * delta); }, getScalePercent: function(evt, props, axis) { var originalDomain = this.getDomain(props), _originalDomain$axis = _slicedToArray(originalDomain[axis], 2), from = _originalDomain$axis[0], to = _originalDomain$axis[1]; diff --git a/crates/swc_ecma_minifier/tests/benches-full/vue.js b/crates/swc_ecma_minifier/tests/benches-full/vue.js index aad4a3d00bdc..9a9a3ebe3328 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/vue.js +++ b/crates/swc_ecma_minifier/tests/benches-full/vue.js @@ -1307,8 +1307,8 @@ function resolveConstructorOptions(Ctor) { var options = Ctor.options; if (Ctor.super) { - var superOptions = resolveConstructorOptions(Ctor.super); - if (superOptions !== Ctor.superOptions) { + var superOptions = resolveConstructorOptions(Ctor.super), cachedSuperOptions = Ctor.superOptions; + if (superOptions !== cachedSuperOptions) { Ctor.superOptions = superOptions; var modifiedOptions = function(Ctor) { var modified, latest = Ctor.options, sealed = Ctor.sealedOptions; @@ -2441,7 +2441,7 @@ var c = oldCh[i]; if (isDef(c) && sameVnode(node, c)) return i; } - }(newStartVnode, oldCh, oldStartIdx, oldEndIdx), isUndef(idxInOld) ? createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, !1, newCh, newStartIdx) : sameVnode(vnodeToMove = oldCh[idxInOld], newStartVnode) ? (patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx), oldCh[idxInOld] = void 0, canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm)) : createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, !1, newCh, newStartIdx), newStartVnode = newCh[++newStartIdx]); + }(newStartVnode, oldCh, oldStartIdx, oldEndIdx), isUndef(idxInOld) ? createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, !1, newCh, newStartIdx) : (vnodeToMove = oldCh[idxInOld], sameVnode(vnodeToMove, newStartVnode) ? (patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx), oldCh[idxInOld] = void 0, canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm)) : createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, !1, newCh, newStartIdx)), newStartVnode = newCh[++newStartIdx]); oldStartIdx > oldEndIdx ? (refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm, addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue)) : newStartIdx > newEndIdx && removeVnodes(oldCh, oldStartIdx, oldEndIdx); }(elm, oldCh, ch, insertedVnodeQueue, removeOnly) : isDef(ch) ? (checkDuplicateKeys(ch), isDef(oldVnode.text) && nodeOps.setTextContent(elm, ''), addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue)) : isDef(oldCh) ? removeVnodes(oldCh, 0, oldCh.length - 1) : isDef(oldVnode.text) && nodeOps.setTextContent(elm, '') : oldVnode.text !== vnode.text && nodeOps.setTextContent(elm, vnode.text), isDef(data) && isDef(i = data.hook) && isDef(i = i.postpatch) && i(oldVnode, vnode); } diff --git a/crates/swc_ecma_minifier/tests/exec.rs b/crates/swc_ecma_minifier/tests/exec.rs index 56907b30ca7a..688321f5d953 100644 --- a/crates/swc_ecma_minifier/tests/exec.rs +++ b/crates/swc_ecma_minifier/tests/exec.rs @@ -10126,17 +10126,49 @@ fn feedback_regex_range() { /* eslint-enable prettier/prettier */ ); console.log('PASS') - "###; + "###; run_default_exec_test(src); } #[test] -fn issue_6051() { +fn issue_6047_1() { + run_default_exec_test( + r###" + let foo = () => 1; + + const obj = { + get 0() { + foo = () => 2; + return 40; + }, + }; + console.log(obj) + + var c = obj[0]; + + console.log(foo(c)); + "###, + ); +} + +#[test] +fn issue_6047_2() { run_default_exec_test( r###" - const o = { '010': '', '123': 'bar' } - console.log(o) + let foo = () => 1; + + const obj = new Proxy({}, { + get () { + foo = () => 2; + return 40; + }, + }); + console.log(obj) + + var c = obj[0]; + + console.log(foo(c)); "###, ); } diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/2257/full/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/2257/full/output.js index 3556fb925876..4438305dbf55 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/2257/full/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/2257/full/output.js @@ -544,15 +544,15 @@ var ref = _react.useState(window.__ICE_PAGE_PROPS__), data = ref[0], setData = ref[1]; return _react.useEffect(function() { title && (document.title = title), scrollToTop && window.scrollTo(0, 0), window.__ICE_PAGE_PROPS__ ? window.__ICE_PAGE_PROPS__ = null : PageComponent.getInitialProps && swcHelpers.asyncToGenerator(_regeneratorRuntime.default.mark(function _callee() { - var _location, href, origin, pathname, search, curPath, query, initialContext; + var _location, href, origin, pathname, search, curPath, query, ssrError, initialContext; return _regeneratorRuntime.default.wrap(function(_ctx) { for(;;)switch(_ctx.prev = _ctx.next){ case 0: - return href = (_location = window.location).href, origin = _location.origin, pathname = _location.pathname, search = _location.search, curPath = href.replace(origin, ""), query = queryString.parse(search), initialContext = { + return href = (_location = window.location).href, origin = _location.origin, pathname = _location.pathname, search = _location.search, curPath = href.replace(origin, ""), query = queryString.parse(search), ssrError = window.__ICE_SSR_ERROR__, initialContext = { pathname: pathname, path: curPath, query: query, - ssrError: window.__ICE_SSR_ERROR__ + ssrError: ssrError }, _ctx.next = 7, PageComponent.getInitialProps(initialContext); case 7: setData(_ctx.sent); @@ -1197,7 +1197,7 @@ extras: extras }; }((0, decorators[i])(elementObject) || elementObject); - _addElementPlacement(element = elementFinisherExtras.element, placements), elementFinisherExtras.finisher && finishers.push(elementFinisherExtras.finisher); + element = elementFinisherExtras.element, _addElementPlacement(element, placements), elementFinisherExtras.finisher && finishers.push(elementFinisherExtras.finisher); var newExtras = elementFinisherExtras.extras; if (newExtras) { for(var j = 0; j < newExtras.length; j++)_addElementPlacement(newExtras[j], placements); @@ -2944,7 +2944,7 @@ var bind = __webpack_require__(59561), IndexedObject = __webpack_require__(51478), toObject = __webpack_require__(89343), toLength = __webpack_require__(31998), arraySpeciesCreate = __webpack_require__(96582), push = [].push, createMethod = function(TYPE) { var IS_MAP = 1 == TYPE, IS_FILTER = 2 == TYPE, IS_SOME = 3 == TYPE, IS_EVERY = 4 == TYPE, IS_FIND_INDEX = 6 == TYPE, IS_FILTER_REJECT = 7 == TYPE, NO_HOLES = 5 == TYPE || IS_FIND_INDEX; return function($this, callbackfn, that, specificCreate) { - for(var value, result, O = toObject($this), self1 = IndexedObject(O), boundFunction = bind(callbackfn, that, 3), length = toLength(self1.length), index = 0, create = specificCreate || arraySpeciesCreate, target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : void 0; length > index; index++)if ((NO_HOLES || index in self1) && (result = boundFunction(value = self1[index], index, O), TYPE)) { + for(var value, result, O = toObject($this), self1 = IndexedObject(O), boundFunction = bind(callbackfn, that, 3), length = toLength(self1.length), index = 0, create = specificCreate || arraySpeciesCreate, target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : void 0; length > index; index++)if ((NO_HOLES || index in self1) && (value = self1[index], result = boundFunction(value, index, O), TYPE)) { if (IS_MAP) target[index] = result; else if (result) switch(TYPE){ case 3: @@ -3744,7 +3744,7 @@ var global = __webpack_require__(19514), isCallable = __webpack_require__(67106); module.exports = function(namespace, method) { var argument; - return arguments.length < 2 ? isCallable(argument = global[namespace]) ? argument : void 0 : global[namespace] && global[namespace][method]; + return arguments.length < 2 ? (argument = global[namespace], isCallable(argument) ? argument : void 0) : global[namespace] && global[namespace][method]; }; }, 99422: function(module, __unused_webpack_exports, __webpack_require__) { @@ -5032,20 +5032,20 @@ }, 39803: function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { "use strict"; - var $ = __webpack_require__(35437), global = __webpack_require__(19514), arrayBufferModule = __webpack_require__(44757), setSpecies = __webpack_require__(53988), ARRAY_BUFFER = "ArrayBuffer", ArrayBuffer1 = arrayBufferModule[ARRAY_BUFFER]; + var $ = __webpack_require__(35437), global = __webpack_require__(19514), arrayBufferModule = __webpack_require__(44757), setSpecies = __webpack_require__(53988), ARRAY_BUFFER = "ArrayBuffer", ArrayBuffer1 = arrayBufferModule[ARRAY_BUFFER], NativeArrayBuffer = global[ARRAY_BUFFER]; $({ global: !0, - forced: global[ARRAY_BUFFER] !== ArrayBuffer1 + forced: NativeArrayBuffer !== ArrayBuffer1 }, { ArrayBuffer: ArrayBuffer1 }), setSpecies(ARRAY_BUFFER); }, 37351: function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - var $ = __webpack_require__(35437), ArrayBufferViewCore = __webpack_require__(4351); + var $ = __webpack_require__(35437), ArrayBufferViewCore = __webpack_require__(4351), NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS; $({ target: "ArrayBuffer", stat: !0, - forced: !ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS + forced: !NATIVE_ARRAY_BUFFER_VIEWS }, { isView: ArrayBufferViewCore.isView }); @@ -5407,7 +5407,7 @@ }, { slice: function(start, end) { var Constructor, result, n, O = toIndexedObject(this), length = toLength(O.length), k = toAbsoluteIndex(start, length), fin = toAbsoluteIndex(void 0 === end ? length : end, length); - if (isArray(O) && (isConstructor(Constructor = O.constructor) && (Constructor === Array || isArray(Constructor.prototype)) ? Constructor = void 0 : isObject(Constructor) && null === (Constructor = Constructor[SPECIES]) && (Constructor = void 0), Constructor === Array || void 0 === Constructor)) return nativeSlice.call(O, k, fin); + if (isArray(O) && (Constructor = O.constructor, isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype)) ? Constructor = void 0 : isObject(Constructor) && null === (Constructor = Constructor[SPECIES]) && (Constructor = void 0), Constructor === Array || void 0 === Constructor)) return nativeSlice.call(O, k, fin); for(n = 0, result = new (void 0 === Constructor ? Array : Constructor)(max(fin - k, 0)); k < fin; k++, n++)k in O && createProperty(result, n, O[k]); return result.length = n, result; } @@ -8324,12 +8324,12 @@ handlePrototype(DOMTokenListPrototype, "DOMTokenList"); }, 44618: function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { - var $ = __webpack_require__(35437), global = __webpack_require__(19514), task = __webpack_require__(46660); + var $ = __webpack_require__(35437), global = __webpack_require__(19514), task = __webpack_require__(46660), FORCED = !global.setImmediate || !global.clearImmediate; $({ global: !0, bind: !0, enumerable: !0, - forced: !global.setImmediate || !global.clearImmediate + forced: FORCED }, { setImmediate: task.set, clearImmediate: task.clear @@ -8493,7 +8493,7 @@ state.updateURL(); }, forEach: function(callback) { - for(var entry, entries = getInternalParamsState(this).entries, boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : void 0, 3), index = 0; index < entries.length;)boundFunction((entry = entries[index++]).value, entry.key, this); + for(var entry, entries = getInternalParamsState(this).entries, boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : void 0, 3), index = 0; index < entries.length;)entry = entries[index++], boundFunction(entry.value, entry.key, this); }, keys: function() { return new URLSearchParamsIterator(this, "keys"); @@ -8509,7 +8509,7 @@ }), redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: "entries" }), redefine(URLSearchParamsPrototype, "toString", function() { - for(var entry, entries = getInternalParamsState(this).entries, result = [], index = 0; index < entries.length;)result.push(serialize((entry = entries[index++]).key) + "=" + serialize(entry.value)); + for(var entry, entries = getInternalParamsState(this).entries, result = [], index = 0; index < entries.length;)entry = entries[index++], result.push(serialize(entry.key) + "=" + serialize(entry.value)); return result.join("&"); }, { enumerable: !0 @@ -10632,7 +10632,7 @@ }, exports.getRenderApp = getRenderApp, exports.reactAppRenderer = function(options) { var _a; return __awaiter(this, void 0, void 0, function() { - var appConfig, _b, buildConfig, appLifecycle, createBaseApp, emitLifeCycles, initAppLifeCycles, context, _c, href, origin_1, pathname, search, path, query, initialContext, _d, _e, runtime, modifiedAppConfig; + var appConfig, _b, buildConfig, appLifecycle, createBaseApp, emitLifeCycles, initAppLifeCycles, context, _c, href, origin_1, pathname, search, path, query, ssrError, initialContext, _d, _e, runtime, modifiedAppConfig; return __generator(this, function(_f) { switch(_f.label){ case 0: @@ -10649,11 +10649,11 @@ 3, 3 ]; - return href = (_c = window.location).href, origin_1 = _c.origin, pathname = _c.pathname, search = _c.search, path = href.replace(origin_1, ""), query = queryString.parse(search), initialContext = { + return href = (_c = window.location).href, origin_1 = _c.origin, pathname = _c.pathname, search = _c.search, path = href.replace(origin_1, ""), query = queryString.parse(search), ssrError = window.__ICE_SSR_ERROR__, initialContext = { pathname: pathname, path: path, query: query, - ssrError: window.__ICE_SSR_ERROR__ + ssrError: ssrError }, _d = context, [ 4, appConfig.app.getInitialData(initialContext) @@ -12841,7 +12841,7 @@ } var Fg = new aa.Component().refs; function Gg(a, b, c, d) { - c = null == (c = c(d, b = a.memoizedState)) ? b : m({}, b, c), a.memoizedState = c, 0 === a.lanes && (a.updateQueue.baseState = c); + b = a.memoizedState, c = null == (c = c(d, b)) ? b : m({}, b, c), a.memoizedState = c, 0 === a.lanes && (a.updateQueue.baseState = c); } var Kg = { isMounted: function(a) { @@ -13092,7 +13092,7 @@ b = (b = b.documentElement) ? b.namespaceURI : mb(null, ""); break; default: - b = (a = 8 === a ? b.parentNode : b).namespaceURI || null, b = mb(b, a = a.tagName); + b = (a = 8 === a ? b.parentNode : b).namespaceURI || null, a = a.tagName, b = mb(b, a); } H(ah), I(ah, b); } @@ -13565,7 +13565,7 @@ }, useTransition: function() { var a = Qh(!1), b = a[0]; - return Sh(a = di.bind(null, a[1])), [ + return a = di.bind(null, a[1]), Sh(a), [ a, b ]; @@ -13858,7 +13858,7 @@ if (null !== a && (b.dependencies = a.dependencies), Dg |= b.lanes, 0 != (c & b.childLanes)) { if (null !== a && b.child !== a.child) throw Error(y(153)); if (null !== b.child) { - for(c = Tg(a = b.child, a.pendingProps), b.child = c, c.return = b; null !== a.sibling;)a = a.sibling, (c = c.sibling = Tg(a, a.pendingProps)).return = b; + for(a = b.child, c = Tg(a, a.pendingProps), b.child = c, c.return = b; null !== a.sibling;)a = a.sibling, (c = c.sibling = Tg(a, a.pendingProps)).return = b; c.sibling = null; } return b.child; @@ -15484,7 +15484,7 @@ d = b.type._context, e = b.pendingProps, g = b.memoizedProps, f = e.value; var h = b.type._context; if (I(mg, h._currentValue), h._currentValue = f, null !== g) { - if (0 == (f = He(h = g.value, f) ? 0 : ("function" == typeof d._calculateChangedBits ? d._calculateChangedBits(h, f) : 1073741823) | 0)) { + if (h = g.value, 0 == (f = He(h, f) ? 0 : ("function" == typeof d._calculateChangedBits ? d._calculateChangedBits(h, f) : 1073741823) | 0)) { if (g.children === e.children && !N.current) { b = hi(a, b, c); break a; @@ -15522,7 +15522,7 @@ case 9: return e = b.type, d = (f = b.pendingProps).children, tg(b, c), e = vg(e, f.unstable_observedBits), d = d(e), b.flags |= 1, fi(a, b, d, c), b.child; case 14: - return f = lg(e = b.type, b.pendingProps), f = lg(e.type, f), ii(a, b, e, f, d, c); + return e = b.type, f = lg(e, b.pendingProps), f = lg(e.type, f), ii(a, b, e, f, d, c); case 15: return ki(a, b, b.type, b.pendingProps, d, c); case 17: @@ -16546,10 +16546,11 @@ _owner: a1._owner }), b.push(d)); if (h = 0, e = "" === e ? "." : e + ":", Array.isArray(a)) for(var g = 0; g < a.length; g++){ - var f = e + N(k = a[g], g); + k = a[g]; + var f = e + N(k, g); h += O(k, b, c, f, d); } - else if ("function" == typeof (f = null === (a2 = a) || "object" != typeof a2 ? null : "function" == typeof (a2 = x && a2[x] || a2["@@iterator"]) ? a2 : null)) for(a = f.call(a), g = 0; !(k = a.next()).done;)f = e + N(k = k.value, g++), h += O(k, b, c, f, d); + else if ("function" == typeof (f = null === (a2 = a) || "object" != typeof a2 ? null : "function" == typeof (a2 = x && a2[x] || a2["@@iterator"]) ? a2 : null)) for(a = f.call(a), g = 0; !(k = a.next()).done;)k = k.value, f = e + N(k, g++), h += O(k, b, c, f, d); else if ("object" === k) throw Error(z(31, "[object Object]" == (b = "" + a) ? "object with keys {" + Object.keys(a).join(", ") + "}" : b)); }(a, e, "", "", function(a) { return b.call(c, a, d++); diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/firebase-core/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/firebase-core/1/output.js index 7490697aea64..213c172f3705 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/firebase-core/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/firebase-core/1/output.js @@ -380,7 +380,7 @@ var h = b.g = c[f]; e = qb(h, d, !0, b) && e; } - if (h = b.g = a, e = qb(h, d, !0, b) && e, e = qb(h, d, !1, b) && e, c) for(f = 0; f < c.length; f++)e = qb(h = b.g = c[f], d, !1, b) && e; + if (h = b.g = a, e = qb(h, d, !0, b) && e, e = qb(h, d, !1, b) && e, c) for(f = 0; f < c.length; f++)h = b.g = c[f], e = qb(h, d, !1, b) && e; } function qb(a, b, c, d) { if (!(b = a.i.g[String(b)])) return !0; @@ -397,7 +397,7 @@ t(C, v), C.prototype[B] = !0, C.prototype.removeEventListener = function(a, b, c, d) { !function nb(a, b, c, d, e) { if (Array.isArray(b)) for(var f = 0; f < b.length; f++)nb(a, b[f], c, d, e); - else (d = p(d) ? !!d.capture : !!d, c = hb(c), a && a[B]) ? (a = a.i, (b = String(b).toString()) in a.g && -1 < (c = ab(f = a.g[b], c, d, e)) && (Za(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.g[b], a.h--))) : a && (a = jb(a)) && (b = a.g[b.toString()], a = -1, b && (a = ab(b, c, d, e)), (c = -1 < a ? b[a] : null) && ob(c)); + else (d = p(d) ? !!d.capture : !!d, c = hb(c), a && a[B]) ? (a = a.i, (b = String(b).toString()) in a.g && (f = a.g[b], -1 < (c = ab(f, c, d, e)) && (Za(f[c]), Array.prototype.splice.call(f, c, 1), 0 == f.length && (delete a.g[b], a.h--)))) : a && (a = jb(a)) && (b = a.g[b.toString()], a = -1, b && (a = ab(b, c, d, e)), (c = -1 < a ? b[a] : null) && ob(c)); }(this, a, b, c, d); }, C.prototype.M = function() { if (C.Z.M.call(this), this.i) { @@ -994,7 +994,7 @@ })); } function dd(a, b) { - V(a), b = W(a, b), T(a.g.h, b) && (a.i = null, a.h -= a.g.get(b).length, T((a = a.g).h, b) && (delete a.h[b], a.i--, a.g.length > 2 * a.i && Lc(a))); + V(a), b = W(a, b), T(a.g.h, b) && (a.i = null, a.h -= a.g.get(b).length, a = a.g, T(a.h, b) && (delete a.h[b], a.i--, a.g.length > 2 * a.i && Lc(a))); } function ed(a, b) { return V(a), b = W(a, b), T(a.g.h, b); @@ -1860,10 +1860,13 @@ if (img) { var handleLoad = function() { img.src !== emptyDataURL && ("decode" in img ? img.decode() : Promise.resolve()).catch(function() {}).then(function() { - "blur" === placeholder && (img.style.filter = "none", img.style.backgroundSize = "none", img.style.backgroundImage = "none"), loadedImageURLs.add(src), onLoadingComplete && onLoadingComplete({ - naturalWidth: img.naturalWidth, - naturalHeight: img.naturalHeight - }); + if ("blur" === placeholder && (img.style.filter = "none", img.style.backgroundSize = "none", img.style.backgroundImage = "none"), loadedImageURLs.add(src), onLoadingComplete) { + var naturalWidth = img.naturalWidth, naturalHeight = img.naturalHeight; + onLoadingComplete({ + naturalWidth: naturalWidth, + naturalHeight: naturalHeight + }); + } }); }; img.complete ? handleLoad() : img.onload = handleLoad; diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/moment/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/moment/1/output.js index e5eb4816dc3a..a92735cf25b8 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/moment/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/moment/1/output.js @@ -83,7 +83,7 @@ var token, getSetMillisecond, momentProperties = hooks.momentProperties = [], updateInProgress = !1; function copyConfig(to, from) { var i, prop, val; - if (isUndefined(from._isAMomentObject) || (to._isAMomentObject = from._isAMomentObject), isUndefined(from._i) || (to._i = from._i), isUndefined(from._f) || (to._f = from._f), isUndefined(from._l) || (to._l = from._l), isUndefined(from._strict) || (to._strict = from._strict), isUndefined(from._tzm) || (to._tzm = from._tzm), isUndefined(from._isUTC) || (to._isUTC = from._isUTC), isUndefined(from._offset) || (to._offset = from._offset), isUndefined(from._pf) || (to._pf = getParsingFlags(from)), isUndefined(from._locale) || (to._locale = from._locale), momentProperties.length > 0) for(i = 0; i < momentProperties.length; i++)isUndefined(val = from[prop = momentProperties[i]]) || (to[prop] = val); + if (isUndefined(from._isAMomentObject) || (to._isAMomentObject = from._isAMomentObject), isUndefined(from._i) || (to._i = from._i), isUndefined(from._f) || (to._f = from._f), isUndefined(from._l) || (to._l = from._l), isUndefined(from._strict) || (to._strict = from._strict), isUndefined(from._tzm) || (to._tzm = from._tzm), isUndefined(from._isUTC) || (to._isUTC = from._isUTC), isUndefined(from._offset) || (to._offset = from._offset), isUndefined(from._pf) || (to._pf = getParsingFlags(from)), isUndefined(from._locale) || (to._locale = from._locale), momentProperties.length > 0) for(i = 0; i < momentProperties.length; i++)val = from[prop = momentProperties[i]], isUndefined(val) || (to[prop] = val); return to; } function Moment(config) { @@ -129,8 +129,8 @@ null != config && this.set(config); } function zeroFill(number, targetLength, forceSign) { - var absNumber = "" + Math.abs(number); - return (number >= 0 ? forceSign ? "+" : "" : "-") + Math.pow(10, Math.max(0, targetLength - absNumber.length)).toString().substr(1) + absNumber; + var absNumber = "" + Math.abs(number), zerosToFill = targetLength - absNumber.length; + return (number >= 0 ? forceSign ? "+" : "" : "-") + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; } hooks.suppressDeprecationWarnings = !1, hooks.deprecationHandler = null, keys = Object.keys ? Object.keys : function(obj) { var i, res = []; diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/quagga2/1.4.2/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/quagga2/1.4.2/1/output.js index 2347cd5af3e4..2441b14c73f0 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/quagga2/1.4.2/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/quagga2/1.4.2/1/output.js @@ -373,10 +373,10 @@ width: inputWidth, height: inputHeight }, parsedArea = Object.keys(area).reduce(function(result, key) { - var value, parsed = { - value: parseFloat(value = area[key]), + var value, parsed = (value = area[key], { + value: parseFloat(value), unit: (value.indexOf("%"), value.length, "%") - }, calculated = _dimensionsConverters[key](parsed, context); + }), calculated = _dimensionsConverters[key](parsed, context); return result[key] = calculated, result; }, {}); return { @@ -709,7 +709,7 @@ function _trace(current, color, label, edgelabel) { var i, y, x; for(i = 0; i < 7; i++){ - if (imageData[pos = (y = current.cy + searchDirections[current.dir][0]) * width + (x = current.cx + searchDirections[current.dir][1])] === color && (0 === labelData[pos] || labelData[pos] === label)) return labelData[pos] = label, current.cy = y, current.cx = x, !0; + if (y = current.cy + searchDirections[current.dir][0], x = current.cx + searchDirections[current.dir][1], imageData[pos = y * width + x] === color && (0 === labelData[pos] || labelData[pos] === label)) return labelData[pos] = label, current.cy = y, current.cx = x, !0; 0 === labelData[pos] && (labelData[pos] = edgelabel), current.dir = (current.dir + 1) % 8; } return !1; @@ -783,10 +783,10 @@ locate: function() { _config.halfSample && Object(_common_cv_utils__WEBPACK_IMPORTED_MODULE_3__.f)(_inputImageWrapper, _currentImageWrapper), Object(_common_cv_utils__WEBPACK_IMPORTED_MODULE_3__.i)(_currentImageWrapper, _binaryImageWrapper), _binaryImageWrapper.zeroBorder(), _config.debug.showCanvas && _binaryImageWrapper.show(_canvasContainer.dom.binary, 255); var patchesFound = function() { - var x, y, i, j, x1, y1, moments, rasterResult, patch, patchesFound = []; - for(i = 0; i < _numPatches.x; i++)for(j = 0; j < _numPatches.y; j++)x = x1 = _subImageWrapper.size.x * i, y = y1 = _subImageWrapper.size.y * j, _binaryImageWrapper.subImageAsCopy(_subImageWrapper, Object(_common_cv_utils__WEBPACK_IMPORTED_MODULE_3__.h)(x, y)), _skeletonizer.skeletonize(), _config.debug.showSkeleton && _skelImageWrapper.overlay(_canvasContainer.dom.binary, 360, Object(_common_cv_utils__WEBPACK_IMPORTED_MODULE_3__.h)(x, y)), _skelImageWrapper.zeroBorder(), _common_array_helper__WEBPACK_IMPORTED_MODULE_4__.a.init(_labelImageWrapper.data, 0), rasterResult = _rasterizer__WEBPACK_IMPORTED_MODULE_6__.a.create(_skelImageWrapper, _labelImageWrapper).rasterize(0), _config.debug.showLabels && _labelImageWrapper.overlay(_canvasContainer.dom.binary, Math.floor(360 / rasterResult.count), { - x: x1, - y: y1 + var i, j, x, y, moments, rasterResult, patch, patchesFound = []; + for(i = 0; i < _numPatches.x; i++)for(j = 0; j < _numPatches.y; j++)x = _subImageWrapper.size.x * i, y = _subImageWrapper.size.y * j, _binaryImageWrapper.subImageAsCopy(_subImageWrapper, Object(_common_cv_utils__WEBPACK_IMPORTED_MODULE_3__.h)(x, y)), _skeletonizer.skeletonize(), _config.debug.showSkeleton && _skelImageWrapper.overlay(_canvasContainer.dom.binary, 360, Object(_common_cv_utils__WEBPACK_IMPORTED_MODULE_3__.h)(x, y)), _skelImageWrapper.zeroBorder(), _common_array_helper__WEBPACK_IMPORTED_MODULE_4__.a.init(_labelImageWrapper.data, 0), rasterResult = _rasterizer__WEBPACK_IMPORTED_MODULE_6__.a.create(_skelImageWrapper, _labelImageWrapper).rasterize(0), _config.debug.showLabels && _labelImageWrapper.overlay(_canvasContainer.dom.binary, Math.floor(360 / rasterResult.count), { + x: x, + y: y }), moments = _labelImageWrapper.moments(rasterResult.count), patchesFound = patchesFound.concat(function(moments, patchPos, x, y) { var k, avg, matchingMoments, patch, eligibleMoments = [], patchesFound = [], minComponentWeight = Math.ceil(_patchSize.x / 3); if (moments.length >= 2) { @@ -839,7 +839,7 @@ }(moments, [ i, j - ], x1, y1)); + ], x, y)); if (_config.debug.showFoundPatches) for(i = 0; i < patchesFound.length; i++)patch = patchesFound[i], _common_image_debug__WEBPACK_IMPORTED_MODULE_5__.a.drawRect(patch.pos, _subImageWrapper.size, _canvasContainer.ctx.binary, { color: "#99ff00", lineWidth: 2 @@ -1201,8 +1201,8 @@ function(module1, exports1) { var objectProto = Object.prototype; module1.exports = function(value) { - var Ctor = value && value.constructor; - return value === ("function" == typeof Ctor && Ctor.prototype || objectProto); + var Ctor = value && value.constructor, proto = "function" == typeof Ctor && Ctor.prototype || objectProto; + return value === proto; }; }, function(module1, exports1, __webpack_require__) { @@ -1723,7 +1723,9 @@ var assocIndexOf = __webpack_require__(25), splice = Array.prototype.splice; module1.exports = function(key) { var data = this.__data__, index = assocIndexOf(data, key); - return !(index < 0) && (index == data.length - 1 ? data.pop() : splice.call(data, index, 1), --this.size, !0); + if (index < 0) return !1; + var lastIndex = data.length - 1; + return index == lastIndex ? data.pop() : splice.call(data, index, 1), --this.size, !0; }; }, function(module1, exports1, __webpack_require__) { @@ -6265,7 +6267,8 @@ value: function(charArray, index, maxWeight) { var arrayToCheck = charArray.slice(0, index), length = arrayToCheck.length; return code_93_reader_ALPHABET[arrayToCheck.reduce(function(sum, _char3, i) { - return sum + ((-1 * i + (length - 1)) % maxWeight + 1) * code_93_reader_ALPHABET.indexOf(_char3.charCodeAt(0)); + var value = code_93_reader_ALPHABET.indexOf(_char3.charCodeAt(0)); + return sum + ((-1 * i + (length - 1)) % maxWeight + 1) * value; }, 0) % 47] === charArray[index].charCodeAt(0); } }, diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/react-countup/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/react-countup/1/output.js index aa47281259b3..dfe388b8d2e6 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/react-countup/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/react-countup/1/output.js @@ -251,10 +251,13 @@ if (img) { var handleLoad = function() { img.src !== emptyDataURL && ("decode" in img ? img.decode() : Promise.resolve()).catch(function() {}).then(function() { - "blur" === placeholder && (img.style.filter = "none", img.style.backgroundSize = "none", img.style.backgroundImage = "none"), loadedImageURLs.add(src), onLoadingComplete && onLoadingComplete({ - naturalWidth: img.naturalWidth, - naturalHeight: img.naturalHeight - }); + if ("blur" === placeholder && (img.style.filter = "none", img.style.backgroundSize = "none", img.style.backgroundImage = "none"), loadedImageURLs.add(src), onLoadingComplete) { + var naturalWidth = img.naturalWidth, naturalHeight = img.naturalHeight; + onLoadingComplete({ + naturalWidth: naturalWidth, + naturalHeight: naturalHeight + }); + } }); }; img.complete ? handleLoad() : img.onload = handleLoad; diff --git a/crates/swc_ecma_minifier/tests/fixture/next/31077/static/chunks/1606726a.10299989c08cb523/output.js b/crates/swc_ecma_minifier/tests/fixture/next/31077/static/chunks/1606726a.10299989c08cb523/output.js index 5f4728debc7b..4ae441298872 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/31077/static/chunks/1606726a.10299989c08cb523/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/31077/static/chunks/1606726a.10299989c08cb523/output.js @@ -688,7 +688,7 @@ if (3 == node.nodeType) return node; if (1 == node.nodeType && offset > 0) { if (node.childNodes.length > offset && 3 == node.childNodes[offset].nodeType) return node.childNodes[offset]; - offset = nodeSize(node = node.childNodes[offset - 1]); + node = node.childNodes[offset - 1], offset = nodeSize(node); } else { if (1 != node.nodeType || !(offset < node.childNodes.length)) return null; node = node.childNodes[offset], offset = 0; @@ -1156,7 +1156,8 @@ if (node) { for(var len = nodeLen(node);;)if (offset < len) { if (1 != node.nodeType) break; - if (isIgnorable(node.childNodes[offset])) moveNode = node, moveOffset = ++offset; + var after = node.childNodes[offset]; + if (isIgnorable(after)) moveNode = node, moveOffset = ++offset; else break; } else if (isBlockNode(node)) break; else { @@ -2433,7 +2434,7 @@ }, EditorView.prototype.updateState = function(state) { this.updateStateInner(state, this.state.plugins != state.plugins); }, EditorView.prototype.updateStateInner = function(state, reconfigured) { - var refDOM, refTop, newRefTop, this$1 = this, prev = this.state, redraw = !1, updateSel = !1; + var refDOM, refTop, stack, newRefTop, this$1 = this, prev = this.state, redraw = !1, updateSel = !1; if (state.storedMarks && this.composing && (clearComposition(this), updateSel = !0), this.state = state, reconfigured) { var nodeViews = buildNodeViews(this); (function(a, b) { @@ -2481,7 +2482,7 @@ this.someProp("handleScrollToSelection", function(f) { return f(this$1); }) || (state.selection instanceof prosemirror_state__WEBPACK_IMPORTED_MODULE_0__.NodeSelection ? scrollRectIntoView(this, this.docView.domAfterPos(state.selection.from).getBoundingClientRect(), startDOM) : scrollRectIntoView(this, this.coordsAtPos(state.selection.head, 1), startDOM)); - } else oldScrollPos && (refDOM = oldScrollPos.refDOM, refTop = oldScrollPos.refTop, restoreScrollStack(oldScrollPos.stack, 0 == (newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0) ? 0 : newRefTop - refTop)); + } else oldScrollPos && (refDOM = oldScrollPos.refDOM, refTop = oldScrollPos.refTop, stack = oldScrollPos.stack, restoreScrollStack(stack, 0 == (newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0) ? 0 : newRefTop - refTop)); }, EditorView.prototype.destroyPluginViews = function() { for(var view; view = this.pluginViews.pop();)view.destroy && view.destroy(); }, EditorView.prototype.updatePluginViews = function(prevState) { diff --git a/crates/swc_ecma_minifier/tests/fixture/next/33265/static/chunks/d6e1aeb5-38a8d7ae57119c23/output.js b/crates/swc_ecma_minifier/tests/fixture/next/33265/static/chunks/d6e1aeb5-38a8d7ae57119c23/output.js index 00387ab95d9c..bb304e9c8752 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/33265/static/chunks/d6e1aeb5-38a8d7ae57119c23/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/33265/static/chunks/d6e1aeb5-38a8d7ae57119c23/output.js @@ -3138,7 +3138,7 @@ var mouseVolumeLevelDisplay = this.getChild("mouseVolumeLevelDisplay"); if (mouseVolumeLevelDisplay) { var volumeBarEl = this.el(), volumeBarRect = getBoundingClientRect(volumeBarEl), vertical = this.vertical(), volumeBarPoint = getPointerPosition(volumeBarEl, event); - volumeBarPoint = clamp(volumeBarPoint = vertical ? volumeBarPoint.y : volumeBarPoint.x, 0, 1), mouseVolumeLevelDisplay.update(volumeBarRect, volumeBarPoint, vertical); + volumeBarPoint = vertical ? volumeBarPoint.y : volumeBarPoint.x, volumeBarPoint = clamp(volumeBarPoint, 0, 1), mouseVolumeLevelDisplay.update(volumeBarRect, volumeBarPoint, vertical); } isSingleLeftClick(event) && (this.checkMuted(), this.player_.volume(this.calculateDistance(event))); }, _proto.checkMuted = function() { @@ -3425,7 +3425,9 @@ }, {}); }, _proto.buildWrapperCSSClass = function() { var menuButtonClass = "vjs-menu-button"; - return !0 === this.options_.inline ? menuButtonClass += "-inline" : menuButtonClass += "-popup", "vjs-menu-button " + menuButtonClass + " " + Button.prototype.buildCSSClass() + " " + _Component.prototype.buildCSSClass.call(this); + !0 === this.options_.inline ? menuButtonClass += "-inline" : menuButtonClass += "-popup"; + var buttonClass = Button.prototype.buildCSSClass(); + return "vjs-menu-button " + menuButtonClass + " " + buttonClass + " " + _Component.prototype.buildCSSClass.call(this); }, _proto.buildCSSClass = function() { var menuButtonClass = "vjs-menu-button"; return !0 === this.options_.inline ? menuButtonClass += "-inline" : menuButtonClass += "-popup", "vjs-menu-button " + menuButtonClass + " " + _Component.prototype.buildCSSClass.call(this); @@ -6118,16 +6120,16 @@ } }, _proto.getMedia = function() { if (!this.cache_.media) { - var poster = this.poster(), media = { - src: this.currentSources(), - textTracks: Array.prototype.map.call(this.remoteTextTracks(), function(tt) { - return { - kind: tt.kind, - label: tt.label, - language: tt.language, - src: tt.src - }; - }) + var poster = this.poster(), src = this.currentSources(), textTracks = Array.prototype.map.call(this.remoteTextTracks(), function(tt) { + return { + kind: tt.kind, + label: tt.label, + language: tt.language, + src: tt.src + }; + }), media = { + src: src, + textTracks: textTracks }; return poster && (media.poster = poster, media.artwork = [ { @@ -10426,7 +10428,7 @@ var tkhd, index, id, mdhd; return (tkhd = findBox(trak, [ "tkhd" - ])[0]) && (id = toUnsigned(tkhd[index = 0 === tkhd[0] ? 12 : 20] << 24 | tkhd[index + 1] << 16 | tkhd[index + 2] << 8 | tkhd[index + 3]), mdhd = findBox(trak, [ + ])[0]) && (index = 0 === tkhd[0] ? 12 : 20, id = toUnsigned(tkhd[index] << 24 | tkhd[index + 1] << 16 | tkhd[index + 2] << 8 | tkhd[index + 3]), mdhd = findBox(trak, [ "mdia", "mdhd" ])[0]) ? (index = 0 === mdhd[0] ? 12 : 20, result[id] = toUnsigned(mdhd[index] << 24 | mdhd[index + 1] << 16 | mdhd[index + 2] << 8 | mdhd[index + 3]), result) : null; @@ -10518,7 +10520,7 @@ var codecBox = findBox(sampleDescriptions, [ track.codec ])[0]; - codecBox && (/^[asm]vc[1-9]$/i.test(track.codec) ? "avcC" === parseType$1((codecConfig = codecBox.subarray(78)).subarray(4, 8)) && codecConfig.length > 11 ? (track.codec += ".", track.codec += toHexString(codecConfig[9]), track.codec += toHexString(codecConfig[10]), track.codec += toHexString(codecConfig[11])) : track.codec = "avc1.4d400d" : /^mp4[a,v]$/i.test(track.codec) ? "esds" === parseType$1((codecConfig = codecBox.subarray(28)).subarray(4, 8)) && codecConfig.length > 20 && 0 !== codecConfig[19] ? (track.codec += "." + toHexString(codecConfig[19]), track.codec += "." + toHexString(codecConfig[20] >>> 2 & 0x3f).replace(/^0/, "")) : track.codec = "mp4a.40.2" : track.codec = track.codec.toLowerCase()); + codecBox && (/^[asm]vc[1-9]$/i.test(track.codec) ? (codecConfig = codecBox.subarray(78), "avcC" === parseType$1(codecConfig.subarray(4, 8)) && codecConfig.length > 11 ? (track.codec += ".", track.codec += toHexString(codecConfig[9]), track.codec += toHexString(codecConfig[10]), track.codec += toHexString(codecConfig[11])) : track.codec = "avc1.4d400d") : /^mp4[a,v]$/i.test(track.codec) ? (codecConfig = codecBox.subarray(28), "esds" === parseType$1(codecConfig.subarray(4, 8)) && codecConfig.length > 20 && 0 !== codecConfig[19] ? (track.codec += "." + toHexString(codecConfig[19]), track.codec += "." + toHexString(codecConfig[20] >>> 2 & 0x3f).replace(/^0/, "")) : track.codec = "mp4a.40.2") : track.codec = track.codec.toLowerCase()); } var mdhd = findBox(trak, [ "mdia", diff --git a/crates/swc_ecma_minifier/tests/fixture/next/33265/static/chunks/pages/index-cb36c1bf7f830e3c/output.js b/crates/swc_ecma_minifier/tests/fixture/next/33265/static/chunks/pages/index-cb36c1bf7f830e3c/output.js index 841e4e16d692..cd9dec80e2b4 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/33265/static/chunks/pages/index-cb36c1bf7f830e3c/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/33265/static/chunks/pages/index-cb36c1bf7f830e3c/output.js @@ -108,7 +108,8 @@ a = toUint8(a); var fn = (b = toUint8(b)).every ? b.every : Array.prototype.every; return b.length && a.length - offset >= b.length && fn.call(b, function(bByte, i) { - return bByte === (mask[i] ? mask[i] & a[offset + i] : a[offset + i]); + var aByte = mask[i] ? mask[i] & a[offset + i] : a[offset + i]; + return bByte === aByte; }); }; }, @@ -469,7 +470,9 @@ var id = getvint(bytes, i, !1), dataHeader = getvint(bytes, i + id.length), dataStart = i + id.length + dataHeader.length; 0x7f === dataHeader.value && (dataHeader.value = getInfinityDataSize(id, bytes, dataStart), dataHeader.value !== bytes.length && (dataHeader.value -= dataStart)); var dataEnd = dataStart + dataHeader.value > bytes.length ? bytes.length : dataStart + dataHeader.value, data = bytes.subarray(dataStart, dataEnd); - (0, byte_helpers.G3)(paths[0], id.bytes) && (1 === paths.length ? results.push(data) : results = results.concat(findEbml(data, paths.slice(1)))), i += id.length + dataHeader.length + data.length; + (0, byte_helpers.G3)(paths[0], id.bytes) && (1 === paths.length ? results.push(data) : results = results.concat(findEbml(data, paths.slice(1)))); + var totalLength = id.length + dataHeader.length + data.length; + i += totalLength; } return results; }, id3_helpers = __webpack_require__(8925), NAL_TYPE_ONE = (0, byte_helpers.Ki)([ @@ -3522,9 +3525,12 @@ captionServices: captionServices })); var label = findChildren(adaptationSet, "Label")[0]; - label && label.childNodes.length && (attrs = merge(attrs, { - label: label.childNodes[0].nodeValue.trim() - })); + if (label && label.childNodes.length) { + var labelVal = label.childNodes[0].nodeValue.trim(); + attrs = merge(attrs, { + label: labelVal + }); + } var contentProtection = findChildren(adaptationSet, "ContentProtection").reduce(function(acc, node) { var attributes = parseAttributes(node), keySystem = keySystemsMap[attributes.schemeIdUri]; if (keySystem) { diff --git a/crates/swc_ecma_minifier/tests/fixture/next/feedback-2/codemirror/output.js b/crates/swc_ecma_minifier/tests/fixture/next/feedback-2/codemirror/output.js index 6fd4d4efe609..3623b3f0b152 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/feedback-2/codemirror/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/feedback-2/codemirror/output.js @@ -671,7 +671,7 @@ mName && (style = "m-" + (style ? mName + " " + style : mName)); } if (!flattenSpans || curStyle != style) { - for(; curStart < stream.start;)f(curStart = Math.min(stream.start, curStart + 5000), curStyle); + for(; curStart < stream.start;)curStart = Math.min(stream.start, curStart + 5000), f(curStart, curStyle); curStyle = style; } stream.start = stream.pos; @@ -1335,7 +1335,8 @@ var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky; if (ch >= lineObj.text.length ? (ch = lineObj.text.length, sticky = "before") : ch <= 0 && (ch = 0, sticky = "after"), !order) return get("before" == sticky ? ch - 1 : ch, "before" == sticky); function getBidi(ch, partPos, invert) { - return get(invert ? ch - 1 : ch, 1 == order[partPos].level != invert); + var right = 1 == order[partPos].level; + return get(invert ? ch - 1 : ch, right != invert); } var partPos = getBidiPartAt(order, ch, sticky), other = bidiOther, val = getBidi(ch, partPos, "before" == sticky); return null != other && (val.other = getBidi(ch, other, "before" != sticky)), val; @@ -1433,7 +1434,7 @@ for(var part = null, closestDist = null, i = 0; i < order.length; i++){ var p = order[i]; if (!(p.from >= end) && !(p.to <= begin)) { - var endX = measureCharPrepared(cm, preparedMeasure, 1 != p.level ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right, dist = endX < x ? x - endX + 1e9 : endX - x; + var ltr = 1 != p.level, endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right, dist = endX < x ? x - endX + 1e9 : endX - x; (!part || closestDist > dist) && (part = p, closestDist = dist); } } @@ -1608,8 +1609,8 @@ return charCoords(cm, Pos(line, ch), "div", lineObj, bias); } function wrapX(pos, dir, side) { - var extent = wrappedLineExtentChar(cm, lineObj, null, pos), prop = "ltr" == dir == ("after" == side) ? "left" : "right"; - return coords("after" == side ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1), prop)[prop]; + var extent = wrappedLineExtentChar(cm, lineObj, null, pos), prop = "ltr" == dir == ("after" == side) ? "left" : "right", ch = "after" == side ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1); + return coords(ch, prop)[prop]; } var order = getOrder(lineObj, doc.direction); return !function(order, from, to, f) { @@ -1949,12 +1950,14 @@ var rect = function(cm, pos, end, margin) { null == margin && (margin = 0), cm.options.lineWrapping || pos != end || (end = "before" == pos.sticky ? Pos(pos.line, pos.ch + 1, "before") : pos, pos = pos.ch ? Pos(pos.line, "before" == pos.sticky ? pos.ch - 1 : pos.ch, "after") : pos); for(var rect, limit = 0; limit < 5; limit++){ - var changed = !1, coords = cursorCoords(cm, pos), endCoords = end && end != pos ? cursorCoords(cm, end) : coords, scrollPos = calculateScrollPos(cm, rect = { + var changed = !1, coords = cursorCoords(cm, pos), endCoords = end && end != pos ? cursorCoords(cm, end) : coords; + rect = { left: Math.min(coords.left, endCoords.left), top: Math.min(coords.top, endCoords.top) - margin, right: Math.max(coords.left, endCoords.left), bottom: Math.max(coords.bottom, endCoords.bottom) + margin - }), startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; + }; + var scrollPos = calculateScrollPos(cm, rect), startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; if (null != scrollPos.scrollTop && (updateScrollTop(cm, scrollPos.scrollTop), Math.abs(cm.doc.scrollTop - startTop) > 1 && (changed = !0)), null != scrollPos.scrollLeft && (setScrollLeft(cm, scrollPos.scrollLeft), Math.abs(cm.doc.scrollLeft - startLeft) > 1 && (changed = !0)), !changed) break; } return rect; @@ -3665,7 +3668,9 @@ if (order) { var ch, part = dir < 0 ? lst(order) : order[0], sticky = dir < 0 == (1 == part.level) ? "after" : "before"; if (part.level > 0 || "rtl" == cm.doc.direction) { - var prep = prepareMeasureForLine(cm, lineObj), targetTop = measureCharPrepared(cm, prep, ch = dir < 0 ? lineObj.text.length - 1 : 0).top; + var prep = prepareMeasureForLine(cm, lineObj); + ch = dir < 0 ? lineObj.text.length - 1 : 0; + var targetTop = measureCharPrepared(cm, prep, ch).top; ch = findFirst(function(ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, dir < 0 == (1 == part.level) ? part.from : part.to - 1, ch), "before" == sticky && (ch = moveCharLogically(lineObj, ch, 1)); @@ -5501,7 +5506,8 @@ var delta = wheelEventDelta(e); return delta.x *= wheelPixelsPerUnit, delta.y *= wheelPixelsPerUnit, delta; }, CodeMirror1.Doc = Doc, CodeMirror1.splitLines = splitLinesAuto, CodeMirror1.countColumn = countColumn, CodeMirror1.findColumn = findColumn, CodeMirror1.isWordChar = isWordCharBasic, CodeMirror1.Pass = Pass, CodeMirror1.signal = signal, CodeMirror1.Line = Line, CodeMirror1.changeEnd = changeEnd, CodeMirror1.scrollbarModel = scrollbarModel, CodeMirror1.Pos = Pos, CodeMirror1.cmpPos = cmp, CodeMirror1.modes = modes, CodeMirror1.mimeModes = mimeModes, CodeMirror1.resolveMode = resolveMode, CodeMirror1.getMode = getMode, CodeMirror1.modeExtensions = modeExtensions, CodeMirror1.extendMode = function(mode, properties) { - copyObj(properties, modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : modeExtensions[mode] = {}); + var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : modeExtensions[mode] = {}; + copyObj(properties, exts); }, CodeMirror1.copyState = copyState, CodeMirror1.startState = startState, CodeMirror1.innerMode = innerMode, CodeMirror1.commands = commands, CodeMirror1.keyMap = keyMap, CodeMirror1.keyName = keyName, CodeMirror1.isModifierKey = isModifierKey, CodeMirror1.lookupKey = lookupKey, CodeMirror1.normalizeKeyMap = function(keymap) { var copy = {}; for(var keyname in keymap)if (keymap.hasOwnProperty(keyname)) { diff --git a/crates/swc_ecma_minifier/tests/fixture/next/react-ace/chunks/8a28b14e.d8fbda268ed281a1/output.js b/crates/swc_ecma_minifier/tests/fixture/next/react-ace/chunks/8a28b14e.d8fbda268ed281a1/output.js index 33cfc3f79600..2b1c252d78cc 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/react-ace/chunks/8a28b14e.d8fbda268ed281a1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/react-ace/chunks/8a28b14e.d8fbda268ed281a1/output.js @@ -916,7 +916,11 @@ }, onCompositionUpdate = function() { if (inComposition && host.onCompositionUpdate && !host.$readOnly) { if (commandMode) return cancelComposition(); - inComposition.useTextareaForIME ? host.onCompositionUpdate(text.value) : (sendText(text.value), inComposition.markerRange && (inComposition.context && (inComposition.markerRange.start.column = inComposition.selectionStart = inComposition.context.compositionStartOffset), inComposition.markerRange.end.column = inComposition.markerRange.start.column + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd)); + if (inComposition.useTextareaForIME) host.onCompositionUpdate(text.value); + else { + var data = text.value; + sendText(data), inComposition.markerRange && (inComposition.context && (inComposition.markerRange.start.column = inComposition.selectionStart = inComposition.context.compositionStartOffset), inComposition.markerRange.end.column = inComposition.markerRange.start.column + lastSelectionEnd - inComposition.selectionStart + lastRestoreEnd); + } } }, onCompositionEnd = function(e) { host.onCompositionEnd && !host.$readOnly && (inComposition = !1, host.onCompositionEnd(), host.off("mousedown", cancelComposition), e && onInput()); @@ -4662,9 +4666,9 @@ var length = this.getLength(); void 0 === row ? row = length : row < 0 ? row = 0 : row >= length && (row = length - 1, column = void 0); var line = this.getLine(row); - return void 0 == column && (column = line.length), { + return void 0 == column && (column = line.length), column = Math.min(Math.max(column, 0), line.length), { row: row, - column: column = Math.min(Math.max(column, 0), line.length) + column: column }; }, this.clonePos = function(pos) { return { @@ -6485,7 +6489,7 @@ var last, m, line = session.getLine(row); for(re.lastIndex = startIndex; m = re.exec(line);){ var length = m[0].length; - if (callback(row, last = m.index, row, last + length)) return !0; + if (last = m.index, callback(row, last, row, last + length)) return !0; if (!length && (re.lastIndex = last += 1, last >= line.length)) return !1; } }; @@ -6556,7 +6560,10 @@ ckb[keyId] ], "number" != typeof position && (position = getPosition(command)); var commands = ckb[keyId]; - for(i = 0; i < commands.length && !(getPosition(commands[i]) > position); i++); + for(i = 0; i < commands.length; i++){ + var other = commands[i]; + if (getPosition(other) > position) break; + } commands.splice(i, 0, command); } } else delete ckb[keyId]; diff --git a/crates/swc_ecma_minifier/tests/fixture/next/react-pdf-renderer/output.js b/crates/swc_ecma_minifier/tests/fixture/next/react-pdf-renderer/output.js index 3cd7703be308..d2c2b9b9632e 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/react-pdf-renderer/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/react-pdf-renderer/output.js @@ -432,7 +432,7 @@ return i.default.wrap(function(e) { for(;;)switch(e.prev = e.next){ case 0: - for(n = t, o = (0, a.default)(r), l = Array((u = d.length) > 1 ? u - 1 : 0), s = 1; s < u; s++)l[s - 1] = d[s]; + for(n = t, o = (0, a.default)(r), u = d.length, l = Array(u > 1 ? u - 1 : 0), s = 1; s < u; s++)l[s - 1] = d[s]; c = 0; case 4: if (!(c < o.length)) { @@ -1248,17 +1248,17 @@ }, eo = function(e, t) { if (!t.children) return t; var r = t.children.map(function(t) { - var r, n, i = B.default(en(e, t)), o = (null === (r = t.props) || void 0 === r ? void 0 : r.x) || 0, a = (null === (n = t.props) || void 0 === n ? void 0 : n.y) || 0, u = er(i, { + var r, n, i = B.default(en(e, t)), o = (null === (r = t.props) || void 0 === r ? void 0 : r.x) || 0, a = (null === (n = t.props) || void 0 === n ? void 0 : n.y) || 0, u = t.props.hyphenationCallback || (null == e ? void 0 : e.getHyphenationCallback()) || null, l = er(i, { x: o, y: a, width: 999999999999, height: 999999999999 }, { - hyphenationCallback: t.props.hyphenationCallback || (null == e ? void 0 : e.getHyphenationCallback()) || null, + hyphenationCallback: u, shrinkWhitespaceFactor: ei }).flat(); return Object.assign({}, t, { - lines: u + lines: l }); }); return Object.assign({}, t, { @@ -2133,8 +2133,8 @@ var t, r = tg(e).paddingBottom; return (null === (t = e.style) || void 0 === t ? void 0 : t.height) - r; }, tb = function(e) { - var t, r = null === (t = e.style) || void 0 === t ? void 0 : t.height, n = tg(e), i = n.paddingTop; - return r - n.paddingBottom - i; + var t, r = null === (t = e.style) || void 0 === t ? void 0 : t.height, n = tg(e), i = n.paddingTop, o = n.paddingBottom; + return r - o - i; }, tm = [ "style", "children" @@ -2275,15 +2275,15 @@ truncateMode: i }; }, tM = function(e, t, r, n) { - var i = tP(n, e), o = tB(t, r, e); - return tR(i, o, { + var i = tP(n, e), o = tB(t, r, e), a = { hyphenationPenalty: e.props.hyphenationPenalty, shrinkWhitespaceFactor: { before: -0.5, after: -0.5 }, hyphenationCallback: e.props.hyphenationCallback || (null == n ? void 0 : n.getHyphenationCallback()) || null - }).reduce(function(e, t) { + }; + return tR(i, o, a).reduce(function(e, t) { return [].concat(e, t); }, []); }, tN = function(e) { @@ -3219,14 +3219,14 @@ E /= x; for(var S = 0; S < x; S++)f.push(O(w, E)), w += E; return f.map(function(e) { - var t = T(e[0], o, a, p, d, m, D), r = t.x, n = t.y, i = T(e[1], o, a, p, d, m, D), u = i.x, l = i.y, s = T(e[2], o, a, p, d, m, D); + var t = T(e[0], o, a, p, d, m, D), r = t.x, n = t.y, i = T(e[1], o, a, p, d, m, D), u = i.x, l = i.y, s = T(e[2], o, a, p, d, m, D), c = s.x, f = s.y; return { x1: r, y1: n, x2: u, y2: l, - x: s.x, - y: s.y + x: c, + y: f }; }); }; @@ -3665,10 +3665,10 @@ }, ez = function(e, t) { e.save(), ea(e, t), eU(e, t), eL(e, t), eN(e, t), e.restore(); }, eW = function(e) { - var t = L().get(e); + var t = L().get(e), r = L().to.hex(t.value.slice(0, 3)), n = t.value[3]; return { - value: L().to.hex(t.value.slice(0, 3)), - opacity: t.value[3] + value: r, + opacity: n }; }, eG = /^#.+/, eq = function(e, t) { var r = t.xOffset, n = t.yOffset, i = t.width, o = t.height, a = t.image; @@ -3723,18 +3723,18 @@ for(var i = 0; i < t.runs.length; i += 1){ var o = t.runs[i], a = i === t.runs.length - 1; if (o.attributes.backgroundColor) { - var u = a ? t.overflowRight : 0; - eZ(e, { + var u = a ? t.overflowRight : 0, l = { x: 0, y: -n, height: t.box.height, width: (0, D.default)(o) - u - }, o.attributes.backgroundColor); + }; + eZ(e, l, o.attributes.backgroundColor); } eH(e, o, r); } e.restore(), e.save(), e.translate(t.box.x, t.box.y); - for(var l = 0; l < t.decorationLines.length; l += 1)eX(e, t.decorationLines[l]); + for(var s = 0; s < t.decorationLines.length; s += 1)eX(e, t.decorationLines[s]); e.restore(); }, eY = function(e, t, r) { t.forEach(function(t) { @@ -19825,7 +19825,7 @@ } function C(e, t, r) { var n, i, o, a, u = 0; - if (0 !== e.last_lit) do n = e.pending_buf[e.d_buf + 2 * u] << 8 | e.pending_buf[e.d_buf + 2 * u + 1], i = e.pending_buf[e.l_buf + u], u++, 0 === n ? _(e, i, t) : (_(e, (o = y[i]) + 256 + 1, t), 0 !== (a = l[o]) && E(e, i -= g[o], a), _(e, o = D(--n), r), 0 !== (a = s[o]) && E(e, n -= v[o], a)); + if (0 !== e.last_lit) do n = e.pending_buf[e.d_buf + 2 * u] << 8 | e.pending_buf[e.d_buf + 2 * u + 1], i = e.pending_buf[e.l_buf + u], u++, 0 === n ? _(e, i, t) : (o = y[i], _(e, o + 256 + 1, t), 0 !== (a = l[o]) && E(e, i -= g[o], a), _(e, o = D(--n), r), 0 !== (a = s[o]) && E(e, n -= v[o], a)); while (u < e.last_lit) _(e, 256, t); } @@ -21455,14 +21455,14 @@ t.bufferProcessing = !0; var r = t.bufferedRequest; if (e._writev && r && r.next) { - var n = Array(t.bufferedRequestCount), i = t.corkedRequestsFree; - i.entry = r; - for(var a = 0, u = !0; r;)n[a] = r, r.isBuf || (u = !1), r = r.next, a += 1; - n.allBuffers = u, k(e, t, !0, t.length, n, "", i.finish), t.pendingcb++, t.lastBufferedRequest = null, i.next ? (t.corkedRequestsFree = i.next, i.next = null) : t.corkedRequestsFree = new o(t), t.bufferedRequestCount = 0; + var n = t.bufferedRequestCount, i = Array(n), a = t.corkedRequestsFree; + a.entry = r; + for(var u = 0, l = !0; r;)i[u] = r, r.isBuf || (l = !1), r = r.next, u += 1; + i.allBuffers = l, k(e, t, !0, t.length, i, "", a.finish), t.pendingcb++, t.lastBufferedRequest = null, a.next ? (t.corkedRequestsFree = a.next, a.next = null) : t.corkedRequestsFree = new o(t), t.bufferedRequestCount = 0; } else { for(; r;){ - var l = r.chunk, s = r.encoding, c = r.callback, f = t.objectMode ? 1 : l.length; - if (k(e, t, !1, f, l, s, c), r = r.next, t.bufferedRequestCount--, t.writing) break; + var s = r.chunk, c = r.encoding, f = r.callback, d = t.objectMode ? 1 : s.length; + if (k(e, t, !1, d, s, c, f), r = r.next, t.bufferedRequestCount--, t.writing) break; } null === r && (t.lastBufferedRequest = null); } @@ -24834,7 +24834,7 @@ } var tU = p.ReactCurrentBatchConfig, tz = new c.Component().refs; function tW(e, t, r, n) { - r = null == (r = r(n, t = e.memoizedState)) ? t : s({}, t, r), e.memoizedState = r, null !== (n = e.updateQueue) && 0 === e.expirationTime && (n.baseState = r); + t = e.memoizedState, r = null == (r = r(n, t)) ? t : s({}, t, r), e.memoizedState = r, null !== (n = e.updateQueue) && 0 === e.expirationTime && (n.baseState = r); } var tG = { isMounted: function(e) { @@ -25060,7 +25060,7 @@ if (m && tY(u, s), void 0 === s && !b) switch(u.tag){ case 1: case 0: - throw Error(d(152, (u = u.type).displayName || u.name || "Component")); + throw u = u.type, Error(d(152, u.displayName || u.name || "Component")); } return r(u, l); }; @@ -25677,7 +25677,7 @@ if (0 !== n && n8(n), t.childExpirationTime < r) return null; if (null !== e && t.child !== e.child) throw Error(d(153)); if (null !== t.child) { - for(r = iy(e = t.child, e.pendingProps, e.expirationTime), t.child = r, r.return = t; null !== e.sibling;)e = e.sibling, (r = r.sibling = iy(e, e.pendingProps, e.expirationTime)).return = t; + for(e = t.child, r = iy(e, e.pendingProps, e.expirationTime), t.child = r, r.return = t; null !== e.sibling;)e = e.sibling, (r = r.sibling = iy(e, e.pendingProps, e.expirationTime)).return = t; r.sibling = null; } return t.child; @@ -25871,7 +25871,8 @@ case 4: K ? nh(e, t, r) : Q && function(e) { if (Q) { - var t = ey(e = e.stateNode.containerInfo); + e = e.stateNode.containerInfo; + var t = ey(e); eb(e, t); } }(t); @@ -26227,7 +26228,7 @@ ix(e, 2 < r ? 2 : r); break; case 3: - if (iE(e, r), r === (n = e.lastSuspendedTime) && (e.nextKnownPendingLevel = n9(i)), 1073741823 === nC && 10 < (i = nj + 500 - ti())) { + if (iE(e, r), n = e.lastSuspendedTime, r === n && (e.nextKnownPendingLevel = n9(i)), 1073741823 === nC && 10 < (i = nj + 500 - ti())) { if (nI) { var a = e.lastPingedTime; if (0 === a || a >= r) { @@ -26246,7 +26247,7 @@ ie(e); break; case 4: - if (iE(e, r), r === (n = e.lastSuspendedTime) && (e.nextKnownPendingLevel = n9(i)), nI && (0 === (i = e.lastPingedTime) || i >= r)) { + if (iE(e, r), n = e.lastSuspendedTime, r === n && (e.nextKnownPendingLevel = n9(i)), nI && (0 === (i = e.lastPingedTime) || i >= r)) { e.lastPingedTime = r, n2(e, r); break; } @@ -26933,7 +26934,7 @@ return rK(e, t, t.pendingProps.children, r), t.child; case 10: e: { - if (n = t.type._context, i = t.pendingProps, a = t.memoizedProps, t_(t, o = i.value), null !== a) { + if (n = t.type._context, i = t.pendingProps, a = t.memoizedProps, o = i.value, t_(t, o), null !== a) { var u = a.value; if (0 == (o = th(u, o) ? 0 : ("function" == typeof n._calculateChangedBits ? n._calculateChangedBits(u, o) : 1073741823) | 0)) { if (a.children === i.children && !eU.current) { @@ -26973,7 +26974,7 @@ case 9: return i = t.type, n = (o = t.pendingProps).children, tA(t, r), i = tk(i, o.unstable_observedBits), n = n(i), t.effectTag |= 1, rK(e, t, n, r), t.child; case 14: - return o = tv(i = t.type, t.pendingProps), o = tv(i.type, o), r$(e, t, i, o, n, r); + return i = t.type, o = tv(i, t.pendingProps), o = tv(i.type, o), r$(e, t, i, o, n, r); case 15: return r0(e, t, t.type, t.pendingProps, n, r); case 17: @@ -27201,13 +27202,13 @@ attemptSynchronousHydration: function(e) { switch(e.tag){ case 3: - var t, r = e.stateNode; - r.hydrate && (t = r, ix(t, r.firstPendingTime), nQ(t), (48 & nx) == 0 && tc()); + var t, r, n = e.stateNode; + n.hydrate && (t = n, r = n.firstPendingTime, ix(t, r), nQ(t), (48 & nx) == 0 && tc()); break; case 13: n1(function() { return nJ(e, 1073741823); - }), r = tp(nZ(), 150, 100), ik(e, r); + }), n = tp(nZ(), 150, 100), ik(e, n); } }, attemptUserBlockingHydration: function(e) { diff --git a/crates/swc_ecma_minifier/tests/fixture/next/regression-1/framework-798bab57daac3897/output.js b/crates/swc_ecma_minifier/tests/fixture/next/regression-1/framework-798bab57daac3897/output.js index 292b6889b9f2..b46ab2b5e9c7 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/regression-1/framework-798bab57daac3897/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/regression-1/framework-798bab57daac3897/output.js @@ -2210,7 +2210,7 @@ } var Hg = new aa.Component().refs; function Ig(a, b, c, d) { - c = null == (c = c(d, b = a.memoizedState)) ? b : A({}, b, c), a.memoizedState = c, 0 === a.lanes && (a.updateQueue.baseState = c); + b = a.memoizedState, c = null == (c = c(d, b)) ? b : A({}, b, c), a.memoizedState = c, 0 === a.lanes && (a.updateQueue.baseState = c); } var Mg = { isMounted: function(a) { @@ -2435,7 +2435,8 @@ case va: return (b = wh(b, a.mode, c)).return = a, b; case Ga: - return u(a, (0, b._init)(b._payload), c); + var d = b._init; + return u(a, d(b._payload), c); } if (db(b) || Ja(b)) return (b = xh(b, a.mode, c, null)).return = a, b; qh(a, b); @@ -2516,7 +2517,7 @@ } return g(a1); case Ga: - return J(a1, d1, (l = f1._init)(f1._payload), h); + return l = f1._init, J(a1, d1, l(f1._payload), h); } if (db(f1)) return function(e, g, h, k) { for(var l = null, n = null, r = g, m = g = 0, x = null; null !== r && m < h.length; m++){ @@ -2578,7 +2579,7 @@ b = (b = b.documentElement) ? b.namespaceURI : kb(null, ""); break; default: - b = (a = 8 === a ? b.parentNode : b).namespaceURI || null, b = kb(b, a = a.tagName); + b = (a = 8 === a ? b.parentNode : b).namespaceURI || null, a = a.tagName, b = kb(b, a); } E(Bh), G(Bh, b); } @@ -3537,7 +3538,7 @@ if (null !== a && (b.dependencies = a.dependencies), Fg |= b.lanes, 0 == (c & b.childLanes)) return null; if (null !== a && b.child !== a.child) throw Error(p(153)); if (null !== b.child) { - for(c = th(a = b.child, a.pendingProps), b.child = c, c.return = b; null !== a.sibling;)a = a.sibling, (c = c.sibling = th(a, a.pendingProps)).return = b; + for(a = b.child, c = th(a, a.pendingProps), b.child = c, c.return = b; null !== a.sibling;)a = a.sibling, (c = c.sibling = th(a, a.pendingProps)).return = b; c.sibling = null; } return b.child; @@ -5371,7 +5372,7 @@ case 9: return e = b.type, d = b.pendingProps.children, sg(b, c), e = ug(e), d = d(e), b.flags |= 1, ej(a, b, d, c), b.child; case 14: - return e = kg(d = b.type, b.pendingProps), e = kg(d.type, e), hj(a, b, d, e, c); + return d = b.type, e = kg(d, b.pendingProps), e = kg(d.type, e), hj(a, b, d, e, c); case 15: return jj(a, b, b.type, b.pendingProps, c); case 17: @@ -5958,10 +5959,11 @@ _owner: a1._owner }), b.push(c)); if (h = 0, d = "" === d ? "." : d + ":", I(a)) for(var g = 0; g < a.length; g++){ - var f = d + Q(k = a[g], g); + k = a[g]; + var f = d + Q(k, g); h += R(k, b, e, f, c); } - else if ("function" == typeof (f = null === (a2 = a) || "object" != typeof a2 ? null : "function" == typeof (a2 = z && a2[z] || a2["@@iterator"]) ? a2 : null)) for(a = f.call(a), g = 0; !(k = a.next()).done;)f = d + Q(k = k.value, g++), h += R(k, b, e, f, c); + else if ("function" == typeof (f = null === (a2 = a) || "object" != typeof a2 ? null : "function" == typeof (a2 = z && a2[z] || a2["@@iterator"]) ? a2 : null)) for(a = f.call(a), g = 0; !(k = a.next()).done;)k = k.value, f = d + Q(k, g++), h += R(k, b, e, f, c); else if ("object" === k) throw b = String(a), Error("Objects are not valid as a React child (found: " + ("[object Object]" === b ? "object with keys {" + Object.keys(a).join(", ") + "}" : b) + "). If you meant to render a collection of children, use an array instead."); }(a, d, "", "", function(a) { return b.call(e, a, c++); diff --git a/crates/swc_ecma_minifier/tests/fixture/next/styled-components/1/output.js b/crates/swc_ecma_minifier/tests/fixture/next/styled-components/1/output.js index ed37ef2aa874..25c83e1599e2 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/styled-components/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/styled-components/1/output.js @@ -3483,8 +3483,8 @@ } function deepmerge(target, source, options) { (options = options || {}).arrayMerge = options.arrayMerge || defaultArrayMerge, options.isMergeableObject = options.isMergeableObject || isMergeableObject, options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; - var options1, destination, sourceIsArray = Array.isArray(source); - return sourceIsArray !== Array.isArray(target) ? cloneUnlessOtherwiseSpecified(source, options) : sourceIsArray ? options.arrayMerge(target, source, options) : (destination = {}, (options1 = options).isMergeableObject(target) && getKeys(target).forEach(function(key) { + var options1, destination, sourceIsArray = Array.isArray(source), targetIsArray = Array.isArray(target); + return sourceIsArray !== targetIsArray ? cloneUnlessOtherwiseSpecified(source, options) : sourceIsArray ? options.arrayMerge(target, source, options) : (destination = {}, (options1 = options).isMergeableObject(target) && getKeys(target).forEach(function(key) { destination[key] = cloneUnlessOtherwiseSpecified(target[key], options1); }), getKeys(source).forEach(function(key) { (!propertyIsOnObject(target, key) || Object.hasOwnProperty.call(target, key) && Object.propertyIsEnumerable.call(target, key)) && (propertyIsOnObject(target, key) && options1.isMergeableObject(source[key]) ? destination[key] = (function(key, options) { diff --git a/crates/swc_ecma_minifier/tests/fixture/next/syncfusion/933-e9f9a6bf671b96fc/output.js b/crates/swc_ecma_minifier/tests/fixture/next/syncfusion/933-e9f9a6bf671b96fc/output.js index 930d8ceeb69a..28d4d5200ab6 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/syncfusion/933-e9f9a6bf671b96fc/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/syncfusion/933-e9f9a6bf671b96fc/output.js @@ -2527,7 +2527,9 @@ case 'E': case 'c': var weekData = void 0; - weekData = dependable.dateObject[intl_base_IntlBase.days][date_parser_standalone][intl_base_IntlBase.monthIndex[len]], regexString += '(' + Object.keys(ParserBase.reverseObject(weekData)).join('|') + ')'; + weekData = dependable.dateObject[intl_base_IntlBase.days][date_parser_standalone][intl_base_IntlBase.monthIndex[len]]; + var weekObject = ParserBase.reverseObject(weekData); + regexString += '(' + Object.keys(weekObject).join('|') + ')'; break; case 'M': case 'L': @@ -2595,7 +2597,13 @@ var res = value || new Date(); res.setMilliseconds(0); var y = options.year, desig = options.designator, tzone = options.timeZone; - util_isUndefined(y) || ((y + '').length <= 2 && (y += 100 * Math.floor(res.getFullYear() / 100)), res.setFullYear(y)); + if (!util_isUndefined(y)) { + if ((y + '').length <= 2) { + var century = 100 * Math.floor(res.getFullYear() / 100); + y += century; + } + res.setFullYear(y); + } for(var _i = 0, tKeys_1 = [ 'hour', 'minute', @@ -4712,7 +4720,7 @@ prop.length && (this[prop[0]] = args[prop[0]]); }, Component.prototype.mergePersistData = function() { var data; - util_isNullOrUndefined(data = window.localStorage.getItem(this.getModuleName() + this.element.id)) || '' === data || this.setProperties(JSON.parse(data), !0); + data = window.localStorage.getItem(this.getModuleName() + this.element.id), util_isNullOrUndefined(data) || '' === data || this.setProperties(JSON.parse(data), !0); }, Component.prototype.setPersistData = function() { this.isDestroyed || window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData()); }, Component.prototype.renderReactTemplates = function() {}, Component.prototype.clearTemplate = function(templateName, index) {}, Component.prototype.getUniqueID = function(definedName) { @@ -7209,8 +7217,8 @@ return window.innerHeight; } function getViewPortWidth() { - var windowWidth = window.innerWidth, documentReact = document.documentElement.getBoundingClientRect(); - return windowWidth - (windowWidth - ((0, _syncfusion_ej2_base__WEBPACK_IMPORTED_MODULE_0__.le)(document.documentElement) ? 0 : documentReact.width)); + var windowWidth = window.innerWidth, documentReact = document.documentElement.getBoundingClientRect(), offsetWidth = (0, _syncfusion_ej2_base__WEBPACK_IMPORTED_MODULE_0__.le)(document.documentElement) ? 0 : documentReact.width; + return windowWidth - (windowWidth - offsetWidth); } }, 6216: function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { @@ -9576,7 +9584,7 @@ } var targetTop = 0; if (calculateValue) { - targetRectValues.top < 0 && documentHeight + (targetRectValues.height + targetRectValues.top) > 0 && calculatedHeight + (targetTop = targetRectValues.top) <= 30 && (calculatedHeight = targetRectValues.height - (targetRectValues.height + targetRectValues.top) + 30), calculatedHeight + targetRectValues.top >= maxHeight && (targetElement.style.height = targetRectValues.height + (documentHeight - (targetRectValues.height + targetRectValues.top)) + 'px'); + targetRectValues.top < 0 && documentHeight + (targetRectValues.height + targetRectValues.top) > 0 && (targetTop = targetRectValues.top, calculatedHeight + targetTop <= 30 && (calculatedHeight = targetRectValues.height - (targetRectValues.height + targetRectValues.top) + 30)), calculatedHeight + targetRectValues.top >= maxHeight && (targetElement.style.height = targetRectValues.height + (documentHeight - (targetRectValues.height + targetRectValues.top)) + 'px'); var calculatedTop = (0, ej2_base.le)(containerElement) ? targetTop : topWithoutborder; calculatedHeight >= minHeight && calculatedHeight + calculatedTop <= maxHeight && (targetElement.style.height = calculatedHeight + 'px'); } @@ -17840,7 +17848,10 @@ ('2' === files.statusCode || '4' === files.statusCode || '0' === files.statusCode && -1 !== fileUploadedIndex) && validUrl ? _this.removeUploadedFile(files, eventArgs, removeDirectly, customTemplate) : removeDirectly ? _this.removeFilesData(files, customTemplate) : _this.trigger('removing', eventArgs, function(eventArgs) { eventArgs.cancel || _this.removeFilesData(files, customTemplate); }), args && !args.target.classList.contains(REMOVE_ICON) && _this.checkActionComplete(!1); - }, _i = 0, removeFiles_1 = removeFiles; _i < removeFiles_1.length; _i++)_loop_5(removeFiles_1[_i]); + }, _i = 0, removeFiles_1 = removeFiles; _i < removeFiles_1.length; _i++){ + var files = removeFiles_1[_i]; + _loop_5(files); + } } } }); @@ -23253,7 +23264,9 @@ }, ColorPicker.prototype.hexToRgb = function(hex) { if (!hex) return []; 9 !== (hex = hex.trim()).length && (hex = this.roundValue(hex)); - var opacity = Number((parseInt(hex.slice(-2), 16) / 255).toFixed(2)), bigInt = parseInt(hex = hex.slice(1, 7), 16), h = []; + var opacity = Number((parseInt(hex.slice(-2), 16) / 255).toFixed(2)); + hex = hex.slice(1, 7); + var bigInt = parseInt(hex, 16), h = []; return h.push(bigInt >> 16 & 255), h.push(bigInt >> 8 & 255), h.push(255 & bigInt), h.push(opacity), h; }, ColorPicker.prototype.rgbToHsv = function(r, g, b, opacity) { if (this.rgb && !this.rgb.length) return []; diff --git a/crates/swc_ecma_minifier/tests/fixture/next/wrap-contracts/output.js b/crates/swc_ecma_minifier/tests/fixture/next/wrap-contracts/output.js index 4e5464a58b26..8bfce4eb7f9e 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/wrap-contracts/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/wrap-contracts/output.js @@ -7277,9 +7277,9 @@ if (!xc || !yc || !xc[0] || !yc[0]) return x.s && y.s && (!xc || xc[0] || yc) && (!yc || yc[0] || xc) ? (y.s *= x.s, xc && yc ? (y.c = [ 0 ], y.e = 0) : y.c = y.e = null) : y.c = y.e = y.s = null, y; - for(e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE), y.s *= x.s, (xcL = xc.length) < (ycL = yc.length) && (zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i), i = xcL + ycL, zc = []; i--; zc.push(0)); + for(e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE), y.s *= x.s, xcL = xc.length, ycL = yc.length, xcL < ycL && (zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i), i = xcL + ycL, zc = []; i--; zc.push(0)); for(base = BASE, sqrtBase = SQRT_BASE, i = ycL; --i >= 0;){ - for(c = 0, ylo = yc[i] % sqrtBase, yhi = yc[i] / sqrtBase | 0, k = xcL, j = i + k; j > i;)m = yhi * (xlo = xc[--k] % sqrtBase) + (xhi = xc[k] / sqrtBase | 0) * ylo, c = ((xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c) / base | 0) + (m / sqrtBase | 0) + yhi * xhi, zc[j--] = xlo % base; + for(c = 0, ylo = yc[i] % sqrtBase, yhi = yc[i] / sqrtBase | 0, k = xcL, j = i + k; j > i;)xlo = xc[--k] % sqrtBase, xhi = xc[k] / sqrtBase | 0, m = yhi * xlo + xhi * ylo, c = ((xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c) / base | 0) + (m / sqrtBase | 0) + yhi * xhi, zc[j--] = xlo % base; zc[j] = c; } return c ? ++e : zc.splice(0, 1), normalise(y, zc, e); @@ -7299,7 +7299,7 @@ for(a > 0 ? (ye = xe, t = yc) : (a = -a, t = xc), t.reverse(); a--; t.push(0)); t.reverse(); } - for((a = xc.length) - (b = yc.length) < 0 && (t = yc, yc = xc, xc = t, b = a), a = 0; b;)a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0, xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE; + for(a = xc.length, b = yc.length, a - b < 0 && (t = yc, yc = xc, xc = t, b = a), a = 0; b;)a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0, xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE; return a && (xc = [ a ].concat(xc), ++ye), normalise(y, xc, ye); @@ -15481,8 +15481,8 @@ 5726: function(module) { var objectProto = Object.prototype; function isPrototype(value) { - var Ctor = value && value.constructor; - return value === ('function' == typeof Ctor && Ctor.prototype || objectProto); + var Ctor = value && value.constructor, proto = 'function' == typeof Ctor && Ctor.prototype || objectProto; + return value === proto; } module.exports = isPrototype; }, @@ -15496,7 +15496,9 @@ var assocIndexOf = __webpack_require__(8470), splice = Array.prototype.splice; function listCacheDelete(key) { var data = this.__data__, index = assocIndexOf(data, key); - return !(index < 0) && (index == data.length - 1 ? data.pop() : splice.call(data, index, 1), --this.size, !0); + if (index < 0) return !1; + var lastIndex = data.length - 1; + return index == lastIndex ? data.pop() : splice.call(data, index, 1), --this.size, !0; } module.exports = listCacheDelete; }, @@ -16699,7 +16701,7 @@ t.bufferProcessing = !0; var r = t.bufferedRequest; if (e._writev && r && r.next) { - var i = Array(t.bufferedRequestCount), a = t.corkedRequestsFree; + var n = t.bufferedRequestCount, i = Array(n), a = t.corkedRequestsFree; a.entry = r; for(var o = 0, s = !0; r;)i[o] = r, r.isBuf || (s = !1), r = r.next, o += 1; i.allBuffers = s, doWrite(e, t, !0, t.length, i, "", a.finish), t.pendingcb++, t.lastBufferedRequest = null, a.next ? (t.corkedRequestsFree = a.next, a.next = null) : t.corkedRequestsFree = new CorkedRequest(t), t.bufferedRequestCount = 0; diff --git a/crates/swc_ecma_minifier/tests/full/feedback-mapbox/2c796e83-0724e2af5f19128a/output.js b/crates/swc_ecma_minifier/tests/full/feedback-mapbox/2c796e83-0724e2af5f19128a/output.js index 1ddc2d247b44..86691107dcff 100644 --- a/crates/swc_ecma_minifier/tests/full/feedback-mapbox/2c796e83-0724e2af5f19128a/output.js +++ b/crates/swc_ecma_minifier/tests/full/feedback-mapbox/2c796e83-0724e2af5f19128a/output.js @@ -5,7 +5,7 @@ Thank you! Filter Expression: ${JSON.stringify(n,null,2)} `)}const a=tr[`filter_${r}`],l=i9(o,a);let c=null;if("error"===l.result)throw Error(l.value.map(i=>`${i.key}: ${i.message}`).join(", "));c=(i,r,n)=>l.value.evaluate(i,r,{},n);let h=null,u=null;if(o!==n){const d=i9(n,a);if("error"===d.result)throw Error(d.value.map(i=>`${i.key}: ${i.message}`).join(", "));h=(i,r,n,o,s)=>d.value.evaluate(i,r,{},n,void 0,void 0,o,s),u=!t8(d.value.expression)}return{filter:c,dynamicFilter:h||void 0,needGeometry:function i(r){if(!Array.isArray(r))return!1;if("within"===r[0])return!0;for(let n=1;n",">=","<","<=","to-boolean"]);function rp(i,r){return ir?1:0}function rf(i,r,n){switch(i){case"$type":return[`filter-type-${n}`,r];case"$id":return[`filter-id-${n}`,r];default:return[`filter-${n}`,i,r]}}function rm(i,r){if(0===r.length)return!1;switch(i){case"$type":return["filter-type-in",["literal",r]];case"$id":return["filter-id-in",["literal",r]];default:return r.length>200&&!r.some(i=>typeof i!=typeof r[0])?["filter-in-large",i,["literal",r.sort(rp)]]:["filter-in-small",i,["literal",r]]}}function r_(i){switch(i){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",i]}}function rg(i){return["!",i]}function ry(i){if(rc(tl(i.value))){const r=tl(i.layerType);return ra(ts({},i,{expressionContext:"filter",valueSpec:i.styleSpec[`filter_${r||"fill"}`]}))}return function i(r){const n=r.value,o=r.key;if("array"!==iJ(n))return[new tn(o,n,`array expected, ${iJ(n)} found`)];const s=r.styleSpec;let a,l=[];if(n.length<1)return[new tn(o,n,"filter array must have at least 1 element")];switch(l=l.concat(rl({key:`${o}[0]`,value:n[0],valueSpec:s.filter_operator,style:r.style,styleSpec:r.styleSpec})),ta(n[0])){case"<":case"<=":case">":case">=":n.length>=2&&"$type"===ta(n[1])&&l.push(new tn(o,n,`"$type" cannot be use with operator "${n[0]}"`));case"==":case"!=":3!==n.length&&l.push(new tn(o,n,`filter array for operator "${n[0]}" must have 3 elements`));case"in":case"!in":n.length>=2&&"string"!==(a=iJ(n[1]))&&l.push(new tn(`${o}[1]`,n[1],`string expected, ${a} found`));for(let c=2;c{i in n&&r.push(new tn(o,n[i],`"${i}" is prohibited for ref layers`))}),s.layers.forEach(i=>{ta(i.id)===c&&(p=i)}),p?p.ref?r.push(new tn(o,n.ref,"ref cannot reference another ref layer")):l=ta(p.type):r.push(new tn(o,n.ref,`ref layer "${c}" not found`))}else if("background"!==l&&"sky"!==l){if(n.source){const f=s.sources&&s.sources[n.source],m=f&&ta(f.type);f?"vector"===m&&"raster"===l?r.push(new tn(o,n.source,`layer "${n.id}" requires a raster source`)):"raster"===m&&"raster"!==l?r.push(new tn(o,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==m||n["source-layer"]?"raster-dem"===m&&"hillshade"!==l?r.push(new tn(o,n.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"===l&&n.paint&&n.paint["line-gradient"]&&("geojson"!==m||!f.lineMetrics)&&r.push(new tn(o,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):r.push(new tn(o,n,`layer "${n.id}" must specify a "source-layer"`)):r.push(new tn(o,n.source,`source "${n.source}" not found`))}else r.push(new tn(o,n,'missing required property "source"'))}return r=r.concat(rr({key:o,value:n,valueSpec:a.layer,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":()=>[],type:()=>rz({key:`${o}.type`,value:n.type,valueSpec:a.layer.type,style:i.style,styleSpec:i.styleSpec,object:n,objectKey:"type"}),filter:i=>ry(ts({layerType:l},i)),layout:i=>rr({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rb(ts({layerType:l},i))}}),paint:i=>rr({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rv(ts({layerType:l},i))}})}}))}function rT(i){const r=i.value,n=i.key,o=iJ(r);return"string"!==o?[new tn(n,r,`string expected, ${o} found`)]:[]}const rE={promoteId:function({key:i,value:r}){if("string"===iJ(r))return rT({key:i,value:r});{const n=[];for(const o in r)n.push(...rT({key:`${i}.${o}`,value:r[o]}));return n}}};function rS(i){let r;const n=i.value,o=i.key,s=i.styleSpec,a=i.style;if(!n.type)return[new tn(o,n,'"type" is required')];const l=ta(n.type);switch(l){case"vector":case"raster":case"raster-dem":return rr({key:o,value:n,valueSpec:s[`source_${l.replace("-","_")}`],style:i.style,styleSpec:s,objectElementValidators:rE});case"geojson":if(r=rr({key:o,value:n,valueSpec:s.source_geojson,style:a,styleSpec:s,objectElementValidators:rE}),n.cluster)for(const c in n.clusterProperties){const[h,u]=n.clusterProperties[c],d="string"==typeof h?[h,["accumulated"],["get",c]]:h;r.push(...ra({key:`${o}.${c}.map`,value:u,expressionContext:"cluster-map"})),r.push(...ra({key:`${o}.${c}.reduce`,value:d,expressionContext:"cluster-reduce"}))}return r;case"video":return rr({key:o,value:n,valueSpec:s.source_video,style:a,styleSpec:s});case"image":return rr({key:o,value:n,valueSpec:s.source_image,style:a,styleSpec:s});case"canvas":return[new tn(o,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return rl({key:`${o}.type`,value:n.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:a,styleSpec:s})}}function rI(i){const r=i.value,n=i.styleSpec,o=n.light,s=i.style;let a=[];const l=iJ(r);if(void 0===r)return a;if("object"!==l)return a.concat([new tn("light",r,`object expected, ${l} found`)]);for(const c in r){const h=c.match(/^(.*)-transition$/);a=a.concat(h&&o[h[1]]&&o[h[1]].transition?rz({key:c,value:r[c],valueSpec:n.transition,style:s,styleSpec:n}):o[c]?rz({key:c,value:r[c],valueSpec:o[c],style:s,styleSpec:n}):[new tn(c,r[c],`unknown property "${c}"`)])}return a}function rM(i){const r=i.value,n=i.key,o=i.style,s=i.styleSpec,a=s.terrain;let l=[];const c=iJ(r);if(void 0===r)return l;if("object"!==c)return l.concat([new tn("terrain",r,`object expected, ${c} found`)]);for(const h in r){const u=h.match(/^(.*)-transition$/);l=l.concat(u&&a[u[1]]&&a[u[1]].transition?rz({key:h,value:r[h],valueSpec:s.transition,style:o,styleSpec:s}):a[h]?rz({key:h,value:r[h],valueSpec:a[h],style:o,styleSpec:s}):[new tn(h,r[h],`unknown property "${h}"`)])}if(r.source){const d=o.sources&&o.sources[r.source],p=d&&ta(d.type);d?"raster-dem"!==p&&l.push(new tn(n,r.source,`terrain cannot be used with a source of type ${p}, it only be used with a "raster-dem" source type`)):l.push(new tn(n,r.source,`source "${r.source}" not found`))}else l.push(new tn(n,r,'terrain is missing required property "source"'));return l}function rA(i){const r=i.value,n=i.style,o=i.styleSpec,s=o.fog;let a=[];const l=iJ(r);if(void 0===r)return a;if("object"!==l)return a.concat([new tn("fog",r,`object expected, ${l} found`)]);for(const c in r){const h=c.match(/^(.*)-transition$/);a=a.concat(h&&s[h[1]]&&s[h[1]].transition?rz({key:c,value:r[c],valueSpec:o.transition,style:n,styleSpec:o}):s[c]?rz({key:c,value:r[c],valueSpec:s[c],style:n,styleSpec:o}):[new tn(c,r[c],`unknown property "${c}"`)])}return a}const rC={"*":()=>[],array:rn,boolean:function(i){const r=i.value,n=i.key,o=iJ(r);return"boolean"!==o?[new tn(n,r,`boolean expected, ${o} found`)]:[]},number:ro,color:function(i){const r=i.key,n=i.value,o=iJ(n);return"string"!==o?[new tn(r,n,`color expected, ${o} found`)]:null===tA.parseCSSColor(n)?[new tn(r,n,`color expected, "${n}" found`)]:[]},constants:to,enum:rl,filter:ry,function:rs,layer:rw,object:rr,source:rS,light:rI,terrain:rM,fog:rA,string:rT,formatted:function(i){return 0===rT(i).length?[]:ra(i)},resolvedImage:function(i){return 0===rT(i).length?[]:ra(i)},projection:function(i){const r=i.value,n=i.styleSpec,o=n.projection,s=i.style;let a=[];const l=iJ(r);if("object"===l)for(const c in r)a=a.concat(rz({key:c,value:r[c],valueSpec:o[c],style:s,styleSpec:n}));else"string"!==l&&(a=a.concat([new tn("projection",r,`object or string expected, ${l} found`)]));return a}};function rz(i){const r=i.value,n=i.valueSpec,o=i.styleSpec;return n.expression&&iQ(ta(r))?rs(i):n.expression&&i8(tl(r))?ra(i):n.type&&rC[n.type]?rC[n.type](i):rr(ts({},i,{valueSpec:n.type?o[n.type]:n}))}function rk(i){const r=i.value,n=i.key,o=rT(i);return o.length||(-1===r.indexOf("{fontstack}")&&o.push(new tn(n,r,'"glyphs" url must include a "{fontstack}" token')),-1===r.indexOf("{range}")&&o.push(new tn(n,r,'"glyphs" url must include a "{range}" token'))),o}function rP(i,r=tr){let n=[];return n=n.concat(rz({key:"",value:i,valueSpec:r.$root,styleSpec:r,style:i,objectElementValidators:{glyphs:rk,"*":()=>[]}})),i.constants&&(n=n.concat(to({key:"constants",value:i.constants,style:i,styleSpec:r}))),rD(n)}function rD(i){return[].concat(i).sort((i,r)=>i.line-r.line)}function rL(i){return function(...r){return rD(i.apply(this,r))}}rP.source=rL(rS),rP.light=rL(rI),rP.terrain=rL(rM),rP.fog=rL(rA),rP.layer=rL(rw),rP.filter=rL(ry),rP.paintProperty=rL(rv),rP.layoutProperty=rL(rb);const rB=rP.light,rR=rP.fog,rF=rP.paintProperty,rO=rP.layoutProperty;function rU(i,r){let n=!1;if(r&&r.length)for(const o of r)i.fire(new tt(Error(o.message))),n=!0;return n}var rV=rN;function rN(i,r,n){var o=this.cells=[];if(i instanceof ArrayBuffer){this.arrayBuffer=i;var s=new Int32Array(this.arrayBuffer);i=s[0],this.d=(r=s[1])+2*(n=s[2]);for(var a=0;a=d[m+0]&&o>=d[m+1])?(l[f]=!0,a.push(u[f])):l[f]=!1}}},rN.prototype._forEachCell=function(i,r,n,o,s,a,l,c){for(var h=this._convertToCellCoord(i),u=this._convertToCellCoord(r),d=this._convertToCellCoord(n),p=this._convertToCellCoord(o),f=h;f<=d;f++)for(var m=u;m<=p;m++){var _=this.d*m+f;if((!c||c(this._convertFromCellCoord(f),this._convertFromCellCoord(m),this._convertFromCellCoord(f+1),this._convertFromCellCoord(m+1)))&&s.call(this,i,r,n,o,_,a,l,c))return}},rN.prototype._convertFromCellCoord=function(i){return(i-this.padding)/this.scale},rN.prototype._convertToCellCoord=function(i){return Math.max(0,Math.min(this.d-1,Math.floor(i*this.scale)+this.padding))},rN.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var i=this.cells,r=3+this.cells.length+1+1,n=0,o=0;o=0)continue;const h=i[c];l[c]=rZ[a].shallow.indexOf(c)>=0?h:rH(h,r)}i instanceof Error&&(l.message=i.message)}if(l.$name)throw Error("$name property is reserved for worker serialization logic.");return"Object"!==a&&(l.$name=a),l}throw Error("can't serialize object of type "+typeof i)}function rK(i){if(null==i||"boolean"==typeof i||"number"==typeof i||"string"==typeof i||i instanceof Boolean||i instanceof Number||i instanceof String||i instanceof Date||i instanceof RegExp||rX(i)||rW(i)||ArrayBuffer.isView(i)||i instanceof rj)return i;if(Array.isArray(i))return i.map(rK);if("object"==typeof i){const r=i.$name||"Object",{klass:n}=rZ[r];if(!n)throw Error(`can't deserialize unregistered class ${r}`);if(n.deserialize)return n.deserialize(i);const o=Object.create(n.prototype);for(const s of Object.keys(i)){if("$name"===s)continue;const a=i[s];o[s]=rZ[r].shallow.indexOf(s)>=0?a:rK(a)}return o}throw Error("can't deserialize object of type "+typeof i)}class rY{constructor(){this.first=!0}update(i,r){const n=Math.floor(i);return this.first?(this.first=!1,this.lastIntegerZoom=n,this.lastIntegerZoomTime=0,this.lastZoom=i,this.lastFloorZoom=n,!0):(this.lastFloorZoom>n?(this.lastIntegerZoom=n+1,this.lastIntegerZoomTime=r):this.lastFloorZoomi>=1536&&i<=1791,rQ=i=>i>=1872&&i<=1919,r0=i=>i>=2208&&i<=2303,r1=i=>i>=11904&&i<=12031,r2=i=>i>=12032&&i<=12255,r3=i=>i>=12272&&i<=12287,r5=i=>i>=12288&&i<=12351,r4=i=>i>=12352&&i<=12447,r6=i=>i>=12448&&i<=12543,r8=i=>i>=12544&&i<=12591,r9=i=>i>=12704&&i<=12735,r7=i=>i>=12736&&i<=12783,ne=i=>i>=12784&&i<=12799,nt=i=>i>=12800&&i<=13055,ni=i=>i>=13056&&i<=13311,nr=i=>i>=13312&&i<=19903,nn=i=>i>=19968&&i<=40959,no=i=>i>=40960&&i<=42127,ns=i=>i>=42128&&i<=42191,na=i=>i>=44032&&i<=55215,nl=i=>i>=63744&&i<=64255,nc=i=>i>=64336&&i<=65023,nh=i=>i>=65040&&i<=65055,nu=i=>i>=65072&&i<=65103,nd=i=>i>=65104&&i<=65135,np=i=>i>=65136&&i<=65279,nf=i=>i>=65280&&i<=65519;function nm(i){for(const r of i)if(n_(r.charCodeAt(0)))return!0;return!1}function n_(i){return!(746!==i&&747!==i&&(i<4352||!(r9(i)||r8(i)||nu(i)&&!(i>=65097&&i<=65103)||nl(i)||ni(i)||r1(i)||r7(i)||!(!r5(i)||i>=12296&&i<=12305||i>=12308&&i<=12319||12336===i)||nr(i)||nn(i)||nt(i)||i>=12592&&i<=12687||i>=43360&&i<=43391||i>=55216&&i<=55295||i>=4352&&i<=4607||na(i)||r4(i)||r3(i)||i>=12688&&i<=12703||r2(i)||ne(i)||r6(i)&&12540!==i||!(!nf(i)||65288===i||65289===i||65293===i||i>=65306&&i<=65310||65339===i||65341===i||65343===i||i>=65371&&i<=65503||65507===i||i>=65512&&i<=65519)||!(!nd(i)||i>=65112&&i<=65118||i>=65123&&i<=65126)||i>=5120&&i<=5759||i>=6320&&i<=6399||nh(i)||i>=19904&&i<=19967||no(i)||ns(i))))}function ng(i){return!(n_(i)||i>=128&&i<=255&&(167===i||169===i||174===i||177===i||188===i||189===i||190===i||215===i||247===i)||i>=8192&&i<=8303&&(8214===i||8224===i||8225===i||8240===i||8241===i||8251===i||8252===i||8258===i||8263===i||8264===i||8265===i||8273===i)||i>=8448&&i<=8527||i>=8528&&i<=8591||i>=8960&&i<=9215&&(i>=8960&&i<=8967||i>=8972&&i<=8991||i>=8996&&i<=9e3||9003===i||i>=9085&&i<=9114||i>=9150&&i<=9165||9167===i||i>=9169&&i<=9179||i>=9186&&i<=9215)||i>=9216&&i<=9279&&9251!==i||i>=9280&&i<=9311||i>=9312&&i<=9471||i>=9632&&i<=9727||i>=9728&&i<=9983&&!(i>=9754&&i<=9759)||i>=11008&&i<=11263&&(i>=11026&&i<=11055||i>=11088&&i<=11097||i>=11192&&i<=11243)||r5(i)||r6(i)||i>=57344&&i<=63743||nu(i)||nd(i)||nf(i)||8734===i||8756===i||8757===i||i>=9984&&i<=10087||i>=10102&&i<=10131||65532===i||65533===i)}function ny(i){return i>=1424&&i<=2303||nc(i)||np(i)}const nx="deferred",nv="loading",nb="loaded";let nw=null,nT="unavailable",nE=null;const nS=function(i){i&&"string"==typeof i&&i.indexOf("NetworkError")>-1&&(nT="error"),nw&&nw(i)};function nI(){nM.fire(new te("pluginStateChange",{pluginStatus:nT,pluginURL:nE}))}const nM=new ti,nA=function(){return nT},nC=function(){if(nT!==nx||!nE)throw Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");nT=nv,nI(),nE&&e3({url:nE},i=>{i?nS(i):(nT=nb,nI())})},nz={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>nT===nb||null!=nz.applyArabicShaping,isLoading:()=>nT===nv,setState(i){nT=i.pluginStatus,nE=i.pluginURL},isParsed:()=>null!=nz.applyArabicShaping&&null!=nz.processBidirectionalText&&null!=nz.processStyledBidirectionalText,getPluginURL:()=>nE};class nk{constructor(i,r){this.zoom=i,r?(this.now=r.now,this.fadeDuration=r.fadeDuration,this.zoomHistory=r.zoomHistory,this.transition=r.transition,this.pitch=r.pitch):(this.now=0,this.fadeDuration=0,this.zoomHistory=new rY,this.transition={},this.pitch=0)}isSupportedScript(i){return function(i,r){for(const n of i){var o;if(o=n.charCodeAt(0),!r&&ny(o)||o>=2304&&o<=3583||o>=3840&&o<=4255||o>=6016&&o<=6143)return!1}return!0}(i,nz.isLoaded())}crossFadingFactor(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const i=this.zoom,r=i-Math.floor(i),n=this.crossFadingFactor();return i>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:r+(1-r)*n}:{fromScale:.5,toScale:1,t:1-(1-n)*r}}}class nP{constructor(i,r){this.property=i,this.value=r,this.expression=function(i,r){if(iQ(i))return new ri(i,r);if(i8(i)){const n=rt(i,r);if("error"===n.result)throw Error(n.value.map(i=>`${i.key}: ${i.message}`).join(", "));return n.value}{let o=i;return"string"==typeof i&&"color"===r.type&&(o=tC.parse(i)),{kind:"constant",evaluate:()=>o}}}(void 0===r?i.specification.default:r,i.specification)}isDataDriven(){return"source"===this.expression.kind||"composite"===this.expression.kind}possiblyEvaluate(i,r,n){return this.property.possiblyEvaluate(this,i,r,n)}}class nD{constructor(i){this.property=i,this.value=new nP(i,void 0)}transitioned(i,r){return new nB(this.property,this.value,r,H({},i.transition,this.transition),i.now)}untransitioned(){return new nB(this.property,this.value,null,{},0)}}class nL{constructor(i){this._properties=i,this._values=Object.create(i.defaultTransitionablePropertyValues)}getValue(i){return eo(this._values[i].value.value)}setValue(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nD(this._values[i].property)),this._values[i].value=new nP(this._values[i].property,null===r?void 0:eo(r))}getTransition(i){return eo(this._values[i].transition)}setTransition(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nD(this._values[i].property)),this._values[i].transition=eo(r)||void 0}serialize(){const i={};for(const r of Object.keys(this._values)){const n=this.getValue(r);void 0!==n&&(i[r]=n);const o=this.getTransition(r);void 0!==o&&(i[`${r}-transition`]=o)}return i}transitioned(i,r){const n=new nR(this._properties);for(const o of Object.keys(this._values))n._values[o]=this._values[o].transitioned(i,r._values[o]);return n}untransitioned(){const i=new nR(this._properties);for(const r of Object.keys(this._values))i._values[r]=this._values[r].untransitioned();return i}}class nB{constructor(i,r,n,o,s){const a=o.delay||0,l=o.duration||0;s=s||0,this.property=i,this.value=r,this.begin=s+a,this.end=this.begin+l,i.specification.transition&&(o.delay||o.duration)&&(this.prior=n)}possiblyEvaluate(i,r,n){const o=i.now||0,s=this.value.possiblyEvaluate(i,r,n),a=this.prior;if(a){if(o>this.end||this.value.isDataDriven())return this.prior=null,s;if(oo.zoomHistory.lastIntegerZoom?{from:i,to:r,other:n}:{from:n,to:r,other:i}}interpolate(i){return i}}class nG{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){if(void 0!==i.value){if("constant"===i.expression.kind){const s=i.expression.evaluate(r,null,{},n,o);return this._calculate(s,s,s,r)}return this._calculate(i.expression.evaluate(new nk(Math.floor(r.zoom-1),r)),i.expression.evaluate(new nk(Math.floor(r.zoom),r)),i.expression.evaluate(new nk(Math.floor(r.zoom+1),r)),r)}}_calculate(i,r,n,o){return o.zoom>o.zoomHistory.lastIntegerZoom?{from:i,to:r}:{from:n,to:r}}interpolate(i){return i}}class nZ{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){return!!i.expression.evaluate(r,null,{},n,o)}interpolate(){return!1}}class n${constructor(i){for(const r in this.properties=i,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],i){const n=i[r];n.specification.overridable&&this.overridableProperties.push(r);const o=this.defaultPropertyValues[r]=new nP(n,void 0),s=this.defaultTransitionablePropertyValues[r]=new nD(n);this.defaultTransitioningPropertyValues[r]=s.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=o.possiblyEvaluate({})}}}function nq(i,r){return 256*(i=Z(Math.floor(i),0,255))+Z(Math.floor(r),0,255)}r$("DataDrivenProperty",nN),r$("DataConstantProperty",nV),r$("CrossFadedDataDrivenProperty",nj),r$("CrossFadedProperty",nG),r$("ColorRampProperty",nZ);const nX={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class nW{constructor(i,r){this._structArray=i,this._pos1=r*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class nH{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(i,r){return i._trim(),r&&(i.isTransferred=!0,r.push(i.arrayBuffer)),{length:i.length,arrayBuffer:i.arrayBuffer}}static deserialize(i){const r=Object.create(this.prototype);return r.arrayBuffer=i.arrayBuffer,r.length=i.length,r.capacity=i.arrayBuffer.byteLength/r.bytesPerElement,r._refreshViews(),r}_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(i){this.reserve(i),this.length=i}reserve(i){if(i>this.capacity){this.capacity=Math.max(i,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function nK(i,r=1){let n=0,o=0;return{members:i.map(i=>{const s=nX[i.type].BYTES_PER_ELEMENT,a=n=nY(n,Math.max(r,s)),l=i.components||1;return o=Math.max(o,s),n+=s*l,{name:i.name,type:i.type,components:l,offset:a}}),size:nY(n,Math.max(o,r)),alignment:r}}function nY(i,r){return Math.ceil(i/r)*r}class nJ extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.int16[o+0]=r,this.int16[o+1]=n,i}}nJ.prototype.bytesPerElement=4,r$("StructArrayLayout2i4",nJ);class nQ extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=4*i;return this.int16[a+0]=r,this.int16[a+1]=n,this.int16[a+2]=o,this.int16[a+3]=s,i}}nQ.prototype.bytesPerElement=8,r$("StructArrayLayout4i8",nQ);class n0 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=6*i,u=12*i,d=3*i;return this.int16[h+0]=r,this.int16[h+1]=n,this.uint8[u+4]=o,this.uint8[u+5]=s,this.uint8[u+6]=a,this.uint8[u+7]=l,this.float32[d+2]=c,i}}n0.prototype.bytesPerElement=12,r$("StructArrayLayout2i4ub1f12",n0);class n1 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.float32[s+0]=r,this.float32[s+1]=n,this.float32[s+2]=o,i}}n1.prototype.bytesPerElement=12,r$("StructArrayLayout3f12",n1);class n2 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u){const d=this.length;return this.resize(d+1),this.emplace(d,i,r,n,o,s,a,l,c,h,u)}emplace(i,r,n,o,s,a,l,c,h,u,d){const p=10*i;return this.uint16[p+0]=r,this.uint16[p+1]=n,this.uint16[p+2]=o,this.uint16[p+3]=s,this.uint16[p+4]=a,this.uint16[p+5]=l,this.uint16[p+6]=c,this.uint16[p+7]=h,this.uint16[p+8]=u,this.uint16[p+9]=d,i}}n2.prototype.bytesPerElement=20,r$("StructArrayLayout10ui20",n2);class n3 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c){const h=this.length;return this.resize(h+1),this.emplace(h,i,r,n,o,s,a,l,c)}emplace(i,r,n,o,s,a,l,c,h){const u=8*i;return this.uint16[u+0]=r,this.uint16[u+1]=n,this.uint16[u+2]=o,this.uint16[u+3]=s,this.uint16[u+4]=a,this.uint16[u+5]=l,this.uint16[u+6]=c,this.uint16[u+7]=h,i}}n3.prototype.bytesPerElement=16,r$("StructArrayLayout8ui16",n3);class n5 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){const y=this.length;return this.resize(y+1),this.emplace(y,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y){const x=16*i;return this.int16[x+0]=r,this.int16[x+1]=n,this.int16[x+2]=o,this.int16[x+3]=s,this.uint16[x+4]=a,this.uint16[x+5]=l,this.uint16[x+6]=c,this.uint16[x+7]=h,this.int16[x+8]=u,this.int16[x+9]=d,this.int16[x+10]=p,this.int16[x+11]=f,this.int16[x+12]=m,this.int16[x+13]=_,this.int16[x+14]=g,this.int16[x+15]=y,i}}n5.prototype.bytesPerElement=32,r$("StructArrayLayout4i4ui4i4i32",n5);class n4 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.uint32[1*i+0]=r,i}}n4.prototype.bytesPerElement=4,r$("StructArrayLayout1ul4",n4);class n6 extends nH{_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(i,r,n,o,s,a,l,c,h,u,d,p,f){const m=this.length;return this.resize(m+1),this.emplace(m,i,r,n,o,s,a,l,c,h,u,d,p,f)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m){const _=20*i,g=10*i;return this.int16[_+0]=r,this.int16[_+1]=n,this.int16[_+2]=o,this.int16[_+3]=s,this.int16[_+4]=a,this.float32[g+3]=l,this.float32[g+4]=c,this.float32[g+5]=h,this.float32[g+6]=u,this.int16[_+14]=d,this.uint32[g+8]=p,this.uint16[_+18]=f,this.uint16[_+19]=m,i}}n6.prototype.bytesPerElement=40,r$("StructArrayLayout5i4f1i1ul2ui40",n6);class n8 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=8*i;return this.int16[h+0]=r,this.int16[h+1]=n,this.int16[h+2]=o,this.int16[h+4]=s,this.int16[h+5]=a,this.int16[h+6]=l,this.int16[h+7]=c,i}}n8.prototype.bytesPerElement=16,r$("StructArrayLayout3i2i2i16",n8);class n9 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s){const a=this.length;return this.resize(a+1),this.emplace(a,i,r,n,o,s)}emplace(i,r,n,o,s,a){const l=4*i,c=8*i;return this.float32[l+0]=r,this.float32[l+1]=n,this.float32[l+2]=o,this.int16[c+6]=s,this.int16[c+7]=a,i}}n9.prototype.bytesPerElement=16,r$("StructArrayLayout2f1f2i16",n9);class n7 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=12*i,l=3*i;return this.uint8[a+0]=r,this.uint8[a+1]=n,this.float32[l+1]=o,this.float32[l+2]=s,i}}n7.prototype.bytesPerElement=12,r$("StructArrayLayout2ub2f12",n7);class oe extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.uint16[s+0]=r,this.uint16[s+1]=n,this.uint16[s+2]=o,i}}oe.prototype.bytesPerElement=6,r$("StructArrayLayout3ui6",oe);class ot extends nH{_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(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w){const T=this.length;return this.resize(T+1),this.emplace(T,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T){const E=30*i,S=15*i,I=60*i;return this.int16[E+0]=r,this.int16[E+1]=n,this.int16[E+2]=o,this.float32[S+2]=s,this.float32[S+3]=a,this.uint16[E+8]=l,this.uint16[E+9]=c,this.uint32[S+5]=h,this.uint32[S+6]=u,this.uint32[S+7]=d,this.uint16[E+16]=p,this.uint16[E+17]=f,this.uint16[E+18]=m,this.float32[S+10]=_,this.float32[S+11]=g,this.uint8[I+48]=y,this.uint8[I+49]=x,this.uint8[I+50]=v,this.uint32[S+13]=b,this.int16[E+28]=w,this.uint8[I+58]=T,i}}ot.prototype.bytesPerElement=60,r$("StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60",ot);class oi extends nH{_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(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k){const P=this.length;return this.resize(P+1),this.emplace(P,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k,P){const D=38*i,L=19*i;return this.int16[D+0]=r,this.int16[D+1]=n,this.int16[D+2]=o,this.float32[L+2]=s,this.float32[L+3]=a,this.int16[D+8]=l,this.int16[D+9]=c,this.int16[D+10]=h,this.int16[D+11]=u,this.int16[D+12]=d,this.int16[D+13]=p,this.uint16[D+14]=f,this.uint16[D+15]=m,this.uint16[D+16]=_,this.uint16[D+17]=g,this.uint16[D+18]=y,this.uint16[D+19]=x,this.uint16[D+20]=v,this.uint16[D+21]=b,this.uint16[D+22]=w,this.uint16[D+23]=T,this.uint16[D+24]=E,this.uint16[D+25]=S,this.uint16[D+26]=I,this.uint16[D+27]=M,this.uint16[D+28]=A,this.uint32[L+15]=C,this.float32[L+16]=z,this.float32[L+17]=k,this.float32[L+18]=P,i}}oi.prototype.bytesPerElement=76,r$("StructArrayLayout3i2f6i15ui1ul3f76",oi);class or extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.float32[1*i+0]=r,i}}or.prototype.bytesPerElement=4,r$("StructArrayLayout1f4",or);class on extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.int16[s+0]=r,this.int16[s+1]=n,this.int16[s+2]=o,i}}on.prototype.bytesPerElement=6,r$("StructArrayLayout3i6",on);class oo extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=7*i;return this.float32[h+0]=r,this.float32[h+1]=n,this.float32[h+2]=o,this.float32[h+3]=s,this.float32[h+4]=a,this.float32[h+5]=l,this.float32[h+6]=c,i}}oo.prototype.bytesPerElement=28,r$("StructArrayLayout7f28",oo);class os extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=6*i;return this.uint32[3*i+0]=r,this.uint16[a+2]=n,this.uint16[a+3]=o,this.uint16[a+4]=s,i}}os.prototype.bytesPerElement=12,r$("StructArrayLayout1ul3ui12",os);class oa extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.uint16[o+0]=r,this.uint16[o+1]=n,i}}oa.prototype.bytesPerElement=4,r$("StructArrayLayout2ui4",oa);class ol extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.uint16[1*i+0]=r,i}}ol.prototype.bytesPerElement=2,r$("StructArrayLayout1ui2",ol);class oc extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.float32[o+0]=r,this.float32[o+1]=n,i}}oc.prototype.bytesPerElement=8,r$("StructArrayLayout2f8",oc);class oh extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=4*i;return this.float32[a+0]=r,this.float32[a+1]=n,this.float32[a+2]=o,this.float32[a+3]=s,i}}oh.prototype.bytesPerElement=16,r$("StructArrayLayout4f16",oh);class ou extends nW{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]}}ou.prototype.size=40;class od extends n6{get(i){return new ou(this,i)}}r$("CollisionBoxArray",od);class op extends nW{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(i){this._structArray.uint8[this._pos1+49]=i}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(i){this._structArray.uint8[this._pos1+50]=i}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(i){this._structArray.uint32[this._pos4+13]=i}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(i){this._structArray.uint8[this._pos1+58]=i}}op.prototype.size=60;class of extends ot{get(i){return new op(this,i)}}r$("PlacedSymbolArray",of);class om extends nW{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 rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(i){this._structArray.uint32[this._pos4+15]=i}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}om.prototype.size=76;class o_ extends oi{get(i){return new om(this,i)}}r$("SymbolInstanceArray",o_);class og extends or{getoffsetX(i){return this.float32[1*i+0]}}r$("GlyphOffsetArray",og);class oy extends on{getx(i){return this.int16[3*i+0]}gety(i){return this.int16[3*i+1]}gettileUnitDistanceFromAnchor(i){return this.int16[3*i+2]}}r$("SymbolLineVertexArray",oy);class ox extends nW{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]}}ox.prototype.size=12;class ov extends os{get(i){return new ox(this,i)}}r$("FeatureIndexArray",ov);class ob extends nW{get a_centroid_pos0(){return this._structArray.uint16[this._pos2+0]}get a_centroid_pos1(){return this._structArray.uint16[this._pos2+1]}}ob.prototype.size=4;class ow extends oa{get(i){return new ob(this,i)}}r$("FillExtrusionCentroidArray",ow);const oT=nK([{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"}]),oE=nK([{name:"a_dash_to",components:4,type:"Uint16"},{name:"a_dash_from",components:4,type:"Uint16"}]);var oS=tM(function(i){i.exports=function(i,r){var n,o,s,a,l,c;for(o=i.length-(n=3&i.length),s=r,c=0;c>>16)*3432918353&65535)<<16)&4294967295)<<15|l>>>17))*461845907+(((l>>>16)*461845907&65535)<<16)&4294967295)<<13|s>>>19))+((5*(s>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,n){case 3:l^=(255&i.charCodeAt(c+2))<<16;case 2:l^=(255&i.charCodeAt(c+1))<<8;case 1:s^=l=(65535&(l=(l=(65535&(l^=255&i.charCodeAt(c)))*3432918353+(((l>>>16)*3432918353&65535)<<16)&4294967295)<<15|l>>>17))*461845907+(((l>>>16)*461845907&65535)<<16)&4294967295}return s^=i.length,s=2246822507*(65535&(s^=s>>>16))+((2246822507*(s>>>16)&65535)<<16)&4294967295,s=3266489909*(65535&(s^=s>>>13))+((3266489909*(s>>>16)&65535)<<16)&4294967295,(s^=s>>>16)>>>0}}),oI=tM(function(i){i.exports=function(i,r){for(var n,o=i.length,s=r^o,a=0;o>=4;)n=1540483477*(65535&(n=255&i.charCodeAt(a)|(255&i.charCodeAt(++a))<<8|(255&i.charCodeAt(++a))<<16|(255&i.charCodeAt(++a))<<24))+((1540483477*(n>>>16)&65535)<<16),s=1540483477*(65535&s)+((1540483477*(s>>>16)&65535)<<16)^(n=1540483477*(65535&(n^=n>>>24))+((1540483477*(n>>>16)&65535)<<16)),o-=4,++a;switch(o){case 3:s^=(255&i.charCodeAt(a+2))<<16;case 2:s^=(255&i.charCodeAt(a+1))<<8;case 1:s=1540483477*(65535&(s^=255&i.charCodeAt(a)))+((1540483477*(s>>>16)&65535)<<16)}return s=1540483477*(65535&(s^=s>>>13))+((1540483477*(s>>>16)&65535)<<16),(s^=s>>>15)>>>0}}),oM=oS;oM.murmur3=oS,oM.murmur2=oI;class oA{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(i,r,n,o){this.ids.push(oC(i)),this.positions.push(r,n,o)}getPositions(i){const r=oC(i);let n=0,o=this.ids.length-1;for(;n>1;this.ids[s]>=r?o=s:n=s+1}const a=[];for(;this.ids[n]===r;)a.push({index:this.positions[3*n],start:this.positions[3*n+1],end:this.positions[3*n+2]}),n++;return a}static serialize(i,r){const n=new Float64Array(i.ids),o=new Uint32Array(i.positions);return function i(r,n,o,s){for(;o>1];let l=o-1,c=s+1;for(;;){do l++;while(r[l]a)if(l>=c)break;oz(r,l,c),oz(n,3*l,3*c),oz(n,3*l+1,3*c+1),oz(n,3*l+2,3*c+2)}c-o`u_${i}`),this.type=n}setUniform(i,r,n){i.set(n.constantOr(this.value))}getBinding(i,r,n){return"color"===this.type?new oL(i,r):new oP(i,r)}}class oV{constructor(i,r){this.uniformNames=r.map(i=>`u_${i}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(i,r){this.pixelRatioFrom=r.pixelRatio,this.pixelRatioTo=i.pixelRatio,this.patternFrom=r.tl.concat(r.br),this.patternTo=i.tl.concat(i.br)}setUniform(i,r,n,o){const s="u_pattern_to"===o||"u_dash_to"===o?this.patternTo:"u_pattern_from"===o||"u_dash_from"===o?this.patternFrom:"u_pixel_ratio_to"===o?this.pixelRatioTo:"u_pixel_ratio_from"===o?this.pixelRatioFrom:null;s&&i.set(s)}getBinding(i,r,n){return"u_pattern_from"===n||"u_pattern_to"===n||"u_dash_from"===n||"u_dash_to"===n?new oD(i,r):new oP(i,r)}}class oN{constructor(i,r,n,o){this.expression=i,this.type=n,this.maxValue=0,this.paintVertexAttributes=r.map(i=>({name:`a_${i}`,type:"Float32",components:"color"===n?2:1,offset:0})),this.paintVertexArray=new o}populatePaintArray(i,r,n,o,s,a){const l=this.paintVertexArray.length,c=this.expression.evaluate(new nk(0),r,{},s,o,a);this.paintVertexArray.resize(i),this._setPaintValue(l,i,c)}updatePaintArray(i,r,n,o,s){const a=this.expression.evaluate({zoom:0},n,o,void 0,s);this._setPaintValue(i,r,a)}_setPaintValue(i,r,n){if("color"===this.type){const o=oO(n);for(let s=i;s`u_${i}_t`),this.type=n,this.useIntegerZoom=o,this.zoom=s,this.maxValue=0,this.paintVertexAttributes=r.map(i=>({name:`a_${i}`,type:"Float32",components:"color"===n?4:2,offset:0})),this.paintVertexArray=new a}populatePaintArray(i,r,n,o,s,a){const l=this.expression.evaluate(new nk(this.zoom),r,{},s,o,a),c=this.expression.evaluate(new nk(this.zoom+1),r,{},s,o,a),h=this.paintVertexArray.length;this.paintVertexArray.resize(i),this._setPaintValue(h,i,l,c)}updatePaintArray(i,r,n,o,s){const a=this.expression.evaluate({zoom:this.zoom},n,o,void 0,s),l=this.expression.evaluate({zoom:this.zoom+1},n,o,void 0,s);this._setPaintValue(i,r,a,l)}_setPaintValue(i,r,n,o){if("color"===this.type){const s=oO(n),a=oO(o);for(let l=i;l!0){this.binders={},this._buffers=[];const o=[];for(const s in i.paint._values){var a,l;if(!n(s))continue;const c=i.paint.get(s);if(!(c instanceof nO&&iH(c.property.specification)))continue;const h=(a=s,l=i.type,oq[a]||[a.replace(`${l}-`,"").replace(/-/g,"_")]),u=c.value,d=c.property.specification.type,p=c.property.useIntegerZoom,f=c.property.specification["property-type"],m="cross-faded"===f||"cross-faded-data-driven"===f,_="line-dasharray"===String(s)&&"constant"!==i.layout.get("line-cap").value.kind;if("constant"!==u.kind||_){if("source"===u.kind||_||m){const g=oH(s,d,"source");this.binders[s]=m?new oG(u,h,d,p,r,g,i.id):new oN(u,h,d,g),o.push(`/a_${s}`)}else{const y=oH(s,d,"composite");this.binders[s]=new oj(u,h,d,p,r,y),o.push(`/z_${s}`)}}else this.binders[s]=m?new oV(u.value,h):new oU(u.value,h,d),o.push(`/u_${s}`)}this.cacheKey=o.sort().join("")}getMaxValue(i){const r=this.binders[i];return r instanceof oN||r instanceof oj?r.maxValue:0}populatePaintArrays(i,r,n,o,s,a){for(const l in this.binders){const c=this.binders[l];(c instanceof oN||c instanceof oj||c instanceof oG)&&c.populatePaintArray(i,r,n,o,s,a)}}setConstantPatternPositions(i,r){for(const n in this.binders){const o=this.binders[n];o instanceof oV&&o.setConstantPatternPositions(i,r)}}updatePaintArrays(i,r,n,o,s,a){let l=!1;for(const c in i){const h=r.getPositions(c);for(const u of h){const d=n.feature(u.index);for(const p in this.binders){const f=this.binders[p];if((f instanceof oN||f instanceof oj||f instanceof oG)&&!0===f.expression.isStateDependent){const m=o.paint.get(p);f.expression=m.value,f.updatePaintArray(u.start,u.end,d,i[c],s,a),l=!0}}}}return l}defines(){const i=[];for(const r in this.binders){const n=this.binders[r];(n instanceof oU||n instanceof oV)&&i.push(...n.uniformNames.map(i=>`#define HAS_UNIFORM_${i}`))}return i}getBinderAttributes(){const i=[];for(const r in this.binders){const n=this.binders[r];if(n instanceof oN||n instanceof oj||n instanceof oG)for(let o=0;o!0){for(const o of(this.programConfigurations={},i))this.programConfigurations[o.id]=new oZ(o,r,n);this.needsUpload=!1,this._featureMap=new oA,this._bufferOffset=0}populatePaintArrays(i,r,n,o,s,a,l){for(const c in this.programConfigurations)this.programConfigurations[c].populatePaintArrays(i,r,o,s,a,l);void 0!==r.id&&this._featureMap.add(r.id,n,this._bufferOffset,i),this._bufferOffset=i,this.needsUpload=!0}updatePaintArrays(i,r,n,o,s){for(const a of n)this.needsUpload=this.programConfigurations[a.id].updatePaintArrays(i,this._featureMap,r,a,o,s)||this.needsUpload}get(i){return this.programConfigurations[i]}upload(i){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(i);this.needsUpload=!1}}destroy(){for(const i in this.programConfigurations)this.programConfigurations[i].destroy()}}const oq={"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"line-dasharray":["dash_to","dash_from"]},oX={"line-pattern":{source:n2,composite:n2},"fill-pattern":{source:n2,composite:n2},"fill-extrusion-pattern":{source:n2,composite:n2},"line-dasharray":{source:n3,composite:n3}},oW={color:{source:oc,composite:oh},number:{source:or,composite:oc}};function oH(i,r,n){const o=oX[i];return o&&o[n]||oW[r][n]}r$("ConstantBinder",oU),r$("CrossFadedConstantBinder",oV),r$("SourceExpressionBinder",oN),r$("CrossFadedCompositeBinder",oG),r$("CompositeExpressionBinder",oj),r$("ProgramConfiguration",oZ,{omit:["_buffers"]}),r$("ProgramConfigurationSet",o$);const oK="-transition";class oY extends ti{constructor(i,r){if(super(),this.id=i.id,this.type=i.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,"custom"!==i.type&&(this.metadata=i.metadata,this.minzoom=i.minzoom,this.maxzoom=i.maxzoom,"background"!==i.type&&"sky"!==i.type&&(this.source=i.source,this.sourceLayer=i["source-layer"],this.filter=i.filter),r.layout&&(this._unevaluatedLayout=new nF(r.layout)),r.paint)){for(const n in this._transitionablePaint=new nL(r.paint),i.paint)this.setPaintProperty(n,i.paint[n],{validate:!1});for(const o in i.layout)this.setLayoutProperty(o,i.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new nU(r.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(i){return"visibility"===i?this.visibility:this._unevaluatedLayout.getValue(i)}setLayoutProperty(i,r,n={}){null!=r&&this._validate(rO,`layers.${this.id}.layout.${i}`,i,r,n)||("visibility"!==i?this._unevaluatedLayout.setValue(i,r):this.visibility=r)}getPaintProperty(i){return ei(i,oK)?this._transitionablePaint.getTransition(i.slice(0,-oK.length)):this._transitionablePaint.getValue(i)}setPaintProperty(i,r,n={}){if(null!=r&&this._validate(rF,`layers.${this.id}.paint.${i}`,i,r,n))return!1;if(ei(i,oK))return this._transitionablePaint.setTransition(i.slice(0,-oK.length),r||void 0),!1;{const o=this._transitionablePaint._values[i],s="cross-faded-data-driven"===o.property.specification["property-type"],a=o.value.isDataDriven(),l=o.value;this._transitionablePaint.setValue(i,r),this._handleSpecialPaintPropertyUpdate(i);const c=this._transitionablePaint._values[i].value;return c.isDataDriven()||a||s||this._handleOverridablePaintPropertyUpdate(i,l,c)}}_handleSpecialPaintPropertyUpdate(i){}getProgramIds(){return null}getProgramConfiguration(i){return null}_handleOverridablePaintPropertyUpdate(i,r,n){return!1}isHidden(i){return!!(this.minzoom&&i=this.maxzoom)||"none"===this.visibility}updateTransitions(i){this._transitioningPaint=this._transitionablePaint.transitioned(i,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(i,r){i.getCrossfadeParameters&&(this._crossfadeParameters=i.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(i,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(i,void 0,r)}serialize(){const i={id:this.id,type:this.type,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()};return this.visibility&&(i.layout=i.layout||{},i.layout.visibility=this.visibility),en(i,(i,r)=>!(void 0===i||"layout"===r&&!Object.keys(i).length||"paint"===r&&!Object.keys(i).length))}_validate(i,r,n,o,s={}){return(!s||!1!==s.validate)&&rU(this,i.call(rP,{key:r,layerType:this.type,objectKey:n,value:o,styleSpec:tr,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const i in this.paint._values){const r=this.paint.get(i);if(r instanceof nO&&iH(r.property.specification)&&("source"===r.value.kind||"composite"===r.value.kind)&&r.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=rh(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const oJ=nK([{name:"a_pos",components:2,type:"Int16"}],4),{members:oQ}=oJ;class o0{constructor(i=[]){this.segments=i}prepareSegment(i,r,n,o){let s=this.segments[this.segments.length-1];return i>o0.MAX_VERTEX_ARRAY_LENGTH&&ea(`Max vertices per segment is ${o0.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${i}`),(!s||s.vertexLength+i>o0.MAX_VERTEX_ARRAY_LENGTH||s.sortKey!==o)&&(s={vertexOffset:r.length,primitiveOffset:n.length,vertexLength:0,primitiveLength:0},void 0!==o&&(s.sortKey=o),this.segments.push(s)),s}get(){return this.segments}destroy(){for(const i of this.segments)for(const r in i.vaos)i.vaos[r].destroy()}static simpleSegment(i,r,n,o){return new o0([{vertexOffset:i,primitiveOffset:r,vertexLength:n,primitiveLength:o,vaos:{},sortKey:0}])}}o0.MAX_VERTEX_ARRAY_LENGTH=65535,r$("SegmentVector",o0);class o1{constructor(i,r){i&&(r?this.setSouthWest(i).setNorthEast(r):4===i.length?this.setSouthWest([i[0],i[1]]).setNorthEast([i[2],i[3]]):this.setSouthWest(i[0]).setNorthEast(i[1]))}setNorthEast(i){return this._ne=i instanceof o2?new o2(i.lng,i.lat):o2.convert(i),this}setSouthWest(i){return this._sw=i instanceof o2?new o2(i.lng,i.lat):o2.convert(i),this}extend(i){let r,n;const o=this._sw,s=this._ne;if(i instanceof o2)r=i,n=i;else{if(!(i instanceof o1))return Array.isArray(i)?4===i.length||i.every(Array.isArray)?this.extend(o1.convert(i)):this.extend(o2.convert(i)):this;if(r=i._sw,n=i._ne,!r||!n)return this}return o||s?(o.lng=Math.min(r.lng,o.lng),o.lat=Math.min(r.lat,o.lat),s.lng=Math.max(n.lng,s.lng),s.lat=Math.max(n.lat,s.lat)):(this._sw=new o2(r.lng,r.lat),this._ne=new o2(n.lng,n.lat)),this}getCenter(){return new o2((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 o2(this.getWest(),this.getNorth())}getSouthEast(){return new o2(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(i){const{lng:r,lat:n}=o2.convert(i);let o=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(o=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=n&&n<=this._ne.lat&&o}static convert(i){return!i||i instanceof o1?i:new o1(i)}}class o2{constructor(i,r){if(isNaN(i)||isNaN(r))throw Error(`Invalid LngLat object: (${i}, ${r})`);if(this.lng=+i,this.lat=+r,this.lat>90||this.lat<-90)throw Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new o2(q(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(i){const r=Math.PI/180,n=this.lat*r,o=i.lat*r,s=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((i.lng-this.lng)*r);return 6371008.8*Math.acos(Math.min(s,1))}toBounds(i=0){const r=360*i/40075017,n=r/Math.cos(Math.PI/180*this.lat);return new o1(new o2(this.lng-n,this.lat-r),new o2(this.lng+n,this.lat+r))}static convert(i){if(i instanceof o2)return i;if(Array.isArray(i)&&(2===i.length||3===i.length))return new o2(Number(i[0]),Number(i[1]));if(!Array.isArray(i)&&"object"==typeof i&&null!==i)return new o2(Number("lng"in i?i.lng:i.lon),Number(i.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const o3=2*Math.PI*6371008.8;function o5(i){return o3*Math.cos(i*Math.PI/180)}function o4(i){return(180+i)/360}function o6(i){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360}function o8(i){return 360*i-180}function o9(i){return 360/Math.PI*Math.atan(Math.exp((180-360*i)*Math.PI/180))-90}function o7(i,r){return i*o5(o9(r))}class se{constructor(i,r,n=0){this.x=+i,this.y=+r,this.z=+n}static fromLngLat(i,r=0){const n=o2.convert(i);return new se(o4(n.lng),o6(n.lat),r/o5(n.lat))}toLngLat(){return new o2(o8(this.x),o9(this.y))}toAltitude(){return o7(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/o3*(1/Math.cos(o9(this.y)*Math.PI/180))}}const st=-16383-1;function si(i,r,n){const o=i.loadGeometry(),s=i.extent,a=8192/s;if(r&&n&&n.projection.isReprojectedInTileSpace){const c=1<{const n=o8((r.x+i.x/s)/c),o=o9((r.y+i.y/s)/c),a=p.project(n,o);i.x=(a.x*h-u)*s,i.y=(a.y*h-d)*s};for(let m=0;m=d?(i(r,n,o,p,f,c,m,u,d),i(r,p,f,s,a,m,h,u,d)):r.push(h)}(c,o,s,u,d,a,h,r,1):c.push(h),o=u,s=d,a=h}return c}(o[m],f,1);else{const _=[];for(const g of o[m])g.x<0||g.x>=s||g.y<0||g.y>=s||(f(g),_.push(g));o[m]=_}}for(const y of o)for(const x of y)!function(i,r){const n=Math.round(i.x*r),o=Math.round(i.y*r);i.x=Z(n,st,16383),i.y=Z(o,st,16383),(ni.x+1||oi.y+1)&&ea("Geometry exceeds allowed extent, reduce your vector tile buffer size")}(x,a);return o}function sr(i,r){return{type:i.type,id:i.id,properties:i.properties,geometry:r?si(i):[]}}function sn(i,r,n,o,s){i.emplaceBack(2*r+(o+1)/2,2*n+(s+1)/2)}class so{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.layoutVertexArray=new nJ,this.indexArray=new oe,this.segments=new o0,this.programConfigurations=new o$(i.layers,i.zoom),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){const s=this.layers[0],a=[];let l=null;for(const{feature:c,id:h,index:u,sourceLayerIndex:d}of("circle"===s.type&&(l=s.layout.get("circle-sort-key")),i)){const p=this.layers[0]._featureFilter.needGeometry,f=sr(c,p);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),f,n))continue;const m=l?l.evaluate(f,{},n):void 0,_={id:h,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:p?f.geometry:si(c,n,o),patterns:{},sortKey:m};a.push(_)}for(const g of(l&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:y,index:x,sourceLayerIndex:v}=g,b=i[x].feature;this.addFeature(g,y,x,r.availableImages,n),r.featureIndex.insert(b,y,x,v,this.index)}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,oQ),this.indexBuffer=i.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(i,r,n,o,s){for(const a of r)for(const l of a){const c=l.x,h=l.y;if(c<0||c>=8192||h<0||h>=8192)continue;const u=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,i.sortKey),d=u.vertexLength;sn(this.layoutVertexArray,c,h,-1,-1),sn(this.layoutVertexArray,c,h,1,-1),sn(this.layoutVertexArray,c,h,1,1),sn(this.layoutVertexArray,c,h,-1,1),this.indexArray.emplaceBack(d,d+1,d+2),this.indexArray.emplaceBack(d,d+3,d+2),u.vertexLength+=4,u.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,{},o,s)}}function ss(i,r){for(let n=0;n1?n:n.sub(r)._mult(s)._add(r))}function su(i,r){let n,o,s,a=!1;for(let l=0;lr.y!=s.y>r.y&&r.x<(s.x-o.x)*(r.y-o.y)/(s.y-o.y)+o.x&&(a=!a)}return a}function sd(i,r){let n=!1;for(let o=0,s=i.length-1;or.y!=l.y>r.y&&r.x<(l.x-a.x)*(r.y-a.y)/(l.y-a.y)+a.x&&(n=!n)}return n}function sp(i,r,n,o,s){for(const a of i)if(r<=a.x&&n<=a.y&&o>=a.x&&s>=a.y)return!0;const c=[new l(r,n),new l(r,s),new l(o,s),new l(o,n)];if(i.length>2){for(const h of c)if(sd(i,h))return!0}for(let u=0;us.x&&r.x>s.x||i.ys.y&&r.y>s.y)return!1;const a=el(i,r,n[0]);return a!==el(i,r,n[1])||a!==el(i,r,n[2])||a!==el(i,r,n[3])}(i[u],i[u+1],c))return!0;return!1}function sf(i,r,n){const o=r.paint.get(i).value;return"constant"===o.kind?o.value:n.programConfigurations.get(r.id).getMaxValue(i)}function sm(i){return Math.sqrt(i[0]*i[0]+i[1]*i[1])}function s_(i,r,n,o,s){if(!r[0]&&!r[1])return i;const a=l.convert(r)._mult(s);"viewport"===n&&a._rotate(-o);const c=[];for(let h=0;h{var a,l;const c=D([],n,i),h=1/c[3]/r*s;return a=c,l=[h,h,o?1/c[3]:h,h],a[0]=c[0]*l[0],a[1]=c[1]*l[1],a[2]=c[2]*l[2],a[3]=c[3]*l[3],a}),l=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(i=>{const r=A([],z([],E([],a[i[0]],a[i[1]]),E([],a[i[2]],a[i[1]]))),n=-C(r,a[i[1]]);return r.concat(n)});return new sv(a,l)}}class sb{constructor(i,r){this.min=i,this.max=r,this.center=I([],T([],this.min,this.max),.5)}quadrant(i){const r=[i%2==0,i<2],n=v(this.min),o=v(this.max);for(let s=0;s=0;if(0===a)return 0;a!==r.length&&(n=!1)}if(n)return 2;for(let c=0;c<3;c++){let h=Number.MAX_VALUE,u=-Number.MAX_VALUE;for(let d=0;dthis.max[c]-this.min[c])return 0}return 1}}function sw(i,r,n,o,s,a,c,h,u){if(a&&i.queryGeometry.isAboveHorizon)return!1;for(const d of(a&&(u*=i.pixelToTileUnitsFactor),r))for(const p of d){var f;const m=p.add(h),_=s&&n.elevation?n.elevation.exaggeration()*s.getElevationAt(m.x,m.y,!0):0,g=a?m:function(i,r,n){const o=D([],[i.x,i.y,r,1],n);return new l(o[0]/o[3],o[1]/o[3])}(m,_,o),y=a?i.tilespaceRays.map(i=>(function(i,r){const n=x();return sT[2]=r,i.intersectsPlane(sT,sE,n),new l(n[0],n[1])})(i,_)):i.queryGeometry.screenGeometry,v=D([],[p.x,p.y,_,1],o);if(!c&&a?u*=v[3]/n.cameraToCenterDistance:c&&!a&&(u*=n.cameraToCenterDistance/v[3]),f=u,sd(y,g)||sc(g,y,f))return!0}return!1}const sT=w(0,0,0),sE=w(0,0,1);class sS extends so{}function sI(i,{width:r,height:n},o,s){if(s){if(s instanceof Uint8ClampedArray)s=new Uint8Array(s.buffer);else if(s.length!==r*n*o)throw RangeError("mismatched image size")}else s=new Uint8Array(r*n*o);return i.width=r,i.height=n,i.data=s,i}function sM(i,{width:r,height:n},o){if(r===i.width&&n===i.height)return;const s=sI({},{width:r,height:n},o);sA(i,s,{x:0,y:0},{x:0,y:0},{width:Math.min(i.width,r),height:Math.min(i.height,n)},o),i.width=r,i.height=n,i.data=s.data}function sA(i,r,n,o,s,a){if(0===s.width||0===s.height)return r;if(s.width>i.width||s.height>i.height||n.x>i.width-s.width||n.y>i.height-s.height)throw RangeError("out of range source coordinates for image copy");if(s.width>r.width||s.height>r.height||o.x>r.width-s.width||o.y>r.height-s.height)throw RangeError("out of range destination coordinates for image copy");const l=i.data,c=r.data;for(let h=0;h{r[i.evaluationKey]=a;const l=i.expression.evaluate(r);s.data[n+o+0]=Math.floor(255*l.r/l.a),s.data[n+o+1]=Math.floor(255*l.g/l.a),s.data[n+o+2]=Math.floor(255*l.b/l.a),s.data[n+o+3]=Math.floor(255*l.a)};if(i.clips)for(let l=0,c=0;l=a.next.y&&a.next.y!==a.y){var u=a.x+(c-a.y)*(a.next.x-a.x)/(a.next.y-a.y);if(u<=l&&u>h){if(h=u,u===l){if(c===a.y)return a;if(c===a.next.y)return a.next}s=a.x=a.x&&a.x>=f&&l!==a.x&&sj(cs.x||a.x===s.x&&(n=s,o=a,0>sG(n.prev,n,o.prev)&&0>sG(o.next,n,n.next))))&&(s=a,_=d)),a=a.next;while(a!==p)return s}(i,r);if(!n)return r;var o=sH(n,i),s=sU(n,n.next);return sU(o,o.next),r===n?s:r}(c[s],n),n.next);return n}(i,r,f,n)),i.length>80*n){o=a=i[0],s=l=i[1];for(var _=n;_a&&(a=c),h>l&&(l=h);u=0!==(u=Math.max(a-o,l-s))?1/u:0}return function i(r,n,o,s,a,l,c){if(r){!c&&l&&function(i,r,n,o){var s=i;do null===s.z&&(s.z=sN(s.x,s.y,r,n,o)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==i)s.prevZ.nextZ=null,s.prevZ=null,function(i){var r,n,o,s,a,l,c,h,u=1;do{for(n=i,i=null,a=null,l=0;n;){for(l++,o=n,c=0,r=0;r0||h>0&&o;)0!==c&&(0===h||!o||n.z<=o.z)?(s=n,n=n.nextZ,c--):(s=o,o=o.nextZ,h--),a?a.nextZ=s:i=s,s.prevZ=a,a=s;n=o}a.nextZ=null,u*=2}while(l>1)}(s)}(r,s,a,l);for(var h,u,d=r;r.prev!==r.next;)if(h=r.prev,u=r.next,l?function(i,r,n,o){var s=i.prev,a=i.next;if(sG(s,i,a)>=0)return!1;for(var l=s.x>i.x?s.x>a.x?s.x:a.x:i.x>a.x?i.x:a.x,c=s.y>i.y?s.y>a.y?s.y:a.y:i.y>a.y?i.y:a.y,h=sN(s.x=h&&p&&p.z<=u;){if(d!==i.prev&&d!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sG(d.prev,d,d.next)>=0||(d=d.prevZ,p!==i.prev&&p!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sG(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;d&&d.z>=h;){if(d!==i.prev&&d!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sG(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;p&&p.z<=u;){if(p!==i.prev&&p!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sG(p.prev,p,p.next)>=0)return!1;p=p.nextZ}return!0}(r,s,a,l):function(i){var r=i.prev,n=i.next;if(sG(r,i,n)>=0)return!1;for(var o=i.next.next;o!==i.prev;){if(sj(r.x,r.y,i.x,i.y,n.x,n.y,o.x,o.y)&&sG(o.prev,o,o.next)>=0)return!1;o=o.next}return!0}(r))n.push(h.i/o),n.push(r.i/o),n.push(u.i/o),sY(r),r=u.next,d=u.next;else if((r=u)===d){c?1===c?i(r=function(i,r,n){var o=i;do{var s=o.prev,a=o.next.next;!sZ(s,a)&&s$(s,o,o.next,a)&&sW(s,a)&&sW(a,s)&&(r.push(s.i/n),r.push(o.i/n),r.push(a.i/n),sY(o),sY(o.next),o=i=a),o=o.next}while(o!==i)return sU(o)}(sU(r),n,o),n,o,s,a,l,2):2===c&&function(r,n,o,s,a,l){var c=r;do{for(var h,u,d=c.next.next;d!==c.prev;){if(c.i!==d.i&&(h=c,u=d,h.next.i!==u.i&&h.prev.i!==u.i&&!function(i,r){var n=i;do{if(n.i!==i.i&&n.next.i!==i.i&&n.i!==r.i&&n.next.i!==r.i&&s$(n,n.next,i,r))return!0;n=n.next}while(n!==i)return!1}(h,u)&&(sW(h,u)&&sW(u,h)&&function(i,r){var n=i,o=!1,s=(i.x+r.x)/2,a=(i.y+r.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&s<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(o=!o),n=n.next;while(n!==i)return o}(h,u)&&(sG(h.prev,h,u.prev)||sG(h,u.prev,u))||sZ(h,u)&&sG(h.prev,h,h.next)>0&&sG(u.prev,u,u.next)>0))){var p=sH(c,d);return c=sU(c,c.next),p=sU(p,p.next),i(c,n,o,s,a,l),void i(p,n,o,s,a,l)}d=d.next}c=c.next}while(c!==r)}(r,n,o,s,a,l):i(sU(r),n,o,s,a,l,1);break}}}(f,m,n,o,s,u),m}function sO(i,r,n,o,s){var a,l;if(s===sQ(i,r,n,o)>0)for(a=r;a=r;a-=o)l=sK(a,i[a],i[a+1],l);return l&&sZ(l,l.next)&&(sY(l),l=l.next),l}function sU(i,r){if(!i)return i;r||(r=i);var n,o=i;do if(n=!1,o.steiner||!sZ(o,o.next)&&0!==sG(o.prev,o,o.next))o=o.next;else{if(sY(o),(o=r=o.prev)===o.next)break;n=!0}while(n||o!==r)return r}function sV(i,r){return i.x-r.x}function sN(i,r,n,o,s){return(i=1431655765&((i=858993459&((i=252645135&((i=16711935&((i=32767*(i-n)*s)|i<<8))|i<<4))|i<<2))|i<<1))|(r=1431655765&((r=858993459&((r=252645135&((r=16711935&((r=32767*(r-o)*s)|r<<8))|r<<4))|r<<2))|r<<1))<<1}function sj(i,r,n,o,s,a,l,c){return(s-l)*(r-c)-(i-l)*(a-c)>=0&&(i-l)*(o-c)-(n-l)*(r-c)>=0&&(n-l)*(a-c)-(s-l)*(o-c)>=0}function sG(i,r,n){return(r.y-i.y)*(n.x-r.x)-(r.x-i.x)*(n.y-r.y)}function sZ(i,r){return i.x===r.x&&i.y===r.y}function s$(i,r,n,o){var s=sX(sG(i,r,n)),a=sX(sG(i,r,o)),l=sX(sG(n,o,i)),c=sX(sG(n,o,r));return s!==a&&l!==c||!(0!==s||!sq(i,n,r))||!(0!==a||!sq(i,o,r))||!(0!==l||!sq(n,i,o))||!(0!==c||!sq(n,r,o))}function sq(i,r,n){return r.x<=Math.max(i.x,n.x)&&r.x>=Math.min(i.x,n.x)&&r.y<=Math.max(i.y,n.y)&&r.y>=Math.min(i.y,n.y)}function sX(i){return i>0?1:i<0?-1:0}function sW(i,r){return 0>sG(i.prev,i,i.next)?sG(i,r,i.next)>=0&&sG(i,i.prev,r)>=0:0>sG(i,r,i.prev)||0>sG(i,i.next,r)}function sH(i,r){var n=new sJ(i.i,i.x,i.y),o=new sJ(r.i,r.x,r.y),s=i.next,a=r.prev;return i.next=r,r.prev=i,n.next=s,s.prev=n,o.next=n,n.prev=o,a.next=o,o.prev=a,o}function sK(i,r,n,o){var s=new sJ(i,r,n);return o?(s.next=o.next,s.prev=o,o.next.prev=s,o.next=s):(s.prev=s,s.next=s),s}function sY(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function sJ(i,r,n){this.i=i,this.x=r,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function sQ(i,r,n,o){for(var s=0,a=r,l=n-o;ar?1:0}function s2(i,r){let n,o;const s=i.length;if(s<=1)return[i];const a=[];for(let l=0;l1)for(let h=0;ho;){if(s-o>600){var l=s-o+1,c=n-o+1,h=Math.log(l),u=.5*Math.exp(2*h/3),d=.5*Math.sqrt(h*u*(l-u)/l)*(c-l/2<0?-1:1);i(r,n,Math.max(o,Math.floor(n-c*u/l+d)),Math.min(s,Math.floor(n+(l-c)*u/l+d)),a)}var p=r[n],f=o,m=s;for(s0(r,o,n),a(r[s],p)>0&&s0(r,o,s);fa(r[f],p);)f++;for(;a(r[m],p)>0;)m--}0===a(r[o],p)?s0(r,o,m):s0(r,++m,s),m<=n&&(o=m+1),n<=m&&(s=m-1)}}(u=a[h],r,1,a[h].length-1||u.length-1,s3||s1),a[h]=a[h].slice(0,r))}return a}function s3(i,r){return r.area-i.area}function s5(i,r,n){const o=n.patternDependencies;let s=!1;for(const a of r){const l=a.paint.get(`${i}-pattern`);l.isConstant()||(s=!0);const c=l.constantOr(null);c&&(s=!0,o[c.to]=!0,o[c.from]=!0)}return s}function s4(i,r,n,o,s){const a=s.patternDependencies;for(const l of r){const c=l.paint.get(`${i}-pattern`).value;if("constant"!==c.kind){let h=c.evaluate({zoom:o-1},n,{},s.availableImages),u=c.evaluate({zoom:o},n,{},s.availableImages),d=c.evaluate({zoom:o+1},n,{},s.availableImages);h=h&&h.name?h.name:h,u=u&&u.name?u.name:u,d=d&&d.name?d.name:d,a[h]=!0,a[u]=!0,a[d]=!0,n.patterns[l.id]={min:h,mid:u,max:d}}}return n}sF.deviation=function(i,r,n,o){var s=r&&r.length,a=Math.abs(sQ(i,0,s?r[0]*n:i.length,n));if(s)for(var l=0,c=r.length;l0&&n.holes.push(o+=i[s-1].length)}return n},sR.default=sF;class s6{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new nJ,this.indexArray=new oe,this.indexArray2=new oa,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.segments2=new o0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=s5("fill",this.layers,r);const s=this.layers[0].layout.get("fill-sort-key"),a=[];for(const{feature:l,id:c,index:h,sourceLayerIndex:u}of i){const d=this.layers[0]._featureFilter.needGeometry,p=sr(l,d);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),p,n))continue;const f=s?s.evaluate(p,{},n,r.availableImages):void 0,m={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:d?p.geometry:si(l,n,o),patterns:{},sortKey:f};a.push(m)}for(const _ of(s&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:g,index:y,sourceLayerIndex:x}=_;if(this.hasPattern){const v=s4("fill",this.layers,_,this.zoom,r);this.patternFeatures.push(v)}else this.addFeature(_,g,y,n,{},r.availableImages);r.featureIndex.insert(i[y].feature,g,y,x,this.index)}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const s of this.patternFeatures)this.addFeature(s,s.geometry,s.index,r,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,sB),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.indexBuffer2=i.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(i),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(i,r,n,o,s,a=[]){for(const l of s2(r,500)){let c=0;for(const h of l)c+=h.length;const u=this.segments.prepareSegment(c,this.layoutVertexArray,this.indexArray),d=u.vertexLength,p=[],f=[];for(const m of l){if(0===m.length)continue;m!==l[0]&&f.push(p.length/2);const _=this.segments2.prepareSegment(m.length,this.layoutVertexArray,this.indexArray2),g=_.vertexLength;this.layoutVertexArray.emplaceBack(m[0].x,m[0].y),this.indexArray2.emplaceBack(g+m.length-1,g),p.push(m[0].x),p.push(m[0].y);for(let y=1;y>3;r=1===o?i.readString():2===o?i.readFloat():3===o?i.readDouble():4===o?i.readVarint64():5===o?i.readVarint():6===o?i.readSVarint():7===o?i.readBoolean():null}return r}(n))}function as(i,r,n){if(3===i){var o=new an(n,n.readVarint()+n.pos);o.length&&(r[o.name]=o)}}ai.types=["Unknown","Point","LineString","Polygon"],ai.prototype.loadGeometry=function(){var i=this._pbf;i.pos=this._geometry;for(var r,n=i.readVarint()+i.pos,o=1,s=0,a=0,c=0,h=[];i.pos>3}if(s--,1===o||2===o)a+=i.readSVarint(),c+=i.readSVarint(),1===o&&(r&&h.push(r),r=[]),r.push(new l(a,c));else{if(7!==o)throw Error("unknown command "+o);r&&r.push(r[0].clone())}}return r&&h.push(r),h},ai.prototype.bbox=function(){var i=this._pbf;i.pos=this._geometry;for(var r=i.readVarint()+i.pos,n=1,o=0,s=0,a=0,l=1/0,c=-1/0,h=1/0,u=-1/0;i.pos>3}if(o--,1===n||2===n)(s+=i.readSVarint())c&&(c=s),(a+=i.readSVarint())u&&(u=a);else if(7!==n)throw Error("unknown command "+n)}return[l,h,c,u]},ai.prototype.toGeoJSON=function(i,r,n){var o,s,a=this.extent*Math.pow(2,n),l=this.extent*i,c=this.extent*r,h=this.loadGeometry(),u=ai.types[this.type];function d(i){for(var r=0;r=this._features.length)throw Error("feature index out of bounds");this._pbf.pos=this._features[i];var r=this._pbf.readVarint()+this._pbf.pos;return new ai(this._pbf,r,this.extent,this._keys,this._values)};var aa={VectorTile:function(i,r){this.layers=i.readFields(as,{},r)},VectorTileFeature:ai,VectorTileLayer:an};const al=aa.VectorTileFeature.types;function ac(i,r,n,o,s,a,l,c){i.emplaceBack((r<<1)+l,(n<<1)+a,(Math.floor(8192*o)<<1)+s,Math.round(c))}class ah{constructor(){this.acc=new l(0,0),this.polyCount=[]}startRing(i){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new l(i.x,i.y),this.max=new l(i.x,i.y))}append(i,r){this.currentPolyCount.edges++,this.acc._add(i);let n=!!this.borders;const o=this.min,s=this.max;i.xs.x&&(s.x=i.x,n=!0),i.ys.y&&(s.y=i.y,n=!0),((0===i.x||8192===i.x)&&i.x===r.x)!=((0===i.y||8192===i.y)&&i.y===r.y)&&this.processBorderOverlap(i,r),n&&this.checkBorderIntersection(i,r)}checkBorderIntersection(i,r){r.x<0!=i.x<0&&this.addBorderIntersection(0,io(r.y,i.y,(0-r.x)/(i.x-r.x))),r.x>8192!=i.x>8192&&this.addBorderIntersection(1,io(r.y,i.y,(8192-r.x)/(i.x-r.x))),r.y<0!=i.y<0&&this.addBorderIntersection(2,io(r.x,i.x,(0-r.y)/(i.y-r.y))),r.y>8192!=i.y>8192&&this.addBorderIntersection(3,io(r.x,i.x,(8192-r.y)/(i.y-r.y)))}addBorderIntersection(i,r){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 n=this.borders[i];rn[1]&&(n[1]=r)}processBorderOverlap(i,r){if(i.x===r.x){if(i.y===r.y)return;const n=0===i.x?0:1;this.addBorderIntersection(n,r.y),this.addBorderIntersection(n,i.y)}else{const o=0===i.y?2:3;this.addBorderIntersection(o,r.x),this.addBorderIntersection(o,i.x)}}centroid(){const i=this.polyCount.reduce((i,r)=>i+r.edges,0);return 0!==i?this.acc.div(i)._round():new l(0,0)}span(){return new l(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce((i,r)=>i+ +(r[0]!==Number.MAX_VALUE),0)}}class au{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.layoutVertexArray=new nQ,this.centroidVertexArray=new ow,this.indexArray=new oe,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.enableTerrain=i.enableTerrain}populate(i,r,n,o){for(const{feature:s,id:a,index:l,sourceLayerIndex:c}of(this.features=[],this.hasPattern=s5("fill-extrusion",this.layers,r),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDone=[!1,!1,!1,!1],this.tileToMeter=function(i){const r=Math.exp(Math.PI*(1-i.y/(1<i.x<=0)||l.every(i=>i.x>=8192)||l.every(i=>i.y<=0)||l.every(i=>i.y>=8192))continue;for(let m=0;m=1){const v=_[y-1];if(c=x,h=v,(c.x!==h.x||!(c.x<0)&&!(c.x>8192))&&(c.y!==h.y||!(c.y<0)&&!(c.y>8192))){u&&u.append(x,v),f.vertexLength+4>o0.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const b=x.sub(v)._perp(),w=b.x/(Math.abs(b.x)+Math.abs(b.y)),T=b.y>0?1:0,E=v.dist(x);g+E>32768&&(g=0),ac(this.layoutVertexArray,x.x,x.y,w,T,0,0,g),ac(this.layoutVertexArray,x.x,x.y,w,T,0,1,g),g+=E,ac(this.layoutVertexArray,v.x,v.y,w,T,0,0,g),ac(this.layoutVertexArray,v.x,v.y,w,T,0,1,g);const S=f.vertexLength;this.indexArray.emplaceBack(S,S+2,S+1),this.indexArray.emplaceBack(S+1,S+2,S+3),f.vertexLength+=4,f.primitiveLength+=2}}}}if(f.vertexLength+p>o0.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(p,this.layoutVertexArray,this.indexArray)),"Polygon"!==al[i.type])continue;const I=[],M=[],A=f.vertexLength;for(let C=0;C0){if(u.borders){u.vertexArrayOffset=this.centroidVertexArray.length;const B=u.borders,R=this.featuresOnBorder.push(u)-1;for(let F=0;F<4;F++)B[F][0]!==Number.MAX_VALUE&&this.borders[F].push(R)}this.encodeCentroid(u.borders?void 0:u.centroid(),u)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,s,a,o)}sortBorders(){for(let i=0;i<4;i++)this.borders[i].sort((r,n)=>this.featuresOnBorder[r].borders[i][0]-this.featuresOnBorder[n].borders[i][0])}encodeCentroid(i,r,n=!0){let o,s;if(i){if(0!==i.y){const a=r.span()._mult(this.tileToMeter);o=(Math.max(i.x,1)<<3)+Math.min(7,Math.round(a.x/10)),s=(Math.max(i.y,1)<<3)+Math.min(7,Math.round(a.y/10))}else o=Math.ceil(7*(i.x+450)),s=0}else o=0,s=+n;let l=n?this.centroidVertexArray.length:r.vertexArrayOffset;for(const c of r.polyCount){n&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*c.edges+c.top);for(let h=0;h<2*c.edges;h++)this.centroidVertexArray.emplace(l++,0,s),this.centroidVertexArray.emplace(l++,o,s);for(let u=0;ui.id),this.index=i.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(i=>{this.gradients[i.id]={}}),this.layoutVertexArray=new n0,this.layoutVertexArray2=new n1,this.indexArray=new oe,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=s5("line",this.layers,r);const s=this.layers[0].layout.get("line-sort-key"),a=[];for(const{feature:l,id:c,index:h,sourceLayerIndex:u}of i){const d=this.layers[0]._featureFilter.needGeometry,p=sr(l,d);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),p,n))continue;const f=s?s.evaluate(p,{},n):void 0,m={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:d?p.geometry:si(l,n,o),patterns:{},sortKey:f};a.push(m)}s&&a.sort((i,r)=>i.sortKey-r.sortKey);const{lineAtlas:_,featureIndex:g}=r,y=this.addConstantDashes(_);for(const x of a){const{geometry:v,index:b,sourceLayerIndex:w}=x;if(y&&this.addFeatureDashes(x,_),this.hasPattern){const T=s4("line",this.layers,x,this.zoom,r);this.patternFeatures.push(T)}else this.addFeature(x,v,b,n,_.positions,r.availableImages);g.insert(i[b].feature,v,b,w,this.index)}}addConstantDashes(i){let r=!1;for(const n of this.layers){const o=n.paint.get("line-dasharray").value,s=n.layout.get("line-cap").value;if("constant"!==o.kind||"constant"!==s.kind)r=!0;else{const a=s.value,l=o.value;if(!l)continue;i.addDash(l.from,a),i.addDash(l.to,a),l.other&&i.addDash(l.other,a)}}return r}addFeatureDashes(i,r){const n=this.zoom;for(const o of this.layers){let s,a,l,c,h,u;const d=o.paint.get("line-dasharray").value,p=o.layout.get("line-cap").value;if("constant"===d.kind&&"constant"===p.kind)continue;if("constant"===d.kind){const f=d.value;if(!f)continue;s=f.other||f.to,a=f.to,l=f.from}else s=d.evaluate({zoom:n-1},i),a=d.evaluate({zoom:n},i),l=d.evaluate({zoom:n+1},i);"constant"===p.kind?c=h=u=p.value:(c=p.evaluate({zoom:n-1},i),h=p.evaluate({zoom:n},i),u=p.evaluate({zoom:n+1},i)),r.addDash(s,c),r.addDash(a,h),r.addDash(l,u);const m=r.getKey(s,c),_=r.getKey(a,h),g=r.getKey(l,u);i.patterns[o.id]={min:m,mid:_,max:g}}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const s of this.patternFeatures)this.addFeature(s,s.geometry,s.index,r,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=i.createVertexBuffer(this.layoutVertexArray2,ax)),this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,ag),this.indexBuffer=i.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(i){if(i.properties&&i.properties.hasOwnProperty("mapbox_clip_start")&&i.properties.hasOwnProperty("mapbox_clip_end"))return{start:+i.properties.mapbox_clip_start,end:+i.properties.mapbox_clip_end}}addFeature(i,r,n,o,s,a){const l=this.layers[0].layout,c=l.get("line-join").evaluate(i,{}),h=l.get("line-cap").evaluate(i,{}),u=l.get("line-miter-limit"),d=l.get("line-round-limit");for(const p of(this.lineClips=this.lineFeatureClips(i),r))this.addLine(p,i,c,h,u,d);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,s,a,o)}addLine(i,r,n,o,s,a){let l,c,h,u,d;if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let p=0;p=2&&i[m-1].equals(i[m-2]);)m--;let _=0;for(;_0;if(S&&x>_){const M=l.dist(c);if(M>2*g){const A=l.sub(l.sub(c)._mult(g/M)._round());this.updateDistance(c,A),this.addCurrentVertex(A,u,0,0,y),c=A}}const C=c&&h;let z=C?n:f?"butt":o;if(C&&"round"===z&&(Ts&&(z="bevel"),"bevel"===z&&(T>2&&(z="flipbevel"),T100)v=d.mult(-1);else{const k=T*u.add(d).mag()/u.sub(d).mag();v._perp()._mult(k*(I?-1:1))}this.addCurrentVertex(l,v,0,0,y),this.addCurrentVertex(l,v.mult(-1),0,0,y)}else if("bevel"===z||"fakeround"===z){const P=-Math.sqrt(T*T-1),D=I?P:0,L=I?0:P;if(c&&this.addCurrentVertex(l,u,D,L,y),"fakeround"===z){const B=Math.round(180*E/Math.PI/20);for(let R=1;R2*g){const j=l.add(h.sub(l)._mult(g/N)._round());this.updateDistance(l,j),this.addCurrentVertex(j,d,0,0,y),l=j}}}}addCurrentVertex(i,r,n,o,s,a=!1){const l=r.y*o-r.x,c=-r.y-r.x*o;this.addHalfVertex(i,r.x+r.y*n,r.y-r.x*n,a,!1,n,s),this.addHalfVertex(i,l,c,a,!0,-o,s)}addHalfVertex({x:i,y:r},n,o,s,a,l,c){this.layoutVertexArray.emplaceBack((i<<1)+(s?1:0),(r<<1)+(a?1:0),Math.round(63*n)+128,Math.round(63*o)+128,1+(0===l?0:l<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineSoFar);const h=c.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,h),c.primitiveLength++),a?this.e2=h:this.e1=h}updateScaledDistance(){if(this.lineClips){const i=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=i*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(i,r){this.distance+=i.dist(r),this.updateScaledDistance()}}r$("LineBucket",aw,{omit:["layers","patternFeatures"]});const aT=new n$({"line-cap":new nN(tr.layout_line["line-cap"]),"line-join":new nN(tr.layout_line["line-join"]),"line-miter-limit":new nV(tr.layout_line["line-miter-limit"]),"line-round-limit":new nV(tr.layout_line["line-round-limit"]),"line-sort-key":new nN(tr.layout_line["line-sort-key"])});var aE={paint:new n$({"line-opacity":new nN(tr.paint_line["line-opacity"]),"line-color":new nN(tr.paint_line["line-color"]),"line-translate":new nV(tr.paint_line["line-translate"]),"line-translate-anchor":new nV(tr.paint_line["line-translate-anchor"]),"line-width":new nN(tr.paint_line["line-width"]),"line-gap-width":new nN(tr.paint_line["line-gap-width"]),"line-offset":new nN(tr.paint_line["line-offset"]),"line-blur":new nN(tr.paint_line["line-blur"]),"line-dasharray":new nj(tr.paint_line["line-dasharray"]),"line-pattern":new nj(tr.paint_line["line-pattern"]),"line-gradient":new nZ(tr.paint_line["line-gradient"])}),layout:aT};const aS=new class extends nN{possiblyEvaluate(i,r){return r=new nk(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),super.possiblyEvaluate(i,r)}evaluate(i,r,n,o){return r=H({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(i,r,n,o)}}(aE.paint.properties["line-width"].specification);function aI(i,r){return r>0?r+2*i:i}aS.useIntegerZoom=!0;const aM=nK([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"},{name:"a_z_tile_anchor",components:4,type:"Int16"}],4),aA=nK([{name:"a_projected_pos",components:3,type:"Float32"}],4);nK([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const aC=nK([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),az=nK([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);nK([{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 ak=nK([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),aP=nK([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function aD(i,r){const{expression:n}=r;if("constant"===n.kind)return{kind:"constant",layoutSize:n.evaluate(new nk(i+1))};if("source"===n.kind)return{kind:"source"};{const{zoomStops:o,interpolationType:s}=n;let a=0;for(;a":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","\xa2":"¢","\xa3":"£","\xa5":"¥","\xa6":"¦","\xac":"¬","\xaf":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var aO=function(i,r,n,o,s){var a,l,c=8*s-o-1,h=(1<>1,d=-7,p=n?s-1:0,f=n?-1:1,m=i[r+p];for(p+=f,a=m&(1<<-d)-1,m>>=-d,d+=c;d>0;a=256*a+i[r+p],p+=f,d-=8);for(l=a&(1<<-d)-1,a>>=-d,d+=o;d>0;l=256*l+i[r+p],p+=f,d-=8);if(0===a)a=1-u;else{if(a===h)return l?NaN:1/0*(m?-1:1);l+=Math.pow(2,o),a-=u}return(m?-1:1)*l*Math.pow(2,a-o)},aU=function(i,r,n,o,s,a){var l,c,h,u=8*a-s-1,d=(1<>1,f=23===s?5960464477539062e-23:0,m=o?0:a-1,_=o?1:-1,g=r<0||0===r&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(c=isNaN(r)?1:0,l=d):(l=Math.floor(Math.log(r)/Math.LN2),r*(h=Math.pow(2,-l))<1&&(l--,h*=2),(r+=l+p>=1?f/h:f*Math.pow(2,1-p))*h>=2&&(l++,h/=2),l+p>=d?(c=0,l=d):l+p>=1?(c=(r*h-1)*Math.pow(2,s),l+=p):(c=r*Math.pow(2,p-1)*Math.pow(2,s),l=0));s>=8;i[n+m]=255&c,m+=_,c/=256,s-=8);for(l=l<0;i[n+m]=255&l,m+=_,l/=256,u-=8);i[n+m-_]|=128*g};function aV(i){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(i)?i:new Uint8Array(i||0),this.pos=0,this.type=0,this.length=this.buf.length}aV.Varint=0,aV.Fixed64=1,aV.Bytes=2,aV.Fixed32=5;var aN="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function aj(i){return i.type===aV.Bytes?i.readVarint()+i.pos:i.pos+1}function aG(i,r,n){var o=r<=16383?1:r<=2097151?2:r<=268435455?3:Math.floor(Math.log(r)/(7*Math.LN2));n.realloc(o);for(var s=n.pos-1;s>=i;s--)n.buf[s+o]=n.buf[s]}function aZ(i,r){for(var n=0;n>>8,i[n+2]=r>>>16,i[n+3]=r>>>24}function a1(i,r){return(i[r]|i[r+1]<<8|i[r+2]<<16)+(i[r+3]<<24)}function a2(i,r,n){r.glyphs=[],1===i&&n.readMessage(a3,r)}function a3(i,r,n){if(3===i){const{id:o,bitmap:s,width:a,height:l,left:c,top:h,advance:u}=n.readMessage(a5,{});r.glyphs.push({id:o,bitmap:new sC({width:a+6,height:l+6},s),metrics:{width:a,height:l,left:c,top:h,advance:u}})}else 4===i?r.ascender=n.readSVarint():5===i&&(r.descender=n.readSVarint())}function a5(i,r,n){1===i?r.id=n.readVarint():2===i?r.bitmap=n.readBytes():3===i?r.width=n.readVarint():4===i?r.height=n.readVarint():5===i?r.left=n.readSVarint():6===i?r.top=n.readSVarint():7===i&&(r.advance=n.readVarint())}function a4(i){let r=0,n=0;for(const o of i)r+=o.w*o.h,n=Math.max(n,o.w);i.sort((i,r)=>r.h-i.h);const s=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(r/.95)),n),h:1/0}];let a=0,l=0;for(const c of i)for(let h=s.length-1;h>=0;h--){const u=s[h];if(!(c.w>u.w||c.h>u.h)){if(c.x=u.x,c.y=u.y,l=Math.max(l,c.y+c.h),a=Math.max(a,c.x+c.w),c.w===u.w&&c.h===u.h){const d=s.pop();h>3,a=this.pos;this.type=7&o,i(s,r,this),this.pos===a&&this.skip(o)}return r},readMessage:function(i,r){return this.readFields(i,r,this.readVarint()+this.pos)},readFixed32:function(){var i=aQ(this.buf,this.pos);return this.pos+=4,i},readSFixed32:function(){var i=a1(this.buf,this.pos);return this.pos+=4,i},readFixed64:function(){var i=aQ(this.buf,this.pos)+4294967296*aQ(this.buf,this.pos+4);return this.pos+=8,i},readSFixed64:function(){var i=aQ(this.buf,this.pos)+4294967296*a1(this.buf,this.pos+4);return this.pos+=8,i},readFloat:function(){var i=aO(this.buf,this.pos,!0,23,4);return this.pos+=4,i},readDouble:function(){var i=aO(this.buf,this.pos,!0,52,8);return this.pos+=8,i},readVarint:function(i){var r,n,o=this.buf;return r=127&(n=o[this.pos++]),n<128?r:(r|=(127&(n=o[this.pos++]))<<7,n<128?r:(r|=(127&(n=o[this.pos++]))<<14,n<128?r:(r|=(127&(n=o[this.pos++]))<<21,n<128?r:function(i,r,n){var o,s,a,l=n.buf;if(s=(112&(a=l[n.pos++]))>>4,a<128||(s|=(127&(a=l[n.pos++]))<<3,a<128)||(s|=(127&(a=l[n.pos++]))<<10,a<128)||(s|=(127&(a=l[n.pos++]))<<17,a<128)||(s|=(127&(a=l[n.pos++]))<<24,a<128)||(s|=(1&(a=l[n.pos++]))<<31,a<128))return o=s,r?4294967296*o+(i>>>0):4294967296*(o>>>0)+(i>>>0);throw Error("Expected varint not more than 10 bytes")}(r|=(15&(n=o[this.pos]))<<28,i,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var i=this.readVarint();return i%2==1?-((i+1)/2):i/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var i,r=this.readVarint()+this.pos,n=this.pos;return this.pos=r,r-n>=12&&aN?(i=this.buf,aN.decode(i.subarray(n,r))):function(i,r,n){for(var o="",s=r;s239?4:h>223?3:h>191?2:1;if(s+d>n)break;1===d?h<128&&(u=h):2===d?128==(192&(a=i[s+1]))&&(u=(31&h)<<6|63&a)<=127&&(u=null):3===d?(l=i[s+2],128==(192&(a=i[s+1]))&&128==(192&l)&&((u=(15&h)<<12|(63&a)<<6|63&l)<=2047||u>=55296&&u<=57343)&&(u=null)):4===d&&(l=i[s+2],c=i[s+3],128==(192&(a=i[s+1]))&&128==(192&l)&&128==(192&c)&&((u=(15&h)<<18|(63&a)<<12|(63&l)<<6|63&c)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,d=1):u>65535&&(u-=65536,o+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),o+=String.fromCharCode(u),s+=d}return o}(this.buf,n,r)},readBytes:function(){var i=this.readVarint()+this.pos,r=this.buf.subarray(this.pos,i);return this.pos=i,r},readPackedVarint:function(i,r){if(this.type!==aV.Bytes)return i.push(this.readVarint(r));var n=aj(this);for(i=i||[];this.pos127;);else if(r===aV.Bytes)this.pos=this.readVarint()+this.pos;else if(r===aV.Fixed32)this.pos+=4;else{if(r!==aV.Fixed64)throw Error("Unimplemented type: "+r);this.pos+=8}},writeTag:function(i,r){this.writeVarint(i<<3|r)},realloc:function(i){for(var r=this.length||16;r268435455||i<0?function(i,r){var n,o,s,a,l,c,h;if(i>=0?(n=i%4294967296|0,o=i/4294967296|0):(o=~(-i/4294967296),4294967295^(n=~(-i%4294967296))?n=n+1|0:(n=0,o=o+1|0)),i>=18446744073709552e3||i<-18446744073709552e3)throw Error("Given varint doesn't fit into 10 bytes");r.realloc(10),s=n,(a=r).buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,a.buf[a.pos]=127&(s>>>=7),l=o,c=r,h=(7&l)<<4,c.buf[c.pos++]|=h|((l>>>=3)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l)))))}(i,this):(this.realloc(4),this.buf[this.pos++]=127&i|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=i>>>7&127))))},writeSVarint:function(i){this.writeVarint(i<0?-(2*i)-1:2*i)},writeBoolean:function(i){this.writeVarint(Boolean(i))},writeString:function(i){i=String(i),this.realloc(4*i.length),this.pos++;var r=this.pos;this.pos=function(i,r,n){for(var o,s,a=0;a55295&&o<57344){if(!s){o>56319||a+1===r.length?(i[n++]=239,i[n++]=191,i[n++]=189):s=o;continue}if(o<56320){i[n++]=239,i[n++]=191,i[n++]=189,s=o;continue}o=s-55296<<10|o-56320|65536,s=null}else s&&(i[n++]=239,i[n++]=191,i[n++]=189,s=null);o<128?i[n++]=o:(o<2048?i[n++]=o>>6|192:(o<65536?i[n++]=o>>12|224:(i[n++]=o>>18|240,i[n++]=o>>12&63|128),i[n++]=o>>6&63|128),i[n++]=63&o|128)}return n}(this.buf,i,this.pos);var n=this.pos-r;n>=128&&aG(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeFloat:function(i){this.realloc(4),aU(this.buf,i,this.pos,!0,23,4),this.pos+=4},writeDouble:function(i){this.realloc(8),aU(this.buf,i,this.pos,!0,52,8),this.pos+=8},writeBytes:function(i){var r=i.length;this.writeVarint(r),this.realloc(r);for(var n=0;n=128&&aG(n,o,this),this.pos=n-1,this.writeVarint(o),this.pos+=o},writeMessage:function(i,r,n){this.writeTag(i,aV.Bytes),this.writeRawMessage(r,n)},writePackedVarint:function(i,r){r.length&&this.writeMessage(i,aZ,r)},writePackedSVarint:function(i,r){r.length&&this.writeMessage(i,a$,r)},writePackedBoolean:function(i,r){r.length&&this.writeMessage(i,aW,r)},writePackedFloat:function(i,r){r.length&&this.writeMessage(i,aq,r)},writePackedDouble:function(i,r){r.length&&this.writeMessage(i,aX,r)},writePackedFixed32:function(i,r){r.length&&this.writeMessage(i,aH,r)},writePackedSFixed32:function(i,r){r.length&&this.writeMessage(i,aK,r)},writePackedFixed64:function(i,r){r.length&&this.writeMessage(i,aY,r)},writePackedSFixed64:function(i,r){r.length&&this.writeMessage(i,aJ,r)},writeBytesField:function(i,r){this.writeTag(i,aV.Bytes),this.writeBytes(r)},writeFixed32Field:function(i,r){this.writeTag(i,aV.Fixed32),this.writeFixed32(r)},writeSFixed32Field:function(i,r){this.writeTag(i,aV.Fixed32),this.writeSFixed32(r)},writeFixed64Field:function(i,r){this.writeTag(i,aV.Fixed64),this.writeFixed64(r)},writeSFixed64Field:function(i,r){this.writeTag(i,aV.Fixed64),this.writeSFixed64(r)},writeVarintField:function(i,r){this.writeTag(i,aV.Varint),this.writeVarint(r)},writeSVarintField:function(i,r){this.writeTag(i,aV.Varint),this.writeSVarint(r)},writeStringField:function(i,r){this.writeTag(i,aV.Bytes),this.writeString(r)},writeFloatField:function(i,r){this.writeTag(i,aV.Fixed32),this.writeFloat(r)},writeDoubleField:function(i,r){this.writeTag(i,aV.Fixed64),this.writeDouble(r)},writeBooleanField:function(i,r){this.writeVarintField(i,Boolean(r))}};class a6{constructor(i,{pixelRatio:r,version:n,stretchX:o,stretchY:s,content:a}){this.paddedRect=i,this.pixelRatio=r,this.stretchX=o,this.stretchY=s,this.content=a,this.version=n}get tl(){return[this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get displaySize(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}}class a8{constructor(i,r){const n={},o={};this.haveRenderCallbacks=[];const s=[];this.addImages(i,n,s),this.addImages(r,o,s);const{w:a,h:l}=a4(s),c=new sz({width:a||1,height:l||1});for(const h in i){const u=i[h],d=n[h].paddedRect;sz.copy(u.data,c,{x:0,y:0},{x:d.x+1,y:d.y+1},u.data)}for(const p in r){const f=r[p],m=o[p].paddedRect,_=m.x+1,g=m.y+1,y=f.data.width,x=f.data.height;sz.copy(f.data,c,{x:0,y:0},{x:_,y:g},f.data),sz.copy(f.data,c,{x:0,y:x-1},{x:_,y:g-1},{width:y,height:1}),sz.copy(f.data,c,{x:0,y:0},{x:_,y:g+x},{width:y,height:1}),sz.copy(f.data,c,{x:y-1,y:0},{x:_-1,y:g},{width:1,height:x}),sz.copy(f.data,c,{x:0,y:0},{x:_+y,y:g},{width:1,height:x})}this.image=c,this.iconPositions=n,this.patternPositions=o}addImages(i,r,n){for(const o in i){const s=i[o],a={x:0,y:0,w:s.data.width+2,h:s.data.height+2};n.push(a),r[o]=new a6(a,s),s.hasRenderCallback&&this.haveRenderCallbacks.push(o)}}patchUpdatedImages(i,r){for(const n in i.dispatchRenderCallbacks(this.haveRenderCallbacks),i.updatedImages)this.patchUpdatedImage(this.iconPositions[n],i.getImage(n),r),this.patchUpdatedImage(this.patternPositions[n],i.getImage(n),r)}patchUpdatedImage(i,r,n){if(!i||!r||i.version===r.version)return;i.version=r.version;const[o,s]=i.tl;n.update(r.data,void 0,{x:o,y:s})}}r$("ImagePosition",a6),r$("ImageAtlas",a8);const a9={horizontal:1,vertical:2,horizontalOnly:3};class a7{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(i,r){const n=new a7;return n.scale=i||1,n.fontStack=r,n}static forImage(i){const r=new a7;return r.imageName=i,r}}class le{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(i,r){const n=new le;for(let o=0;o=0&&o>=i&&li[this.text.charCodeAt(o)];o--)n--;this.text=this.text.substring(i,n),this.sectionIndex=this.sectionIndex.slice(i,n)}substring(i,r){const n=new le;return n.text=this.text.substring(i,r),n.sectionIndex=this.sectionIndex.slice(i,r),n.sections=this.sections,n}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((i,r)=>Math.max(i,this.sections[r].scale),0)}addTextSection(i,r){this.text+=i.text,this.sections.push(a7.forText(i.scale,i.fontStack||r));const n=this.sections.length-1;for(let o=0;o=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function lt(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){let y;const x=le.fromFeature(i,s);p===a9.vertical&&x.verticalizePunctuation(f);const{processBidirectionalText:v,processStyledBidirectionalText:b}=nz;if(v&&1===x.sections.length){y=[];const w=v(x.toString(),la(x,u,a,r,o,m,_));for(const T of w){const E=new le;E.text=T,E.sections=x.sections;for(let S=0;S0&&q>z&&(z=q)}else{const X=n[L.fontStack];if(!X)continue;X[R]&&(U=X[R]);const W=r[L.fontStack];if(!W)continue;const H=W.glyphs[R];if(!H)continue;if(O=H.metrics,N=8203!==R?24:0,x){const K=void 0!==W.ascender?Math.abs(W.ascender):0,Y=void 0!==W.descender?Math.abs(W.descender):0,J=(K+Y)*F;k=0;let p=0;for(let f=0;f-n/2;){if(--l<0)return!1;c-=i[l].dist(a),a=i[l]}c+=i[l].dist(i[l+1]),l++;const h=[];let u=0;for(;co;)u-=h.shift().angleDelta;if(u>s)return!1;l++,c+=d.dist(p)}return!0}function lp(i){let r=0;for(let n=0;n=o&&f.x>=o||(p.x>=o?p=new l(o,p.y+(o-p.x)/(f.x-p.x)*(f.y-p.y))._round():f.x>=o&&(f=new l(o,p.y+(o-p.x)/(f.x-p.x)*(f.y-p.y))._round()),p.y>=s&&f.y>=s||(p.y>=s?p=new l(p.x+(s-p.y)/(f.y-p.y)*(f.x-p.x),s)._round():f.y>=s&&(f=new l(p.x+(s-p.y)/(f.y-p.y)*(f.x-p.x),s)._round()),h&&p.equals(h[h.length-1])||(h=[p],a.push(h)),h.push(f)))))}}return a}function lg(i,r,n,o,s,a,l,c,h){for(let u=r;u-1)a[++h]=c,l[h]=u,l[h+1]=1e20}for(let f=0,m=0;f{let o=this.entries[i];o||(o=this.entries[i]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let s=o.glyphs[r];if(void 0!==s)return void n(null,{stack:i,id:r,glyph:s});if(s=this._tinySDF(o,i,r))return o.glyphs[r]=s,void n(null,{stack:i,id:r,glyph:s});const a=Math.floor(r/256);if(256*a>65535)return void n(Error("glyphs > 65535 not supported"));if(o.ranges[a])return void n(null,{stack:i,id:r,glyph:s});let l=o.requests[a];l||(l=o.requests[a]=[],lv.loadGlyphRange(i,a,this.url,this.requestManager,(i,r)=>{if(r){for(const n in o.ascender=r.ascender,o.descender=r.descender,r.glyphs)this._doesCharSupportLocalGlyph(+n)||(o.glyphs[+n]=r.glyphs[+n]);o.ranges[a]=!0}for(const s of l)s(i,r);delete o.requests[a]})),l.push((o,s)=>{o?n(o):s&&n(null,{stack:i,id:r,glyph:s.glyphs[r]||null})})},(i,n)=>{if(i)r(i);else if(n){const o={};for(const{stack:s,id:a,glyph:l}of n)void 0===o[s]&&(o[s]={}),void 0===o[s].glyphs&&(o[s].glyphs={}),o[s].glyphs[a]=l&&{id:l.id,bitmap:l.bitmap.clone(),metrics:l.metrics},o[s].ascender=this.entries[s].ascender,o[s].descender=this.entries[s].descender;r(null,o)}})}_doesCharSupportLocalGlyph(i){return this.localGlyphMode!==lx.none&&(this.localGlyphMode===lx.all?!!this.localFontFamily:!!this.localFontFamily&&(nn(i)||na(i)||r4(i)||r6(i))||r5(i))}_tinySDF(i,r,n){const o=this.localFontFamily;if(!o||!this._doesCharSupportLocalGlyph(n))return;let s=i.tinySDF;if(!s){let a="400";/bold/i.test(r)?a="900":/medium/i.test(r)?a="500":/light/i.test(r)&&(a="200"),(s=i.tinySDF=new lv.TinySDF({fontFamily:o,fontWeight:a,fontSize:48,buffer:6,radius:16})).fontWeight=a}if(this.localGlyphs[s.fontWeight][n])return this.localGlyphs[s.fontWeight][n];const l=String.fromCharCode(n),{data:c,width:h,height:u,glyphWidth:d,glyphHeight:p,glyphLeft:f,glyphTop:m,glyphAdvance:_}=s.draw(l);return this.localGlyphs[s.fontWeight][n]={id:n,bitmap:new sC({width:h,height:u},c),metrics:{width:d/2,height:p/2,left:f/2,top:m/2-27,advance:_/2,localGlyph:!0}}}}function lb(i,r,n,o){const s=[],a=i.image,c=a.pixelRatio,h=a.paddedRect.w-2,u=a.paddedRect.h-2,d=i.right-i.left,p=i.bottom-i.top,f=a.stretchX||[[0,h]],m=a.stretchY||[[0,u]],_=(i,r)=>i+r[1]-r[0],g=f.reduce(_,0),y=m.reduce(_,0),x=h-g,v=u-y;let b=0,w=g,T=0,E=y,S=0,I=x,M=0,A=v;if(a.content&&o){const C=a.content;b=lw(f,0,C[0]),T=lw(m,0,C[1]),w=lw(f,C[0],C[2]),E=lw(m,C[1],C[3]),S=C[0]-b,M=C[1]-T,I=C[2]-C[0]-w,A=C[3]-C[1]-E}const z=(o,s,h,u)=>{var f,m,_,x,v,C,z,k,P,D,L,B,R,F,O,U;const V=(f=o.stretch-b,m=w,f/m*d+i.left),N=(_=o.fixed-S,x=I,_-x*o.stretch/g),j=(v=s.stretch-T,C=E,v/C*p+i.top),G=(z=s.fixed-M,k=A,z-k*s.stretch/y),Z=(P=h.stretch-b,D=w,P/D*d+i.left),$=(L=h.fixed-S,B=I,L-B*h.stretch/g),q=(R=u.stretch-T,F=E,R/F*p+i.top),X=(O=u.fixed-M,U=A,O-U*u.stretch/y),W=new l(V,j),H=new l(Z,j),K=new l(Z,q),Y=new l(V,q),J=new l(N/c,G/c),Q=new l($/c,X/c),ee=r*Math.PI/180;if(ee){const et=Math.sin(ee),ei=Math.cos(ee),er=[ei,-et,et,ei];W._matMult(er),H._matMult(er),Y._matMult(er),K._matMult(er)}const en=o.stretch+o.fixed,eo=s.stretch+s.fixed;return{tl:W,tr:H,bl:Y,br:K,tex:{x:a.paddedRect.x+1+en,y:a.paddedRect.y+1+eo,w:h.stretch+h.fixed-en,h:u.stretch+u.fixed-eo},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:J,pixelOffsetBR:Q,minFontScaleX:I/c/d,minFontScaleY:A/c/p,isSDF:n}};if(o&&(a.stretchX||a.stretchY)){const k=lT(f,x,g),P=lT(m,v,y);for(let D=0;D{if(i)s(i);else if(r){const n={},o=new aV(r).readFields(a2,{});for(const a of o.glyphs)n[a.id]=a;s(null,{glyphs:n,ascender:o.ascender,descender:o.descender})}})},lv.TinySDF=class{constructor({fontSize:i=24,buffer:r=3,radius:n=8,cutoff:o=.25,fontFamily:s="sans-serif",fontWeight:a="normal",fontStyle:l="normal"}){this.buffer=r,this.cutoff=o,this.radius=n;const c=this.size=i+4*r,h=this._createCanvas(c),u=this.ctx=h.getContext("2d",{willReadFrequently:!0});u.font=`${l} ${a} ${i}px ${s}`,u.textBaseline="alphabetic",u.textAlign="left",u.fillStyle="black",this.gridOuter=new Float64Array(c*c),this.gridInner=new Float64Array(c*c),this.f=new Float64Array(c),this.z=new Float64Array(c+1),this.v=new Uint16Array(c)}_createCanvas(i){const r=document.createElement("canvas");return r.width=r.height=i,r}draw(i){const{width:r,actualBoundingBoxAscent:n,actualBoundingBoxDescent:o,actualBoundingBoxLeft:s,actualBoundingBoxRight:a}=this.ctx.measureText(i),l=Math.floor(n),c=Math.min(this.size-this.buffer,Math.ceil(a-s)),h=Math.min(this.size-this.buffer,Math.ceil(n)+Math.ceil(o)),u=c+2*this.buffer,d=h+2*this.buffer,p=u*d,f=new Uint8ClampedArray(p),m={data:f,width:u,height:d,glyphWidth:c,glyphHeight:h,glyphTop:l,glyphLeft:0,glyphAdvance:r};if(0===c||0===h)return m;const{ctx:_,buffer:g,gridInner:y,gridOuter:x}=this;_.clearRect(g,g,c,h),_.fillText(i,g,g+l+1);const v=_.getImageData(g,g,c,h);x.fill(1e20,0,p),y.fill(0,0,p);for(let b=0;b0?S*S:0,y[E]=S<0?S*S:0}}lg(x,0,0,u,d,u,this.f,this.v,this.z),lg(y,g,g,c,h,u,this.f,this.v,this.z);for(let I=0;I0)for(let n=(this.length>>1)-1;n>=0;n--)this._down(n)}push(i){this.data.push(i),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const i=this.data[0],r=this.data.pop();return this.length--,this.length>0&&(this.data[0]=r,this._down(0)),i}peek(){return this.data[0]}_up(i){const{data:r,compare:n}=this,o=r[i];for(;i>0;){const s=i-1>>1,a=r[s];if(n(o,a)>=0)break;r[i]=a,i=s}r[i]=o}_down(i){const{data:r,compare:n}=this,o=this.length>>1,s=r[i];for(;in(r[c],l)&&(a=c,l=r[c]),n(l,s)>=0)break;r[i]=l,i=a}r[i]=s}}function lS(i,r){return ir?1:0}function lI(i,r){return r.max-i.max}function lM(i,r,n,o){this.p=new l(i,r),this.h=n,this.d=function(i,r){let n=!1,o=1/0;for(let s=0;si.y!=d.y>i.y&&i.x<(d.x-u.x)*(i.y-u.y)/(d.y-u.y)+u.x&&(n=!n),o=Math.min(o,sh(i,u,d))}}return(n?1:-1)*Math.sqrt(o)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}const lA=Number.POSITIVE_INFINITY,lC=Math.sqrt(2);function lz(i,r){return r[1]!==lA?function(i,r,n){let o=0,s=0;switch(r=Math.abs(r),n=Math.abs(n),i){case"top-right":case"top-left":case"top":s=n-7;break;case"bottom-right":case"bottom-left":case"bottom":s=7-n}switch(i){case"top-right":case"bottom-right":case"right":o=-r;break;case"top-left":case"bottom-left":case"left":o=r}return[o,s]}(i,r[0],r[1]):function(i,r){let n=0,o=0;r<0&&(r=0);const s=r/lC;switch(i){case"top-right":case"top-left":o=s-7;break;case"bottom-right":case"bottom-left":o=7-s;break;case"bottom":o=7-r;break;case"top":o=r-7}switch(i){case"top-right":case"bottom-right":n=-s;break;case"top-left":case"bottom-left":n=s;break;case"left":n=r;break;case"right":n=-r}return[n,o]}(i,r[0])}function lk(i){switch(i){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function lP(i,r,n,o,s,a,c,h,u,d,p,f,m,_,g,y,x){const v=function(i,r,n,o,s,a,c,h){const u=[];if(0===r.positionedLines.length)return u;const d=o.layout.get("text-rotate").evaluate(a,{})*Math.PI/180,p=function(i){const r=i[0],n=i[1],o=r*n;return o>0?[r,-n]:o<0?[-r,n]:0===r?[n,r]:[n,-r]}(n);let f=Math.abs(r.top-r.bottom);for(const m of r.positionedLines)f-=m.lineOffset;const _=r.positionedLines.length,g=f/_;let y=r.top-n[1];for(let x=0;x<_;++x){const v=r.positionedLines[x];for(const b of(y=function(i,r,n,o){const s=r+i.positionedLines[o].lineOffset;return 0===o?n+s/2:n+(s+(r+i.positionedLines[o-1].lineOffset))/2}(r,g,y,x),v.positionedGlyphs)){let w,T,E,S;if(!b.rect)continue;const I=b.rect||{};let M=4,A=!0,C=1,z=0;if(b.imageName){const k=c[b.imageName];if(!k)continue;if(k.sdf){ea("SDF images are not supported in formatted text and will be ignored.");continue}A=!1,M=1/(C=k.pixelRatio)}const P=(s||h)&&b.vertical,D=b.metrics.advance*b.scale/2,L=b.metrics,B=b.rect;if(null===B)continue;h&&r.verticalizable&&(z=b.imageName?D-b.metrics.width*b.scale/2:0);const R=s?[b.x+D,b.y]:[0,0];let F=[0,0],O=[0,0],U=!1;s||(P?(O=[b.x+D+p[0],b.y+p[1]-z],U=!0):F=[b.x+D+n[0],b.y+n[1]-z]);const V=B.w*b.scale/(C*(b.localGlyph?2:1)),N=B.h*b.scale/(C*(b.localGlyph?2:1));if(P){const j=b.y-y,G=new l(-D,D-j),Z=-Math.PI/2,$=new l(...O);(w=new l(-D+F[0],F[1]))._rotateAround(Z,G)._add($),w.x+=-j+D,w.y-=(L.left-M)*b.scale;const q=b.imageName?L.advance*b.scale:24*b.scale,X=String.fromCharCode(b.glyph);"︶"===X||"﹈"===X||"︸"===X||"﹄"===X||"﹂"===X||"︾"===X||"︼"===X||"︺"===X||"︘"===X||"﹀"===X||"︐"===X||"︓"===X||"︔"===X||"`"===X||" ̄"===X||"︑"===X||"︒"===X?w.x+=(1-M)*b.scale:"︵"===X||"﹇"===X||"︷"===X||"﹃"===X||"﹁"===X||"︽"===X||"︻"===X||"︹"===X||"︗"===X||"︿"===X?w.x+=q-L.height*b.scale+(-M-1)*b.scale:w.x+=b.imageName||L.width+2*M===B.w&&L.height+2*M===B.h?(q-N)/2:(q-(L.height+2*M)*b.scale)/2,T=new l(w.x,w.y-V),E=new l(w.x+N,w.y),S=new l(w.x+N,w.y-V)}else{const W=(L.left-M)*b.scale-D+F[0],H=(-L.top-M)*b.scale+F[1],K=W+V,Y=H+N;w=new l(W,H),T=new l(K,H),E=new l(W,Y),S=new l(K,Y)}if(d){let J;J=s?new l(0,0):U?new l(p[0],p[1]):new l(n[0],n[1]),w._rotateAround(d,J),T._rotateAround(d,J),E._rotateAround(d,J),S._rotateAround(d,J)}const Q=new l(0,0),ee=new l(0,0);u.push({tl:w,tr:T,bl:E,br:S,tex:I,writingMode:r.writingMode,glyphOffset:R,sectionIndex:b.sectionIndex,isSDF:A,pixelOffsetTL:Q,pixelOffsetBR:ee,minFontScaleX:0,minFontScaleY:0})}}return u}(0,o,u,a,c,h,s,i.allowVerticalPlacement),b=i.textSizeData;let w=null;for(const T of("source"===b.kind?(w=[128*a.layout.get("text-size").evaluate(h,{},x)])[0]>32640&&ea(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`):"composite"===b.kind&&((w=[128*g.compositeTextSizes[0].evaluate(h,{},x),128*g.compositeTextSizes[1].evaluate(h,{},x)])[0]>32640||w[1]>32640)&&ea(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`),i.addSymbols(i.text,v,w,u,c,h,p,r,n,d.lineStartIndex,d.lineLength,_,y,x),f))m[T]=i.text.placedSymbolArray.length-1;return 4*v.length}function lD(i){for(const r in i)return i[r];return null}function lL(i,r,n,o,s,a,c,h,u,d){let p=c.top,f=c.bottom,m=c.left,_=c.right;const g=c.collisionPadding;if(g&&(m-=g[0],p-=g[1],_+=g[2],f+=g[3]),u){const y=new l(m,p),x=new l(_,p),v=new l(m,f),b=new l(_,f),w=u*O;let T=new l(0,0);d&&(T=new l(d[0],d[1])),y._rotateAround(w,T),x._rotateAround(w,T),v._rotateAround(w,T),b._rotateAround(w,T),m=Math.min(y.x,x.x,v.x,b.x),_=Math.max(y.x,x.x,v.x,b.x),p=Math.min(y.y,x.y,v.y,b.y),f=Math.max(y.y,x.y,v.y,b.y)}return i.emplaceBack(r.x,r.y,r.z,n.x,n.y,m,p,_,f,h,o,s,a),i.length-1}function lB(i){i.collisionPadding&&(i.top-=i.collisionPadding[1],i.bottom+=i.collisionPadding[3]);const r=i.bottom-i.top;return r>0?Math.max(10,r):null}const lR=aa.VectorTileFeature.types,lF=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function lO(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){const y=d?Math.min(32640,Math.round(d[0])):0,x=d?Math.min(32640,Math.round(d[1])):0;i.emplaceBack(r,n,Math.round(32*l),Math.round(32*c),h,u,(y<<1)+(p?1:0),x,16*f,16*m,256*_,256*g,o,s,a,0)}function lU(i,r,n){i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n)}class lV{constructor(i){this.layoutVertexArray=new n5,this.indexArray=new oe,this.programConfigurations=i,this.segments=new o0,this.dynamicLayoutVertexArray=new n1,this.opacityVertexArray=new n4,this.placedSymbolArray=new of}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length}upload(i,r,n,o){this.isEmpty()||(n&&(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,aM.members),this.indexBuffer=i.createIndexBuffer(this.indexArray,r),this.dynamicLayoutVertexBuffer=i.createVertexBuffer(this.dynamicLayoutVertexArray,aA.members,!0),this.opacityVertexBuffer=i.createVertexBuffer(this.opacityVertexArray,lF,!0),this.opacityVertexBuffer.itemSize=1),(n||o)&&this.programConfigurations.upload(i))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())}}r$("SymbolBuffers",lV);class lN{constructor(i,r,n){this.layoutVertexArray=new i,this.layoutAttributes=r,this.indexArray=new n,this.segments=new o0,this.collisionVertexArray=new n7,this.collisionVertexArrayExt=new n1}upload(i){this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=i.createVertexBuffer(this.collisionVertexArray,aC.members,!0),this.collisionVertexBufferExt=i.createVertexBuffer(this.collisionVertexArrayExt,az.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}r$("CollisionBuffers",lN);class lj{constructor(i){this.collisionBoxArray=i.collisionBoxArray,this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.pixelRatio=i.pixelRatio,this.sourceLayerIndex=i.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=p([]),this.placementViewportMatrix=p([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=aD(this.zoom,r["text-size"]),this.iconSizeData=aD(this.zoom,r["icon-size"]);const n=this.layers[0].layout,o=n.get("symbol-sort-key"),s=n.get("symbol-z-order");this.canOverlap=n.get("text-allow-overlap")||n.get("icon-allow-overlap")||n.get("text-ignore-placement")||n.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==s&&void 0!==o.constantOr(1),this.sortFeaturesByY=("viewport-y"===s||"auto"===s&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=n.get("text-writing-mode").map(i=>a9[i]),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.sourceID=i.sourceID}createArrays(){this.text=new lV(new o$(this.layers,this.zoom,i=>/^text/.test(i))),this.icon=new lV(new o$(this.layers,this.zoom,i=>/^icon/.test(i))),this.glyphOffsetArray=new og,this.lineVertexArray=new oy,this.symbolInstances=new o_}calculateGlyphDependencies(i,r,n,o,s){for(let a=0;a0)&&("constant"!==l.value.kind||l.value.value.length>0),d="constant"!==h.value.kind||!!h.value.value||Object.keys(h.parameters).length>0,p=a.get("symbol-sort-key");if(this.features=[],!u&&!d)return;const f=r.iconDependencies,m=r.glyphDependencies,_=r.availableImages,g=new nk(this.zoom);for(const{feature:y,id:x,index:v,sourceLayerIndex:b}of i){let w,T;const E=s._featureFilter.needGeometry,S=sr(y,E);if(!s._featureFilter.filter(g,S,n))continue;if(E||(S.geometry=si(y,n,o)),u){const I=s.getValueAndResolveTokens("text-field",S,n,_),M=tP.factory(I);(function(i){for(const r of i.sections)if(function(i){for(const r of i)if(ny(r.charCodeAt(0)))return!0;return!1}(r.text))return!0;return!1})(M)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===nA()||this.hasRTLText&&nz.isParsed())&&(w=function(i,r,n){return i.sections.forEach(i=>{i.text=function(i,r,n){const o=r.layout.get("text-transform").evaluate(n,{});return"uppercase"===o?i=i.toLocaleUpperCase():"lowercase"===o&&(i=i.toLocaleLowerCase()),nz.applyArabicShaping&&(i=nz.applyArabicShaping(i)),i}(i.text,r,n)}),i}(M,s,S))}if(d){const A=s.getValueAndResolveTokens("icon-image",S,n,_);T=A instanceof tD?A:tD.fromString(A)}if(!w&&!T)continue;const C=this.sortFeaturesByKey?p.evaluate(S,{},n):void 0;if(this.features.push({id:x,text:w,icon:T,index:v,sourceLayerIndex:b,geometry:S.geometry,properties:y.properties,type:lR[y.type],sortKey:C}),T&&(f[T.name]=!0),w){const z=l.evaluate(S,{},n).join(","),k="map"===a.get("text-rotation-alignment")&&"point"!==a.get("symbol-placement");for(const P of(this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(a9.vertical)>=0,w.sections))if(P.image)f[P.image.name]=!0;else{const D=nm(w.toString()),L=P.fontStack||z,B=m[L]=m[L]||{};this.calculateGlyphDependencies(P.text,B,k,this.allowVerticalPlacement,D)}}}"line"===a.get("symbol-placement")&&(this.features=function(i){const r={},n={},o=[];let s=0;function a(r){o.push(i[r]),s++}function l(i,r,s){const a=n[i];return delete n[i],n[r]=a,o[a].geometry[0].pop(),o[a].geometry[0]=o[a].geometry[0].concat(s[0]),a}function c(i,n,s){const a=r[n];return delete r[n],r[i]=a,o[a].geometry[0].shift(),o[a].geometry[0]=s[0].concat(o[a].geometry[0]),a}function h(i,r,n){const o=n?r[0][r[0].length-1]:r[0][0];return`${i}:${o.x}:${o.y}`}for(let u=0;ui.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((i,r)=>i.sortKey-r.sortKey)}update(i,r,n,o){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(i,r,this.layers,n,o),this.icon.programConfigurations.updatePaintArrays(i,r,this.layers,n,o))}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(i){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(i),this.iconCollisionBox.upload(i)),this.text.upload(i,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(i,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(i,r){const n=this.lineVertexArray.length;if(void 0!==i.segment){let o=i.dist(r[i.segment+1]),s=i.dist(r[i.segment]);const a={};for(let l=i.segment+1;l=0;c--)a[c]={x:r[c].x,y:r[c].y,tileUnitDistanceFromAnchor:s},c>0&&(s+=r[c-1].dist(r[c]));for(let h=0;h=0?r.rightJustifiedTextSymbolIndex:r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.leftJustifiedTextSymbolIndex>=0?r.leftJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex>=0?r.verticalPlacedTextSymbolIndex:o),a=aL(this.textSizeData,i,s)/24;return this.tilePixelRatio*a}getSymbolInstanceIconSize(i,r,n){const o=this.icon.placedSymbolArray.get(n),s=aL(this.iconSizeData,i,o);return this.tilePixelRatio*s}_commitDebugCollisionVertexUpdate(i,r,n){i.emplaceBack(r,-n,-n),i.emplaceBack(r,n,-n),i.emplaceBack(r,n,n),i.emplaceBack(r,-n,n)}_updateTextDebugCollisionBoxes(i,r,n,o,s,a){for(let l=o;l0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(i,r){const n=i.placedSymbolArray.get(r),o=n.vertexStartIndex+4*n.numGlyphs;for(let s=n.vertexStartIndex;so[i]-o[r]||s[r]-s[i]),a}addToSortKeyRanges(i,r){const n=this.sortKeyRanges[this.sortKeyRanges.length-1];n&&n.sortKey===r?n.symbolInstanceEnd=i+1:this.sortKeyRanges.push({sortKey:r,symbolInstanceStart:i,symbolInstanceEnd:i+1})}sortFeatures(i){if(this.sortFeaturesByY&&this.sortedAngle!==i&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){for(const r of(this.symbolInstanceIndexes=this.getSortedSymbolIndexes(i),this.sortedAngle=i,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[],this.symbolInstanceIndexes)){const n=this.symbolInstances.get(r);this.featureSortOrder.push(n.featureIndex),[n.rightJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.leftJustifiedTextSymbolIndex].forEach((i,r,n)=>{i>=0&&n.indexOf(i)===r&&this.addIndicesForPlacedSymbol(this.text,i)}),n.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,n.verticalPlacedTextSymbolIndex),n.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,n.placedIconSymbolIndex),n.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,n.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}r$("SymbolBucket",lj,{omit:["layers","collisionBoxArray","features","compareText"]}),lj.MAX_GLYPHS=65535,lj.addDynamicAttributes=lU;const lG=new n$({"symbol-placement":new nV(tr.layout_symbol["symbol-placement"]),"symbol-spacing":new nV(tr.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new nV(tr.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new nN(tr.layout_symbol["symbol-sort-key"]),"symbol-z-order":new nV(tr.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new nV(tr.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new nV(tr.layout_symbol["icon-ignore-placement"]),"icon-optional":new nV(tr.layout_symbol["icon-optional"]),"icon-rotation-alignment":new nV(tr.layout_symbol["icon-rotation-alignment"]),"icon-size":new nN(tr.layout_symbol["icon-size"]),"icon-text-fit":new nV(tr.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new nV(tr.layout_symbol["icon-text-fit-padding"]),"icon-image":new nN(tr.layout_symbol["icon-image"]),"icon-rotate":new nN(tr.layout_symbol["icon-rotate"]),"icon-padding":new nV(tr.layout_symbol["icon-padding"]),"icon-keep-upright":new nV(tr.layout_symbol["icon-keep-upright"]),"icon-offset":new nN(tr.layout_symbol["icon-offset"]),"icon-anchor":new nN(tr.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new nV(tr.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new nV(tr.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new nV(tr.layout_symbol["text-rotation-alignment"]),"text-field":new nN(tr.layout_symbol["text-field"]),"text-font":new nN(tr.layout_symbol["text-font"]),"text-size":new nN(tr.layout_symbol["text-size"]),"text-max-width":new nN(tr.layout_symbol["text-max-width"]),"text-line-height":new nN(tr.layout_symbol["text-line-height"]),"text-letter-spacing":new nN(tr.layout_symbol["text-letter-spacing"]),"text-justify":new nN(tr.layout_symbol["text-justify"]),"text-radial-offset":new nN(tr.layout_symbol["text-radial-offset"]),"text-variable-anchor":new nV(tr.layout_symbol["text-variable-anchor"]),"text-anchor":new nN(tr.layout_symbol["text-anchor"]),"text-max-angle":new nV(tr.layout_symbol["text-max-angle"]),"text-writing-mode":new nV(tr.layout_symbol["text-writing-mode"]),"text-rotate":new nN(tr.layout_symbol["text-rotate"]),"text-padding":new nV(tr.layout_symbol["text-padding"]),"text-keep-upright":new nV(tr.layout_symbol["text-keep-upright"]),"text-transform":new nN(tr.layout_symbol["text-transform"]),"text-offset":new nN(tr.layout_symbol["text-offset"]),"text-allow-overlap":new nV(tr.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new nV(tr.layout_symbol["text-ignore-placement"]),"text-optional":new nV(tr.layout_symbol["text-optional"])});var lZ={paint:new n$({"icon-opacity":new nN(tr.paint_symbol["icon-opacity"]),"icon-color":new nN(tr.paint_symbol["icon-color"]),"icon-halo-color":new nN(tr.paint_symbol["icon-halo-color"]),"icon-halo-width":new nN(tr.paint_symbol["icon-halo-width"]),"icon-halo-blur":new nN(tr.paint_symbol["icon-halo-blur"]),"icon-translate":new nV(tr.paint_symbol["icon-translate"]),"icon-translate-anchor":new nV(tr.paint_symbol["icon-translate-anchor"]),"text-opacity":new nN(tr.paint_symbol["text-opacity"]),"text-color":new nN(tr.paint_symbol["text-color"],{runtimeType:tm,getOverride:i=>i.textColor,hasOverride:i=>!!i.textColor}),"text-halo-color":new nN(tr.paint_symbol["text-halo-color"]),"text-halo-width":new nN(tr.paint_symbol["text-halo-width"]),"text-halo-blur":new nN(tr.paint_symbol["text-halo-blur"]),"text-translate":new nV(tr.paint_symbol["text-translate"]),"text-translate-anchor":new nV(tr.paint_symbol["text-translate-anchor"])}),layout:lG};class l${constructor(i){this.type=i.property.overrides?i.property.overrides.runtimeType:tu,this.defaultValue=i}evaluate(i){if(i.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(i.formattedSection))return r.getOverride(i.formattedSection)}return i.feature&&i.featureState?this.defaultValue.evaluate(i.feature,i.featureState):this.defaultValue.property.specification.default}eachChild(i){this.defaultValue.isConstant()||i(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}r$("FormatSectionOverride",l$,{omit:["defaultValue"]});class lq extends oY{constructor(i){super(i,lZ)}recalculate(i,r){super.recalculate(i,r),"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 n=this.layout.get("text-writing-mode");if(n){const o=[];for(const s of n)0>o.indexOf(s)&&o.push(s);this.layout._values["text-writing-mode"]=o}else this.layout._values["text-writing-mode"]="point"===this.layout.get("symbol-placement")?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getValueAndResolveTokens(i,r,n,o){var s;const a=this.layout.get(i).evaluate(r,{},n,o),l=this._unevaluatedLayout._values[i];return l.isDataDriven()||i8(l.value)||!a?a:(s=r.properties,a.replace(/{([^{}]+)}/g,(i,r)=>r in s?String(s[r]):""))}createBucket(i){return new lj(i)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const i of lZ.paint.overridableProperties){if(!lq.hasPaintOverride(this.layout,i))continue;const r=this.paint.get(i),n=new l$(r),o=new i6(n,r.property.specification);let s=null;s="constant"===r.value.kind||"source"===r.value.kind?new i7("source",o):new re("composite",o,r.value.zoomStops,r.value._interpolationType),this.paint._values[i]=new nO(r.property,s,r.parameters)}}_handleOverridablePaintPropertyUpdate(i,r,n){return!(!this.layout||r.isDataDriven()||n.isDataDriven())&&lq.hasPaintOverride(this.layout,i)}static hasPaintOverride(i,r){const n=i.get("text-field"),o=lZ.paint.properties[r];let s=!1;const a=i=>{for(const r of i)if(o.overrides&&o.overrides.hasOverride(r))return void(s=!0)};if("constant"===n.value.kind&&n.value.value instanceof tP)a(n.value.value.sections);else if("source"===n.value.kind){const l=i=>{s||(i instanceof tO&&tR(i.value)===tx?a(i.value.sections):i instanceof tj?a(i.sections):i.eachChild(l))},c=n.value;c._styleExpression&&l(c._styleExpression.expression)}return s}getProgramConfiguration(i){return new oZ(this,i)}}var lX={paint:new n$({"background-color":new nV(tr.paint_background["background-color"]),"background-pattern":new nG(tr.paint_background["background-pattern"]),"background-opacity":new nV(tr.paint_background["background-opacity"])})},lW={paint:new n$({"raster-opacity":new nV(tr.paint_raster["raster-opacity"]),"raster-hue-rotate":new nV(tr.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new nV(tr.paint_raster["raster-brightness-min"]),"raster-brightness-max":new nV(tr.paint_raster["raster-brightness-max"]),"raster-saturation":new nV(tr.paint_raster["raster-saturation"]),"raster-contrast":new nV(tr.paint_raster["raster-contrast"]),"raster-resampling":new nV(tr.paint_raster["raster-resampling"]),"raster-fade-duration":new nV(tr.paint_raster["raster-fade-duration"])})};class lH extends oY{constructor(i){super(i,{}),this.implementation=i}is3D(){return"3d"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}recalculate(){}updateTransitions(){}hasTransition(){}serialize(){}onAdd(i){this.implementation.onAdd&&this.implementation.onAdd(i,i.painter.context.gl)}onRemove(i){this.implementation.onRemove&&this.implementation.onRemove(i,i.painter.context.gl)}}var lK={paint:new n$({"sky-type":new nV(tr.paint_sky["sky-type"]),"sky-atmosphere-sun":new nV(tr.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new nV(tr.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new nV(tr.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new nV(tr.paint_sky["sky-gradient-radius"]),"sky-gradient":new nZ(tr.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new nV(tr.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new nV(tr.paint_sky["sky-atmosphere-color"]),"sky-opacity":new nV(tr.paint_sky["sky-opacity"])})};function lY(i,r,n){var o,s,a,l,c,h,u,d;const p=w(0,0,1),f=B(L());return o=f,s=n?-(i*O)+Math.PI:i*O,s*=.5,a=f[0],l=f[1],c=f[2],h=f[3],u=Math.sin(s),d=Math.cos(s),o[0]=a*d-c*u,o[1]=l*d+h*u,o[2]=c*d+a*u,o[3]=h*d-l*u,R(f,f,-(r*O)),P(p,p,f),A(p,p)}const lJ={circle:class extends oY{constructor(i){super(i,sx)}createBucket(i){return new so(i)}queryRadius(i){return sf("circle-radius",this,i)+sf("circle-stroke-width",this,i)+sm(this.paint.get("circle-translate"))}queryIntersectsFeature(i,r,n,o,s,a,l,c){const h=sg(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),u=this.paint.get("circle-radius").evaluate(r,n)+this.paint.get("circle-stroke-width").evaluate(r,n);return sw(i,o,a,l,c,"map"===this.paint.get("circle-pitch-alignment"),"map"===this.paint.get("circle-pitch-scale"),h,u)}getProgramIds(){return["circle"]}getProgramConfiguration(i){return new oZ(this,i)}},heatmap:class extends oY{createBucket(i){return new sS(i)}constructor(i){super(i,sk),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(i){"heatmap-color"===i&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=sP({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(i){return sf("heatmap-radius",this,i)}queryIntersectsFeature(i,r,n,o,s,a,c,h){const u=this.paint.get("heatmap-radius").evaluate(r,n);return sw(i,o,a,c,h,!0,!0,new l(0,0),u)}hasOffscreenPass(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(i){return new oZ(this,i)}},hillshade:class extends oY{constructor(i){super(i,sD)}hasOffscreenPass(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility}getProgramIds(){return["hillshade","hillshadePrepare"]}getProgramConfiguration(i){return new oZ(this,i)}},fill:class extends oY{constructor(i){super(i,s9)}getProgramIds(){const i=this.paint.get("fill-pattern"),r=i&&i.constantOr(1),n=[r?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&n.push(r&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),n}getProgramConfiguration(i){return new oZ(this,i)}recalculate(i,r){super.recalculate(i,r);const n=this.paint._values["fill-outline-color"];"constant"===n.value.kind&&void 0===n.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(i){return new s6(i)}queryRadius(){return sm(this.paint.get("fill-translate"))}queryIntersectsFeature(i,r,n,o,s,a){return!i.queryGeometry.isAboveHorizon&&sa(s_(i.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),o)}isTileClipped(){return!0}},"fill-extrusion":class extends oY{constructor(i){super(i,ad)}createBucket(i){return new au(i)}queryRadius(){return sm(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}getProgramIds(){return[this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(i){return new oZ(this,i)}queryIntersectsFeature(i,r,n,o,s,a,c,h,u){var d,p;const f=sg(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),m=this.paint.get("fill-extrusion-height").evaluate(r,n),_=this.paint.get("fill-extrusion-base").evaluate(r,n),g=[0,0],y=h&&a.elevation,x=a.elevation?a.elevation.exaggeration():1;if(y){const v=i.tile.getBucket(this).centroidVertexArray,b=u+1;if(b=3){for(let a=0;a1){if(sl(i,r))return!0;for(let o=0;o1&&(c=i[++l]);const d=Math.abs(h-c.left),p=Math.abs(h-c.right),f=Math.min(d,p),m=s/n*(o+1);if(c.isDash){const _=o-Math.abs(m);u=Math.sqrt(f*f+_*_)}else u=o-Math.sqrt(f*f+m*m);this.image.data[a+h]=Math.max(0,Math.min(255,u+128))}}}addRegularDash(i,r){for(let n=i.length-1;n>=0;--n){const o=i[n],s=i[n+1];o.zeroLength?i.splice(n,1):s&&s.isDash===o.isDash&&(s.left=o.left,i.splice(n,1))}const a=i[0],l=i[i.length-1];a.isDash===l.isDash&&(a.left=l.left-this.width,l.right=a.right+this.width);const c=this.width*this.nextRow;let h=0,u=i[0];for(let d=0;d1&&(u=i[++h]);const p=Math.abs(d-u.left),f=Math.abs(d-u.right),m=Math.min(p,f);this.image.data[c+d]=Math.max(0,Math.min(255,(u.isDash?m:-m)+r+128))}}addDash(i,r){const n=this.getKey(i,r);if(this.positions[n])return this.positions[n];const o="round"===r,s=o?7:0,a=2*s+1;if(this.nextRow+a>this.height)return ea("LineAtlas out of space"),null;0===i.length&&i.push(1);let l=0;for(let c=0;c{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(){delete this._channel,this._callback=()=>{}}}const l8=h.performance;function l9(i){const r=i?i.url.toString():void 0;return l8.getEntriesByName(r)}class l7{constructor(){this.tasks={},this.taskQueue=[],et(["process"],this),this.invoker=new l6(this.process),this.nextId=0}add(i,r){const n=this.nextId++,o=function({type:i,isSymbolTile:r,zoom:n}){return n=n||0,"message"===i?0:"maybePrepare"!==i||r?"parseTile"!==i||r?"parseTile"===i&&r?300-n:"maybePrepare"===i&&r?400-n:500:200-n:100-n}(r);return 0===o?(ec(),i(),{cancel(){}}):(this.tasks[n]={fn:i,metadata:r,priority:o,id:n},this.taskQueue.push(n),this.invoker.trigger(),{cancel:()=>{delete this.tasks[n]}})}process(){ec();{if(this.taskQueue=this.taskQueue.filter(i=>!!this.tasks[i]),!this.taskQueue.length)return;const i=this.pick();if(null===i)return;const r=this.tasks[i];if(delete this.tasks[i],this.taskQueue.length&&this.invoker.trigger(),!r)return;r.fn()}}pick(){let i=null,r=1/0;for(let n=0;n0;a--)s+=(r&(o=1<this.canonical.z?new cr(i,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new cr(i,this.wrap,i,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(i,r=!0){if(this.overscaledZ===i&&r)return this.key;if(i>this.canonical.z)return cn(this.wrap*+r,i,this.canonical.z,this.canonical.x,this.canonical.y);{const n=this.canonical.z-i;return cn(this.wrap*+r,i,i,this.canonical.x>>n,this.canonical.y>>n)}}isChildOf(i){if(i.wrap!==this.wrap)return!1;const r=this.canonical.z-i.canonical.z;return 0===i.overscaledZ||i.overscaledZ>r&&i.canonical.y===this.canonical.y>>r}children(i){if(this.overscaledZ>=i)return[new cr(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,n=2*this.canonical.x,o=2*this.canonical.y;return[new cr(r,this.wrap,r,n,o),new cr(r,this.wrap,r,n+1,o),new cr(r,this.wrap,r,n,o+1),new cr(r,this.wrap,r,n+1,o+1)]}isLessThan(i){return this.wrapi.wrap)&&(this.overscaledZi.overscaledZ)&&(this.canonical.xi.canonical.x)&&this.canonical.yMath.abs(o[l])){if(n[l]r[l])return null}else{const c=1/o[l];let h=(i[l]-n[l])*c,u=(r[l]-n[l])*c;if(h>u){const d=h;h=u,u=d}if(h>s&&(s=h),ua)return null}return s}function cf(i,r,n,o,s,a,l,c,h,u,d){const p=o-i,f=s-r,m=a-n,_=l-i,g=c-r,y=h-n,x=d[1]*y-d[2]*g,v=d[2]*_-d[0]*y,b=d[0]*g-d[1]*_,w=p*x+f*v+m*b;if(1e-15>Math.abs(w))return null;const T=1/w,E=u[0]-i,S=u[1]-r,I=u[2]-n,M=(E*x+S*v+I*b)*T;if(M<0||M>1)return null;const A=S*m-I*f,C=I*p-E*m,z=E*f-S*p,k=(d[0]*A+d[1]*C+d[2]*z)*T;return k<0||M+k>1?null:(_*A+g*C+y*z)*T}function cm(i,r,n,o,s,a,l,c,h){const u=1<{const a=o?1:0;s[0]=i*n,s[1]=r*n,s[2]=(i+1)*n-a,s[3]=(r+1)*n-a};let l=new cd(o);const c=[];for(let h=0;h=1;o/=2){const m=n[n.length-1];l=new cd(o);for(let _=0;_0;){const{idx:m,t:_,nodex:g,nodey:y,depth:x}=f.pop();if(this.leaves[m]){cm(g,y,x,i,r,n,o,d,p);const v=1<=B[2])return _}continue}let R=0;for(let F=0;F=h[u[V]]&&(u.splice(V,0,F),U=!0);U||(u[R]=F),R++}}for(let N=0;N=this.dim+1||r<-1||r>=this.dim+1)throw RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(i+1)}_unpackMapbox(i,r,n){return(256*i*256+256*r+n)/10-1e4}_unpackTerrarium(i,r,n){return 256*i+r+n/256-32768}static pack(i,r){const n=[0,0,0,0],o=cv.getUnpackVector(r);let s=Math.floor((i+o[3])/o[2]);return n[2]=s%256,s=Math.floor(s/256),n[1]=s%256,s=Math.floor(s/256),n[0]=s,n}getPixels(){return new sz({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(i,r,n){if(this.dim!==i.dim)throw Error("dem dimension mismatch");let o=r*this.dim,s=r*this.dim+this.dim,a=n*this.dim,l=n*this.dim+this.dim;switch(r){case -1:o=s-1;break;case 1:s=o+1}switch(n){case -1:a=l-1;break;case 1:l=a+1}const c=-r*this.dim,h=-n*this.dim;for(let u=a;u{this.remove(i,s)},n)),this.data[o].push(s),this.order.push(o),this.order.length>this.max){const a=this._getAndRemoveByKey(this.order[0]);a&&this.onRemove(a)}return this}has(i){return i.wrapped().key in this.data}getAndRemove(i){return this.has(i)?this._getAndRemoveByKey(i.wrapped().key):null}_getAndRemoveByKey(i){const r=this.data[i].shift();return r.timeout&&clearTimeout(r.timeout),0===this.data[i].length&&delete this.data[i],this.order.splice(this.order.indexOf(i),1),r.value}getByKey(i){const r=this.data[i];return r?r[0].value:null}get(i){return this.has(i)?this.data[i.wrapped().key][0].value:null}remove(i,r){if(!this.has(i))return this;const n=i.wrapped().key,o=void 0===r?0:this.data[n].indexOf(r),s=this.data[n][o];return this.data[n].splice(o,1),s.timeout&&clearTimeout(s.timeout),0===this.data[n].length&&delete this.data[n],this.onRemove(s.value),this.order.splice(this.order.indexOf(n),1),this}setMaxSize(i){for(this.max=i;this.order.length>this.max;){const r=this._getAndRemoveByKey(this.order[0]);r&&this.onRemove(r)}return this}filter(i){const r=[];for(const n in this.data)for(const o of this.data[n])i(o.value)||r.push(o);for(const s of r)this.remove(s.value.tileID,s)}}class cw extends ti{constructor(i,r,n){super(),this.id=i,this._onlySymbols=n,r.on("data",i=>{"source"===i.dataType&&"metadata"===i.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&"source"===i.dataType&&"content"===i.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform))}),r.on("error",()=>{this._sourceErrored=!0}),this._source=r,this._tiles={},this._cache=new cb(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=null,this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new cu}onAdd(i){this.map=i,this._minTileCacheSize=i?i._minTileCacheSize:null,this._maxTileCacheSize=i?i._maxTileCacheSize:null}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(const i in this._tiles){const r=this._tiles[i];if("loaded"!==r.state&&"errored"!==r.state)return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const i=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,i&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(i,r){return i.isSymbolTile=this._onlySymbols,this._source.loadTile(i,r)}_unloadTile(i){if(this._source.unloadTile)return this._source.unloadTile(i,()=>{})}_abortTile(i){if(this._source.abortTile)return this._source.abortTile(i,()=>{})}serialize(){return this._source.serialize()}prepare(i){for(const r in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){const n=this._tiles[r];n.upload(i),n.prepare(this.map.style.imageManager)}}getIds(){return W(this._tiles).map(i=>i.tileID).sort(cT).map(i=>i.key)}getRenderableIds(i){const r=[];for(const n in this._tiles)this._isIdRenderable(+n,i)&&r.push(this._tiles[n]);return i?r.sort((i,r)=>{const n=i.tileID,o=r.tileID,s=new l(n.canonical.x,n.canonical.y)._rotate(this.transform.angle),a=new l(o.canonical.x,o.canonical.y)._rotate(this.transform.angle);return n.overscaledZ-o.overscaledZ||a.y-s.y||a.x-s.x}).map(i=>i.tileID.key):r.map(i=>i.tileID).sort(cT).map(i=>i.key)}hasRenderableParent(i){const r=this.findLoadedParent(i,0);return!!r&&this._isIdRenderable(r.tileID.key)}_isIdRenderable(i,r){return this._tiles[i]&&this._tiles[i].hasData()&&!this._coveredTiles[i]&&(r||!this._tiles[i].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else for(const i in this._cache.reset(),this._tiles)"errored"!==this._tiles[i].state&&this._reloadTile(+i,"reloading")}_reloadTile(i,r){const n=this._tiles[i];n&&("loading"!==n.state&&(n.state=r),this._loadTile(n,this._tileLoaded.bind(this,n,i,r)))}_tileLoaded(i,r,n,o){if(o){if(i.state="errored",404!==o.status)this._source.fire(new tt(o,{tile:i}));else if("raster-dem"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){const s=this.map.painter.terrain;this.update(this.transform,s.getScaledDemTileSize(),!0),s.resetTileLookupCache(this.id)}else this.update(this.transform)}else i.timeAdded=ex.now(),"expired"===n&&(i.refreshedUponExpiration=!0),this._setTileReloadTimer(r,i),"raster-dem"===this._source.type&&i.dem&&this._backfillDEM(i),this._state.initializeTileState(i,this.map?this.map.painter:null),this._source.fire(new te("data",{dataType:"source",tile:i,coord:i.tileID,sourceCacheId:this.id}))}_backfillDEM(i){const r=this.getRenderableIds();for(let n=0;n1||(Math.abs(n)>1&&(1===Math.abs(n+s)?n+=s:1===Math.abs(n-s)&&(n-=s)),r.dem&&i.dem&&(i.dem.backfillBorder(r.dem,n,o),i.neighboringTiles&&i.neighboringTiles[a]&&(i.neighboringTiles[a].backfilled=!0)))}}getTile(i){return this.getTileByID(i.key)}getTileByID(i){return this._tiles[i]}_retainLoadedChildren(i,r,n,o){for(const s in this._tiles){let a=this._tiles[s];if(o[s]||!a.hasData()||a.tileID.overscaledZ<=r||a.tileID.overscaledZ>n)continue;let l=a.tileID;for(;a&&a.tileID.overscaledZ>r+1;){const c=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[c.key])&&a.hasData()&&(l=c)}let h=l;for(;h.overscaledZ>r;)if(i[(h=h.scaledTo(h.overscaledZ-1)).key]){o[l.key]=l;break}}}findLoadedParent(i,r){if(i.key in this._loadedParentTiles){const n=this._loadedParentTiles[i.key];return n&&n.tileID.overscaledZ>=r?n:null}for(let o=i.overscaledZ-1;o>=r;o--){const s=i.scaledTo(o),a=this._getLoadedTile(s);if(a)return a}}_getLoadedTile(i){const r=this._tiles[i.key];return r&&r.hasData()?r:this._cache.getByKey(this._source.reparseOverscaled?i.wrapped().key:i.canonical.key)}updateCacheSize(i,r){r=r||this._source.tileSize;const n=Math.ceil(i.width/r)+1,o=Math.ceil(i.height/r)+1,s=Math.floor(n*o*5),a="number"==typeof this._minTileCacheSize?Math.max(this._minTileCacheSize,s):s,l="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,a):a;this._cache.setMaxSize(l)}handleWrapJump(i){const r=Math.round((i-(void 0===this._prevLng?i:this._prevLng))/360);if(this._prevLng=i,r){const n={};for(const o in this._tiles){const s=this._tiles[o];s.tileID=s.tileID.unwrapTo(s.tileID.wrap+r),n[s.tileID.key]=s}for(const a in this._tiles=n,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(const l in this._tiles)this._setTileReloadTimer(+l,this._tiles[l])}}update(i,r,n){let o;if(this.transform=i,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!n)return;this.updateCacheSize(i,r),"globe"!==this.transform.projection.name&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?o=i.getVisibleUnwrappedCoordinates(this._source.tileID).map(i=>new cr(i.canonical.z,i.wrap,i.canonical.z,i.canonical.x,i.canonical.y)):(o=i.coveringTiles({tileSize:r||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!n,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(o=o.filter(i=>this._source.hasTile(i)))):o=[];const s=this._updateRetainedTiles(o);if(cE(this._source.type)&&0!==o.length){const a={},l={},c=Object.keys(s);for(const h of c){const u=s[h],d=this._tiles[h];if(!d||d.fadeEndTime&&d.fadeEndTime<=ex.now())continue;const p=this.findLoadedParent(u,Math.max(u.overscaledZ-cw.maxOverzooming,this._source.minzoom));p&&(this._addTile(p.tileID),a[p.tileID.key]=p.tileID),l[h]=u}const f=o[o.length-1].overscaledZ;for(const m in this._tiles){const _=this._tiles[m];if(s[m]||!_.hasData())continue;let g=_.tileID;for(;g.overscaledZ>f;){g=g.scaledTo(g.overscaledZ-1);const y=this._tiles[g.key];if(y&&y.hasData()&&l[g.key]){s[m]=_.tileID;break}}}for(const x in a)s[x]||(this._coveredTiles[x]=!0,s[x]=a[x])}for(const v in s)this._tiles[v].clearFadeHold();const b=function(i,r){const n=[];for(const o in i)o in r||n.push(o);return n}(this._tiles,s);for(const w of b){const T=this._tiles[w];T.hasSymbolBuckets&&!T.holdingForFade()?T.setHoldDuration(this.map._fadeDuration):T.hasSymbolBuckets&&!T.symbolFadeFinished()||this._removeTile(+w)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(const i in this._tiles)this._tiles[i].holdingForFade()&&this._removeTile(+i)}_updateRetainedTiles(i){const r={};if(0===i.length)return r;const n={},o=i.reduce((i,r)=>Math.min(i,r.overscaledZ),1/0),s=i[0].overscaledZ,a=Math.max(s-cw.maxOverzooming,this._source.minzoom),l=Math.max(s+cw.maxUnderzooming,this._source.minzoom),c={};for(const h of i){const u=this._addTile(h);r[h.key]=h,u.hasData()||o=this._source.maxzoom){const f=d.children(this._source.maxzoom)[0],m=this.getTile(f);if(m&&m.hasData()){r[f.key]=f;continue}}else{const _=d.children(this._source.maxzoom);if(r[_[0].key]&&r[_[1].key]&&r[_[2].key]&&r[_[3].key])continue}let g=p.wasRequested();for(let y=d.overscaledZ-1;y>=a;--y){const x=d.scaledTo(y);if(n[x.key]||(n[x.key]=!0,(p=this.getTile(x))||!g||(p=this._addTile(x)),p&&(r[x.key]=x,g=p.wasRequested(),p.hasData())))break}}return r}_updateLoadedParentTileCache(){for(const i in this._loadedParentTiles={},this._tiles){const r=[];let n,o=this._tiles[i].tileID;for(;o.overscaledZ>0;){if(o.key in this._loadedParentTiles){n=this._loadedParentTiles[o.key];break}r.push(o.key);const s=o.scaledTo(o.overscaledZ-1);if(n=this._getLoadedTile(s))break;o=s}for(const a of r)this._loadedParentTiles[a]=n}}_addTile(i){let r=this._tiles[i.key];if(r)return r;(r=this._cache.getAndRemove(i))&&(this._setTileReloadTimer(i.key,r),r.tileID=i,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[i.key]&&(clearTimeout(this._cacheTimers[i.key]),delete this._cacheTimers[i.key],this._setTileReloadTimer(i.key,r)));const n=Boolean(r);if(!n){const o=this.map?this.map.painter:null,s="raster"===this._source.type||"raster-dem"===this._source.type;r=new cW(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,o,s),this._loadTile(r,this._tileLoaded.bind(this,r,i.key,r.state))}return r?(r.uses++,this._tiles[i.key]=r,n||this._source.fire(new te("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r):null}_setTileReloadTimer(i,r){i in this._timers&&(clearTimeout(this._timers[i]),delete this._timers[i]);const n=r.getExpiryTimeout();n&&(this._timers[i]=setTimeout(()=>{this._reloadTile(i,"expired"),delete this._timers[i]},n))}_removeTile(i){const r=this._tiles[i];r&&(r.uses--,delete this._tiles[i],this._timers[i]&&(clearTimeout(this._timers[i]),delete this._timers[i]),r.uses>0||(r.hasData()&&"reloading"!==r.state?this._cache.add(r.tileID,r,r.getExpiryTimeout()):(r.aborted=!0,this._abortTile(r),this._unloadTile(r))))}clearTiles(){for(const i in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(+i);this._source._clear&&this._source._clear(),this._cache.reset()}tilesIn(i,r,n){const o=[],s=this.transform;if(!s)return o;for(const a in this._tiles){const l=this._tiles[a];if(n&&l.clearQueryDebugViz(),l.holdingForFade())continue;const c=i.containsTile(l,s,r);c&&o.push(c)}return o}getVisibleCoordinates(i){const r=this.getRenderableIds(i).map(i=>this._tiles[i].tileID);for(const n of r)n.projMatrix=this.transform.calculateProjMatrix(n.toUnwrapped());return r}hasTransition(){if(this._source.hasTransition())return!0;if(cE(this._source.type))for(const i in this._tiles){const r=this._tiles[i];if(void 0!==r.fadeEndTime&&r.fadeEndTime>=ex.now())return!0}return!1}setFeatureState(i,r,n){this._state.updateState(i=i||"_geojsonTileLayer",r,n)}removeFeatureState(i,r,n){this._state.removeFeatureState(i=i||"_geojsonTileLayer",r,n)}getFeatureState(i,r){return this._state.getState(i=i||"_geojsonTileLayer",r)}setDependencies(i,r,n){const o=this._tiles[i];o&&o.setDependencies(r,n)}reloadTilesForDependencies(i,r){for(const n in this._tiles)this._tiles[n].hasDependency(i,r)&&this._reloadTile(+n,"reloading");this._cache.filter(n=>!n.hasDependency(i,r))}_preloadTiles(i,r){const n=new Map,o=Array.isArray(i)?i:[i],s=this.map.painter.terrain,a=this.usedForTerrain&&s?s.getScaledDemTileSize():this._source.tileSize;for(const l of o){const c=l.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 h of c)n.set(h.key,h);this.usedForTerrain&&l.updateElevation(!1)}const u=Array.from(n.values()),d="raster"===this._source.type||"raster-dem"===this._source.type;X(u,(i,r)=>{const n=new cW(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,this.map.painter,d);this._loadTile(n,i=>{"raster-dem"===this._source.type&&n.dem&&this._backfillDEM(n),r(i,n)})},r)}}function cT(i,r){const n=Math.abs(2*i.wrap)-+(i.wrap<0),o=Math.abs(2*r.wrap)-+(r.wrap<0);return i.overscaledZ-r.overscaledZ||o-n||r.canonical.y-i.canonical.y||r.canonical.x-i.canonical.x}function cE(i){return"raster"===i||"image"===i||"video"===i}cw.maxOverzooming=10,cw.maxUnderzooming=3;class cS{constructor(i,r,n){this._demTile=i,this._dem=this._demTile.dem,this._scale=r,this._offset=n}static create(i,r,n){const o=n||i.findDEMTileFor(r);if(!o||!o.dem)return;const s=o.dem,a=o.tileID,l=1<=0&&d[3]>=0&&c.insert(l,d[0],d[1],d[2],d[3])}}loadVTLayers(){if(!this.vtLayers)for(const i in this.vtLayers=new aa.VectorTile(new aV(this.rawTileData)).layers,this.sourceLayerCoder=new cc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={},this.vtLayers)this.vtFeatures[i]=[];return this.vtLayers}query(i,r,n,o){let s;this.loadVTLayers();const a=i.params||{},l=rh(a.filter),c=i.tileResult,h=i.transform,u=c.bufferedTilespaceBounds,d=this.grid.query(u.min.x,u.min.y,u.max.x,u.max.y,(i,r,n,o)=>sp(c.bufferedTilespaceGeometry,i,r,n,o));d.sort(cA);let p=null;h.elevation&&d.length>0&&(p=cS.create(h.elevation,this.tileID));const f={};for(let m=0;m(y||(y=si(r,this.tileID.canonical,i.tileTransform)),n.queryIntersectsFeature(c,r,o,y,this.z,i.transform,i.pixelPosMatrix,p,s)))}return f}loadMatchingFeature(i,r,n,o,s,a,l,c,h){const{featureIndex:u,bucketIndex:d,sourceLayerIndex:p,layoutVertexArrayOffset:f}=r,m=this.bucketLayerIDs[d];if(o&&!function(i,r){for(let n=0;n=0)return!0;return!1}(o,m))return;const _=this.sourceLayerCoder.decode(p),g=this.vtLayers[_].feature(u);if(n.needGeometry){const y=sr(g,!0);if(!n.filter(new nk(this.tileID.overscaledZ),y,this.tileID.canonical))return}else if(!n.filter(new nk(this.tileID.overscaledZ),g))return;const x=this.getId(g,_);for(let v=0;vo.indexOf(b))continue;const w=a[b];if(!w)continue;let T={};void 0!==x&&c&&(T=c.getState(w.sourceLayer||"_geojsonTileLayer",x));const E=H({},l[b]);E.paint=cM(E.paint,w.paint,g,T,s),E.layout=cM(E.layout,w.layout,g,T,s);const S=!h||h(g,w,T,f);if(!S)continue;const I=new ch(g,this.z,this.x,this.y,x);I.layer=E;let M=i[b];void 0===M&&(M=i[b]=[]),M.push({featureIndex:u,feature:I,intersectionZ:S})}}lookupSymbolFeatures(i,r,n,o,s,a,l,c){const h={};this.loadVTLayers();const u=rh(s);for(const d of i)this.loadMatchingFeature(h,{bucketIndex:n,sourceLayerIndex:o,featureIndex:d,layoutVertexArrayOffset:0},u,a,l,c,r);return h}loadFeature(i){const{featureIndex:r,sourceLayerIndex:n}=i;this.loadVTLayers();const o=this.sourceLayerCoder.decode(n),s=this.vtFeatures[o];if(s[r])return s[r];const a=this.vtLayers[o].feature(r);return s[r]=a,a}hasLayer(i){for(const r of this.bucketLayerIDs)for(const n of r)if(i===n)return!0;return!1}getId(i,r){let n=i.id;return this.promoteId&&"boolean"==typeof(n=i.properties["string"==typeof this.promoteId?this.promoteId:this.promoteId[r]])&&(n=Number(n)),n}}function cM(i,r,n,o,s){return er(i,(i,a)=>{const l=r instanceof nU?r.get(a):null;return l&&l.evaluate?l.evaluate(n,o,s):l})}function cA(i,r){return r-i}r$("FeatureIndex",cI,{omit:["rawTileData","sourceLayerCoder"]});var cC=nK([{name:"a_pos",type:"Int16",components:2}]);const cz=new Uint16Array(8184);for(let ck=0;ck<2046;ck++){let cP=ck+2,cD=0,cL=0,cB=0,cR=0,cF=0,cO=0;for(1&cP?cB=cR=cF=32:cD=cL=cO=32;(cP>>=1)>1;){const cU=cD+cB>>1,cV=cL+cR>>1;1&cP?(cB=cD,cR=cL,cD=cF,cL=cO):(cD=cB,cL=cR,cB=cF,cR=cO),cF=cU,cO=cV}const cN=4*ck;cz[cN+0]=cD,cz[cN+1]=cL,cz[cN+2]=cB,cz[cN+3]=cR}const cj=new Uint16Array(2178),cG=new Uint8Array(1089),cZ=new Uint16Array(1089);function c$(i){return 0===i?-.03125:32===i?.03125:0}var cq=nK([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const cX={type:2,extent:8192,loadGeometry:()=>[[new l(0,0),new l(8193,0),new l(8193,8193),new l(0,8193),new l(0,0)]]};class cW{constructor(i,r,n,o,s){this.tileID=i,this.uid=Y(),this.uses=0,this.tileSize=r,this.tileZoom=n,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=s,this.expiredRequestCount=0,this.state="loading",o&&o.transform&&(this.projection=o.transform.projection)}registerFadeDuration(i){const r=i+this.timeAdded;rr.getLayer(i)).filter(Boolean);if(0!==s.length)for(const a of(o.layers=s,o.stateDependentLayerIds&&(o.stateDependentLayers=o.stateDependentLayerIds.map(i=>s.filter(r=>r.id===i)[0])),s))n[a.id]=o}return n}(i.buckets,r.style),this.hasSymbolBuckets=!1,this.buckets){const s=this.buckets[o];if(s instanceof lj){if(this.hasSymbolBuckets=!0,!n)break;s.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const a in this.buckets){const l=this.buckets[a];if(l instanceof lj&&l.hasRTLText){this.hasRTLText=!0,nz.isLoading()||nz.isLoaded()||"deferred"!==nA()||nC();break}}for(const c in this.queryPadding=0,this.buckets){const h=this.buckets[c];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(c).queryRadius(h))}i.imageAtlas&&(this.imageAtlas=i.imageAtlas),i.glyphAtlasImage&&(this.glyphAtlasImage=i.glyphAtlasImage),i.lineAtlas&&(this.lineAtlas=i.lineAtlas)}else this.collisionBoxArray=new od}unloadVectorData(){if(this.hasData()){for(const i in this.buckets)this.buckets[i].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._tileDebugIndexBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this.globeGridBuffer&&(this.globeGridBuffer.destroy(),this.globeGridBuffer=null),this.globePoleBuffer&&(this.globePoleBuffer.destroy(),this.globePoleBuffer=null),this.latestFeatureIndex=null,this.state="unloaded"}}getBucket(i){return this.buckets[i.id]}upload(i){for(const r in this.buckets){const n=this.buckets[r];n.uploadPending()&&n.upload(i)}const o=i.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new l5(i,this.imageAtlas.image,o.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new l5(i,this.glyphAtlasImage,o.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new l5(i,this.lineAtlas.image,o.ALPHA),this.lineAtlas.uploaded=!0)}prepare(i){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(i,this.imageAtlasTexture)}queryRenderedFeatures(i,r,n,o,s,a,l,c){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:o,pixelPosMatrix:l,transform:a,params:s,tileTransform:this.tileTransform},i,r,n):{}}querySourceFeatures(i,r){const n=this.latestFeatureIndex;if(!n||!n.rawTileData)return;const o=n.loadVTLayers(),s=r?r.sourceLayer:"",a=o._geojsonTileLayer||o[s];if(!a)return;const l=rh(r&&r.filter),{z:c,x:h,y:u}=this.tileID.canonical,d={z:c,x:h,y:u};for(let p=0;po)s=!1;else if(r){if(this.expirationTime=0;d--){const p=4*d,f=cz[p+0],m=cz[p+1],_=cz[p+2],g=cz[p+3],y=f+_>>1,x=m+g>>1,v=y+x-m,b=x+f-y,w=33*m+f,T=33*g+_,E=33*x+y,S=Math.hypot((cj[2*w+0]+cj[2*T+0])/2-cj[2*E+0],(cj[2*w+1]+cj[2*T+1])/2-cj[2*E+1])>=16;if(cG[E]=cG[E]||(S?1:0),d<1022){const I=(m+b>>1)*33+(f+v>>1),M=(g+b>>1)*33+(_+v>>1);cG[E]=cG[E]||cG[I]||cG[M]}}const A=new nQ,C=new oe;let z=0;function k(i,r){const n=33*r+i;return 0===cZ[n]&&(A.emplaceBack(cj[2*n+0],cj[2*n+1],8192*i/32,8192*r/32),cZ[n]=++z),cZ[n]-1}function P(i,r,n,o,s,a){const l=i+n>>1,c=r+o>>1;if(Math.abs(i-s)+Math.abs(r-a)>1&&cG[33*c+l])P(s,a,i,r,l,c),P(n,o,s,a,l,c);else{const h=k(i,r),u=k(n,o),d=k(s,a);C.emplaceBack(h,u,d)}}return P(0,0,32,32,32,0),P(32,32,0,0,0,32),{vertices:A,indices:C}}(this.tileID.canonical,r);n=a.vertices,o=a.indices}else{for(const{x:l,y:c}of(n=new nQ,o=new oe,s))n.emplaceBack(l,c,0,0);const h=sR(n.int16,void 0,4);for(let u=0;u{const o=65*n+r;i.emplaceBack(o+1,o,o+65),i.emplaceBack(o+65,o+65+1,o+1)};for(let n=0;n<64;n++)for(let o=0;o<64;o++)r(o,n);return i}getWirefameBuffer(i){if(!this.wireframeSegments){const r=this._createWireframeGrid();this.wireframeIndexBuffer=i.createIndexBuffer(r),this.wireframeSegments=o0.simpleSegment(0,0,4096,r.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}_createWireframeGrid(){const i=new oa,r=(r,n)=>{const o=65*n+r;i.emplaceBack(o,o+1),i.emplaceBack(o,o+65),i.emplaceBack(o,o+65+1)};for(let n=0;n<64;n++)for(let o=0;o<64;o++)r(o,n);return i}}function he(i,r){if(!r.isReprojectedInTileSpace)return{scale:1<b&&(w(i,u,o,s,c,h),w(u,n,c,h,a,l))}w(p,f,o,a,s,a),w(f,m,s,a,s,l),w(m,_,s,l,o,l),w(_,p,o,l,o,a),g-=b,y-=b,x+=b,v+=b;const T=1/Math.max(x-g,v-y);return{scale:T,x:g*T,y:y*T,x2:x*T,y2:v*T,projection:r}}class ht{constructor(i){const r={},n=[];for(const o in i){const s=i[o],a=r[o]={};for(const l in s.glyphs){const c=s.glyphs[+l];if(!c||0===c.bitmap.width||0===c.bitmap.height)continue;const h=c.metrics.localGlyph?2:1,u={x:0,y:0,w:c.bitmap.width+2*h,h:c.bitmap.height+2*h};n.push(u),a[l]=u}}const{w:d,h:p}=a4(n),f=new sC({width:d||1,height:p||1});for(const m in i){const _=i[m];for(const g in _.glyphs){const y=_.glyphs[+g];if(!y||0===y.bitmap.width||0===y.bitmap.height)continue;const x=r[m][g],v=y.metrics.localGlyph?2:1;sC.copy(y.bitmap,f,{x:0,y:0},{x:x.x+v,y:x.y+v},y.bitmap)}}this.image=f,this.positions=r}}r$("GlyphAtlas",ht);class hi{constructor(i){this.tileID=new cr(i.tileID.overscaledZ,i.tileID.wrap,i.tileID.canonical.z,i.tileID.canonical.x,i.tileID.canonical.y),this.tileZoom=i.tileZoom,this.uid=i.uid,this.zoom=i.zoom,this.canonical=i.tileID.canonical,this.pixelRatio=i.pixelRatio,this.tileSize=i.tileSize,this.source=i.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=i.showCollisionBoxes,this.collectResourceTiming=!!i.collectResourceTiming,this.returnDependencies=!!i.returnDependencies,this.promoteId=i.promoteId,this.enableTerrain=!!i.enableTerrain,this.isSymbolTile=i.isSymbolTile,this.tileTransform=he(i.tileID.canonical,i.projection),this.projection=i.projection}parse(i,r,n,o,s){let a,c,h,u;this.status="parsing",this.data=i,this.collisionBoxArray=new od;const d=new cc(Object.keys(i.layers).sort()),p=new cI(this.tileID,this.promoteId);p.bucketLayerIDs=[];const f={},m=new l4(256,256),_={featureIndex:p,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:m,availableImages:n},g=r.familiesBySource[this.source];for(const y in g){const x=i.layers[y];if(!x)continue;let v=!1,b=!1;for(const w of g[y])"symbol"===w[0].type?v=!0:b=!0;if(!0===this.isSymbolTile&&!v||!1===this.isSymbolTile&&!b)continue;1===x.version&&ea(`Vector tile source "${this.source}" layer "${y}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const T=d.encode(y),E=[];for(let S=0;S=C.maxzoom||"none"!==C.visibility&&(hr(A,this.zoom,n),(f[C.id]=C.createBucket({index:p.bucketLayerIDs.length,layers:A,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:T,sourceID:this.source,enableTerrain:this.enableTerrain,availableImages:n})).populate(E,_,this.tileID.canonical,this.tileTransform),p.bucketLayerIDs.push(A.map(i=>i.id)))}}m.trim();const z={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},k=er(_.glyphDependencies,i=>Object.keys(i).map(Number));Object.keys(k).length?o.send("getGlyphs",{uid:this.uid,stacks:k},(i,r)=>{a||(a=i,c=r,L.call(this))},void 0,!1,z):c={};const P=Object.keys(_.iconDependencies);P.length?o.send("getImages",{icons:P,source:this.source,tileID:this.tileID,type:"icons"},(i,r)=>{a||(a=i,h=r,L.call(this))},void 0,!1,z):h={};const D=Object.keys(_.patternDependencies);function L(){if(a)return s(a);if(c&&h&&u){const i=new ht(c),r=new a8(h,u);for(const o in f){const d=f[o];d instanceof lj?(hr(d.layers,this.zoom,n),function(i,r,n,o,s,a,c,h,u,d){i.createArrays(),i.tilePixelRatio=8192/(512*i.overscaling),i.compareText={},i.iconsNeedLinear=!1;const p=i.layers[0].layout,f=i.layers[0]._unevaluatedLayout._values,m={};if("composite"===i.textSizeData.kind){const{minZoom:_,maxZoom:g}=i.textSizeData;m.compositeTextSizes=[f["text-size"].possiblyEvaluate(new nk(_),h),f["text-size"].possiblyEvaluate(new nk(g),h)]}if("composite"===i.iconSizeData.kind){const{minZoom:y,maxZoom:x}=i.iconSizeData;m.compositeIconSizes=[f["icon-size"].possiblyEvaluate(new nk(y),h),f["icon-size"].possiblyEvaluate(new nk(x),h)]}m.layoutTextSize=f["text-size"].possiblyEvaluate(new nk(u+1),h),m.layoutIconSize=f["icon-size"].possiblyEvaluate(new nk(u+1),h),m.textMaxSize=f["text-size"].possiblyEvaluate(new nk(18),h);const v="map"===p.get("text-rotation-alignment")&&"point"!==p.get("symbol-placement"),b=p.get("text-size");for(const w of i.features){const T=p.get("text-font").evaluate(w,{},h).join(","),E=b.evaluate(w,{},h),S=m.layoutTextSize.evaluate(w,{},h),I=(m.layoutIconSize.evaluate(w,{},h),{horizontal:{},vertical:void 0}),M=w.text;let A,C=[0,0];if(M){const z=M.toString(),k=24*p.get("text-letter-spacing").evaluate(w,{},h),P=24*p.get("text-line-height").evaluate(w,{},h),D=!function(i){for(const r of i){var n;if(rJ(n=r.charCodeAt(0))||rQ(n)||r0(n)||nc(n)||np(n))return!1}return!0}(z)?0:k,L=p.get("text-anchor").evaluate(w,{},h),B=p.get("text-variable-anchor");if(!B){const R=p.get("text-radial-offset").evaluate(w,{},h);C=R?lz(L,[24*R,lA]):p.get("text-offset").evaluate(w,{},h).map(i=>24*i)}let F=v?"center":p.get("text-justify").evaluate(w,{},h);const U=p.get("symbol-placement"),V="point"===U,N="point"===U?24*p.get("text-max-width").evaluate(w,{},h):0,j=o=>{i.allowVerticalPlacement&&nm(z)&&(I.vertical=lt(M,r,n,s,T,N,P,L,o,D,C,a9.vertical,!0,U,S,E))};if(!v&&B){const G="auto"===F?B.map(i=>lk(i)):[F];let Z=!1;for(let $=0;$=0||!nm(z)){const W=lt(M,r,n,s,T,N,P,L,F,D,C,a9.horizontal,!1,U,S,E);W&&(I.horizontal[F]=W)}j("point"===U?"left":F)}}let H=!1;if(w.icon&&w.icon.name){const K=o[w.icon.name];K&&(A=function(i,r,n){const{horizontalAlign:o,verticalAlign:s}=ll(n),a=r[0]-i.displaySize[0]*o,l=r[1]-i.displaySize[1]*s;return{image:i,top:l,bottom:l+i.displaySize[1],left:a,right:a+i.displaySize[0]}}(s[w.icon.name],p.get("icon-offset").evaluate(w,{},h),p.get("icon-anchor").evaluate(w,{},h)),H=K.sdf,void 0===i.sdfIcons?i.sdfIcons=K.sdf:i.sdfIcons!==K.sdf&&ea("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(K.pixelRatio!==i.pixelRatio||0!==p.get("icon-rotate").constantOr(1))&&(i.iconsNeedLinear=!0))}const Y=lD(I.horizontal)||I.vertical;i.iconsInText||(i.iconsInText=!!Y&&Y.iconsInText),(Y||A)&&function(i,r,n,o,s,a,c,h,u,d,p,f,m){let _,g=a.textMaxSize.evaluate(r,{},f);void 0===g&&(g=c);const y=i.layers[0].layout,x=y.get("icon-offset").evaluate(r,{},f),v=lD(n.horizontal)||n.vertical,b=c/24,w=i.tilePixelRatio*g/24,T=i.tilePixelRatio*y.get("symbol-spacing"),E=y.get("text-padding")*i.tilePixelRatio,S=y.get("icon-padding")*i.tilePixelRatio,I=y.get("text-max-angle")*O,M="map"===y.get("text-rotation-alignment")&&"point"!==y.get("symbol-placement"),A="map"===y.get("icon-rotation-alignment")&&"point"!==y.get("symbol-placement"),C=y.get("symbol-placement"),z=T/2,k=y.get("icon-text-fit");o&&"none"!==k&&(i.allowVerticalPlacement&&n.vertical&&(_=lh(o,n.vertical,k,y.get("icon-text-fit-padding"),x,b)),v&&(o=lh(o,v,k,y.get("icon-text-fit-padding"),x,b)));const P=(l,c,h)=>{if(c.x<0||c.x>=8192||c.y<0||c.y>=8192)return;const{x:g,y:y,z:v}=m.projectTilePoint(c.x,c.y,h),b=new lu(g,y,v,0,void 0);!function(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I){const M=i.addToLineVertexArray(r,o);let A,C,z,k,P,D,L,B=0,R=0,F=0,O=0,U=-1,V=-1;const N={};let j=oM(""),G=0,Z=0;if(void 0===h._unevaluatedLayout.getValue("text-radial-offset")?[G,Z]=h.layout.get("text-offset").evaluate(w,{},I).map(i=>24*i):(G=24*h.layout.get("text-radial-offset").evaluate(w,{},I),Z=lA),i.allowVerticalPlacement&&s.vertical){const $=s.vertical;if(_)D=lB($),c&&(L=lB(c));else{const q=h.layout.get("text-rotate").evaluate(w,{},I)+90;z=lL(u,n,r,d,p,f,$,m,q,g),c&&(k=lL(u,n,r,d,p,f,c,x,q))}}if(a){const X=h.layout.get("icon-rotate").evaluate(w,{},I),W="none"!==h.layout.get("icon-text-fit"),H=lb(a,X,E,W),K=c?lb(c,X,E,W):void 0;C=lL(u,n,r,d,p,f,a,x,X),B=4*H.length;const Y=i.iconSizeData;let J=null;"source"===Y.kind?(J=[128*h.layout.get("icon-size").evaluate(w,{},I)])[0]>32640&&ea(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`):"composite"===Y.kind&&((J=[128*T.compositeIconSizes[0].evaluate(w,{},I),128*T.compositeIconSizes[1].evaluate(w,{},I)])[0]>32640||J[1]>32640)&&ea(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`),i.addSymbols(i.icon,H,J,b,v,w,!1,n,r,M.lineStartIndex,M.lineLength,-1,S,I),U=i.icon.placedSymbolArray.length-1,K&&(R=4*K.length,i.addSymbols(i.icon,K,J,b,v,w,a9.vertical,n,r,M.lineStartIndex,M.lineLength,-1,S,I),V=i.icon.placedSymbolArray.length-1)}for(const Q in s.horizontal){const ee=s.horizontal[Q];A||(j=oM(ee.text),_?P=lB(ee):A=lL(u,n,r,d,p,f,ee,m,h.layout.get("text-rotate").evaluate(w,{},I),g));const et=1===ee.positionedLines.length;if(F+=lP(i,n,r,ee,l,h,_,w,g,M,s.vertical?a9.horizontal:a9.horizontalOnly,et?Object.keys(s.horizontal):[Q],N,U,T,S,I),et)break}s.vertical&&(O+=lP(i,n,r,s.vertical,l,h,_,w,g,M,a9.vertical,["vertical"],N,V,T,S,I));let ei=-1;const er=(i,r)=>i?Math.max(i,r):r;ei=er(P,ei),ei=er(D,ei),ei=er(L,ei);const en=ei>-1?1:0;i.glyphOffsetArray.length>=lj.MAX_GLYPHS&&ea("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==w.sortKey&&i.addToSortKeyRanges(i.symbolInstances.length,w.sortKey),i.symbolInstances.emplaceBack(n.x,n.y,n.z,r.x,r.y,N.right>=0?N.right:-1,N.center>=0?N.center:-1,N.left>=0?N.left:-1,N.vertical>=0?N.vertical:-1,U,V,j,void 0!==A?A:i.collisionBoxArray.length,void 0!==A?A+1:i.collisionBoxArray.length,void 0!==z?z:i.collisionBoxArray.length,void 0!==z?z+1:i.collisionBoxArray.length,void 0!==C?C:i.collisionBoxArray.length,void 0!==C?C+1:i.collisionBoxArray.length,k||i.collisionBoxArray.length,k?k+1:i.collisionBoxArray.length,d,F,O,B,R,en,0,G,Z,ei)}(i,c,b,l,n,o,s,_,i.layers[0],i.collisionBoxArray,r.index,r.sourceLayerIndex,i.index,E,M,u,0,S,A,x,r,a,d,p,f)};if("line"===C)for(const D of l_(r.geometry,0,0,8192,8192)){const L=function(i,r,n,o,s,a,l,c,h){const u=lf(o,a,l),d=lm(o,s),p=d*l,f=0===i[0].x||i[0].x===h||0===i[0].y||i[0].y===h;return r-p=0&&T=0&&E=0&&m+d<=p){const S=new lu(T,E,0,b,g);S._round(),s&&!ld(r,S,l,s,a)||_.push(S)}}f+=v}return h||_.length||c||(_=i(r,f/2,o,s,a,l,c,!0,u)),_}(i,f?r/2*c%r:(d/2+2*a)*l*c%r,r,u,n,p,f,!1,h)}(D,T,I,n.vertical||v,o,24,w,i.overscaling,8192);for(const B of L)v&&function(i,r,n,o){const s=i.compareText;if(r in s){const a=s[r];for(let l=a.length-1;l>=0;l--)if(o.dist(a[l])1){const F=function(i,r,n,o,s,a){const l=lf(n,24,a),c=lm(n,o)*a;let h=0;const u=lp(i)/2;for(let d=0;du){const _=(u-h)/m,g=io(p.x,f.x,_),y=io(p.y,f.y,_),x=new lu(g,y,0,f.angleTo(p),d);return!l||ld(i,x,c,l,r)?x:void 0}h+=m}}(R,I,n.vertical||v,o,24,w);F&&P(R,F,f)}}else if("Polygon"===r.type)for(const U of s2(r.geometry,0)){const V=function(i,r=1,n=!1){let o=1/0,s=1/0,a=-1/0,c=-1/0;const h=i[0];for(let u=0;ua)&&(a=d.x),(!u||d.y>c)&&(c=d.y)}const p=Math.min(a-o,c-s);let f=p/2;const m=new lE([],lI);if(0===p)return new l(o,s);for(let _=o;_y.d||!y.d)&&(y=v,n&&console.log("found best %d after %d probes",Math.round(1e4*v.d)/1e4,x)),v.max-y.d<=r||(f=v.h/2,m.push(new lM(v.p.x-f,v.p.y-f,f,i)),m.push(new lM(v.p.x+f,v.p.y-f,f,i)),m.push(new lM(v.p.x-f,v.p.y+f,f,i)),m.push(new lM(v.p.x+f,v.p.y+f,f,i)),x+=4)}return n&&(console.log(`num probes: ${x}`),console.log(`best distance: ${y.d}`)),y.p}(U,16);P(U[0],new lu(V.x,V.y,0,0,void 0),f)}else if("LineString"===r.type)for(const N of r.geometry)P(N,new lu(N[0].x,N[0].y,0,0,void 0),f);else if("Point"===r.type)for(const j of r.geometry)for(const G of j)P([G],new lu(G.x,G.y,0,0,void 0),f)}(i,w,I,A,o,m,S,0,C,H,c,h,d)}a&&i.generateCollisionDebugBuffers(u,i.collisionBoxArray)}(d,c,i.positions,h,r.iconPositions,this.showCollisionBoxes,n,this.tileID.canonical,this.tileZoom,this.projection),d.projection=this.projection.name):d.hasPattern&&(d instanceof aw||d instanceof s6||d instanceof au)&&(hr(d.layers,this.zoom,n),d.addFeatures(_,this.tileID.canonical,r.patternPositions,n))}this.status="done",s(null,{buckets:W(f).filter(i=>!i.isEmpty()),featureIndex:p,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:i.image,lineAtlas:m,imageAtlas:r,glyphMap:this.returnDependencies?c:null,iconMap:this.returnDependencies?h:null,glyphPositions:this.returnDependencies?i.positions:null})}}D.length?o.send("getImages",{icons:D,source:this.source,tileID:this.tileID,type:"patterns"},(i,r)=>{a||(a=i,u=r,L.call(this))},void 0,!1,z):u={},L.call(this)}}function hr(i,r,n){const o=new nk(r);for(const s of i)s.recalculate(o,n)}class hn{constructor(i){this.entries={},this.scheduler=i}request(i,r,n,o){const s=this.entries[i]=this.entries[i]||{callbacks:[]};if(s.result){const[a,l]=s.result;return this.scheduler?this.scheduler.add(()=>{o(a,l)},r):o(a,l),()=>{}}return s.callbacks.push(o),s.cancel||(s.cancel=n((n,o)=>{for(const a of(s.result=[n,o],s.callbacks))this.scheduler?this.scheduler.add(()=>{a(n,o)},r):a(n,o);setTimeout(()=>delete this.entries[i],3e3)})),()=>{s.result||(s.callbacks=s.callbacks.filter(i=>i!==o),s.callbacks.length||(s.cancel(),delete this.entries[i]))}}}function ho(i,r,n){const o=JSON.stringify(i.request);return i.data&&(this.deduped.entries[o]={result:[null,i.data]}),this.deduped.request(o,{type:"parseTile",isSymbolTile:i.isSymbolTile,zoom:i.tileZoom},r=>{const o=e3(i.request,(i,o,s,a)=>{i?r(i):o&&r(null,{vectorTile:n?void 0:new aa.VectorTile(new aV(o)),rawData:o,cacheControl:s,expires:a})});return()=>{o.cancel(),r()}},r)}const hs=p(new Float64Array(16));class ha{constructor(i,r){this._tr=i,this._worldSize=r}createInversionMatrix(){return hs}createTileMatrix(i){let r,n,o;const s=i.canonical,a=p(new Float64Array(16)),l=this._tr.projection;if(l.isReprojectedInTileSpace){const c=he(s,l);r=1,n=c.x+i.wrap*c.scale,o=c.y,_(a,a,[r/c.scale,r/c.scale,this._tr.pixelsPerMeter/this._worldSize])}else r=this._worldSize/this._tr.zoomScale(s.z),n=(s.x+Math.pow(2,s.z)*i.wrap)*r,o=s.y*r;return m(a,a,[n,o,0]),_(a,a,[r/8192,r/8192,1]),a}pointCoordinate(i,r,n){const o=this._tr.horizonLineFromTop(!1),s=new l(i,Math.max(o,r));return this._tr.rayIntersectionCoordinate(this._tr.pointRayIntersection(s,n))}upVector(){return[0,0,1]}upVectorScale(){return 1}}const hl=Math.sqrt(3)/2,hc=Math.PI/2;function hh(i){return Math.tan((hc+i)/2)}const hu=85.051129*O,hd=85.051129*O,hp={albers:{name:"albers",range:[4,7],center:[-96,37.5],parallels:[29.5,45.5],zAxisUnit:"meters",conic:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],initializeConstants(){if(this.constants&&F(this.parallels,this.constants.parallels))return;const i=Math.sin(this.parallels[0]*O),r=(i+Math.sin(this.parallels[1]*O))/2,n=1+i*(2*r-i),o=Math.sqrt(n)/r;this.constants={n:r,c:n,r0:o,parallels:this.parallels}},project(i,r){this.initializeConstants();const n=(i-this.center[0])*O,{n:o,c:s,r0:a}=this.constants,l=Math.sqrt(s-2*o*Math.sin(r*O))/o;return{x:l*Math.sin(n*o),y:l*Math.cos(n*o)-a,z:0}},unproject(i,r){this.initializeConstants();const{n:n,c:o,r0:s}=this.constants,a=s+r;let l=Math.atan2(i,Math.abs(a))*Math.sign(a);a*n<0&&(l-=Math.PI*Math.sign(i)*Math.sign(a));const c=this.center[0]*O*n;l=q(l,-Math.PI-c,Math.PI-c);const h=l/n*U+this.center[0],u=Math.asin(Z((o-(i*i+a*a)*n*n)/(2*n),-1,1)),d=Z(u*U,-85.051129,85.051129);return new o2(h,d)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},equalEarth:{name:"equalEarth",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r=r/180*Math.PI,i=i/180*Math.PI;const n=Math.asin(hl*Math.sin(r)),o=n*n,s=o*o*o;return{x:.5*(i*Math.cos(n)/(hl*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o)))/Math.PI+.5),y:1-.5*(n*(1.340264+-.081106*o+s*(893e-6+.003796*o))/Math.PI+1),z:0}},unproject(i,r){i=(2*i-.5)*Math.PI;let n=r=(2*(1-r)-1)*Math.PI,o=n*n,s=o*o*o;for(let a,l,c=0;c<12&&(l=n*(1.340264+-.081106*o+s*(893e-6+.003796*o))-r,s=(o=(n=Z(n-(a=l/(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))),-Math.PI/3,Math.PI/3))*n)*o*o,!(1e-12>Math.abs(a)));++c);const h=hl*i*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))/Math.cos(n),u=Math.asin(Math.sin(n)/hl),d=Z(180*h/Math.PI,-180,180),p=Z(180*u/Math.PI,-85.051129,85.051129);return new o2(d,p)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},equirectangular:{name:"equirectangular",supportsWorldCopies:!0,center:[0,0],range:[3.5,7],zAxisUnit:"meters",wrap:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project:(i,r)=>({x:.5+i/360,y:.5-r/360,z:0}),unproject(i,r){const n=Z(360*(.5-r),-85.051129,85.051129);return new o2(360*(i-.5),n)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},lambertConformalConic:{name:"lambertConformalConic",range:[3.5,7],zAxisUnit:"meters",center:[0,30],parallels:[30,30],conic:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],initializeConstants(){if(this.constants&&F(this.parallels,this.constants.parallels))return;const i=this.parallels[0]*O,r=this.parallels[1]*O,n=Math.cos(i),o=i===r?Math.sin(i):Math.log(n/Math.cos(r))/Math.log(hh(r)/hh(i)),s=n*Math.pow(hh(i),o)/o;this.constants={n:o,f:s,parallels:this.parallels}},project(i,r){this.initializeConstants(),r*=O,i=(i-this.center[0])*O;const{n:n,f:o}=this.constants;o>0?r<-hc+1e-6&&(r=-hc+1e-6):r>hc-1e-6&&(r=hc-1e-6);const s=o/Math.pow(hh(r),n),a=s*Math.sin(n*i),l=o-s*Math.cos(n*i);return{x:.5*(a/Math.PI+.5),y:1-.5*(l/Math.PI+.5),z:0}},unproject(i,r){this.initializeConstants(),i=(2*i-.5)*Math.PI,r=(2*(1-r)-.5)*Math.PI;const{n:n,f:o}=this.constants,s=o-r,a=Math.sign(s),l=Math.sign(n)*Math.sqrt(i*i+s*s);let c=Math.atan2(i,Math.abs(s))*a;s*n<0&&(c-=Math.PI*Math.sign(i)*a);const h=Z(c/n*U+this.center[0],-180,180),u=Z((2*Math.atan(Math.pow(o/l,1/n))-hc)*U,-85.051129,85.051129);return new o2(h,u)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},mercator:{name:"mercator",wrap:!0,requiresDraping:!1,supportsWorldCopies:!0,supportsTerrain:!0,supportsFog:!0,supportsFreeCamera:!0,zAxisUnit:"meters",center:[0,0],project:(i,r)=>({x:o4(i),y:o6(r),z:0}),unproject(i,r){const n=o8(i),o=o9(r);return new o2(n,o)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},naturalEarth:{name:"naturalEarth",center:[0,0],range:[3.5,7],isReprojectedInTileSpace:!0,zAxisUnit:"meters",unsupportedLayers:["custom"],project(i,r){const n=(r*=O)*r,o=n*n;return{x:.5*((i*=O)*(.8707-.131979*n+o*(o*(.003971*n-.001529*o)-.013791))/Math.PI+.5),y:1-.5*(r*(1.007226+n*(.015085+o*(.028874*n-.044475-.005916*o)))/Math.PI+1),z:0}},unproject(i,r){i=(2*i-.5)*Math.PI;let n=r=(2*(1-r)-1)*Math.PI,o=25,s=0,a=n*n;do{a=n*n;const l=a*a;s=(n*(1.007226+a*(.015085+l*(.028874*a-.044475-.005916*l)))-r)/(1.007226+a*(.045255+l*(.259866*a-.311325-.005916*11*l))),n=Z(n-s,-hu,hu)}while(Math.abs(s)>1e-6&&--o>0)a=n*n;const c=Z(i/(.8707+a*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979))*U,-180,180),h=n*U;return new o2(c,h)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},winkelTripel:{name:"winkelTripel",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r*=O,i*=O;const n=Math.cos(r),o=2/Math.PI,s=Math.acos(n*Math.cos(i/2)),a=Math.sin(s)/s,l=.5*(i*o+2*n*Math.sin(i/2)/a)||0,c=.5*(r+Math.sin(r)/a)||0;return{x:.5*(l/Math.PI+.5),y:1-.5*(c/Math.PI+1),z:0}},unproject(i,r){let n=i=(2*i-.5)*Math.PI,o=r=(2*(1-r)-1)*Math.PI,s=25,a=0,l=0;do{const c=Math.cos(o),h=Math.sin(o),u=2*h*c,d=h*h,p=c*c,f=Math.cos(n/2),m=Math.sin(n/2),_=2*f*m,g=m*m,y=1-p*f*f,x=y?1/y:0,v=y?Math.acos(c*f)*Math.sqrt(1/y):0,b=.5*(2*v*c*m+2*n/Math.PI)-i,w=.5*(v*h+o)-r,T=.5*x*(p*g+v*c*f*d)+1/Math.PI,E=x*(_*u/4-v*h*m),S=.125*x*(u*m-v*h*p*_),I=.5*x*(d*f+v*g*c)+.5,M=E*S-I*T;a=(w*E-b*I)/M,l=(b*S-w*T)/M,n=Z(n-a,-Math.PI,Math.PI),o=Z(o-l,-hd,hd)}while((Math.abs(a)>1e-6||Math.abs(l)>1e-6)&&--s>0)return new o2(n*U,o*U)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)}};i.ARRAY_TYPE=u,i.AUTH_ERR_MSG=ez,i.Aabb=sb,i.Actor=class{constructor(i,r,n){this.target=i,this.parent=r,this.mapId=n,this.callbacks={},this.cancelCallbacks={},et(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=ec()?i:h,this.scheduler=new l7}send(i,r,n,o,s=!1,a){const l=Math.round(1e18*Math.random()).toString(36).substring(0,10);n&&(n.metadata=a,this.callbacks[l]=n);const c=eg(this.globalScope)?void 0:[];return this.target.postMessage({id:l,type:i,hasCallback:!!n,targetMapId:o,mustQueue:s,sourceMapId:this.mapId,data:rH(r,c)},c),{cancel:()=>{n&&delete this.callbacks[l],this.target.postMessage({id:l,type:"",targetMapId:o,sourceMapId:this.mapId})}}}receive(i){const r=i.data,n=r.id;if(n&&(!r.targetMapId||this.mapId===r.targetMapId)){if(""===r.type){const o=this.cancelCallbacks[n];delete this.cancelCallbacks[n],o&&o.cancel()}else if(r.mustQueue||ec()){const s=this.callbacks[n];this.cancelCallbacks[n]=this.scheduler.add(()=>this.processTask(n,r),s&&s.metadata||{type:"message"})}else this.processTask(n,r)}}processTask(i,r){if(""===r.type){const n=this.callbacks[i];delete this.callbacks[i],n&&(r.error?n(rK(r.error)):n(null,rK(r.data)))}else{const o=eg(this.globalScope)?void 0:[],s=r.hasCallback?(r,n)=>{delete this.cancelCallbacks[i],this.target.postMessage({id:i,type:"",sourceMapId:this.mapId,error:r?rH(r):null,data:rH(n,o)},o)}:i=>{},a=rK(r.data);if(this.parent[r.type])this.parent[r.type](r.sourceMapId,a,s);else if(this.parent.getWorkerSource){const l=r.type.split(".");this.parent.getWorkerSource(r.sourceMapId,l[0],a.source)[l[1]](a,s)}else s(Error(`Could not find function ${r.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},i.CanonicalTileID=ct,i.Color=tC,i.ColorMode=ca,i.CullFaceMode=cl,i.DEMData=cv,i.DataConstantProperty=nV,i.DedupedRequest=hn,i.DepthMode=co,i.EXTENT=8192,i.Elevation=class{getAtPointOrZero(i,r=0){return this.getAtPoint(i,r)||0}getAtPoint(i,r,n=!0){null==r&&(r=null);const o=this._source();if(!o||i.y<0||i.y>1)return r;const s=o.getSource().maxzoom,a=1<{const o=this.getAtTileOffset(i,n.x,n.y),s=r.upVector(i.canonical,n.x,n.y);return I(s,s,o*r.upVectorScale(i.canonical)),s}}getForTilePoints(i,r,n,o){const s=cS.create(this,i,o);return!!s&&(r.forEach(i=>{i[2]=this.exaggeration()*s.getElevationAt(i[0],i[1],n)}),!0)}getMinMaxForTile(i){const r=this.findDEMTileFor(i);if(!r||!r.dem)return null;const n=r.dem.tree,o=r.tileID,s=1<Math.abs(o))return!1;const s=((i[0]-this.pos[0])*r[0]+(i[1]-this.pos[1])*r[1]+(i[2]-this.pos[2])*r[2])/o;return n[0]=this.pos[0]+this.dir[0]*s,n[1]=this.pos[1]+this.dir[1]*s,n[2]=this.pos[2]+this.dir[2]*s,!0}closestPointOnSphere(i,r,n){var o,s,a,l,c,h,u;if(s=(o=this.pos)[0],a=o[1],l=o[2],c=i[0],h=i[1],u=i[2],Math.abs(s-c)<=1e-6*Math.max(1,Math.abs(s),Math.abs(c))&&Math.abs(a-h)<=1e-6*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(l-u)<=1e-6*Math.max(1,Math.abs(l),Math.abs(u))||0===r)return n[0]=n[1]=n[2]=0,!1;const[d,p,f]=this.dir,m=this.pos[0]-i[0],_=this.pos[1]-i[1],g=this.pos[2]-i[2],y=d*d+p*p+f*f,x=2*(m*d+_*p+g*f),v=x*x-4*y*(m*m+_*_+g*g-r*r);if(v<0){const b=Math.max(-x/2,0),w=m+d*b,T=_+p*b,E=g+f*b,S=Math.hypot(w,T,E);return n[0]=w*r/S,n[1]=T*r/S,n[2]=E*r/S,!1}{const I=(-x-Math.sqrt(v))/(2*y);if(I<0){const M=Math.hypot(m,_,g);return n[0]=m*r/M,n[1]=_*r/M,n[2]=g*r/M,!1}return n[0]=m+d*I,n[1]=_+p*I,n[2]=g+f*I,!0}}},i.RequestManager=class{constructor(i,r,n){this._transformRequestFn=i,this._customAccessToken=r,this._silenceAuthErrors=!!n,this._createSkuToken()}_createSkuToken(){const i=function(){let i="";for(let r=0;r<10;r++)i+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1","01",i].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=i.token,this._skuTokenExpiresAt=i.tokenExpiresAt}_isSkuTokenExpired(){return Date.now()>this._skuTokenExpiresAt}transformRequest(i,r){return this._transformRequestFn&&this._transformRequestFn(i,r)||{url:i}}normalizeStyleURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/styles/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeGlyphsURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/fonts/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeSourceURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/v4/${n.authority}.json`,n.params.push("secure"),this._makeAPIURL(n,this._customAccessToken||r)}normalizeSpriteURL(i,r,n,o){const s=eL(i);return ek(i)?(s.path=`/styles/v1${s.path}/sprite${r}${n}`,this._makeAPIURL(s,this._customAccessToken||o)):(s.path+=`${r}${n}`,eB(s))}normalizeTileURL(i,r,n){if(this._isSkuTokenExpired()&&this._createSkuToken(),i&&!ek(i))return i;const o=eL(i);o.path=o.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${r||n&&"raster"!==o.authority&&512===n?"@2x":""}${eT.supported?".webp":"$1"}`),"raster"===o.authority?o.path=`/${ev.RASTER_URL_PREFIX}${o.path}`:(o.path=o.path.replace(/^.+\/v4\//,"/"),o.path=`/${ev.TILE_URL_VERSION}${o.path}`);const s=this._customAccessToken||function(i){for(const r of i){const n=r.match(/^access_token=(.*)$/);if(n)return n[1]}return null}(o.params)||ev.ACCESS_TOKEN;return ev.REQUIRE_ACCESS_TOKEN&&s&&this._skuToken&&o.params.push(`sku=${this._skuToken}`),this._makeAPIURL(o,s)}canonicalizeTileURL(i,r){const n=eL(i);if(!n.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!n.path.match(/\.[\w]+$/))return i;let o="mapbox://";n.path.match(/^\/raster\/v1\//)?o+=`raster/${n.path.replace(`/${ev.RASTER_URL_PREFIX}/`,"")}`:o+=`tiles/${n.path.replace(`/${ev.TILE_URL_VERSION}/`,"")}`;let s=n.params;return r&&(s=s.filter(i=>!i.match(/^access_token=/))),s.length&&(o+=`?${s.join("&")}`),o}canonicalizeTileset(i,r){const n=!!r&&ek(r),o=[];for(const s of i.tiles||[])eP(s)?o.push(this.canonicalizeTileURL(s,n)):o.push(s);return o}_makeAPIURL(i,r){const n="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",o=eL(ev.API_URL);if(i.protocol=o.protocol,i.authority=o.authority,"http"===i.protocol){const s=i.params.indexOf("secure");s>=0&&i.params.splice(s,1)}if("/"!==o.path&&(i.path=`${o.path}${i.path}`),!ev.REQUIRE_ACCESS_TOKEN)return eB(i);if(r=r||ev.ACCESS_TOKEN,!this._silenceAuthErrors){if(!r)throw Error(`An API access token is required to use Mapbox GL. ${n}`);if("s"===r[0])throw Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${n}`)}return i.params=i.params.filter(i=>-1===i.indexOf("access_token")),i.params.push(`access_token=${r||""}`),eB(i)}},i.ResourceType=eQ,i.SegmentVector=o0,i.SourceCache=cw,i.StencilMode=cs,i.StructArrayLayout1ui2=ol,i.StructArrayLayout2f1f2i16=n9,i.StructArrayLayout2i4=nJ,i.StructArrayLayout2ui4=oa,i.StructArrayLayout3f12=n1,i.StructArrayLayout3ui6=oe,i.StructArrayLayout4i8=nQ,i.Texture=l5,i.Tile=cW,i.Transitionable=nL,i.Uniform1f=oP,i.Uniform1i=class extends ok{constructor(i,r){super(i,r),this.current=0}set(i){this.current!==i&&(this.current=i,this.gl.uniform1i(this.location,i))}},i.Uniform2f=class extends ok{constructor(i,r){super(i,r),this.current=[0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]||(this.current=i,this.gl.uniform2f(this.location,i[0],i[1]))}},i.Uniform3f=class extends ok{constructor(i,r){super(i,r),this.current=[0,0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]&&i[2]===this.current[2]||(this.current=i,this.gl.uniform3f(this.location,i[0],i[1],i[2]))}},i.Uniform4f=oD,i.UniformColor=oL,i.UniformMatrix2f=class extends ok{constructor(i,r){super(i,r),this.current=oF}set(i){for(let r=0;r<4;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix2fv(this.location,!1,i);break}}},i.UniformMatrix3f=class extends ok{constructor(i,r){super(i,r),this.current=oR}set(i){for(let r=0;r<9;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix3fv(this.location,!1,i);break}}},i.UniformMatrix4f=class extends ok{constructor(i,r){super(i,r),this.current=oB}set(i){if(i[12]!==this.current[12]||i[0]!==this.current[0])return this.current=i,void this.gl.uniformMatrix4fv(this.location,!1,i);for(let r=1;r<16;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix4fv(this.location,!1,i);break}}},i.UnwrappedTileID=ci,i.ValidationError=tn,i.VectorTileWorkerSource=class extends ti{constructor(i,r,n,o,s){super(),this.actor=i,this.layerIndex=r,this.availableImages=n,this.loadVectorData=s||ho,this.loading={},this.loaded={},this.deduped=new hn(i.scheduler),this.isSpriteLoaded=o,this.scheduler=i.scheduler}loadTile(i,r){const n=i.uid,o=i&&i.request,s=o&&o.collectResourceTiming,a=this.loading[n]=new hi(i);a.abort=this.loadVectorData(i,(l,c)=>{const h=!this.loading[n];if(delete this.loading[n],h||l||!c)return a.status="done",h||(this.loaded[n]=a),r(l);const u=c.rawData,d={};c.expires&&(d.expires=c.expires),c.cacheControl&&(d.cacheControl=c.cacheControl),a.vectorTile=c.vectorTile||new aa.VectorTile(new aV(u));const p=()=>{a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,(i,n)=>{if(i||!n)return r(i);const a={};if(s){const l=l9(o);l.length>0&&(a.resourceTiming=JSON.parse(JSON.stringify(l)))}r(null,H({rawTileData:u.slice(0)},n,d,a))})};this.isSpriteLoaded?p():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(p,{type:"parseTile",isSymbolTile:i.isSymbolTile,zoom:i.tileZoom}):p()}),this.loaded=this.loaded||{},this.loaded[n]=a})}reloadTile(i,r){const n=this.loaded,o=i.uid,s=this;if(n&&n[o]){const a=n[o];a.showCollisionBoxes=i.showCollisionBoxes,a.enableTerrain=!!i.enableTerrain,a.projection=i.projection;const l=(i,n)=>{const o=a.reloadCallback;o&&(delete a.reloadCallback,a.parse(a.vectorTile,s.layerIndex,this.availableImages,s.actor,o)),r(i,n)};"parsing"===a.status?a.reloadCallback=l:"done"===a.status&&(a.vectorTile?a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,l):l())}}abortTile(i,r){const n=i.uid,o=this.loading[n];o&&(o.abort&&o.abort(),delete this.loading[n]),r()}removeTile(i,r){const n=this.loaded,o=i.uid;n&&n[o]&&delete n[o],r()}},i.WritingMode=a9,i.ZoomHistory=rY,i.add=T,i.addDynamicAttributes=lU,i.adjoint=function(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=r[4],c=r[5],h=r[6],u=r[7],d=r[8];return i[0]=l*d-c*u,i[1]=s*u-o*d,i[2]=o*c-s*l,i[3]=c*h-a*d,i[4]=n*d-s*h,i[5]=s*a-n*c,i[6]=a*u-l*h,i[7]=o*h-n*u,i[8]=n*l-o*a,i},i.asyncAll=X,i.bezier=j,i.bindAll=et,i.boundsAttributes=cq,i.bufferConvexPolygon=function(i,r){const n=[];for(let o=0;oeH&&(i.getActor().send("enforceCacheSizeLimit",eW),eJ=0)},i.calculateGlobeMatrix=c9,i.calculateGlobeMercatorMatrix=function(i){const r=i.worldSize,n=Z(i.center.lat,-85.051129,85.051129),o=new l(o4(i.center.lng)*r,o6(n)*r),s=1/o5(i.center.lat)*r,a=i.pixelsPerMeter,c=r/(s/i.pixelsPerMeter),h=p(new Float64Array(16));return m(h,h,[o.x,o.y,0]),_(h,h,[c,c,a]),h},i.clamp=Z,i.clearTileCache=function(i){const r=h.caches.delete(e$);i&&r.catch(i).then(()=>i())},i.clipLine=l_,i.clone=function(i){var r=new u(16);return r[0]=i[0],r[1]=i[1],r[2]=i[2],r[3]=i[3],r[4]=i[4],r[5]=i[5],r[6]=i[6],r[7]=i[7],r[8]=i[8],r[9]=i[9],r[10]=i[10],r[11]=i[11],r[12]=i[12],r[13]=i[13],r[14]=i[14],r[15]=i[15],r},i.clone$1=eo,i.collisionCircleLayout=aP,i.config=ev,i.conjugate=function(i,r){return i[0]=-r[0],i[1]=-r[1],i[2]=-r[2],i[3]=r[3],i},i.create=function(){var i=new u(16);return u!=Float32Array&&(i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=0,i[12]=0,i[13]=0,i[14]=0),i[0]=1,i[5]=1,i[10]=1,i[15]=1,i},i.create$1=d,i.createExpression=i9,i.createLayout=nK,i.createStyleLayer=function(i){return"custom"===i.type?new lH(i):new lJ[i.type](i)},i.cross=z,i.degToRad=function(i){return i*O},i.div=function(i,r,n){return i[0]=r[0]/n[0],i[1]=r[1]/n[1],i[2]=r[2]/n[2],i},i.dot=C,i.ease=G,i.easeCubicInOut=N,i.emitValidationErrors=rU,i.endsWith=ei,i.enforceCacheSizeLimit=function(i){eK(),eq&&eq.then(r=>{r.keys().then(n=>{for(let o=0;oa&&(o+=(i[s]-a)*(i[s]-a)),r[s]Math.abs(r.parallels[0]+r.parallels[1])){let n=function(i){const r=Math.max(.01,Math.cos(i*O)),n=1/(2*Math.max(Math.PI*r,1/r));return{wrap:!0,supportsWorldCopies:!0,unsupportedLayers:["custom"],project(i,o){const s=Math.sin(o*O)/r;return{x:i*O*r*n+.5,y:-s*n+.5,z:0}},unproject(i,o){const s=Z((i-.5)/n*U/r,-180,180),a=Math.asin(Z(-(o-.5)/n*r,-1,1)),l=Z(a*U,-85.051129,85.051129);return new o2(s,l)}}}(r.parallels[0]);if("lambertConformalConic"===r.name){const{project:o,unproject:s}=hp.mercator;n={wrap:!0,supportsWorldCopies:!0,project:o,unproject:s}}return H({},i,r,n)}return H({},i,r)}(r,i):r},i.getRTLTextPluginStatus=nA,i.getReferrer=e1,i.getTilePoint=function(i,{x:r,y:n},o=0){return new l(((r-o)*i.scale-i.x)*8192,(n*i.scale-i.y)*8192)},i.getTileVec3=function(i,r,n=0){return w(((r.x-n)*i.scale-i.x)*8192,(r.y*i.scale-i.y)*8192,o7(r.z,r.y))},i.getVideo=function(i,r){const n=h.document.createElement("video");n.muted=!0,n.onloadstart=function(){r(null,n)};for(let o=0;o0&&(l=1/Math.sqrt(l)),i[0]=n*l,i[1]=o*l,i[2]=s*l,i[3]=a*l,i},i.number=io,i.ortho=function(i,r,n,o,s,a,l){var c=1/(r-n),h=1/(o-s),u=1/(a-l);return i[0]=-2*c,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=-2*h,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=2*u,i[11]=0,i[12]=(r+n)*c,i[13]=(s+o)*h,i[14]=(l+a)*u,i[15]=1,i},i.pbf=aV,i.perspective=function(i,r,n,o,s){var a,l=1/Math.tan(r/2);return i[0]=l/n,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=l,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=-1,i[12]=0,i[13]=0,i[15]=0,null!=s&&s!==1/0?(i[10]=(s+o)*(a=1/(o-s)),i[14]=2*s*o*a):(i[10]=-1,i[14]=-2*o),i},i.pick=function(i,r){const n={};for(let o=0;othis._layers[i.id]),h=c[0];if("none"===h.visibility)continue;const u=h.source||"";let d=this.familiesBySource[u];d||(d=this.familiesBySource[u]={});const p=h.sourceLayer||"_geojsonTileLayer";let f=d[p];f||(f=d[p]=[]),f.push(c)}}}const{ImageBitmap:n}=i.window;class o{loadTile(r,o){const{uid:s,encoding:a,rawImageData:l,padding:c,buildQuadTree:h}=r,u=n&&l instanceof n?this.getImageData(l,c):l;o(null,new i.DEMData(s,u,a,c<1,h))}getImageData(r,n){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(r.width,r.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=r.width,this.offscreenCanvas.height=r.height,this.offscreenCanvasContext.drawImage(r,0,0,r.width,r.height);const o=this.offscreenCanvasContext.getImageData(-n,-n,r.width+2*n,r.height+2*n);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new i.RGBAImage({width:o.width,height:o.height},o.data)}}var s,a=function i(r,n){var o,s=r&&r.type;if("FeatureCollection"===s)for(o=0;o=Math.abs(c)?n-h+c:c-h+n,n=h}n+o>=0!=!!r&&i.reverse()}const h=i.vectorTile.VectorTileFeature.prototype.toGeoJSON;class u{constructor(r){this._feature=r,this.extent=i.EXTENT,this.type=r.type,this.properties=r.tags,"id"in r&&!isNaN(r.id)&&(this.id=parseInt(r.id,10))}loadGeometry(){if(1===this._feature.type){const r=[];for(const n of this._feature.geometry)r.push([new i.pointGeometry(n[0],n[1])]);return r}{const o=[];for(const s of this._feature.geometry){const a=[];for(const l of s)a.push(new i.pointGeometry(l[0],l[1]));o.push(a)}return o}}toGeoJSON(i,r,n){return h.call(this,i,r,n)}}class d{constructor(r){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=i.EXTENT,this.length=r.length,this._features=r}feature(i){return new u(this._features[i])}}var p=i.vectorTile.VectorTileFeature;function f(i,r){this.options=r||{},this.features=i,this.length=i.length}function m(i,r){this.id="number"==typeof i.id?i.id:void 0,this.type=i.type,this.rawGeometry=1===i.type?[i.geometry]:i.geometry,this.properties=i.tags,this.extent=r||4096}f.prototype.feature=function(i){return new m(this.features[i],this.options.extent)},m.prototype.loadGeometry=function(){var r=this.rawGeometry;this.geometry=[];for(var n=0;n>31}function T(i,r){for(var n=i.loadGeometry(),o=i.type,s=0,a=0,l=n.length,c=0;ci[0],C=i=>i[1];class z{constructor(i,r=A,n=C,o=64,s=Float64Array){this.nodeSize=o,this.points=i;const a=i.length<65536?Uint16Array:Uint32Array,l=this.ids=new a(i.length),c=this.coords=new s(2*i.length);for(let h=0;h>1;(function i(r,n,o,s,a,l){for(;a>s;){if(a-s>600){const c=a-s+1,h=o-s+1,u=Math.log(c),d=.5*Math.exp(2*u/3),p=.5*Math.sqrt(u*d*(c-d)/c)*(h-c/2<0?-1:1);i(r,n,o,Math.max(s,Math.floor(o-h*d/c+p)),Math.min(a,Math.floor(o+(c-h)*d/c+p)),l)}const f=n[2*o+l];let m=s,_=a;for(S(r,n,s,o),n[2*a+l]>f&&S(r,n,s,a);m<_;){for(S(r,n,m,_),m++,_--;n[2*m+l]f;)_--}n[2*s+l]===f?S(r,n,s,_):S(r,n,++_,a),_<=o&&(s=_+1),o<=_&&(a=_-1)}})(r,n,c,s,a,l%2),i(r,n,o,s,c-1,l+1),i(r,n,o,c+1,a,l+1)}(l,c,o,0,l.length-1,0)}range(i,r,n,o){return function(i,r,n,o,s,a,l){let c,h;const u=[0,i.length-1,0],d=[];for(;u.length;){const p=u.pop(),f=u.pop(),m=u.pop();if(f-m<=l){for(let _=m;_<=f;_++)c=r[2*_],h=r[2*_+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[_]);continue}const g=Math.floor((m+f)/2);c=r[2*g],h=r[2*g+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[g]);const y=(p+1)%2;(0===p?n<=c:o<=h)&&(u.push(m),u.push(g-1),u.push(y)),(0===p?s>=c:a>=h)&&(u.push(g+1),u.push(f),u.push(y))}return d}(this.ids,this.coords,i,r,n,o,this.nodeSize)}within(i,r,n){return function(i,r,n,o,s,a){const l=[0,i.length-1,0],c=[],h=s*s;for(;l.length;){const u=l.pop(),d=l.pop(),p=l.pop();if(d-p<=a){for(let f=p;f<=d;f++)M(r[2*f],r[2*f+1],n,o)<=h&&c.push(i[f]);continue}const m=Math.floor((p+d)/2),_=r[2*m],g=r[2*m+1];M(_,g,n,o)<=h&&c.push(i[m]);const y=(u+1)%2;(0===u?n-s<=_:o-s<=g)&&(l.push(p),l.push(m-1),l.push(y)),(0===u?n+s>=_:o+s>=g)&&(l.push(m+1),l.push(d),l.push(y))}return c}(this.ids,this.coords,i,r,n,this.nodeSize)}}const k={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:i=>i},P=Math.fround||(s=new Float32Array(1),i=>(s[0]=+i,s[0]));class D{constructor(i){this.options=O(Object.create(k),i),this.trees=Array(this.options.maxZoom+1)}load(i){const{log:r,minZoom:n,maxZoom:o,nodeSize:s}=this.options;r&&console.time("total time");const a=`prepare ${i.length} points`;r&&console.time(a),this.points=i;let l=[];for(let c=0;c=n;h--){const u=+Date.now();l=this._cluster(l,h),this.trees[h]=new z(l,U,V,s,Float32Array),r&&console.log("z%d: %d clusters in %dms",h,l.length,+Date.now()-u)}return r&&console.timeEnd("total time"),this}getClusters(i,r){let n=((i[0]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,i[1]));let s=180===i[2]?180:((i[2]+180)%360+360)%360-180;const a=Math.max(-90,Math.min(90,i[3]));if(i[2]-i[0]>=360)n=-180,s=180;else if(n>s){const l=this.getClusters([n,o,180,a],r),c=this.getClusters([-180,o,s,a],r);return l.concat(c)}const h=this.trees[this._limitZoom(r)],u=h.range(R(n),F(a),R(s),F(o)),d=[];for(const p of u){const f=h.points[p];d.push(f.numPoints?L(f):this.points[f.index])}return d}getChildren(i){const r=this._getOriginId(i),n=this._getOriginZoom(i),o="No cluster with the specified id.",s=this.trees[n];if(!s)throw Error(o);const a=s.points[r];if(!a)throw Error(o);const l=this.options.radius/(this.options.extent*Math.pow(2,n-1)),c=s.within(a.x,a.y,l),h=[];for(const u of c){const d=s.points[u];d.parentId===i&&h.push(d.numPoints?L(d):this.points[d.index])}if(0===h.length)throw Error(o);return h}getLeaves(i,r,n){const o=[];return this._appendLeaves(o,i,r=r||10,n=n||0,0),o}getTile(i,r,n){const o=this.trees[this._limitZoom(i)],s=Math.pow(2,i),{extent:a,radius:l}=this.options,c=l/a,h=(n-c)/s,u=(n+1+c)/s,d={features:[]};return this._addTileFeatures(o.range((r-c)/s,h,(r+1+c)/s,u),o.points,r,n,s,d),0===r&&this._addTileFeatures(o.range(1-c/s,h,1,u),o.points,s,n,s,d),r===s-1&&this._addTileFeatures(o.range(0,h,c/s,u),o.points,-1,n,s,d),d.features.length?d:null}getClusterExpansionZoom(i){let r=this._getOriginZoom(i)-1;for(;r<=this.options.maxZoom;){const n=this.getChildren(i);if(r++,1!==n.length)break;i=n[0].properties.cluster_id}return r}_appendLeaves(i,r,n,o,s){const a=this.getChildren(r);for(const l of a){const c=l.properties;if(c&&c.cluster?s+c.point_count<=o?s+=c.point_count:s=this._appendLeaves(i,c.cluster_id,n,o,s):sr&&(m+=g.numPoints||1)}if(m>f&&m>=l){var y,x,v,b;let w=u.x*f,T=u.y*f,E=a&&f>1?this._map(u,!0):null;const S=(h<<5)+(r+1)+this.points.length;for(const I of p){const M=d.points[I];if(M.zoom<=r)continue;M.zoom=r;const A=M.numPoints||1;w+=M.x*A,T+=M.y*A,M.parentId=S,a&&(E||(E=this._map(u,!0)),a(E,this._map(M)))}u.parentId=S,n.push((y=w/m,x=T/m,v=m,b=E,{x:P(y),y:P(x),zoom:1/0,id:S,parentId:-1,numPoints:v,properties:b}))}else if(n.push(u),m>1)for(const C of p){const z=d.points[C];z.zoom<=r||(z.zoom=r,n.push(z))}}return n}_getOriginId(i){return i-this.points.length>>5}_getOriginZoom(i){return(i-this.points.length)%32}_map(i,r){if(i.numPoints)return r?O({},i.properties):i.properties;const n=this.points[i.index].properties,o=this.options.map(n);return r&&o===n?O({},o):o}}function L(i){return{type:"Feature",id:i.id,properties:B(i),geometry:{type:"Point",coordinates:[360*(i.x-.5),function(i){const r=(180-360*i)*Math.PI/180;return 360*Math.atan(Math.exp(r))/Math.PI-90}(i.y)]}}}function B(i){const r=i.numPoints,n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r;return O(O({},i.properties),{cluster:!0,cluster_id:i.id,point_count:r,point_count_abbreviated:n})}function R(i){return i/360+.5}function F(i){const r=Math.sin(i*Math.PI/180),n=.5-.25*Math.log((1+r)/(1-r))/Math.PI;return n<0?0:n>1?1:n}function O(i,r){for(const n in r)i[n]=r[n];return i}function U(i){return i.x}function V(i){return i.y}function N(i,r,n,o){var s={id:void 0===i?null:i,type:r,geometry:n,tags:o,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(i){var r=i.geometry,n=i.type;if("Point"===n||"MultiPoint"===n||"LineString"===n)j(i,r);else if("Polygon"===n||"MultiLineString"===n)for(var o=0;o0&&(l+=o?(s*u-h*a)/2:Math.sqrt(Math.pow(h-s,2)+Math.pow(u-a,2))),s=h,a=u}var d=r.length-3;r[2]=1,function i(r,n,o,s){for(var a,l=s,c=o-n>>1,h=o-n,u=r[n],d=r[n+1],p=r[o],f=r[o+1],m=n+3;m1?(n=s,o=a):h>0&&(n+=l*h,o+=c*h)}return(l=i-n)*l+(c=r-o)*c}(r[m],r[m+1],u,d,p,f);if(_>l)a=m,l=_;else if(_===l){var g=Math.abs(m-c);gs&&(a-n>3&&i(r,n,a,s),r[a+2]=l,o-a>3&&i(r,a,o,s))}(r,0,d,n),r[d+2]=1,r.size=Math.abs(l),r.start=0,r.end=r.size}function q(i,r,n,o){for(var s=0;s1?1:n}function H(i,r,n,o,s,a,l,c){if(o/=r,a>=(n/=r)&&l=o)return null;for(var h=[],u=0;u=n&&_=o)){var g=[];if("Point"===f||"MultiPoint"===f)(function(i,r,n,o,s){for(var a=0;a=n&&l<=o&&(r.push(i[a]),r.push(i[a+1]),r.push(i[a+2]))}})(p,g,n,o,s);else if("LineString"===f)K(p,g,n,o,s,!1,c.lineMetrics);else if("MultiLineString"===f)J(p,g,n,o,s,!1);else if("Polygon"===f)J(p,g,n,o,s,!0);else if("MultiPolygon"===f)for(var y=0;yn&&(h=d(u,m,_,y,x,n),l&&(u.start=p+c*h)):v>o?b=n&&(h=d(u,m,_,y,x,n),w=!0),b>o&&v<=o&&(h=d(u,m,_,y,x,o),w=!0),!a&&w&&(l&&(u.end=p+c*h),r.push(u),u=Y(i)),l&&(p+=c)}var T=i.length-3;m=i[T],_=i[T+1],g=i[T+2],(v=0===s?m:_)>=n&&v<=o&&Q(u,m,_,g),T=u.length-3,a&&T>=3&&(u[T]!==u[0]||u[T+1]!==u[1])&&Q(u,u[0],u[1],u[2]),u.length&&r.push(u)}function Y(i){var r=[];return r.size=i.size,r.start=i.start,r.end=i.end,r}function J(i,r,n,o,s,a){for(var l=0;l0&&r.size<(s?l:o))n.numPoints+=r.length/3;else{for(var c=[],h=0;hl)&&(n.numSimplified++,c.push(r[h]),c.push(r[h+1])),n.numPoints++;s&&function(i,r){for(var n=0,o=0,s=i.length,a=s-2;o0===r)for(o=0,s=i.length;o24)throw Error("maxZoom should be in the 0-24 range");if(r.promoteId&&r.generateId)throw Error("promoteId and generateId cannot be used together.");var u=function(i,r){var n=[];if("FeatureCollection"===i.type)for(var o=0;o1&&console.time("creation"),f=this.tiles[p]=function(i,r,n,o,s){for(var a=r===s.maxZoom?0:s.tolerance/((1<l.maxX&&(l.maxX=d),p>l.maxY&&(l.maxY=p)}return l}(i,r,n,o,h),this.tileCoords.push({z:r,x:n,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",r,n,o,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));var m="z"+r;this.stats[m]=(this.stats[m]||0)+1,this.total++}if(f.source=i,s){if(r===h.maxZoom||r===s)continue;var _=1<1&&console.time("clipping");var g,y,x,v,b,w,T=.5*h.buffer/h.extent,E=.5-T,S=.5+T,I=1+T;g=y=x=v=null,b=H(i,d,n-T,n+S,0,f.minX,f.maxX,h),w=H(i,d,n+E,n+I,0,f.minX,f.maxX,h),i=null,b&&(g=H(b,d,o-T,o+S,1,f.minY,f.maxY,h),y=H(b,d,o+E,o+I,1,f.minY,f.maxY,h),b=null),w&&(x=H(w,d,o-T,o+S,1,f.minY,f.maxY,h),v=H(w,d,o+E,o+I,1,f.minY,f.maxY,h),w=null),u>1&&console.timeEnd("clipping"),c.push(g||[],r+1,2*n,2*o),c.push(y||[],r+1,2*n,2*o+1),c.push(x||[],r+1,2*n+1,2*o),c.push(v||[],r+1,2*n+1,2*o+1)}}},ea.prototype.getTile=function(i,r,n){var o=this.options,s=o.extent,a=o.debug;if(i<0||i>24)return null;var l=1<1&&console.log("drilling down to z%d-%d-%d",i,r,n);for(var h,u=i,d=r,p=n;!h&&u>0;)u--,d=Math.floor(d/2),p=Math.floor(p/2),h=this.tiles[el(u,d,p)];return h&&h.source?(a>1&&console.log("found parent tile z%d-%d-%d",u,d,p),a>1&&console.time("drilling down"),this.splitTile(h.source,u,d,p,i,r,n),a>1&&console.timeEnd("drilling down"),this.tiles[c]?en(this.tiles[c],s):null):null};class eh extends i.VectorTileWorkerSource{constructor(i,r,n,o,s){super(i,r,n,o,ec),s&&(this.loadGeoJSON=s)}loadData(r,n){const o=r&&r.request,s=o&&o.collectResourceTiming;this.loadGeoJSON(r,(l,c)=>{if(l||!c)return n(l);if("object"!=typeof c)return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`));{a(c,!0);try{var h,u;if(r.filter){const d=i.createExpression(r.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===d.result)throw Error(d.value.map(i=>`${i.key}: ${i.message}`).join(", "));const p=c.features.filter(i=>d.value.evaluate({zoom:0},i));c={type:"FeatureCollection",features:p}}this._geoJSONIndex=r.cluster?new D(function({superclusterOptions:r,clusterProperties:n}){if(!n||!r)return r;const o={},s={},a={accumulated:null,zoom:0},l={properties:null},c=Object.keys(n);for(const h of c){const[u,d]=n[h],p=i.createExpression(d),f=i.createExpression("string"==typeof u?[u,["accumulated"],["get",h]]:u);o[h]=p.value,s[h]=f.value}return r.map=i=>{l.properties=i;const r={};for(const n of c)r[n]=o[n].evaluate(a,l);return r},r.reduce=(i,r)=>{for(const n of(l.properties=r,c))a.accumulated=i[n],i[n]=s[n].evaluate(a,l)},r}(r)).load(c.features):(h=c,u=r.geojsonVtOptions,new ea(h,u))}catch(f){return n(f)}this.loaded={};const m={};if(s){const _=i.getPerformanceMeasurement(o);_&&(m.resourceTiming={},m.resourceTiming[r.source]=JSON.parse(JSON.stringify(_)))}n(null,m)}})}reloadTile(i,r){const n=this.loaded;return n&&n[i.uid]?super.reloadTile(i,r):this.loadTile(i,r)}loadGeoJSON(r,n){if(r.request)i.getJSON(r.request,n);else{if("string"!=typeof r.data)return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`));try{return n(null,JSON.parse(r.data))}catch(o){return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(i,r){try{r(null,this._geoJSONIndex.getClusterExpansionZoom(i.clusterId))}catch(n){r(n)}}getClusterChildren(i,r){try{r(null,this._geoJSONIndex.getChildren(i.clusterId))}catch(n){r(n)}}getClusterLeaves(i,r){try{r(null,this._geoJSONIndex.getLeaves(i.clusterId,i.limit,i.offset))}catch(n){r(n)}}}class eu{constructor(r){this.self=r,this.actor=new i.Actor(r,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=i.getProjection({name:"mercator"}),this.workerSourceTypes={vector:i.VectorTileWorkerSource,geojson:eh},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(i,r)=>{if(this.workerSourceTypes[i])throw Error(`Worker source with name "${i}" already registered.`);this.workerSourceTypes[i]=r},this.self.registerRTLTextPlugin=r=>{if(i.plugin.isParsed())throw Error("RTL text plugin already registered.");i.plugin.applyArabicShaping=r.applyArabicShaping,i.plugin.processBidirectionalText=r.processBidirectionalText,i.plugin.processStyledBidirectionalText=r.processStyledBidirectionalText}}clearCaches(i,r,n){delete this.layerIndexes[i],delete this.availableImages[i],delete this.workerSources[i],delete this.demWorkerSources[i],n()}checkIfReady(i,r,n){n()}setReferrer(i,r){this.referrer=r}spriteLoaded(r,n){for(const o in this.isSpriteLoaded[r]=n,this.workerSources[r]){const s=this.workerSources[r][o];for(const a in s)s[a]instanceof i.VectorTileWorkerSource&&(s[a].isSpriteLoaded=n,s[a].fire(new i.Event("isSpriteLoaded")))}}setImages(i,r,n){for(const o in this.availableImages[i]=r,this.workerSources[i]){const s=this.workerSources[i][o];for(const a in s)s[a].availableImages=r}n()}enableTerrain(i,r,n){this.terrain=r,n()}setProjection(r,n){this.projections[r]=i.getProjection(n)}setLayers(i,r,n){this.getLayerIndex(i).replace(r),n()}updateLayers(i,r,n){this.getLayerIndex(i).update(r.layers,r.removedIds),n()}loadTile(r,n,o){const s=this.enableTerrain?i.extend({enableTerrain:this.terrain},n):n;s.projection=this.projections[r]||this.defaultProjection,this.getWorkerSource(r,n.type,n.source).loadTile(s,o)}loadDEMTile(r,n,o){const s=this.enableTerrain?i.extend({buildQuadTree:this.terrain},n):n;this.getDEMWorkerSource(r,n.source).loadTile(s,o)}reloadTile(r,n,o){const s=this.enableTerrain?i.extend({enableTerrain:this.terrain},n):n;s.projection=this.projections[r]||this.defaultProjection,this.getWorkerSource(r,n.type,n.source).reloadTile(s,o)}abortTile(i,r,n){this.getWorkerSource(i,r.type,r.source).abortTile(r,n)}removeTile(i,r,n){this.getWorkerSource(i,r.type,r.source).removeTile(r,n)}removeSource(i,r,n){if(!this.workerSources[i]||!this.workerSources[i][r.type]||!this.workerSources[i][r.type][r.source])return;const o=this.workerSources[i][r.type][r.source];delete this.workerSources[i][r.type][r.source],void 0!==o.removeSource?o.removeSource(r,n):n()}loadWorkerSource(i,r,n){try{this.self.importScripts(r.url),n()}catch(o){n(o.toString())}}syncRTLPluginState(r,n,o){try{i.plugin.setState(n);const s=i.plugin.getPluginURL();if(i.plugin.isLoaded()&&!i.plugin.isParsed()&&null!=s){this.self.importScripts(s);const a=i.plugin.isParsed();o(a?void 0:Error(`RTL Text Plugin failed to import scripts from ${s}`),a)}}catch(l){o(l.toString())}}getAvailableImages(i){let r=this.availableImages[i];return r||(r=[]),r}getLayerIndex(i){let n=this.layerIndexes[i];return n||(n=this.layerIndexes[i]=new r),n}getWorkerSource(i,r,n){return this.workerSources[i]||(this.workerSources[i]={}),this.workerSources[i][r]||(this.workerSources[i][r]={}),this.workerSources[i][r][n]||(this.workerSources[i][r][n]=new this.workerSourceTypes[r]({send:(r,n,o,s,a,l)=>{this.actor.send(r,n,o,i,a,l)},scheduler:this.actor.scheduler},this.getLayerIndex(i),this.getAvailableImages(i),this.isSpriteLoaded[i])),this.workerSources[i][r][n]}getDEMWorkerSource(i,r){return this.demWorkerSources[i]||(this.demWorkerSources[i]={}),this.demWorkerSources[i][r]||(this.demWorkerSources[i][r]=new o),this.demWorkerSources[i][r]}enforceCacheSizeLimit(r,n){i.enforceCacheSizeLimit(n)}getWorkerPerformanceMetrics(i,r,n){n(void 0,void 0)}}return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope&&(self.worker=new eu(self)),eu}),o(["./shared"],function(i){function r(i){var o;return"undefined"!=typeof window&&"undefined"!=typeof document&&!!Array.prototype&&!!Array.prototype.every&&!!Array.prototype.filter&&!!Array.prototype.forEach&&!!Array.prototype.indexOf&&!!Array.prototype.lastIndexOf&&!!Array.prototype.map&&!!Array.prototype.some&&!!Array.prototype.reduce&&!!Array.prototype.reduceRight&&!!Array.isArray&&!!Function.prototype&&!!Function.prototype.bind&&!!Object.keys&&!!Object.create&&!!Object.getPrototypeOf&&!!Object.getOwnPropertyNames&&!!Object.isSealed&&!!Object.isFrozen&&!!Object.isExtensible&&!!Object.getOwnPropertyDescriptor&&!!Object.defineProperty&&!!Object.defineProperties&&!!Object.seal&&!!Object.freeze&&!!Object.preventExtensions&&!!("JSON"in window&&"parse"in JSON&&"stringify"in JSON)&&!!function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var i,r,n=new Blob([""],{type:"text/javascript"}),o=URL.createObjectURL(n);try{r=new Worker(o),i=!0}catch(s){i=!1}return r&&r.terminate(),URL.revokeObjectURL(o),i}()&&"Uint8ClampedArray"in window&&!!ArrayBuffer.isView&&!!function(){var i=document.createElement("canvas");i.width=i.height=1;var r=i.getContext("2d");if(!r)return!1;var n=r.getImageData(0,0,1,1);return n&&n.width===i.width}()&&(void 0===n[o=i&&i.failIfMajorPerformanceCaveat]&&(n[o]=function(i){var n,o,s,a=(n=document.createElement("canvas"),(o=Object.create(r.webGLContextAttributes)).failIfMajorPerformanceCaveat=i,n.getContext("webgl",o)||n.getContext("experimental-webgl",o));if(!a)return!1;try{s=a.createShader(a.VERTEX_SHADER)}catch(l){return!1}return!(!s||a.isContextLost())&&(a.shaderSource(s,"void main() {}"),a.compileShader(s),!0===a.getShaderParameter(s,a.COMPILE_STATUS))}(o)),!!n[o]&&!document.documentMode)}var n={};function o(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=n*a-s*o;return l?(i[0]=a*(l=1/l),i[1]=-o*l,i[2]=-s*l,i[3]=n*l,i):null}function s(i,r){if(Array.isArray(i)){if(!Array.isArray(r)||i.length!==r.length)return!1;for(let n=0;n{i.window.removeEventListener("click",h,!0)},0)},a.mousePos=function(i,r){const n=i.getBoundingClientRect();return u(i,n,r)},a.touchPos=function(i,r){const n=i.getBoundingClientRect(),o=[];for(let s=0;s=0?0:r.button};class d extends i.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new i.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(i){if(this.loaded!==i&&(this.loaded=i,i)){for(const{ids:r,callback:n}of this.requestors)this._notify(r,n);this.requestors=[]}}getImage(i){return this.images[i]}addImage(i,r){this._validate(i,r)&&(this.images[i]=r)}_validate(r,n){let o=!0;return this._validateStretch(n.stretchX,n.data&&n.data.width)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "stretchX" value`))),o=!1),this._validateStretch(n.stretchY,n.data&&n.data.height)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "stretchY" value`))),o=!1),this._validateContent(n.content,n)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "content" value`))),o=!1),o}_validateStretch(i,r){if(!i)return!0;let n=0;for(const o of i){if(o[0]{this.ready=!0})}broadcast(r,n,o){i.asyncAll(this.actors,(i,o)=>{i.send(r,n,o)},o=o||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(i=>{i.remove()}),this.actors=[],this.workerPool.release(this.id)}}function S(r,n,o){return n*(i.EXTENT/(r.tileSize*Math.pow(2,o-r.tileID.overscaledZ)))}E.Actor=i.Actor;class I{constructor(i,r,n){this.context=i;const o=i.gl;this.buffer=o.createBuffer(),this.dynamicDraw=Boolean(n),this.context.unbindVAO(),i.bindElementBuffer.set(this.buffer),o.bufferData(o.ELEMENT_ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?o.DYNAMIC_DRAW:o.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(i){const r=this.context.gl;this.context.unbindVAO(),this.bind(),r.bufferSubData(r.ELEMENT_ARRAY_BUFFER,0,i.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const M={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class A{constructor(i,r,n,o){this.length=r.length,this.attributes=n,this.itemSize=r.bytesPerElement,this.dynamicDraw=o,this.context=i;const s=i.gl;this.buffer=s.createBuffer(),i.bindVertexBuffer.set(this.buffer),s.bufferData(s.ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?s.DYNAMIC_DRAW:s.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(i){const r=this.context.gl;this.bind(),r.bufferSubData(r.ARRAY_BUFFER,0,i.arrayBuffer)}enableAttributes(i,r){for(let n=0;no.pointCoordinate3D(i)),this.cameraGeometry=this.bufferedCameraGeometry(0)}static createFromScreenPoints(r,n){let o,s;if(r instanceof i.pointGeometry||"number"==typeof r[0]){const a=i.pointGeometry.convert(r);o=[i.pointGeometry.convert(r)],s=n.isPointAboveHorizon(a)}else{const l=i.pointGeometry.convert(r[0]),c=i.pointGeometry.convert(r[1]);o=[l,c],s=i.polygonizeBounds(l,c).every(i=>n.isPointAboveHorizon(i))}return new ep(o,n.getCameraPoint(),s,n)}isPointQuery(){return 1===this.screenBounds.length}bufferedScreenGeometry(r){return i.polygonizeBounds(this.screenBounds[0],1===this.screenBounds.length?this.screenBounds[0]:this.screenBounds[1],r)}bufferedCameraGeometry(r){const n=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new i.pointGeometry(1,1)):this.screenBounds[1],s=i.polygonizeBounds(n,o,0,!1);return this.cameraPoint.y>o.y&&(this.cameraPoint.x>n.x&&this.cameraPoint.x=o.x?s[2]=this.cameraPoint:this.cameraPoint.x<=n.x&&(s[3]=this.cameraPoint)),i.bufferConvexPolygon(s,r)}containsTile(r,n,o){var s;const a=r.queryPadding+1,l=r.tileID.wrap,c=o?this._bufferedCameraMercator(a,n).map(n=>i.getTilePoint(r.tileTransform,n,l)):this._bufferedScreenMercator(a,n).map(n=>i.getTilePoint(r.tileTransform,n,l)),h=this.screenGeometryMercator.map(n=>i.getTileVec3(r.tileTransform,n,l)),u=h.map(r=>new i.pointGeometry(r[0],r[1])),d=n.getFreeCameraOptions().position||new i.MercatorCoordinate(0,0,0),p=i.getTileVec3(r.tileTransform,d,l),f=h.map(r=>{const n=i.sub(r,r,p);return i.normalize(n,n),new i.Ray(p,n)}),m=S(r,1,n.zoom);if(i.polygonIntersectsBox(c,0,0,i.EXTENT,i.EXTENT))return{queryGeometry:this,tilespaceGeometry:u,tilespaceRays:f,bufferedTilespaceGeometry:c,bufferedTilespaceBounds:((s=i.getBounds(c)).min.x=i.clamp(s.min.x,0,i.EXTENT),s.min.y=i.clamp(s.min.y,0,i.EXTENT),s.max.x=i.clamp(s.max.x,0,i.EXTENT),s.max.y=i.clamp(s.max.y,0,i.EXTENT),s),tile:r,tileID:r.tileID,pixelToTileUnitsFactor:m}}_bufferedScreenMercator(i,r){const n=ef(i);if(this._screenRaycastCache[n])return this._screenRaycastCache[n];{const o=this.bufferedScreenGeometry(i).map(i=>r.pointCoordinate3D(i));return this._screenRaycastCache[n]=o,o}}_bufferedCameraMercator(i,r){const n=ef(i);if(this._cameraRaycastCache[n])return this._cameraRaycastCache[n];{const o=this.bufferedCameraGeometry(i).map(i=>r.pointCoordinate3D(i));return this._cameraRaycastCache[n]=o,o}}}function ef(i){return 100*i|0}function em(r,n,o){const s=function(s,a){if(s)return o(s);if(a){const l=i.pick(i.extend(a,r),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);a.vector_layers&&(l.vectorLayers=a.vector_layers,l.vectorLayerIds=l.vectorLayers.map(i=>i.id)),l.tiles=n.canonicalizeTileset(l,r.url),o(null,l)}};return r.url?i.getJSON(n.transformRequest(n.normalizeSourceURL(r.url),i.ResourceType.Source),s):i.exported.frame(()=>s(null,r))}class e_{constructor(r,n,o){this.bounds=i.LngLatBounds.convert(this.validateBounds(r)),this.minzoom=n||0,this.maxzoom=o||24}validateBounds(i){return Array.isArray(i)&&4===i.length?[Math.max(-180,i[0]),Math.max(-90,i[1]),Math.min(180,i[2]),Math.min(90,i[3])]:[-180,-90,180,90]}contains(r){const n=Math.pow(2,r.z),o=Math.floor(i.mercatorXfromLng(this.bounds.getWest())*n),s=Math.floor(i.mercatorYfromLat(this.bounds.getNorth())*n),a=Math.ceil(i.mercatorXfromLng(this.bounds.getEast())*n),l=Math.ceil(i.mercatorYfromLat(this.bounds.getSouth())*n);return r.x>=o&&r.x=s&&r.y{this._tileJSONRequest=null,this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(i.extend(this,n),n.bounds&&(this.tileBounds=new e_(n.bounds,this.minzoom,this.maxzoom)),i.postTurnstileEvent(n.tiles),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}onAdd(i){this.map=i,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return i.extend({},this._options)}hasTile(i){return!this.tileBounds||this.tileBounds.contains(i.canonical)}loadTile(r,n){const o=i.exported.devicePixelRatio>=2,s=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),o,this.tileSize);r.request=i.getImage(this.map._requestManager.transformRequest(s,i.ResourceType.Tile),(o,s,a,l)=>{if(delete r.request,r.aborted)r.state="unloaded",n(null);else if(o)r.state="errored",n(o);else if(s){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:a,expires:l});const c=this.map.painter.context,h=c.gl;r.texture=this.map.painter.getTileTexture(s.width),r.texture?r.texture.update(s,{useMipmap:!0}):(r.texture=new i.Texture(c,s,h.RGBA,{useMipmap:!0}),r.texture.bind(h.LINEAR,h.CLAMP_TO_EDGE),c.extTextureFilterAnisotropic&&h.texParameterf(h.TEXTURE_2D,c.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,c.extTextureFilterAnisotropicMax)),r.state="loaded",i.cacheEntryPossiblyAdded(this.dispatcher),n(null)}})}abortTile(i,r){i.request&&(i.request.cancel(),delete i.request),r()}unloadTile(i,r){i.texture&&this.map.painter.saveTileTexture(i.texture),r()}hasTransition(){return!1}}function ey(r,n,o,s,a,l,c,h){const u=[r,o,a,n,s,l,1,1,1],d=[c,h,1],p=i.adjoint([],u),[f,m,_]=i.transformMat3(d,d,i.transpose(p,p));return i.multiply(u,[f,0,0,0,m,0,0,0,_],u)}class ex extends i.Evented{constructor(i,r,n,o){super(),this.id=i,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(o),this.options=r}load(r,n){this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this.url=this.options.url,i.getImage(this.map._requestManager.transformRequest(this.url,i.ResourceType.Image),(o,s)=>{this._loaded=!0,o?this.fire(new i.ErrorEvent(o)):s&&(this.image=i.exported.getImageData(s),this.width=this.image.width,this.height=this.image.height,r&&(this.coordinates=r),n&&n(),this._finishLoading())})}loaded(){return this._loaded}updateImage(i){return this.image&&i.url&&(this.options.url=i.url,this.load(i.coordinates,()=>{this.texture=null})),this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(i){this.map=i,this.load()}setCoordinates(r){this.coordinates=r,delete this._boundsArray;const n=r.map(i.MercatorCoordinate.fromLngLat);return this.tileID=function(r){let n=1/0,o=1/0,s=-1/0,a=-1/0;for(const l of r)n=Math.min(n,l.x),o=Math.min(o,l.y),s=Math.max(s,l.x),a=Math.max(a,l.y);const c=Math.max(s-n,a-o),h=Math.max(0,Math.floor(-Math.log(c)/Math.LN2)),u=Math.pow(2,h);return new i.CanonicalTileID(h,Math.floor((n+s)/2*u),Math.floor((o+a)/2*u))}(n),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){delete this._boundsArray}_makeBoundsArray(){const r=i.tileTransform(this.tileID,this.map.transform.projection),[n,o,s,a]=this.coordinates.map(n=>{const o=r.projection.project(n[0],n[1]);return i.getTilePoint(r,o)._round()});return this.perspectiveTransform=function(r,n,o,s,a,l,c,h,u,d){const p=ey(0,0,r,0,0,n,r,n),f=ey(o,s,a,l,c,h,u,d);return i.multiply(f,i.adjoint(p,p),f),[f[6]/f[8]*r/i.EXTENT,f[7]/f[8]*n/i.EXTENT]}(this.width,this.height,n.x,n.y,o.x,o.y,a.x,a.y,s.x,s.y),this._boundsArray=new i.StructArrayLayout4i8,this._boundsArray.emplaceBack(n.x,n.y,0,0),this._boundsArray.emplaceBack(o.x,o.y,i.EXTENT,0),this._boundsArray.emplaceBack(a.x,a.y,0,i.EXTENT),this._boundsArray.emplaceBack(s.x,s.y,i.EXTENT,i.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this}prepare(){if(0===Object.keys(this.tiles).length||!this.image)return;const r=this.map.painter.context,n=r.gl;for(const o in this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new i.Texture(r,this.image,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE)),this.tiles){const s=this.tiles[o];"loaded"!==s.state&&(s.state="loaded",s.texture=this.texture)}}loadTile(i,r){this.tileID&&this.tileID.equals(i.tileID.canonical)?(this.tiles[String(i.tileID.wrap)]=i,i.buckets={},r(null)):(i.state="errored",r(null))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}const ev={vector:class extends i.Evented{constructor(r,n,o,s){if(super(),this.id=r,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,i.extend(this,i.pick(n,["url","scheme","tileSize","promoteId"])),this._options=i.extend({type:"vector"},n),this._collectResourceTiming=n.collectResourceTiming,512!==this.tileSize)throw Error("vector tile sources must have a tileSize of 512");this.setEventedParent(s),this._tileWorkers={},this._deduped=new i.DedupedRequest}load(){this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=em(this._options,this.map._requestManager,(r,n)=>{this._tileJSONRequest=null,this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(i.extend(this,n),n.bounds&&(this.tileBounds=new e_(n.bounds,this.minzoom,this.maxzoom)),i.postTurnstileEvent(n.tiles,this.map._requestManager._customAccessToken),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}hasTile(i){return!this.tileBounds||this.tileBounds.contains(i.canonical)}onAdd(i){this.map=i,this.load()}setSourceProperty(i){this._tileJSONRequest&&this._tileJSONRequest.cancel(),i();const r=this.map.style._getSourceCaches(this.id);for(const n of r)n.clearTiles();this.load()}setTiles(i){return this.setSourceProperty(()=>{this._options.tiles=i}),this}setUrl(i){return this.setSourceProperty(()=>{this.url=i,this._options.url=i}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return i.extend({},this._options)}loadTile(r,n){const o=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme)),s={request:this.map._requestManager.transformRequest(o,i.ResourceType.Tile),data:void 0,uid:r.uid,tileID:r.tileID,tileZoom:r.tileZoom,zoom:r.tileID.overscaledZ,tileSize:this.tileSize*r.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:i.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:r.isSymbolTile};if(s.request.collectResourceTiming=this._collectResourceTiming,r.actor&&"expired"!==r.state)"loading"===r.state?r.reloadCallback=n:r.request=r.actor.send("reloadTile",s,l.bind(this));else if(r.actor=this._tileWorkers[o]=this._tileWorkers[o]||this.dispatcher.getActor(),this.dispatcher.ready)r.request=r.actor.send("loadTile",s,l.bind(this),void 0,!0);else{const a=i.loadVectorTile.call({deduped:this._deduped},s,(i,n)=>{i||!n?l.call(this,i):(s.data={cacheControl:n.cacheControl,expires:n.expires,rawData:n.rawData.slice(0)},r.actor&&r.actor.send("loadTile",s,l.bind(this),void 0,!0))},!0);r.request={cancel:a}}function l(o,s){return delete r.request,r.aborted?n(null):o&&404!==o.status?n(o):(s&&s.resourceTiming&&(r.resourceTiming=s.resourceTiming),this.map._refreshExpiredTiles&&s&&r.setExpiryData(s),r.loadVectorData(s,this.map.painter),i.cacheEntryPossiblyAdded(this.dispatcher),n(null),void(r.reloadCallback&&(this.loadTile(r,r.reloadCallback),r.reloadCallback=null)))}}abortTile(i){i.request&&(i.request.cancel(),delete i.request),i.actor&&i.actor.send("abortTile",{uid:i.uid,type:this.type,source:this.id})}unloadTile(i){i.unloadVectorData(),i.actor&&i.actor.send("removeTile",{uid:i.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}},raster:eg,"raster-dem":class extends eg{constructor(r,n,o,s){super(r,n,o,s),this.type="raster-dem",this.maxzoom=22,this._options=i.extend({type:"raster-dem"},n),this.encoding=n.encoding||"mapbox"}loadTile(r,n){const o=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function s(i,o){i&&(r.state="errored",n(i)),o&&(r.dem=o,r.dem.onDeserialize(),r.needsHillshadePrepare=!0,r.needsDEMTextureUpload=!0,r.state="loaded",n(null))}r.request=i.getImage(this.map._requestManager.transformRequest(o,i.ResourceType.Tile),(function(o,a,l,c){if(delete r.request,r.aborted)r.state="unloaded",n(null);else if(o)r.state="errored",n(o);else if(a){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:l,expires:c});const h=i.window.ImageBitmap&&a instanceof i.window.ImageBitmap&&(null==rR&&(rR=i.window.OffscreenCanvas&&new i.window.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof i.window.createImageBitmap),rR),u=1-(a.width-i.prevPowerOfTwo(a.width))/2;u<1||r.neighboringTiles||(r.neighboringTiles=this._getNeighboringTiles(r.tileID));const d=h?a:i.exported.getImageData(a,u),p={uid:r.uid,coord:r.tileID,source:this.id,rawImageData:d,encoding:this.encoding,padding:u};r.actor&&"expired"!==r.state||(r.actor=this.dispatcher.getActor(),r.actor.send("loadDEMTile",p,s.bind(this),void 0,!0))}}).bind(this))}_getNeighboringTiles(r){const n=r.canonical,o=Math.pow(2,n.z),s=(n.x-1+o)%o,a=0===n.x?r.wrap-1:r.wrap,l=(n.x+1+o)%o,c=n.x+1===o?r.wrap+1:r.wrap,h={};return h[new i.OverscaledTileID(r.overscaledZ,a,n.z,s,n.y).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,c,n.z,l,n.y).key]={backfilled:!1},n.y>0&&(h[new i.OverscaledTileID(r.overscaledZ,a,n.z,s,n.y-1).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,r.wrap,n.z,n.x,n.y-1).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,c,n.z,l,n.y-1).key]={backfilled:!1}),n.y+1{if(this._loaded=!0,this._pendingLoad=null,r)this.fire(new i.ErrorEvent(r));else{const o={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&n&&n.resourceTiming&&n.resourceTiming[this.id]&&(o.resourceTiming=n.resourceTiming[this.id]),this.fire(new i.Event("data",o)),this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1)})}loaded(){return this._loaded}loadTile(r,n){const o=r.actor?"reloadTile":"loadTile";r.actor=this.actor,r.request=this.actor.send(o,{type:this.type,uid:r.uid,tileID:r.tileID,tileZoom:r.tileZoom,zoom:r.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:i.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(i,s)=>(delete r.request,r.unloadVectorData(),r.aborted?n(null):i?n(i):(r.loadVectorData(s,this.map.painter,"reloadTile"===o),n(null))),void 0,"loadTile"===o)}abortTile(i){i.request&&(i.request.cancel(),delete i.request),i.aborted=!0}unloadTile(i){i.unloadVectorData(),this.actor.send("removeTile",{uid:i.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return i.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends ex{constructor(i,r,n,o){super(i,r,n,o),this.roundZoom=!0,this.type="video",this.options=r}load(){this._loaded=!1;const r=this.options;for(const n of(this.urls=[],r.urls))this.urls.push(this.map._requestManager.transformRequest(n,i.ResourceType.Source).url);i.getVideo(this.urls,(r,n)=>{this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(this.video=n,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(r){if(this.video){const n=this.video.seekable;rn.end(0)?this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))):this.video.currentTime=r}}getVideo(){return this.video}onAdd(i){this.map||(this.map=i,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 r=this.map.painter.context,n=r.gl;for(const o in this.texture?this.video.paused||(this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,this.video)):(this.texture=new i.Texture(r,this.video,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.tiles){const s=this.tiles[o];"loaded"!==s.state&&(s.state="loaded",s.texture=this.texture)}}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:ex,canvas:class extends ex{constructor(r,n,o,s){super(r,n,o,s),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some(i=>!Array.isArray(i)||2!==i.length||i.some(i=>"number"!=typeof i))||this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof i.window.HTMLCanvasElement||this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,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 i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof i.window.HTMLCanvasElement?this.options.canvas:i.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new i.ErrorEvent(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(i){this.map=i,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let r=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,r=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,r=!0),this._hasInvalidDimensions()||0===Object.keys(this.tiles).length)return;const n=this.map.painter.context,o=n.gl;for(const s in this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=n.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(r||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new i.Texture(n,this.canvas,o.RGBA,{premultiply:!0}),this.tiles){const a=this.tiles[s];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const i of[this.canvas.width,this.canvas.height])if(isNaN(i)||i<=0)return!0;return!1}}},eb=function(r,n,o,s){const a=new ev[n.type](r,n,o,s);if(a.id!==r)throw Error(`Expected Source id to be ${r} instead of ${a.id}`);return i.bindAll(["load","abort","unload","serialize","prepare"],a),a};function ew(i,r){const n=i.tileID,o=r.tileID;return n.overscaledZ-o.overscaledZ||n.canonical.y-o.canonical.y||n.wrap-o.wrap||n.canonical.x-o.canonical.x}function eT(){return null!=rq.workerClass?new rq.workerClass:new i.window.Worker(rq.workerUrl)}const eE="mapboxgl_preloaded_worker_pool";class eS{constructor(){this.active={}}acquire(i){if(!this.workers)for(this.workers=[];this.workers.length{i.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[eE]}numActive(){return Object.keys(this.active).length}}function eI(){return rF||(rF=new eS),rF}function eM(r){r=r.slice();const n=Object.create(null);for(let o=0;o{i in n&&(o[i]=n[i])}),o}(r[s],n[r[s].ref]));return r}eS.workerCount=2;const eA={setStyle:"setStyle",addLayer:"addLayer",removeLayer:"removeLayer",setPaintProperty:"setPaintProperty",setLayoutProperty:"setLayoutProperty",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",setProjection:"setProjection"};function eC(i,r,n){n.push({command:eA.addSource,args:[i,r[i]]})}function ez(i,r,n){r.push({command:eA.removeSource,args:[i]}),n[i]=!0}function ek(i,r,n,o,a,l){let c;for(c in r=r||{},i=i||{})i.hasOwnProperty(c)&&(s(i[c],r[c])||n.push({command:l,args:[o,c,r[c],a]}));for(c in r)r.hasOwnProperty(c)&&!i.hasOwnProperty(c)&&(s(i[c],r[c])||n.push({command:l,args:[o,c,r[c],a]}))}function eP(i){return i.id}function eD(i,r){return i[r.id]=r,i}class eL{constructor(i,r){this.reset(i,r)}reset(i,r){this.points=i||[],this._distances=[0];for(let n=1;n0?(s-l)/c:0;return this.points[a].mult(1-h).add(this.points[n].mult(h))}}class eB{constructor(i,r,n){const o=this.boxCells=[],s=this.circleCells=[];this.xCellCount=Math.ceil(i/n),this.yCellCount=Math.ceil(r/n);for(let a=0;athis.width||o<0||r>this.height)return!s&&[];const l=[];if(i<=0&&r<=0&&this.width<=n&&this.height<=o){if(s)return!0;for(let c=0;c0:l}_queryCircle(i,r,n,o,s){const a=i-n,l=i+n,c=r-n,h=r+n;if(l<0||a>this.width||h<0||c>this.height)return!o&&[];const u=[];return this._forEachCell(a,c,l,h,this._queryCellCircle,u,{hitTest:o,circle:{x:i,y:r,radius:n},seenUids:{box:{},circle:{}}},s),o?u.length>0:u}query(i,r,n,o,s){return this._query(i,r,n,o,!1,s)}hitTest(i,r,n,o,s){return this._query(i,r,n,o,!0,s)}hitTestCircle(i,r,n,o){return this._queryCircle(i,r,n,!0,o)}_queryCell(i,r,n,o,s,a,l,c){const h=l.seenUids,u=this.boxCells[s];if(null!==u){const d=this.bboxes;for(const p of u)if(!h.box[p]){h.box[p]=!0;const f=4*p;if(i<=d[f+2]&&r<=d[f+3]&&n>=d[f+0]&&o>=d[f+1]&&(!c||c(this.boxKeys[p]))){if(l.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:d[f],y1:d[f+1],x2:d[f+2],y2:d[f+3]})}}}const m=this.circleCells[s];if(null!==m){const _=this.circles;for(const g of m)if(!h.circle[g]){h.circle[g]=!0;const y=3*g;if(this._circleAndRectCollide(_[y],_[y+1],_[y+2],i,r,n,o)&&(!c||c(this.circleKeys[g]))){if(l.hitTest)return a.push(!0),!0;{const x=_[y],v=_[y+1],b=_[y+2];a.push({key:this.circleKeys[g],x1:x-b,y1:v-b,x2:x+b,y2:v+b})}}}}}_queryCellCircle(i,r,n,o,s,a,l,c){const h=l.circle,u=l.seenUids,d=this.boxCells[s];if(null!==d){const p=this.bboxes;for(const f of d)if(!u.box[f]){u.box[f]=!0;const m=4*f;if(this._circleAndRectCollide(h.x,h.y,h.radius,p[m+0],p[m+1],p[m+2],p[m+3])&&(!c||c(this.boxKeys[f])))return a.push(!0),!0}}const _=this.circleCells[s];if(null!==_){const g=this.circles;for(const y of _)if(!u.circle[y]){u.circle[y]=!0;const x=3*y;if(this._circlesCollide(g[x],g[x+1],g[x+2],h.x,h.y,h.radius)&&(!c||c(this.circleKeys[y])))return a.push(!0),!0}}}_forEachCell(i,r,n,o,s,a,l,c){const h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(r),d=this._convertToXCellCoord(n),p=this._convertToYCellCoord(o);for(let f=h;f<=d;f++)for(let m=u;m<=p;m++)if(s.call(this,i,r,n,o,this.xCellCount*m+f,a,l,c))return}_convertToXCellCoord(i){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(i*this.xScale)))}_convertToYCellCoord(i){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(i*this.yScale)))}_circlesCollide(i,r,n,o,s,a){const l=o-i,c=s-r,h=n+a;return h*h>l*l+c*c}_circleAndRectCollide(i,r,n,o,s,a,l){const c=(a-o)/2,h=Math.abs(i-(o+c));if(h>c+n)return!1;const u=(l-s)/2,d=Math.abs(r-(s+u));if(d>u+n)return!1;if(h<=c||d<=u)return!0;const p=h-c,f=d-u;return p*p+f*f<=n*n}}const eR=Math.tan(85*Math.PI/180);function eF(r,n,s,a,l,c){let h=i.create();if(s){if("globe"===l.projection.name)h=i.calculateGlobeMatrix(l,l.worldSize/l._projectionScaler,[0,0]),i.multiply$1(h,h,i.globeDenormalizeECEF(i.globeTileBounds(n)));else{const u=o([],c);h[0]=u[0],h[1]=u[1],h[4]=u[2],h[5]=u[3]}a||i.rotateZ(h,h,l.angle)}else i.multiply$1(h,l.labelPlaneMatrix,r);return h}function eO(r,n,o,s,a,l){if(o){if("globe"===a.projection.name){const c=eF(r,n,o,s,a,l);return i.invert(c,c),i.multiply$1(c,r,c),c}{const h=i.clone(r),u=i.identity([]);return u[0]=l[0],u[1]=l[1],u[4]=l[2],u[5]=l[3],i.multiply$1(h,h,u),s||i.rotateZ(h,h,-a.angle),h}}return a.glCoordMatrix}function eU(r,n,o=0){const s=[r.x,r.y,o,1];o?i.transformMat4$1(s,s,n):eH(s,s,n);const a=s[3];return{point:new i.pointGeometry(s[0]/a,s[1]/a),signedDistanceFromCamera:a}}function eV(i,r){return Math.min(.5+i/r*.5,1.5)}function eN(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_){const g=c.glyphStartIndex+c.numGlyphs,y=c.lineStartIndex,x=c.lineStartIndex+c.lineLength,v=r.getoffsetX(c.glyphStartIndex),b=r.getoffsetX(g-1),w=eq(i*v,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);if(!w)return null;const T=eq(i*b,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);return T?{first:w,last:T}:null}function ej(r,n,o,s){return r.writingMode===i.WritingMode.horizontal&&Math.abs(o.y-n.y)>Math.abs(o.x-n.x)*s?{useVertical:!0}:r.writingMode===i.WritingMode.vertical?n.yeR}(n,o,s)?1===r.flipState?{needsFlipping:!0}:null:n.x>o.x?{needsFlipping:!0}:null}function eG(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){let v;const b=n/24,w=r.lineOffsetX*b,T=r.lineOffsetY*b;if(r.numGlyphs>1){const E=r.glyphStartIndex+r.numGlyphs,S=r.lineStartIndex,I=r.lineStartIndex+r.lineLength,M=eN(b,h,w,T,o,p,f,r,u,l,m,g,!1,y,x);if(!M)return{notEnoughRoom:!0};const A=eU(M.first.point,c).point,C=eU(M.last.point,c).point;if(s&&!o){const z=ej(r,A,C,_);if(r.flipState=z&&z.needsFlipping?1:2,z)return z}v=[M.first];for(let k=r.glyphStartIndex+1;k0?B.point:e$(f,L,P,1,a,void 0,y,x.canonical),_);if(r.flipState=R&&R.needsFlipping?1:2,R)return R}const F=eq(b*h.getoffsetX(r.glyphStartIndex),w,T,o,p,f,r.segment,r.lineStartIndex,r.lineStartIndex+r.lineLength,u,l,m,g,!1,!1,y,x);if(!F)return{notEnoughRoom:!0};v=[F]}for(const O of v)i.addDynamicAttributes(d,O.point,O.angle);return{}}function eZ(r,n,o,s,a){const l=s.projectTilePoint(r.x,r.y,n);if(!a)return eU(l,o,l.z);const c=a(r);return eU(new i.pointGeometry(l.x+c[0],l.y+c[1]),o,l.z+c[2])}function e$(i,r,n,o,s,a,l,c){const h=eZ(i.add(i.sub(r)._unit()),c,s,l,a).point,u=n.sub(h);return n.add(u._mult(o/u.mag()))}function eq(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){const v=s?r-n:r+n;let b=v>0?1:-1,w=0;s&&(b*=-1,w=Math.PI),b<0&&(w+=Math.PI);let T=b>0?h+c:h+c+1,E=a,S=a,I=0,M=0;const A=Math.abs(v),C=[],z=[];let k=l;const P=()=>{const r=T-b;return 0===I?l:new i.pointGeometry(d.getx(r),d.gety(r))},D=()=>e$(P(),k,S,A-I+1,p,m,y,x.canonical);for(;I+M<=A;){if((T+=b)=u)return null;if(S=E,C.push(E),_&&z.push(k||P()),void 0===(E=f[T])){k=new i.pointGeometry(d.getx(T),d.gety(T));const L=eZ(k,x.canonical,p,y,m);E=L.signedDistanceFromCamera>0?f[T]=L.point:D()}else k=null;I+=M,M=S.dist(E)}g&&m&&(k=k||new i.pointGeometry(d.getx(T),d.gety(T)),f[T]=E=void 0===f[T]?E:D(),M=S.dist(E));const B=(A-I)/M,R=E.sub(S),F=R.mult(B)._add(S);o&&F._add(R._unit()._perp()._mult(o*b));const O=w+Math.atan2(E.y-S.y,E.x-S.x);return C.push(F),_&&(k=k||new i.pointGeometry(d.getx(T),d.gety(T)),z.push(function(r,n,o){const s=1-o;return new i.pointGeometry(r.x*s+n.x*o,r.y*s+n.y*o)}(z.length>0?z[z.length-1]:k,k,B))),{point:F,angle:O,path:C,tilePath:z}}const eX=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function eW(i,r){for(let n=0;n[0,0,0],b=new i.pointGeometry(n.tileAnchorX,n.tileAnchorY),w=this.transform.projection.projectTilePoint(n.tileAnchorX,n.tileAnchorY,_.canonical),T=v(b),E=[w.x+T[0],w.y+T[1],w.z+T[2]],S=this.projectAndGetPerspectiveRatio(l,E[0],E[1],E[2],_),{perspectiveRatio:I}=S,M=(d?a/I:a*I)/i.ONE_EM,A=eU(new i.pointGeometry(E[0],E[1]),c,E[2]).point,C=S.signedDistanceFromCamera>0?eN(M,s,n.lineOffsetX*M,n.lineOffsetY*M,!1,A,b,n,o,c,{},y&&!d?v:null,d&&!!y,this.transform.projection,_):null;let z=!1,k=!1,P=!0;if(C&&!S.aboveHorizon){const D=.5*f*I+m,L=new i.pointGeometry(-100,-100),B=new i.pointGeometry(this.screenRightBoundary,this.screenBottomBoundary),R=new eL,F=C.first,O=C.last;let U=[];for(let V=F.path.length-1;V>=1;V--)U.push(F.path[V]);for(let N=1;N{const n=v(reU(i,h));U=G.some(i=>i.signedDistanceFromCamera<=0)?[]:G.map(i=>i.point)}let Z=[];if(U.length>0){const $=U[0].clone(),q=U[0].clone();for(let X=1;X=L.x&&q.x<=B.x&&$.y>=L.y&&q.y<=B.y?[U]:q.xB.x||q.yB.y?[]:i.clipLine([U],L.x,L.y,B.x,B.y)}for(const W of Z){R.reset(W,.25*D);let H=0;H=R.length<=.5*D?1:Math.ceil(R.paddedLength/j)+1;for(let K=0;K0){i.transformMat4$1(l,l,r);let h=!1;this.fogState&&a&&(h=function(r,n,o,s,a,l){const c=l.calculateFogTileMatrix(a),h=[n,o,s];return i.transformMat4(h,h,c),x(r,h,l.pitch,l._fov)}(this.fogState,n,o,s||0,a.toUnwrapped(),this.transform)>.9),c=l[2]>l[3]||h}else eH(l,l,r);return{point:new i.pointGeometry((l[0]/l[3]+1)/2*this.transform.width+100,(-l[1]/l[3]+1)/2*this.transform.height+100),perspectiveRatio:Math.min(.5+this.transform.cameraToCenterDistance/l[3]*.5,1.5),signedDistanceFromCamera:l[3],aboveHorizon:c}}isOffscreen(i,r,n,o){return n<100||i>=this.screenRightBoundary||o<100||r>this.screenBottomBoundary}isInsideGrid(i,r,n,o){return n>=0&&i=0&&ri.collisionGroupID===r}}return this.collisionGroups[i]}}function e3(r,n,o,s,a){const{horizontalAlign:l,verticalAlign:c}=i.getAnchorAlignment(r),h=i.evaluateVariableOffset(r,s);return new i.pointGeometry(-(l-.5)*n+h[0]*a,-(c-.5)*o+h[1]*a)}function e5(r,n,o,s,a){const l=new i.pointGeometry(r,n);return o&&l._rotate(s?a:-a),l}class e4{constructor(i,r,n,o,s){this.transform=i.clone(),this.collisionIndex=new eK(this.transform,s),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=r,this.retainedQueryData={},this.collisionGroups=new e2(n),this.collisionCircleArrays={},this.prevPlacement=o,o&&(o.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(r,n,o,s){const a=o.getBucket(n),l=o.latestFeatureIndex;if(!a||!l||n.id!==a.layerIds[0])return;const c=a.layers[0].layout,h=o.collisionBoxArray,u=Math.pow(2,this.transform.zoom-o.tileID.overscaledZ),d=o.tileSize/i.EXTENT,p=o.tileID.toUnwrapped(),f=this.transform.calculateProjMatrix(p),m="map"===c.get("text-pitch-alignment"),_="map"===c.get("text-rotation-alignment");n.compileFilter();const g=n.dynamicFilter(),y=n.dynamicFilterNeedsFeature(),x=this.transform.calculatePixelsToTileUnitsMatrix(o),v=eF(f,o.tileID.canonical,m,_,this.transform,x);let b=null;if(m){const w=eO(f,o.tileID.canonical,m,_,this.transform,x);b=i.multiply$1([],this.transform.labelPlaneMatrix,w)}let T=null;g&&o.latestFeatureIndex&&(T={unwrappedTileID:p,dynamicFilter:g,dynamicFilterNeedsFeature:y,featureIndex:o.latestFeatureIndex}),this.retainedQueryData[a.bucketInstanceId]=new e1(a.bucketInstanceId,l,a.sourceLayerIndex,a.index,o.tileID);const E={bucket:a,layout:c,posMatrix:f,textLabelPlaneMatrix:v,labelToScreenMatrix:b,clippingData:T,scale:u,textPixelRatio:d,holdingForFade:o.holdingForFade(),collisionBoxArray:h,partiallyEvaluatedTextSize:i.evaluateSizeForZoom(a.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:i.evaluateSizeForZoom(a.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(a.sourceID)};if(s)for(const S of a.sortKeyRanges){const{sortKey:I,symbolInstanceStart:M,symbolInstanceEnd:A}=S;r.push({sortKey:I,symbolInstanceStart:M,symbolInstanceEnd:A,parameters:E})}else r.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:E})}attemptAnchorPlacement(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){const v=[p.textOffset0,p.textOffset1],b=e3(i,n,o,v,s),w=this.collisionIndex.placeCollisionBox(s,r,e5(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate);if((!g||0!==this.collisionIndex.placeCollisionBox(m.getSymbolInstanceIconSize(x,this.transform.zoom,f),g,e5(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate).box.length)&&w.box.length>0){let T;return this.prevPlacement&&this.prevPlacement.variableOffsets[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID].text&&(T=this.prevPlacement.variableOffsets[p.crossTileID].anchor),this.variableOffsets[p.crossTileID]={textOffset:v,width:n,height:o,anchor:i,textScale:s,prevAnchor:T},this.markUsedJustification(m,i,p,_),m.allowVerticalPlacement&&(this.markUsedOrientation(m,_,p),this.placedOrientations[p.crossTileID]=_),{shift:b,placedGlyphBoxes:w}}}placeLayerBucketPart(r,n,o,s){const{bucket:a,layout:l,posMatrix:c,textLabelPlaneMatrix:h,labelToScreenMatrix:u,clippingData:d,textPixelRatio:p,holdingForFade:f,collisionBoxArray:m,partiallyEvaluatedTextSize:_,partiallyEvaluatedIconSize:g,collisionGroup:y}=r.parameters,x=l.get("text-optional"),v=l.get("icon-optional"),b=l.get("text-allow-overlap"),w=l.get("icon-allow-overlap"),T="map"===l.get("text-rotation-alignment"),E="map"===l.get("text-pitch-alignment"),S="none"!==l.get("icon-text-fit"),I="viewport-y"===l.get("symbol-z-order"),M=b&&(w||!a.hasIconData()||v),A=w&&(b||!a.hasTextData()||x);!a.collisionArrays&&m&&a.deserializeCollisionBoxes(m),o&&s&&a.updateCollisionDebugBuffers(this.transform.zoom,m);const C=(r,s,m)=>{if(d){const I={zoom:this.transform.zoom,pitch:this.transform.pitch};let C=null;if(d.dynamicFilterNeedsFeature){const z=this.retainedQueryData[a.bucketInstanceId];C=d.featureIndex.loadFeature({featureIndex:r.featureIndex,bucketIndex:z.bucketIndex,sourceLayerIndex:z.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,d.dynamicFilter)(I,C,this.retainedQueryData[a.bucketInstanceId].tileID.canonical,new i.pointGeometry(r.tileAnchorX,r.tileAnchorY),this.transform.calculateDistanceTileData(d.unwrappedTileID)))return this.placements[r.crossTileID]=new eQ(!1,!1,!1,!0),void(n[r.crossTileID]=!0)}if(n[r.crossTileID])return;if(f)return void(this.placements[r.crossTileID]=new eQ(!1,!1,!1));let k=!1,P=!1,D=!0,L=null,B={box:null,offscreen:null},R={box:null,offscreen:null},F=null,O=null,U=null,V=0,N=0,j=0;m.textFeatureIndex?V=m.textFeatureIndex:r.useRuntimeCollisionCircles&&(V=r.featureIndex),m.verticalTextFeatureIndex&&(N=m.verticalTextFeatureIndex);const G=i=>{i.tileID=this.retainedQueryData[a.bucketInstanceId].tileID,(this.transform.elevation||i.elevation)&&(i.elevation=this.transform.elevation?this.transform.elevation.getAtTileOffset(this.retainedQueryData[a.bucketInstanceId].tileID,i.tileAnchorX,i.tileAnchorY):0)},Z=m.textBox;if(Z){G(Z);const $=n=>{let o=i.WritingMode.horizontal;if(a.allowVerticalPlacement&&!n&&this.prevPlacement){const s=this.prevPlacement.placedOrientations[r.crossTileID];s&&(this.placedOrientations[r.crossTileID]=s,o=s,this.markUsedOrientation(a,o,r))}return o},q=(n,o)=>{if(a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&m.verticalTextBox){for(const s of a.writingModes)if(s===i.WritingMode.vertical?R=B=o():B=n(),B&&B.box&&B.box.length)break}else B=n()};if(l.get("text-variable-anchor")){let X=l.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[r.crossTileID]){const W=this.prevPlacement.variableOffsets[r.crossTileID];X.indexOf(W.anchor)>0&&(X=X.filter(i=>i!==W.anchor)).unshift(W.anchor)}const H=(i,n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),h=(i.x2-i.x1)*l+2*i.padding,u=(i.y2-i.y1)*l+2*i.padding,d=S&&!w?n:null;d&&G(d);let f={box:[],offscreen:!1};const m=b?2*X.length:X.length;for(let x=0;x=X.length,r,s,a,o,d,_,g);if(v&&(f=v.placedGlyphBoxes)&&f.box&&f.box.length){k=!0,L=v.shift;break}}return f};q(()=>H(Z,m.iconBox,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return n&&G(n),a.allowVerticalPlacement&&!(B&&B.box&&B.box.length)&&r.numVerticalGlyphVertices>0&&n?H(n,m.verticalIconBox,i.WritingMode.vertical):{box:null,offscreen:null}}),B&&(k=B.box,D=B.offscreen);const K=$(B&&B.box);if(!k&&this.prevPlacement){const Y=this.prevPlacement.variableOffsets[r.crossTileID];Y&&(this.variableOffsets[r.crossTileID]=Y,this.markUsedJustification(a,Y.anchor,r,K))}}else{const J=(n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),h=this.collisionIndex.placeCollisionBox(l,n,new i.pointGeometry(0,0),b,p,c,y.predicate);return h&&h.box&&h.box.length&&(this.markUsedOrientation(a,o,r),this.placedOrientations[r.crossTileID]=o),h};q(()=>J(Z,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&n?(G(n),J(n,i.WritingMode.vertical)):{box:null,offscreen:null}}),$(B&&B.box&&B.box.length)}}if(k=(F=B)&&F.box&&F.box.length>0,D=F&&F.offscreen,r.useRuntimeCollisionCircles){const Q=a.text.placedSymbolArray.get(r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex),ee=i.evaluateSizeForFeature(a.textSizeData,_,Q),et=l.get("text-padding");O=this.collisionIndex.placeCollisionCircles(b,Q,a.lineVertexArray,a.glyphOffsetArray,ee,c,h,u,o,E,y.predicate,r.collisionCircleDiameter*ee/i.ONE_EM,et,this.retainedQueryData[a.bucketInstanceId].tileID),k=b||O.circles.length>0&&!O.collisionDetected,D=D&&O.offscreen}if(m.iconFeatureIndex&&(j=m.iconFeatureIndex),m.iconBox){const ei=r=>{G(r);const n=S&&L?e5(L.x,L.y,T,E,this.transform.angle):new i.pointGeometry(0,0),o=a.getSymbolInstanceIconSize(g,this.transform.zoom,s);return this.collisionIndex.placeCollisionBox(o,r,n,w,p,c,y.predicate)};P=R&&R.box&&R.box.length&&m.verticalIconBox?(U=ei(m.verticalIconBox)).box.length>0:(U=ei(m.iconBox)).box.length>0,D=D&&U.offscreen}const er=x||0===r.numHorizontalGlyphVertices&&0===r.numVerticalGlyphVertices,en=v||0===r.numIconVertices;if(er||en?en?er||(P=P&&k):k=P&&k:P=k=P&&k,k&&F&&F.box&&this.collisionIndex.insertCollisionBox(F.box,l.get("text-ignore-placement"),a.bucketInstanceId,R&&R.box&&N?N:V,y.ID),P&&U&&this.collisionIndex.insertCollisionBox(U.box,l.get("icon-ignore-placement"),a.bucketInstanceId,j,y.ID),O&&(k&&this.collisionIndex.insertCollisionCircles(O.circles,l.get("text-ignore-placement"),a.bucketInstanceId,V,y.ID),o)){const eo=a.bucketInstanceId;let es=this.collisionCircleArrays[eo];void 0===es&&(es=this.collisionCircleArrays[eo]=new e0);for(let ea=0;ea=0;--k){const P=z[k];C(a.symbolInstances.get(P),P,a.collisionArrays[P])}}else for(let D=r.symbolInstanceStart;D=0&&(r.text.placedSymbolArray.get(c).crossTileID=a>=0&&c!==a?0:o.crossTileID)}markUsedOrientation(r,n,o){const s=n===i.WritingMode.horizontal||n===i.WritingMode.horizontalOnly?n:0,a=n===i.WritingMode.vertical?n:0,l=[o.leftJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.rightJustifiedTextSymbolIndex];for(const c of l)r.text.placedSymbolArray.get(c).placedOrientation=s;o.verticalPlacedTextSymbolIndex&&(r.text.placedSymbolArray.get(o.verticalPlacedTextSymbolIndex).placedOrientation=a)}commit(i){this.commitTime=i,this.zoomAtLastRecencyCheck=this.transform.zoom;const r=this.prevPlacement;let n=!1;this.prevZoomAdjustment=r?r.zoomAdjustment(this.transform.zoom):0;const o=r?r.symbolFadeChange(i):1,s=r?r.opacities:{},a=r?r.variableOffsets:{},l=r?r.placedOrientations:{};for(const c in this.placements){const h=this.placements[c],u=s[c];u?(this.opacities[c]=new eJ(u,o,h.text,h.icon,null,h.clipped),n=n||h.text!==u.text.placed||h.icon!==u.icon.placed):(this.opacities[c]=new eJ(null,o,h.text,h.icon,h.skipFade,h.clipped),n=n||h.text||h.icon)}for(const d in s){const p=s[d];if(!this.opacities[d]){const f=new eJ(p,o,!1,!1);f.isHidden()||(this.opacities[d]=f,n=n||p.text.placed||p.icon.placed)}}for(const m in a)this.variableOffsets[m]||!this.opacities[m]||this.opacities[m].isHidden()||(this.variableOffsets[m]=a[m]);for(const _ in l)this.placedOrientations[_]||!this.opacities[_]||this.opacities[_].isHidden()||(this.placedOrientations[_]=l[_]);n?this.lastPlacementChangeTime=i:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=r?r.lastPlacementChangeTime:i)}updateLayerOpacities(i,r){const n={};for(const o of r){const s=o.getBucket(i);s&&o.latestFeatureIndex&&i.id===s.layerIds[0]&&this.updateBucketOpacities(s,n,o.collisionBoxArray)}}updateBucketOpacities(r,n,o){r.hasTextData()&&r.text.opacityVertexArray.clear(),r.hasIconData()&&r.icon.opacityVertexArray.clear(),r.hasIconCollisionBoxData()&&r.iconCollisionBox.collisionVertexArray.clear(),r.hasTextCollisionBoxData()&&r.textCollisionBox.collisionVertexArray.clear();const s=r.layers[0].layout,a=!!r.layers[0].dynamicFilter(),l=new eJ(null,0,!1,!1,!0),c=s.get("text-allow-overlap"),h=s.get("icon-allow-overlap"),u=s.get("text-variable-anchor"),d="map"===s.get("text-rotation-alignment"),p="map"===s.get("text-pitch-alignment"),f="none"!==s.get("icon-text-fit"),m=new eJ(null,0,c&&(h||!r.hasIconData()||s.get("icon-optional")),h&&(c||!r.hasTextData()||s.get("text-optional")),!0);!r.collisionArrays&&o&&(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData())&&r.deserializeCollisionBoxes(o);const _=(i,r,n)=>{for(let o=0;o0||b>0,S=x.numIconVertices>0,I=this.placedOrientations[x.crossTileID],M=I===i.WritingMode.vertical,A=I===i.WritingMode.horizontal||I===i.WritingMode.horizontalOnly;if(!E&&!S||T.isHidden()||g++,E){const C=e8(T.text);_(r.text,v,M?e9:C),_(r.text,b,A?e9:C);const z=T.text.isHidden();[x.rightJustifiedTextSymbolIndex,x.centerJustifiedTextSymbolIndex,x.leftJustifiedTextSymbolIndex].forEach(i=>{i>=0&&(r.text.placedSymbolArray.get(i).hidden=z||M?1:0)}),x.verticalPlacedTextSymbolIndex>=0&&(r.text.placedSymbolArray.get(x.verticalPlacedTextSymbolIndex).hidden=z||A?1:0);const k=this.variableOffsets[x.crossTileID];k&&this.markUsedJustification(r,k.anchor,x,I);const P=this.placedOrientations[x.crossTileID];P&&(this.markUsedJustification(r,"left",x,P),this.markUsedOrientation(r,P,x))}if(S){const D=e8(T.icon);x.placedIconSymbolIndex>=0&&(_(r.icon,x.numIconVertices,M?e9:D),r.icon.placedSymbolArray.get(x.placedIconSymbolIndex).hidden=T.icon.isHidden()),x.verticalPlacedIconSymbolIndex>=0&&(_(r.icon,x.numVerticalIconVertices,A?e9:D),r.icon.placedSymbolArray.get(x.verticalPlacedIconSymbolIndex).hidden=T.icon.isHidden())}if(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData()){const L=r.collisionArrays[y];if(L){let B=new i.pointGeometry(0,0),R=!0;if(L.textBox||L.verticalTextBox){if(u){const F=this.variableOffsets[w];F?(B=e3(F.anchor,F.width,F.height,F.textOffset,F.textScale),d&&B._rotate(p?this.transform.angle:-this.transform.angle)):R=!1}a&&(R=!T.clipped),L.textBox&&e6(r.textCollisionBox.collisionVertexArray,T.text.placed,!R||M,B.x,B.y),L.verticalTextBox&&e6(r.textCollisionBox.collisionVertexArray,T.text.placed,!R||A,B.x,B.y)}const O=R&&Boolean(!A&&L.verticalIconBox);L.iconBox&&e6(r.iconCollisionBox.collisionVertexArray,T.icon.placed,O,f?B.x:0,f?B.y:0),L.verticalIconBox&&e6(r.iconCollisionBox.collisionVertexArray,T.icon.placed,!O,f?B.x:0,f?B.y:0)}}}if(r.fullyClipped=0===g,r.sortFeatures(this.transform.angle),this.retainedQueryData[r.bucketInstanceId]&&(this.retainedQueryData[r.bucketInstanceId].featureSortOrder=r.featureSortOrder),r.hasTextData()&&r.text.opacityVertexBuffer&&r.text.opacityVertexBuffer.updateData(r.text.opacityVertexArray),r.hasIconData()&&r.icon.opacityVertexBuffer&&r.icon.opacityVertexBuffer.updateData(r.icon.opacityVertexArray),r.hasIconCollisionBoxData()&&r.iconCollisionBox.collisionVertexBuffer&&r.iconCollisionBox.collisionVertexBuffer.updateData(r.iconCollisionBox.collisionVertexArray),r.hasTextCollisionBoxData()&&r.textCollisionBox.collisionVertexBuffer&&r.textCollisionBox.collisionVertexBuffer.updateData(r.textCollisionBox.collisionVertexArray),r.bucketInstanceId in this.collisionCircleArrays){const U=this.collisionCircleArrays[r.bucketInstanceId];r.placementInvProjMatrix=U.invProjMatrix,r.placementViewportMatrix=U.viewportMatrix,r.collisionCircleArray=U.circles,delete this.collisionCircleArrays[r.bucketInstanceId]}}symbolFadeChange(i){return 0===this.fadeDuration?1:(i-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(i){return Math.max(0,(this.transform.zoom-i)/1.5)}hasTransitions(i){return this.stale||i-this.lastPlacementChangeTimei}setStale(){this.stale=!0}}function e6(i,r,n,o,s){i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0)}function e8(i){if(0===i.opacity&&!i.placed)return 0;if(1===i.opacity&&i.placed)return 4294967295;const r=i.placed?1:0,n=Math.floor(127*i.opacity);return 33554432*n+16777216*r+131072*n+65536*r+512*n+256*r+2*n+r}const e9=0;class e7{constructor(i){this._sortAcrossTiles="viewport-y"!==i.layout.get("symbol-z-order")&&void 0!==i.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(i,r,n,o,s){const a=this._bucketParts;for(;this._currentTileIndexi.sortKey-r.sortKey));this._currentPartIndex{const r=i.exported.now()-s;return!this._forceFullPlacement&&r>2};for(;this._currentPlacementIndex>=0;){const l=n[r[this._currentPlacementIndex]],c=this.placement.collisionIndex.transform.zoom;if("symbol"===l.type&&(!l.minzoom||l.minzoom<=c)&&(!l.maxzoom||l.maxzoom>c)){if(this._inProgressLayer||(this._inProgressLayer=new e7(l)),this._inProgressLayer.continuePlacement(o[l.source],this.placement,this._showCollisionBoxes,l,a))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(i){return this.placement.commit(i),this.placement}}const tt=512/i.EXTENT/2;class ti{constructor(i,r,n){this.tileID=i,this.indexedSymbolInstances={},this.bucketInstanceId=n;for(let o=0;oi.overscaledZ)for(const c in l){const h=l[c];h.tileID.isChildOf(i)&&h.findMatches(r.symbolInstances,i,s)}else{const u=l[i.scaledTo(Number(a)).key];u&&u.findMatches(r.symbolInstances,i,s)}}for(let d=0;d{r[i]=!0}),this.layerIndexes)r[n]||delete this.layerIndexes[n]}}const ts=(r,n)=>i.emitValidationErrors(r,n&&n.filter(i=>"source.canvas"!==i.identifier)),ta=i.pick(eA,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),tl=i.pick(eA,["setCenter","setZoom","setBearing","setPitch"]),tc=function(){const r={},n=i.spec.$version;for(const o in i.spec.$root){const s=i.spec.$root[o];if(s.required){let a=null;null!=(a="version"===o?n:"array"===s.type?[]:{})&&(r[o]=a)}}return r}(),th={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class tu extends i.Evented{constructor(r,n={}){super(),this.map=r,this.dispatcher=new E(eI(),this),this.imageManager=new d,this.imageManager.setEventedParent(this),this.glyphManager=new i.GlyphManager(r._requestManager,n.localFontFamily?i.LocalGlyphMode.all:n.localIdeographFontFamily?i.LocalGlyphMode.ideographs:i.LocalGlyphMode.none,n.localFontFamily||n.localIdeographFontFamily),this.lineAtlas=new i.LineAtlas(256,512),this.crossTileSymbolIndex=new to,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this.zoomHistory=new i.ZoomHistory,this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",i.getReferrer());const o=this;this._rtlTextPluginCallback=tu.registerForPluginStateChange(r=>{o.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:r.pluginStatus,pluginURL:r.pluginURL},(r,n)=>{if(i.triggerPluginCompletionEvent(r),n&&n.every(i=>i))for(const s in o._sourceCaches){const a=o._sourceCaches[s],l=a.getSource().type;"vector"!==l&&"geojson"!==l||a.reload()}})}),this.on("data",i=>{if("source"!==i.dataType||"metadata"!==i.sourceDataType)return;const r=this.getSource(i.sourceId);if(r&&r.vectorLayerIds)for(const n in this._layers){const o=this._layers[n];o.source===r.id&&this._validateLayer(o)}})}loadURL(r,n={}){this.fire(new i.Event("dataloading",{dataType:"style"}));const o="boolean"==typeof n.validate?n.validate:!i.isMapboxURL(r);r=this.map._requestManager.normalizeStyleURL(r,n.accessToken);const s=this.map._requestManager.transformRequest(r,i.ResourceType.Style);this._request=i.getJSON(s,(r,n)=>{this._request=null,r?this.fire(new i.ErrorEvent(r)):n&&this._load(n,o)})}loadJSON(r,n={}){this.fire(new i.Event("dataloading",{dataType:"style"})),this._request=i.exported.frame(()=>{this._request=null,this._load(r,!1!==n.validate)})}loadEmpty(){this.fire(new i.Event("dataloading",{dataType:"style"})),this._load(tc,!1)}_updateLayerCount(i,r){const n=r?1:-1;i.is3D()&&(this._num3DLayers+=n),"circle"===i.type&&(this._numCircleLayers+=n),"symbol"===i.type&&(this._numSymbolLayers+=n)}_load(r,n){if(n&&ts(this,i.validateStyle(r)))return;for(const o in this._loaded=!0,this.stylesheet=r,this.updateProjection(),r.sources)this.addSource(o,r.sources[o],{validate:!1});this._changed=!1,r.sprite?this._loadSprite(r.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(r.glyphs);const s=eM(this.stylesheet.layers);for(let a of(this._order=s.map(i=>i.id),this._layers={},this._serializedLayers={},s))(a=i.createStyleLayer(a)).setEventedParent(this,{layer:{id:a.id}}),this._layers[a.id]=a,this._serializedLayers[a.id]=a.serialize(),this._updateLayerCount(a,!0);this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new m(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new i.Event("data",{dataType:"style"})),this.fire(new i.Event("style.load"))}terrainSetForDrapingOnly(){return this.terrain&&0===this.terrain.drapeRenderMode}setProjection(i){i?this.stylesheet.projection=i:delete this.stylesheet.projection,this.updateProjection()}updateProjection(){const i=this.map.transform.projection,r=this.map.transform.setProjection(this.map._runtimeProjection||(this.stylesheet?this.stylesheet.projection:void 0)),n=this.map.transform.projection;if(this._loaded&&(n.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null)),this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),r){if(n.isReprojectedInTileSpace||i.isReprojectedInTileSpace)for(const o in this.map.painter.clearBackgroundTiles(),this._sourceCaches)this._sourceCaches[o].clearTiles();else this._forceSymbolLayerUpdate();this.map._update(!0)}}_loadSprite(r){this._spriteRequest=function(r,n,o){let s,a,l;const c=i.exported.devicePixelRatio>1?"@2x":"";let h=i.getJSON(n.transformRequest(n.normalizeSpriteURL(r,c,".json"),i.ResourceType.SpriteJSON),(i,r)=>{h=null,l||(l=i,s=r,d())}),u=i.getImage(n.transformRequest(n.normalizeSpriteURL(r,c,".png"),i.ResourceType.SpriteImage),(i,r)=>{u=null,l||(l=i,a=r,d())});function d(){if(l)o(l);else if(s&&a){const r=i.exported.getImageData(a),n={};for(const c in s){const{width:h,height:u,x:d,y:p,sdf:f,pixelRatio:m,stretchX:_,stretchY:g,content:y}=s[c],x=new i.RGBAImage({width:h,height:u});i.RGBAImage.copy(r,x,{x:d,y:p},{x:0,y:0},{width:h,height:u}),n[c]={data:x,pixelRatio:m,sdf:f,stretchX:_,stretchY:g,content:y}}o(null,n)}}return{cancel(){h&&(h.cancel(),h=null),u&&(u.cancel(),u=null)}}}(r,this.map._requestManager,(r,n)=>{if(this._spriteRequest=null,r)this.fire(new i.ErrorEvent(r));else if(n)for(const o in n)this.imageManager.addImage(o,n[o]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new i.Event("data",{dataType:"style"}))})}_validateLayer(r){const n=this.getSource(r.source);if(!n)return;const o=r.sourceLayer;o&&("geojson"===n.type||n.vectorLayerIds&&-1===n.vectorLayerIds.indexOf(o))&&this.fire(new i.ErrorEvent(Error(`Source layer "${o}" does not exist on source "${n.id}" as specified by style layer "${r.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const i in this._sourceCaches)if(!this._sourceCaches[i].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(i){const r=[];for(const n of i){const o=this._layers[n];"custom"!==o.type&&r.push(o.serialize())}return r}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(const i in this._sourceCaches)if(this._sourceCaches[i].hasTransition())return!0;for(const r in this._layers)if(this._layers[r].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(i){return!!this.terrain&&th[i.type]}_checkLoaded(){if(!this._loaded)throw Error("Style is not done loading")}update(r){if(!this._loaded)return;const n=this._changed;if(this._changed){const o=Object.keys(this._updatedLayers),s=Object.keys(this._removedLayers);for(const a in(o.length||s.length)&&this._updateWorkerLayers(o,s),this._updatedSources){const l=this._updatedSources[a];"reload"===l?this._reloadSource(a):"clear"===l&&this._clearSource(a)}for(const c in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[c].updateTransitions(r);this.light.updateTransitions(r),this.fog&&this.fog.updateTransitions(r),this._resetUpdates()}const h={};for(const u in this._sourceCaches){const d=this._sourceCaches[u];h[u]=d.used,d.used=!1}for(const p of this._order){const f=this._layers[p];if(f.recalculate(r,this._availableImages),!f.isHidden(r.zoom)){const m=this._getLayerSourceCache(f);m&&(m.used=!0)}const _=this.map.painter;if(_){const g=f.getProgramIds();if(!g)continue;const y=f.getProgramConfiguration(r.zoom);for(const x of g)_.useProgram(x,y)}}for(const v in h){const b=this._sourceCaches[v];h[v]!==b.used&&b.getSource().fire(new i.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:b.getSource().id}))}this.light.recalculate(r),this.terrain&&this.terrain.recalculate(r),this.fog&&this.fog.recalculate(r),this.z=r.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),n&&this.fire(new i.Event("data",{dataType:"style"}))}_updateTilesForChangedImages(){const i=Object.keys(this._changedImages);if(i.length){for(const r in this._sourceCaches)this._sourceCaches[r].reloadTilesForDependencies(["icons","patterns"],i);this._changedImages={}}}_updateWorkerLayers(i,r){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(i),removedIds:r})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(r){if(this._checkLoaded(),ts(this,i.validateStyle(r)))return!1;(r=i.clone$1(r)).layers=eM(r.layers);const n=(function(i,r){if(!i)return[{command:eA.setStyle,args:[r]}];let n=[];try{if(!s(i.version,r.version))return[{command:eA.setStyle,args:[r]}];s(i.center,r.center)||n.push({command:eA.setCenter,args:[r.center]}),s(i.zoom,r.zoom)||n.push({command:eA.setZoom,args:[r.zoom]}),s(i.bearing,r.bearing)||n.push({command:eA.setBearing,args:[r.bearing]}),s(i.pitch,r.pitch)||n.push({command:eA.setPitch,args:[r.pitch]}),s(i.sprite,r.sprite)||n.push({command:eA.setSprite,args:[r.sprite]}),s(i.glyphs,r.glyphs)||n.push({command:eA.setGlyphs,args:[r.glyphs]}),s(i.transition,r.transition)||n.push({command:eA.setTransition,args:[r.transition]}),s(i.light,r.light)||n.push({command:eA.setLight,args:[r.light]}),s(i.fog,r.fog)||n.push({command:eA.setFog,args:[r.fog]}),s(i.projection,r.projection)||n.push({command:eA.setProjection,args:[r.projection]});const o={},a=[];!function(i,r,n,o){let a;for(a in r=r||{},i=i||{})i.hasOwnProperty(a)&&(r.hasOwnProperty(a)||ez(a,n,o));for(a in r){var l,c;r.hasOwnProperty(a)&&(i.hasOwnProperty(a)?s(i[a],r[a])||("geojson"===i[a].type&&"geojson"===r[a].type&&function(i,r,n){let o;for(o in i[n])if(i[n].hasOwnProperty(o)&&"data"!==o&&!s(i[n][o],r[n][o]))return!1;for(o in r[n])if(r[n].hasOwnProperty(o)&&"data"!==o&&!s(i[n][o],r[n][o]))return!1;return!0}(i,r,a)?n.push({command:eA.setGeoJSONSourceData,args:[a,r[a].data]}):(l=a,c=r,ez(l,n,o),eC(l,c,n))):eC(a,r,n))}}(i.sources,r.sources,a,o);const l=[];i.layers&&i.layers.forEach(i=>{o[i.source]?n.push({command:eA.removeLayer,args:[i.id]}):l.push(i)});let c=i.terrain;c&&o[c.source]&&(n.push({command:eA.setTerrain,args:[void 0]}),c=void 0),n=n.concat(a),s(c,r.terrain)||n.push({command:eA.setTerrain,args:[r.terrain]}),function(i,r,n){let o,a,l,c,h,u,d;r=r||[];const p=(i=i||[]).map(eP),f=r.map(eP),m=i.reduce(eD,{}),_=r.reduce(eD,{}),g=p.slice(),y=Object.create(null);for(o=0,a=0;o!(i.command in tl));if(0===n.length)return!1;const o=n.filter(i=>!(i.command in ta));if(o.length>0)throw Error(`Unimplemented: ${o.map(i=>i.command).join(", ")}.`);return n.forEach(i=>{"setTransition"!==i.command&&this[i.command].apply(this,i.args)}),this.stylesheet=r,this.updateProjection(),!0}addImage(r,n){if(this.getImage(r))return this.fire(new i.ErrorEvent(Error("An image with this name already exists.")));this.imageManager.addImage(r,n),this._afterImageUpdated(r)}updateImage(i,r){this.imageManager.updateImage(i,r)}getImage(i){return this.imageManager.getImage(i)}removeImage(r){if(!this.getImage(r))return this.fire(new i.ErrorEvent(Error("No image with this name exists.")));this.imageManager.removeImage(r),this._afterImageUpdated(r)}_afterImageUpdated(r){this._availableImages=this.imageManager.listImages(),this._changedImages[r]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new i.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(r,n,o={}){if(this._checkLoaded(),void 0!==this.getSource(r))throw Error("There is already a source with this ID");if(!n.type)throw Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(n.type)>=0&&this._validate(i.validateStyle.source,`sources.${r}`,n,null,o))return;this.map&&this.map._collectResourceTiming&&(n.collectResourceTiming=!0);const s=eb(r,n,this.dispatcher,this);s.setEventedParent(this,()=>({isSourceLoaded:this.loaded(),source:s.serialize(),sourceId:r}));const a=n=>{const o=(n?"symbol:":"other:")+r,a=this._sourceCaches[o]=new i.SourceCache(o,s,n);(n?this._symbolSourceCaches:this._otherSourceCaches)[r]=a,a.style=this,a.onAdd(this.map)};a(!1),"vector"!==n.type&&"geojson"!==n.type||a(!0),s.onAdd&&s.onAdd(this.map),this._changed=!0}removeSource(r){this._checkLoaded();const n=this.getSource(r);if(void 0===n)throw Error("There is no source with this ID");for(const o in this._layers)if(this._layers[o].source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while layer "${o}" is using it.`)));if(this.terrain&&this.terrain.get().source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while terrain is using it.`)));const s=this._getSourceCaches(r);for(const a of s)delete this._sourceCaches[a.id],delete this._updatedSources[a.id],a.fire(new i.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:a.getSource().id})),a.setEventedParent(null),a.clearTiles();delete this._otherSourceCaches[r],delete this._symbolSourceCaches[r],n.setEventedParent(null),n.onRemove&&n.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(i,r){this._checkLoaded(),this.getSource(i).setData(r),this._changed=!0}getSource(i){const r=this._getSourceCache(i);return r&&r.getSource()}addLayer(r,n,o={}){let s;this._checkLoaded();const a=r.id;if(this.getLayer(a))return void this.fire(new i.ErrorEvent(Error(`Layer with id "${a}" already exists on this map`)));if("custom"===r.type){if(ts(this,i.validateCustomStyleLayer(r)))return;s=i.createStyleLayer(r)}else{if("object"==typeof r.source&&(this.addSource(a,r.source),r=i.clone$1(r),r=i.extend(r,{source:a})),this._validate(i.validateStyle.layer,`layers.${a}`,r,{arrayIndex:-1},o))return;s=i.createStyleLayer(r),this._validateLayer(s),s.setEventedParent(this,{layer:{id:a}}),this._serializedLayers[s.id]=s.serialize(),this._updateLayerCount(s,!0)}const l=n?this._order.indexOf(n):this._order.length;if(n&&-1===l)return void this.fire(new i.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`)));this._order.splice(l,0,a),this._layerOrderChanged=!0,this._layers[a]=s;const c=this._getLayerSourceCache(s);if(this._removedLayers[a]&&s.source&&c&&"custom"!==s.type){const h=this._removedLayers[a];delete this._removedLayers[a],h.type!==s.type?this._updatedSources[s.source]="clear":(this._updatedSources[s.source]="reload",c.pause())}this._updateLayer(s),s.onAdd&&s.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(r,n){if(this._checkLoaded(),this._changed=!0,!this._layers[r])return void this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be moved.`)));if(r===n)return;const o=this._order.indexOf(r);this._order.splice(o,1);const s=n?this._order.indexOf(n):this._order.length;n&&-1===s?this.fire(new i.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`))):(this._order.splice(s,0,r),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(r){this._checkLoaded();const n=this._layers[r];if(!n)return void this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be removed.`)));n.setEventedParent(null),this._updateLayerCount(n,!1);const o=this._order.indexOf(r);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[r]=n,delete this._layers[r],delete this._serializedLayers[r],delete this._updatedLayers[r],delete this._updatedPaintProps[r],n.onRemove&&n.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(i){return this._layers[i]}hasLayer(i){return i in this._layers}hasLayerType(i){for(const r in this._layers)if(this._layers[r].type===i)return!0;return!1}setLayerZoomRange(r,n,o){this._checkLoaded();const s=this.getLayer(r);s?s.minzoom===n&&s.maxzoom===o||(null!=n&&(s.minzoom=n),null!=o&&(s.maxzoom=o),this._updateLayer(s)):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(r,n,o={}){this._checkLoaded();const a=this.getLayer(r);if(a){if(!s(a.filter,n))return null==n?(a.filter=void 0,void this._updateLayer(a)):void(this._validate(i.validateStyle.filter,`layers.${a.id}.filter`,n,{layerType:a.type},o)||(a.filter=i.clone$1(n),this._updateLayer(a)))}else this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be filtered.`)))}getFilter(r){return i.clone$1(this.getLayer(r).filter)}setLayoutProperty(r,n,o,a={}){this._checkLoaded();const l=this.getLayer(r);l?s(l.getLayoutProperty(n),o)||(l.setLayoutProperty(n,o,a),this._updateLayer(l)):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(r,n){const o=this.getLayer(r);if(o)return o.getLayoutProperty(n);this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style.`)))}setPaintProperty(r,n,o,a={}){this._checkLoaded();const l=this.getLayer(r);l?s(l.getPaintProperty(n),o)||(l.setPaintProperty(n,o,a)&&this._updateLayer(l),this._changed=!0,this._updatedPaintProps[r]=!0):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(i,r){return this.getLayer(i).getPaintProperty(r)}setFeatureState(r,n){this._checkLoaded();const o=r.source,s=r.sourceLayer,a=this.getSource(o);if(void 0===a)return void this.fire(new i.ErrorEvent(Error(`The source '${o}' does not exist in the map's style.`)));const l=a.type;if("geojson"===l&&s)return void this.fire(new i.ErrorEvent(Error("GeoJSON sources cannot have a sourceLayer parameter.")));if("vector"===l&&!s)return void this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));void 0===r.id&&this.fire(new i.ErrorEvent(Error("The feature id parameter must be provided.")));const c=this._getSourceCaches(o);for(const h of c)h.setFeatureState(s,r.id,n)}removeFeatureState(r,n){this._checkLoaded();const o=r.source,s=this.getSource(o);if(void 0===s)return void this.fire(new i.ErrorEvent(Error(`The source '${o}' does not exist in the map's style.`)));const a=s.type,l="vector"===a?r.sourceLayer:void 0;if("vector"===a&&!l)return void this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));if(n&&"string"!=typeof r.id&&"number"!=typeof r.id)return void this.fire(new i.ErrorEvent(Error("A feature id is required to remove its specific state property.")));const c=this._getSourceCaches(o);for(const h of c)h.removeFeatureState(l,r.id,n)}getFeatureState(r){this._checkLoaded();const n=r.source,o=r.sourceLayer,s=this.getSource(n);if(void 0!==s){if("vector"!==s.type||o)return void 0===r.id&&this.fire(new i.ErrorEvent(Error("The feature id parameter must be provided."))),this._getSourceCaches(n)[0].getFeatureState(o,r.id);this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new i.ErrorEvent(Error(`The source '${n}' does not exist in the map's style.`)))}getTransition(){return i.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const r={};for(const n in this._sourceCaches){const o=this._sourceCaches[n].getSource();r[o.id]||(r[o.id]=o.serialize())}return i.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.stylesheet.terrain,fog:this.stylesheet.fog,center:this.stylesheet.center,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:r,layers:this._serializeLayers(this._order)},i=>void 0!==i)}_updateLayer(i){this._updatedLayers[i.id]=!0;const r=this._getLayerSourceCache(i);i.source&&!this._updatedSources[i.source]&&r&&"raster"!==r.getSource().type&&(this._updatedSources[i.source]="reload",r.pause()),this._changed=!0,i.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(i){var r,n;const o={},s=[];for(let a=this._order.length-1;a>=0;a--){const l=this._order[a];if(r=l,"fill-extrusion"===this._layers[r].type)for(const c of(o[l]=a,i)){const h=c[l];if(h)for(const u of h)s.push(u)}}s.sort((i,r)=>r.intersectionZ-i.intersectionZ);const d=[];for(let p=this._order.length-1;p>=0;p--){const f=this._order[p];if(n=f,"fill-extrusion"===this._layers[n].type)for(let m=s.length-1;m>=0;m--){const _=s[m].feature;if(o[_.layer.id]{const r=this.getLayer(i);return r&&r.is3D()}):this.has3DLayers(),u=ep.createFromScreenPoints(r,o);for(const d in this._sourceCaches){const p=this._sourceCaches[d].getSource().id;n.layers&&!s[p]||c.push(function(r,n,o,s,a,l,c,h=!1){const u=r.tilesIn(s,c,h);u.sort(ew);const d=[];for(const p of u)d.push({wrappedTileID:p.tile.tileID.wrapped().key,queryResults:p.tile.queryRenderedFeatures(n,o,r._state,p,a,l,function(r,n){const o=i.identity([]);return i.scale(o,o,[.5*r.width,-(.5*r.height),1]),i.translate(o,o,[1,-1,0]),i.multiply$1(o,o,r.calculateProjMatrix(n.toUnwrapped()))}(r.transform,p.tile.tileID),h)});const f=function(i){const r={},n={};for(const o of i){const s=o.queryResults,a=o.wrappedTileID,l=n[a]=n[a]||{};for(const c in s){const h=s[c],u=l[c]=l[c]||{},d=r[c]=r[c]||[];for(const p of h)u[p.featureIndex]||(u[p.featureIndex]=!0,d.push(p))}}return r}(d);for(const m in f)f[m].forEach(i=>{const n=i.feature,o=r.getFeatureState(n.layer["source-layer"],n.id);n.source=n.layer.source,n.layer["source-layer"]&&(n.sourceLayer=n.layer["source-layer"]),n.state=o});return f}(this._sourceCaches[d],this._layers,this._serializedLayers,u,n,o,h,!!this.map._showQueryGeometry))}return this.placement&&c.push(function(i,r,n,o,s,a,l){const c={},h=a.queryRenderedSymbols(o),u=[];for(const d of Object.keys(h).map(Number))u.push(l[d]);for(const p of(u.sort(ew),u)){const f=p.featureIndex.lookupSymbolFeatures(h[p.bucketInstanceId],r,p.bucketIndex,p.sourceLayerIndex,s.filter,s.layers,s.availableImages,i);for(const m in f){const _=c[m]=c[m]||[],g=f[m];for(const y of(g.sort((i,r)=>{const n=p.featureSortOrder;if(n){const o=n.indexOf(i.featureIndex);return n.indexOf(r.featureIndex)-o}return r.featureIndex-i.featureIndex}),g))_.push(y)}}for(const x in c)c[x].forEach(r=>{const o=r.feature,s=n(i[x]).getFeatureState(o.layer["source-layer"],o.id);o.source=o.layer.source,o.layer["source-layer"]&&(o.sourceLayer=o.layer["source-layer"]),o.state=s});return c}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),u.screenGeometry,n,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(c)}querySourceFeatures(r,n){n&&n.filter&&this._validate(i.validateStyle.filter,"querySourceFeatures.filter",n.filter,null,n);const o=this._getSourceCaches(r);let s=[];for(const a of o)s=s.concat(function(i,r){const n=i.getRenderableIds().map(r=>i.getTileByID(r)),o=[],s={};for(let a=0;a{for(const i of this.map._markers)i._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(r){if(this._checkLoaded(),!r)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const n=this.fog,o=n.get();for(const a in r)if(!s(r[a],o[a])){n.set(r),this.stylesheet.fog=r;const l={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};n.updateTransitions(l);break}}else this._createFog(r);this._markersNeedUpdate=!0}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const i=this._order.filter(i=>this.isLayerDraped(this._layers[i])),r=this._order.filter(i=>!this.isLayerDraped(this._layers[i]));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...i),this._drapedFirstOrder.push(...r)}_createTerrain(r,n){const o=this.terrain=new y(r,n);this.stylesheet.terrain=r,this.dispatcher.broadcast("enableTerrain",!0),this._force3DLayerUpdate();const s={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};o.updateTransitions(s)}_force3DLayerUpdate(){for(const i in this._layers){const r=this._layers[i];"fill-extrusion"===r.type&&this._updateLayer(r)}}_forceSymbolLayerUpdate(){for(const i in this._layers){const r=this._layers[i];"symbol"===r.type&&this._updateLayer(r)}}_validate(r,n,o,s,a={}){return(!a||!1!==a.validate)&&ts(this,r.call(i.validateStyle,i.extend({key:n,style:this.serialize(),value:o,styleSpec:i.spec},s)))}_remove(){for(const r in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),i.evented.off("pluginStateChange",this._rtlTextPluginCallback),this._layers)this._layers[r].setEventedParent(null);for(const n in this._sourceCaches)this._sourceCaches[n].clearTiles(),this._sourceCaches[n].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(i){const r=this._getSourceCaches(i);for(const n of r)n.clearTiles()}_reloadSource(i){const r=this._getSourceCaches(i);for(const n of r)n.resume(),n.reload()}_updateSources(i){for(const r in this._sourceCaches)this._sourceCaches[r].update(i)}_generateCollisionBoxes(){for(const i in this._sourceCaches){const r=this._sourceCaches[i];r.resume(),r.reload()}}_updatePlacement(r,n,o,s,a=!1){let l=!1,c=!1;const h={};for(const u of this._order){const d=this._layers[u];if("symbol"!==d.type)continue;if(!h[d.source]){const p=this._getLayerSourceCache(d);if(!p)continue;h[d.source]=p.getRenderableIds(!0).map(i=>p.getTileByID(i)).sort((i,r)=>r.tileID.overscaledZ-i.tileID.overscaledZ||(i.tileID.isLessThan(r.tileID)?-1:1))}const f=this.crossTileSymbolIndex.addLayer(d,h[d.source],r.center.lng,r.projection);l=l||f}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),a=a||this._layerOrderChanged||0===o,this._layerOrderChanged&&this.fire(new i.Event("neworder")),(a||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(i.exported.now(),r.zoom))&&(this.pauseablePlacement=new te(r,this._order,a,n,o,s,this.placement,this.fog&&r.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,h),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(i.exported.now()),c=!0),l&&this.pauseablePlacement.placement.setStale()),c||l)for(const m of this._order){const _=this._layers[m];"symbol"===_.type&&this.placement.updateLayerOpacities(_,h[_.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(i.exported.now())}_releaseSymbolFadeTiles(){for(const i in this._sourceCaches)this._sourceCaches[i].releaseSymbolFadeTiles()}getImages(i,r,n){this.imageManager.getImages(r.icons,n),this._updateTilesForChangedImages();const o=i=>{i&&i.setDependencies(r.tileID.key,r.type,r.icons)};o(this._otherSourceCaches[r.source]),o(this._symbolSourceCaches[r.source])}getGlyphs(i,r,n){this.glyphManager.getGlyphs(r.stacks,n)}getResource(r,n,o){return i.makeRequest(n,o)}_getSourceCache(i){return this._otherSourceCaches[i]}_getLayerSourceCache(i){return"symbol"===i.type?this._symbolSourceCaches[i.source]:this._otherSourceCaches[i.source]}_getSourceCaches(i){const r=[];return this._otherSourceCaches[i]&&r.push(this._otherSourceCaches[i]),this._symbolSourceCaches[i]&&r.push(this._symbolSourceCaches[i]),r}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}tu.getSourceType=function(i){return ev[i]},tu.setSourceType=function(i,r){ev[i]=r},tu.registerForPluginStateChange=i.registerForPluginStateChange;var td="\n#define EPSILON 0.0000001\n#define PI 3.141592653589793\n#define EXTENT 8192.0\n#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;varying 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);}\n#endif",tp="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying 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;}";let tf={},tm={};tf=ty("","\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\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nuniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev;\n#else\nuniform sampler2D u_dem;uniform sampler2D u_dem_prev;\n#endif\nuniform vec4 u_dem_unpack;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;uniform sampler2D u_depth;uniform vec2 u_depth_size_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 decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}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*texture2D(u_dem,pos).a;\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=decodeElevation(texture2D(u_dem,pos));\n#ifdef TERRAIN_DEM_NEAREST_FILTER\nreturn u_exaggeration*tl;\n#endif\nfloat tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));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*texture2D(u_dem_prev,pos).a;\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=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));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) {float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);}\n#else\nfloat elevation(vec2 apos) {return currentElevation(apos);}\n#endif\nfloat unpack_depth(vec4 rgba_depth)\n{const vec4 bit_shift=vec4(1.0/(256.0*256.0*256.0),1.0/(256.0*256.0),1.0/256.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4(\nunpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy))\n);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nfloat tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a;\n#else\nvec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack);\n#endif\nreturn 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;vec4 bounds=vec4(d,vec2(1.0)-d);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; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; }\n#endif",!0),tm=ty("#ifdef FOG\nuniform float u_fog_temporal_offset;float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);return mix(color,u_fog_color.rgb,opacity);}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;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);}\n#endif","#ifdef FOG\nuniform mat4 u_fog_matrix;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",!0);const t_=ty("\nhighp 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 TERRAIN\nhighp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(256.0*256.0*256.0,256.0*256.0,256.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/256.0,1.0/256.0,1.0/256.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}\n#endif","\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;}vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) {\n#if defined(PROJECTION_GLOBE_VIEW) && !defined(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) {\n#if defined(PROJECTION_GLOBE_VIEW) && !defined(PROJECTED_POS_ON_VIEWPORT)\nreturn mix(globe,mercator,t);\n#else\nreturn globe;\n#endif\n}\n#ifdef PROJECTION_GLOBE_VIEW\nmat3 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 float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered.");var tg={background:ty("uniform vec4 u_color;uniform float u_opacity;void main() {vec4 out_color=u_color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),backgroundPattern:ty("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_mix);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),circle:ty("varying vec3 v_data;varying 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\nvoid 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 extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,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 FOG\nout_color=fog_apply_premultiplied(out_color,v_fog_pos);\n#endif\ngl_FragColor=out_color*(v_visibility*opacity_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\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;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;attribute float a_scale;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\nvarying vec3 v_data;varying 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);\n#ifdef PROJECTION_GLOBE_VIEW\nvec2 scaled_extrude=extrude*a_scale;vec3 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=scaled_extrude.x*surface_vectors[0]+scaled_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);vec4 world_center=vec4(pos,1);\n#else \nmat3 surface_vectors=mat3(1.0);float height=circle_elevation(circle_center);vec4 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\n#if defined(SCALE_WITH_MAP) && defined(PROJECTION_GLOBE_VIEW)\nview_scale*=a_scale;\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();\n#ifdef PITCH_WITH_MAP\nfloat cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);vec4 occlusion_world_center=vec4(circle_center,cantilevered_height,1);vec4 occlusion_projected_center=u_matrix*occlusion_world_center;\n#else\nvec4 occlusion_world_center=world_center;vec4 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:ty("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:ty("uniform highp float u_intensity;varying 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);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef FOG\ngl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;attribute float a_scale;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\nvarying 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);\n#ifdef PROJECTION_GLOBE_VIEW\nextrude*=a_scale;vec3 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;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#else\nvec3 pos=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:ty("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:ty("varying float v_placed;varying 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);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}","attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),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:ty("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying 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);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying 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:ty("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;\n#endif\nvarying 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:ty("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\nvec4 out_color=color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutline:ty("varying vec2 v_pos;\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 FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\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\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutlinePattern:ty("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=mix(color1,color2,u_fade);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillPattern:ty("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillExtrusion:ty("varying vec4 v_color;void main() {vec4 color=v_color;\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform 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;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute 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\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 pos_nx=floor(a_pos_normal_ed.xyz*0.5);mediump vec3 top_up_ny=a_pos_normal_ed.xyz-2.0*pos_nx;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));base=max(0.0,base);height=max(0.0,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\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;float ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;float h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 pos=vec3(pos_nx.xy,h);\n#else\nvec3 pos=vec3(pos_nx.xy,t > 0.0 ? height : base);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_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*(pos.z+lift));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 hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.rgb+=clamp(color.rgb*directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_color*=u_opacity;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),fillExtrusionPattern:ty("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade);out_color=out_color*v_lighting;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute 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\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 pos_nx=floor(a_pos_normal_ed.xyz*0.5);mediump vec3 top_up_ny=a_pos_normal_ed.xyz-2.0*pos_nx;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_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;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\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;float ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;float h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 p=vec3(pos_nx.xy,h);\n#else\nvec3 p=vec3(pos_nx.xy,z);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_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\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.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_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;\n#ifdef FOG\nv_fog_pos=fog_position(p);\n#endif\n}"),hillshadePrepare:ty("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nreturn texture2D(u_image,coord).a/4.0;\n#else\nvec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;\n#endif\n}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);float f=getElevation(v_pos+vec2(epsilon.x,0));float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float h=getElevation(v_pos+vec2(0,epsilon.y));float i=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+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c)\n)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(\nderiv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying 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:ty("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(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);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef FOG\ngl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos));\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying 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:ty("uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#ifdef RENDER_LINE_DASH\nuniform sampler2D u_dash_image;uniform float u_mix;uniform vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform sampler2D u_gradient_image;varying highp vec2 v_uv;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash_from\n#pragma mapbox: define lowp vec4 dash_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash_from\n#pragma mapbox: initialize lowp vec4 dash_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);\n#ifdef RENDER_LINE_DASH\nfloat sdfdist_a=texture2D(u_dash_image,v_tex_a).a;float sdfdist_b=texture2D(u_dash_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfwidth=min(dash_from.z*u_scale.y,dash_to.z*u_scale.z);float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/sdfwidth;alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);\n#endif\n#ifdef RENDER_LINE_GRADIENT\nvec4 out_color=texture2D(u_gradient_image,v_uv);\n#else\nvec4 out_color=color;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\n#ifdef RENDER_LINE_ALPHA_DISCARD\nif (alpha < u_alpha_discard_threshold) {discard;}\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define EXTRUDE_SCALE 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;\n#ifdef RENDER_LINE_GRADIENT\nattribute vec3 a_packed;\n#else\nattribute 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;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;\n#ifdef RENDER_LINE_DASH\nuniform vec2 u_texsize;uniform mediump vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform float u_image_height;varying highp vec2 v_uv;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash_from\n#pragma mapbox: define lowp vec4 dash_to\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\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash_from\n#pragma mapbox: initialize lowp vec4 dash_to\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\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=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*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);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\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=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nfloat a_uv_x=a_packed[0];float a_split_index=a_packed[1];float a_linesofar=a_packed[2];highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);\n#endif\n#ifdef RENDER_LINE_DASH\nfloat tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;float scaleA=dash_from.z==0.0 ? 0.0 : tileZoomRatio/(dash_from.z*fromScale);float scaleB=dash_to.z==0.0 ? 0.0 : tileZoomRatio/(dash_to.z*toScale);float heightA=dash_from.y;float heightB=dash_to.y;v_tex_a=vec2(a_linesofar*scaleA/floorwidth,(-normal.y*heightA+dash_from.x+0.5)/u_texsize.y);v_tex_b=vec2(a_linesofar*scaleB/floorwidth,(-normal.y*heightB+dash_to.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}"),linePattern:ty("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\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=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\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=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),raster:ty("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(\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 FOG\nout_color=fog_dither(fog_apply(out_color,v_fog_pos));\n#endif\ngl_FragColor=vec4(out_color*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),symbolIcon:ty("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\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_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.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 fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,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_minFontScale,fontScale)+a_pxoffset/16.0);\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\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));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\nv_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}"),symbolSDF:ty("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\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\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\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;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_tile_id;uniform float u_zoom_transition;varying vec2 v_data0;varying vec3 v_data1;\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\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\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;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.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 fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,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*fontScale+a_pxoffset);\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\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float gamma_scale=gl_Position.w;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));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}"),symbolTextAndIcon:ty("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\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\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\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;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 vec2 u_texsize_icon;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;varying vec4 v_data0;varying vec4 v_data1;\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\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\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);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.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 fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,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*fontScale);\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\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float gamma_scale=gl_Position.w;vec2 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 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\nv_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}"),terrainRaster:ty("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\nvoid main() {vec4 color=texture2D(u_image0,v_pos0);\n#ifdef FOG\ncolor=fog_dither(fog_apply_from_vert(color,v_fog_opacity));\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\nconst float skirtOffset=24575.0;const float wireframeOffset=0.00015;void main() {v_pos0=a_texture_pos/8192.0;float skirt=float(a_pos.x >=skirtOffset);float elevation=elevation(a_texture_pos)-skirt*u_skirt_height;\n#ifdef TERRAIN_WIREFRAME\nelevation+=u_skirt_height*u_skirt_height*wireframeOffset;\n#endif\nvec2 decodedPos=a_pos-vec2(skirt*skirtOffset,0.0);gl_Position=u_matrix*vec4(decodedPos,elevation,1.0);\n#ifdef FOG\nv_fog_opacity=fog(fog_position(vec3(decodedPos,elevation)));\n#endif\n}"),terrainDepth:ty("#ifdef GL_ES\nprecision highp float;\n#endif\nvarying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying float v_depth;void main() {float elevation=elevation(a_texture_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:ty("\nvarying 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=textureCube(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);gl_FragColor=vec4(sky_color*u_opacity,u_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",tp),skyboxGradient:ty("varying 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=texture2D(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);gl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",tp),skyboxCapture:ty("\nvarying 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;\n#ifdef GL_ES\nprecision highp float;\n#endif\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;gl_FragColor=vec4(color,1.0);}","attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying 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:ty("uniform sampler2D u_image0;varying vec2 v_pos0;void main() {gl_FragColor=texture2D(u_image0,v_pos0);\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_proj_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;attribute vec3 a_globe_pos;attribute vec2 a_merc_pos;attribute vec2 a_uv;varying vec2 v_pos0;const float wireframeOffset=1e3;void main() {v_pos0=a_uv;vec2 uv=a_uv*EXTENT;vec4 up_vector=vec4(elevationVector(uv),1.0);float height=elevation(uv);\n#ifdef TERRAIN_WIREFRAME\nheight+=wireframeOffset;\n#endif\nvec4 globe=u_globe_matrix*vec4(a_globe_pos+up_vector.xyz*height,1.0);vec4 mercator=vec4(0.0);if (u_zoom_transition > 0.0) {mercator=vec4(a_merc_pos,height,1.0);mercator.xy-=u_merc_center;mercator.x=wrap(mercator.x,-0.5,0.5);mercator=u_merc_matrix*mercator;}vec3 position=mix(globe.xyz,mercator.xyz,u_zoom_transition);gl_Position=u_proj_matrix*vec4(position,1.0);}"),globeAtmosphere:ty("uniform vec2 u_center;uniform float u_radius;uniform vec2 u_screen_size;uniform float u_opacity;uniform highp float u_fadeout_range;uniform vec3 u_start_color;uniform vec3 u_end_color;uniform float u_pixel_ratio;void main() {highp vec2 fragCoord=gl_FragCoord.xy/u_pixel_ratio;fragCoord.y=u_screen_size.y-fragCoord.y;float distFromCenter=length(fragCoord-u_center);float normDistFromCenter=length(fragCoord-u_center)/u_radius;if (normDistFromCenter < 1.0)\ndiscard;float t=clamp(1.0-sqrt(normDistFromCenter-1.0)/u_fadeout_range,0.0,1.0);vec3 color=mix(u_start_color,u_end_color,1.0-t);gl_FragColor=vec4(color*t*u_opacity,u_opacity);}","attribute vec3 a_pos;void main() {gl_Position=vec4(a_pos,1.0);}")};function ty(i,r,n){const o=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,s=/uniform (highp |mediump |lowp )?([\w]+) ([\w]+)([\s]*)([\w]*)/g,a=r.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),l=i.match(s),c=r.match(s),h=td.match(s);let u=c?c.concat(l):l;n||(tf.staticUniforms&&(u=tf.staticUniforms.concat(u)),tm.staticUniforms&&(u=tm.staticUniforms.concat(u))),u&&(u=u.concat(h));const d={};return{fragmentSource:i=i.replace(o,(i,r,n,o,s)=>(d[s]=!0,"define"===r?` +Use an identity property function instead: \`{ "type": "identity", "property": ${JSON.stringify(n[1])} }\`.`)];const p=[];return"symbol"===i.layerType&&("text-field"===c&&s&&!s.glyphs&&p.push(new tn(o,l,'use of "text-field" requires a style "glyphs" property')),"text-font"===c&&iQ(tl(l))&&"identity"===ta(l.type)&&p.push(new tn(o,l,'"text-font" does not support identity functions'))),p.concat(rz({key:i.key,value:l,valueSpec:d,style:s,styleSpec:a,expressionContext:"property",propertyType:r,propertyKey:c}))}function rv(i){return rx(i,"paint")}function rb(i){return rx(i,"layout")}function rw(i){let r=[];const n=i.value,o=i.key,s=i.style,a=i.styleSpec;n.type||n.ref||r.push(new tn(o,n,'either "type" or "ref" is required'));let l=ta(n.type);const c=ta(n.ref);if(n.id){const h=ta(n.id);for(let u=0;u{i in n&&r.push(new tn(o,n[i],`"${i}" is prohibited for ref layers`))}),s.layers.forEach(i=>{ta(i.id)===c&&(p=i)}),p?p.ref?r.push(new tn(o,n.ref,"ref cannot reference another ref layer")):l=ta(p.type):r.push(new tn(o,n.ref,`ref layer "${c}" not found`))}else if("background"!==l&&"sky"!==l){if(n.source){const f=s.sources&&s.sources[n.source],m=f&&ta(f.type);f?"vector"===m&&"raster"===l?r.push(new tn(o,n.source,`layer "${n.id}" requires a raster source`)):"raster"===m&&"raster"!==l?r.push(new tn(o,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==m||n["source-layer"]?"raster-dem"===m&&"hillshade"!==l?r.push(new tn(o,n.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"===l&&n.paint&&n.paint["line-gradient"]&&("geojson"!==m||!f.lineMetrics)&&r.push(new tn(o,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):r.push(new tn(o,n,`layer "${n.id}" must specify a "source-layer"`)):r.push(new tn(o,n.source,`source "${n.source}" not found`))}else r.push(new tn(o,n,'missing required property "source"'))}return r=r.concat(rr({key:o,value:n,valueSpec:a.layer,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":()=>[],type:()=>rz({key:`${o}.type`,value:n.type,valueSpec:a.layer.type,style:i.style,styleSpec:i.styleSpec,object:n,objectKey:"type"}),filter:i=>ry(ts({layerType:l},i)),layout:i=>rr({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rb(ts({layerType:l},i))}}),paint:i=>rr({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rv(ts({layerType:l},i))}})}}))}function rT(i){const r=i.value,n=i.key,o=iJ(r);return"string"!==o?[new tn(n,r,`string expected, ${o} found`)]:[]}const rE={promoteId:function({key:i,value:r}){if("string"===iJ(r))return rT({key:i,value:r});{const n=[];for(const o in r)n.push(...rT({key:`${i}.${o}`,value:r[o]}));return n}}};function rS(i){let r;const n=i.value,o=i.key,s=i.styleSpec,a=i.style;if(!n.type)return[new tn(o,n,'"type" is required')];const l=ta(n.type);switch(l){case"vector":case"raster":case"raster-dem":return rr({key:o,value:n,valueSpec:s[`source_${l.replace("-","_")}`],style:i.style,styleSpec:s,objectElementValidators:rE});case"geojson":if(r=rr({key:o,value:n,valueSpec:s.source_geojson,style:a,styleSpec:s,objectElementValidators:rE}),n.cluster)for(const c in n.clusterProperties){const[h,u]=n.clusterProperties[c],d="string"==typeof h?[h,["accumulated"],["get",c]]:h;r.push(...ra({key:`${o}.${c}.map`,value:u,expressionContext:"cluster-map"})),r.push(...ra({key:`${o}.${c}.reduce`,value:d,expressionContext:"cluster-reduce"}))}return r;case"video":return rr({key:o,value:n,valueSpec:s.source_video,style:a,styleSpec:s});case"image":return rr({key:o,value:n,valueSpec:s.source_image,style:a,styleSpec:s});case"canvas":return[new tn(o,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return rl({key:`${o}.type`,value:n.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:a,styleSpec:s})}}function rI(i){const r=i.value,n=i.styleSpec,o=n.light,s=i.style;let a=[];const l=iJ(r);if(void 0===r)return a;if("object"!==l)return a.concat([new tn("light",r,`object expected, ${l} found`)]);for(const c in r){const h=c.match(/^(.*)-transition$/);a=a.concat(h&&o[h[1]]&&o[h[1]].transition?rz({key:c,value:r[c],valueSpec:n.transition,style:s,styleSpec:n}):o[c]?rz({key:c,value:r[c],valueSpec:o[c],style:s,styleSpec:n}):[new tn(c,r[c],`unknown property "${c}"`)])}return a}function rM(i){const r=i.value,n=i.key,o=i.style,s=i.styleSpec,a=s.terrain;let l=[];const c=iJ(r);if(void 0===r)return l;if("object"!==c)return l.concat([new tn("terrain",r,`object expected, ${c} found`)]);for(const h in r){const u=h.match(/^(.*)-transition$/);l=l.concat(u&&a[u[1]]&&a[u[1]].transition?rz({key:h,value:r[h],valueSpec:s.transition,style:o,styleSpec:s}):a[h]?rz({key:h,value:r[h],valueSpec:a[h],style:o,styleSpec:s}):[new tn(h,r[h],`unknown property "${h}"`)])}if(r.source){const d=o.sources&&o.sources[r.source],p=d&&ta(d.type);d?"raster-dem"!==p&&l.push(new tn(n,r.source,`terrain cannot be used with a source of type ${p}, it only be used with a "raster-dem" source type`)):l.push(new tn(n,r.source,`source "${r.source}" not found`))}else l.push(new tn(n,r,'terrain is missing required property "source"'));return l}function rA(i){const r=i.value,n=i.style,o=i.styleSpec,s=o.fog;let a=[];const l=iJ(r);if(void 0===r)return a;if("object"!==l)return a.concat([new tn("fog",r,`object expected, ${l} found`)]);for(const c in r){const h=c.match(/^(.*)-transition$/);a=a.concat(h&&s[h[1]]&&s[h[1]].transition?rz({key:c,value:r[c],valueSpec:o.transition,style:n,styleSpec:o}):s[c]?rz({key:c,value:r[c],valueSpec:s[c],style:n,styleSpec:o}):[new tn(c,r[c],`unknown property "${c}"`)])}return a}const rC={"*":()=>[],array:rn,boolean:function(i){const r=i.value,n=i.key,o=iJ(r);return"boolean"!==o?[new tn(n,r,`boolean expected, ${o} found`)]:[]},number:ro,color:function(i){const r=i.key,n=i.value,o=iJ(n);return"string"!==o?[new tn(r,n,`color expected, ${o} found`)]:null===tA.parseCSSColor(n)?[new tn(r,n,`color expected, "${n}" found`)]:[]},constants:to,enum:rl,filter:ry,function:rs,layer:rw,object:rr,source:rS,light:rI,terrain:rM,fog:rA,string:rT,formatted:function(i){return 0===rT(i).length?[]:ra(i)},resolvedImage:function(i){return 0===rT(i).length?[]:ra(i)},projection:function(i){const r=i.value,n=i.styleSpec,o=n.projection,s=i.style;let a=[];const l=iJ(r);if("object"===l)for(const c in r)a=a.concat(rz({key:c,value:r[c],valueSpec:o[c],style:s,styleSpec:n}));else"string"!==l&&(a=a.concat([new tn("projection",r,`object or string expected, ${l} found`)]));return a}};function rz(i){const r=i.value,n=i.valueSpec,o=i.styleSpec;return n.expression&&iQ(ta(r))?rs(i):n.expression&&i8(tl(r))?ra(i):n.type&&rC[n.type]?rC[n.type](i):rr(ts({},i,{valueSpec:n.type?o[n.type]:n}))}function rk(i){const r=i.value,n=i.key,o=rT(i);return o.length||(-1===r.indexOf("{fontstack}")&&o.push(new tn(n,r,'"glyphs" url must include a "{fontstack}" token')),-1===r.indexOf("{range}")&&o.push(new tn(n,r,'"glyphs" url must include a "{range}" token'))),o}function rP(i,r=tr){let n=[];return n=n.concat(rz({key:"",value:i,valueSpec:r.$root,styleSpec:r,style:i,objectElementValidators:{glyphs:rk,"*":()=>[]}})),i.constants&&(n=n.concat(to({key:"constants",value:i.constants,style:i,styleSpec:r}))),rD(n)}function rD(i){return[].concat(i).sort((i,r)=>i.line-r.line)}function rL(i){return function(...r){return rD(i.apply(this,r))}}rP.source=rL(rS),rP.light=rL(rI),rP.terrain=rL(rM),rP.fog=rL(rA),rP.layer=rL(rw),rP.filter=rL(ry),rP.paintProperty=rL(rv),rP.layoutProperty=rL(rb);const rB=rP.light,rR=rP.fog,rF=rP.paintProperty,rO=rP.layoutProperty;function rU(i,r){let n=!1;if(r&&r.length)for(const o of r)i.fire(new tt(Error(o.message))),n=!0;return n}var rV=rN;function rN(i,r,n){var o=this.cells=[];if(i instanceof ArrayBuffer){this.arrayBuffer=i;var s=new Int32Array(this.arrayBuffer);i=s[0],this.d=(r=s[1])+2*(n=s[2]);for(var a=0;a=d[m+0]&&o>=d[m+1])?(l[f]=!0,a.push(u[f])):l[f]=!1}}},rN.prototype._forEachCell=function(i,r,n,o,s,a,l,c){for(var h=this._convertToCellCoord(i),u=this._convertToCellCoord(r),d=this._convertToCellCoord(n),p=this._convertToCellCoord(o),f=h;f<=d;f++)for(var m=u;m<=p;m++){var _=this.d*m+f;if((!c||c(this._convertFromCellCoord(f),this._convertFromCellCoord(m),this._convertFromCellCoord(f+1),this._convertFromCellCoord(m+1)))&&s.call(this,i,r,n,o,_,a,l,c))return}},rN.prototype._convertFromCellCoord=function(i){return(i-this.padding)/this.scale},rN.prototype._convertToCellCoord=function(i){return Math.max(0,Math.min(this.d-1,Math.floor(i*this.scale)+this.padding))},rN.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var i=this.cells,r=3+this.cells.length+1+1,n=0,o=0;o=0)continue;const h=i[c];l[c]=rZ[a].shallow.indexOf(c)>=0?h:rH(h,r)}i instanceof Error&&(l.message=i.message)}if(l.$name)throw Error("$name property is reserved for worker serialization logic.");return"Object"!==a&&(l.$name=a),l}throw Error("can't serialize object of type "+typeof i)}function rK(i){if(null==i||"boolean"==typeof i||"number"==typeof i||"string"==typeof i||i instanceof Boolean||i instanceof Number||i instanceof String||i instanceof Date||i instanceof RegExp||rX(i)||rW(i)||ArrayBuffer.isView(i)||i instanceof rj)return i;if(Array.isArray(i))return i.map(rK);if("object"==typeof i){const r=i.$name||"Object",{klass:n}=rZ[r];if(!n)throw Error(`can't deserialize unregistered class ${r}`);if(n.deserialize)return n.deserialize(i);const o=Object.create(n.prototype);for(const s of Object.keys(i)){if("$name"===s)continue;const a=i[s];o[s]=rZ[r].shallow.indexOf(s)>=0?a:rK(a)}return o}throw Error("can't deserialize object of type "+typeof i)}class rY{constructor(){this.first=!0}update(i,r){const n=Math.floor(i);return this.first?(this.first=!1,this.lastIntegerZoom=n,this.lastIntegerZoomTime=0,this.lastZoom=i,this.lastFloorZoom=n,!0):(this.lastFloorZoom>n?(this.lastIntegerZoom=n+1,this.lastIntegerZoomTime=r):this.lastFloorZoomi>=1536&&i<=1791,rQ=i=>i>=1872&&i<=1919,r0=i=>i>=2208&&i<=2303,r1=i=>i>=11904&&i<=12031,r2=i=>i>=12032&&i<=12255,r3=i=>i>=12272&&i<=12287,r5=i=>i>=12288&&i<=12351,r4=i=>i>=12352&&i<=12447,r6=i=>i>=12448&&i<=12543,r8=i=>i>=12544&&i<=12591,r9=i=>i>=12704&&i<=12735,r7=i=>i>=12736&&i<=12783,ne=i=>i>=12784&&i<=12799,nt=i=>i>=12800&&i<=13055,ni=i=>i>=13056&&i<=13311,nr=i=>i>=13312&&i<=19903,nn=i=>i>=19968&&i<=40959,no=i=>i>=40960&&i<=42127,ns=i=>i>=42128&&i<=42191,na=i=>i>=44032&&i<=55215,nl=i=>i>=63744&&i<=64255,nc=i=>i>=64336&&i<=65023,nh=i=>i>=65040&&i<=65055,nu=i=>i>=65072&&i<=65103,nd=i=>i>=65104&&i<=65135,np=i=>i>=65136&&i<=65279,nf=i=>i>=65280&&i<=65519;function nm(i){for(const r of i)if(n_(r.charCodeAt(0)))return!0;return!1}function n_(i){return!(746!==i&&747!==i&&(i<4352||!(r9(i)||r8(i)||nu(i)&&!(i>=65097&&i<=65103)||nl(i)||ni(i)||r1(i)||r7(i)||!(!r5(i)||i>=12296&&i<=12305||i>=12308&&i<=12319||12336===i)||nr(i)||nn(i)||nt(i)||i>=12592&&i<=12687||i>=43360&&i<=43391||i>=55216&&i<=55295||i>=4352&&i<=4607||na(i)||r4(i)||r3(i)||i>=12688&&i<=12703||r2(i)||ne(i)||r6(i)&&12540!==i||!(!nf(i)||65288===i||65289===i||65293===i||i>=65306&&i<=65310||65339===i||65341===i||65343===i||i>=65371&&i<=65503||65507===i||i>=65512&&i<=65519)||!(!nd(i)||i>=65112&&i<=65118||i>=65123&&i<=65126)||i>=5120&&i<=5759||i>=6320&&i<=6399||nh(i)||i>=19904&&i<=19967||no(i)||ns(i))))}function ng(i){return!(n_(i)||i>=128&&i<=255&&(167===i||169===i||174===i||177===i||188===i||189===i||190===i||215===i||247===i)||i>=8192&&i<=8303&&(8214===i||8224===i||8225===i||8240===i||8241===i||8251===i||8252===i||8258===i||8263===i||8264===i||8265===i||8273===i)||i>=8448&&i<=8527||i>=8528&&i<=8591||i>=8960&&i<=9215&&(i>=8960&&i<=8967||i>=8972&&i<=8991||i>=8996&&i<=9e3||9003===i||i>=9085&&i<=9114||i>=9150&&i<=9165||9167===i||i>=9169&&i<=9179||i>=9186&&i<=9215)||i>=9216&&i<=9279&&9251!==i||i>=9280&&i<=9311||i>=9312&&i<=9471||i>=9632&&i<=9727||i>=9728&&i<=9983&&!(i>=9754&&i<=9759)||i>=11008&&i<=11263&&(i>=11026&&i<=11055||i>=11088&&i<=11097||i>=11192&&i<=11243)||r5(i)||r6(i)||i>=57344&&i<=63743||nu(i)||nd(i)||nf(i)||8734===i||8756===i||8757===i||i>=9984&&i<=10087||i>=10102&&i<=10131||65532===i||65533===i)}function ny(i){return i>=1424&&i<=2303||nc(i)||np(i)}const nx="deferred",nv="loading",nb="loaded";let nw=null,nT="unavailable",nE=null;const nS=function(i){i&&"string"==typeof i&&i.indexOf("NetworkError")>-1&&(nT="error"),nw&&nw(i)};function nI(){nM.fire(new te("pluginStateChange",{pluginStatus:nT,pluginURL:nE}))}const nM=new ti,nA=function(){return nT},nC=function(){if(nT!==nx||!nE)throw Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");nT=nv,nI(),nE&&e3({url:nE},i=>{i?nS(i):(nT=nb,nI())})},nz={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>nT===nb||null!=nz.applyArabicShaping,isLoading:()=>nT===nv,setState(i){nT=i.pluginStatus,nE=i.pluginURL},isParsed:()=>null!=nz.applyArabicShaping&&null!=nz.processBidirectionalText&&null!=nz.processStyledBidirectionalText,getPluginURL:()=>nE};class nk{constructor(i,r){this.zoom=i,r?(this.now=r.now,this.fadeDuration=r.fadeDuration,this.zoomHistory=r.zoomHistory,this.transition=r.transition,this.pitch=r.pitch):(this.now=0,this.fadeDuration=0,this.zoomHistory=new rY,this.transition={},this.pitch=0)}isSupportedScript(i){return function(i,r){for(const n of i){var o;if(o=n.charCodeAt(0),!r&&ny(o)||o>=2304&&o<=3583||o>=3840&&o<=4255||o>=6016&&o<=6143)return!1}return!0}(i,nz.isLoaded())}crossFadingFactor(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const i=this.zoom,r=i-Math.floor(i),n=this.crossFadingFactor();return i>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:r+(1-r)*n}:{fromScale:.5,toScale:1,t:1-(1-n)*r}}}class nP{constructor(i,r){this.property=i,this.value=r,this.expression=function(i,r){if(iQ(i))return new ri(i,r);if(i8(i)){const n=rt(i,r);if("error"===n.result)throw Error(n.value.map(i=>`${i.key}: ${i.message}`).join(", "));return n.value}{let o=i;return"string"==typeof i&&"color"===r.type&&(o=tC.parse(i)),{kind:"constant",evaluate:()=>o}}}(void 0===r?i.specification.default:r,i.specification)}isDataDriven(){return"source"===this.expression.kind||"composite"===this.expression.kind}possiblyEvaluate(i,r,n){return this.property.possiblyEvaluate(this,i,r,n)}}class nD{constructor(i){this.property=i,this.value=new nP(i,void 0)}transitioned(i,r){return new nB(this.property,this.value,r,H({},i.transition,this.transition),i.now)}untransitioned(){return new nB(this.property,this.value,null,{},0)}}class nL{constructor(i){this._properties=i,this._values=Object.create(i.defaultTransitionablePropertyValues)}getValue(i){return eo(this._values[i].value.value)}setValue(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nD(this._values[i].property)),this._values[i].value=new nP(this._values[i].property,null===r?void 0:eo(r))}getTransition(i){return eo(this._values[i].transition)}setTransition(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nD(this._values[i].property)),this._values[i].transition=eo(r)||void 0}serialize(){const i={};for(const r of Object.keys(this._values)){const n=this.getValue(r);void 0!==n&&(i[r]=n);const o=this.getTransition(r);void 0!==o&&(i[`${r}-transition`]=o)}return i}transitioned(i,r){const n=new nR(this._properties);for(const o of Object.keys(this._values))n._values[o]=this._values[o].transitioned(i,r._values[o]);return n}untransitioned(){const i=new nR(this._properties);for(const r of Object.keys(this._values))i._values[r]=this._values[r].untransitioned();return i}}class nB{constructor(i,r,n,o,s){const a=o.delay||0,l=o.duration||0;s=s||0,this.property=i,this.value=r,this.begin=s+a,this.end=this.begin+l,i.specification.transition&&(o.delay||o.duration)&&(this.prior=n)}possiblyEvaluate(i,r,n){const o=i.now||0,s=this.value.possiblyEvaluate(i,r,n),a=this.prior;if(a){if(o>this.end||this.value.isDataDriven())return this.prior=null,s;if(oo.zoomHistory.lastIntegerZoom?{from:i,to:r,other:n}:{from:n,to:r,other:i}}interpolate(i){return i}}class nG{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){if(void 0!==i.value){if("constant"===i.expression.kind){const s=i.expression.evaluate(r,null,{},n,o);return this._calculate(s,s,s,r)}return this._calculate(i.expression.evaluate(new nk(Math.floor(r.zoom-1),r)),i.expression.evaluate(new nk(Math.floor(r.zoom),r)),i.expression.evaluate(new nk(Math.floor(r.zoom+1),r)),r)}}_calculate(i,r,n,o){return o.zoom>o.zoomHistory.lastIntegerZoom?{from:i,to:r}:{from:n,to:r}}interpolate(i){return i}}class nZ{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){return!!i.expression.evaluate(r,null,{},n,o)}interpolate(){return!1}}class n${constructor(i){for(const r in this.properties=i,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],i){const n=i[r];n.specification.overridable&&this.overridableProperties.push(r);const o=this.defaultPropertyValues[r]=new nP(n,void 0),s=this.defaultTransitionablePropertyValues[r]=new nD(n);this.defaultTransitioningPropertyValues[r]=s.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=o.possiblyEvaluate({})}}}function nq(i,r){return 256*(i=Z(Math.floor(i),0,255))+Z(Math.floor(r),0,255)}r$("DataDrivenProperty",nN),r$("DataConstantProperty",nV),r$("CrossFadedDataDrivenProperty",nj),r$("CrossFadedProperty",nG),r$("ColorRampProperty",nZ);const nX={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class nW{constructor(i,r){this._structArray=i,this._pos1=r*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class nH{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(i,r){return i._trim(),r&&(i.isTransferred=!0,r.push(i.arrayBuffer)),{length:i.length,arrayBuffer:i.arrayBuffer}}static deserialize(i){const r=Object.create(this.prototype);return r.arrayBuffer=i.arrayBuffer,r.length=i.length,r.capacity=i.arrayBuffer.byteLength/r.bytesPerElement,r._refreshViews(),r}_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(i){this.reserve(i),this.length=i}reserve(i){if(i>this.capacity){this.capacity=Math.max(i,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const r=this.uint8;this._refreshViews(),r&&this.uint8.set(r)}}_refreshViews(){throw Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function nK(i,r=1){let n=0,o=0;return{members:i.map(i=>{const s=nX[i.type].BYTES_PER_ELEMENT,a=n=nY(n,Math.max(r,s)),l=i.components||1;return o=Math.max(o,s),n+=s*l,{name:i.name,type:i.type,components:l,offset:a}}),size:nY(n,Math.max(o,r)),alignment:r}}function nY(i,r){return Math.ceil(i/r)*r}class nJ extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.int16[o+0]=r,this.int16[o+1]=n,i}}nJ.prototype.bytesPerElement=4,r$("StructArrayLayout2i4",nJ);class nQ extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=4*i;return this.int16[a+0]=r,this.int16[a+1]=n,this.int16[a+2]=o,this.int16[a+3]=s,i}}nQ.prototype.bytesPerElement=8,r$("StructArrayLayout4i8",nQ);class n0 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=6*i,u=12*i,d=3*i;return this.int16[h+0]=r,this.int16[h+1]=n,this.uint8[u+4]=o,this.uint8[u+5]=s,this.uint8[u+6]=a,this.uint8[u+7]=l,this.float32[d+2]=c,i}}n0.prototype.bytesPerElement=12,r$("StructArrayLayout2i4ub1f12",n0);class n1 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.float32[s+0]=r,this.float32[s+1]=n,this.float32[s+2]=o,i}}n1.prototype.bytesPerElement=12,r$("StructArrayLayout3f12",n1);class n2 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u){const d=this.length;return this.resize(d+1),this.emplace(d,i,r,n,o,s,a,l,c,h,u)}emplace(i,r,n,o,s,a,l,c,h,u,d){const p=10*i;return this.uint16[p+0]=r,this.uint16[p+1]=n,this.uint16[p+2]=o,this.uint16[p+3]=s,this.uint16[p+4]=a,this.uint16[p+5]=l,this.uint16[p+6]=c,this.uint16[p+7]=h,this.uint16[p+8]=u,this.uint16[p+9]=d,i}}n2.prototype.bytesPerElement=20,r$("StructArrayLayout10ui20",n2);class n3 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c){const h=this.length;return this.resize(h+1),this.emplace(h,i,r,n,o,s,a,l,c)}emplace(i,r,n,o,s,a,l,c,h){const u=8*i;return this.uint16[u+0]=r,this.uint16[u+1]=n,this.uint16[u+2]=o,this.uint16[u+3]=s,this.uint16[u+4]=a,this.uint16[u+5]=l,this.uint16[u+6]=c,this.uint16[u+7]=h,i}}n3.prototype.bytesPerElement=16,r$("StructArrayLayout8ui16",n3);class n5 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){const y=this.length;return this.resize(y+1),this.emplace(y,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y){const x=16*i;return this.int16[x+0]=r,this.int16[x+1]=n,this.int16[x+2]=o,this.int16[x+3]=s,this.uint16[x+4]=a,this.uint16[x+5]=l,this.uint16[x+6]=c,this.uint16[x+7]=h,this.int16[x+8]=u,this.int16[x+9]=d,this.int16[x+10]=p,this.int16[x+11]=f,this.int16[x+12]=m,this.int16[x+13]=_,this.int16[x+14]=g,this.int16[x+15]=y,i}}n5.prototype.bytesPerElement=32,r$("StructArrayLayout4i4ui4i4i32",n5);class n4 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.uint32[1*i+0]=r,i}}n4.prototype.bytesPerElement=4,r$("StructArrayLayout1ul4",n4);class n6 extends nH{_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(i,r,n,o,s,a,l,c,h,u,d,p,f){const m=this.length;return this.resize(m+1),this.emplace(m,i,r,n,o,s,a,l,c,h,u,d,p,f)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m){const _=20*i,g=10*i;return this.int16[_+0]=r,this.int16[_+1]=n,this.int16[_+2]=o,this.int16[_+3]=s,this.int16[_+4]=a,this.float32[g+3]=l,this.float32[g+4]=c,this.float32[g+5]=h,this.float32[g+6]=u,this.int16[_+14]=d,this.uint32[g+8]=p,this.uint16[_+18]=f,this.uint16[_+19]=m,i}}n6.prototype.bytesPerElement=40,r$("StructArrayLayout5i4f1i1ul2ui40",n6);class n8 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=8*i;return this.int16[h+0]=r,this.int16[h+1]=n,this.int16[h+2]=o,this.int16[h+4]=s,this.int16[h+5]=a,this.int16[h+6]=l,this.int16[h+7]=c,i}}n8.prototype.bytesPerElement=16,r$("StructArrayLayout3i2i2i16",n8);class n9 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s){const a=this.length;return this.resize(a+1),this.emplace(a,i,r,n,o,s)}emplace(i,r,n,o,s,a){const l=4*i,c=8*i;return this.float32[l+0]=r,this.float32[l+1]=n,this.float32[l+2]=o,this.int16[c+6]=s,this.int16[c+7]=a,i}}n9.prototype.bytesPerElement=16,r$("StructArrayLayout2f1f2i16",n9);class n7 extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=12*i,l=3*i;return this.uint8[a+0]=r,this.uint8[a+1]=n,this.float32[l+1]=o,this.float32[l+2]=s,i}}n7.prototype.bytesPerElement=12,r$("StructArrayLayout2ub2f12",n7);class oe extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.uint16[s+0]=r,this.uint16[s+1]=n,this.uint16[s+2]=o,i}}oe.prototype.bytesPerElement=6,r$("StructArrayLayout3ui6",oe);class ot extends nH{_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(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w){const T=this.length;return this.resize(T+1),this.emplace(T,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T){const E=30*i,S=15*i,I=60*i;return this.int16[E+0]=r,this.int16[E+1]=n,this.int16[E+2]=o,this.float32[S+2]=s,this.float32[S+3]=a,this.uint16[E+8]=l,this.uint16[E+9]=c,this.uint32[S+5]=h,this.uint32[S+6]=u,this.uint32[S+7]=d,this.uint16[E+16]=p,this.uint16[E+17]=f,this.uint16[E+18]=m,this.float32[S+10]=_,this.float32[S+11]=g,this.uint8[I+48]=y,this.uint8[I+49]=x,this.uint8[I+50]=v,this.uint32[S+13]=b,this.int16[E+28]=w,this.uint8[I+58]=T,i}}ot.prototype.bytesPerElement=60,r$("StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60",ot);class oi extends nH{_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(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k){const P=this.length;return this.resize(P+1),this.emplace(P,i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k)}emplace(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I,M,A,C,z,k,P){const D=38*i,L=19*i;return this.int16[D+0]=r,this.int16[D+1]=n,this.int16[D+2]=o,this.float32[L+2]=s,this.float32[L+3]=a,this.int16[D+8]=l,this.int16[D+9]=c,this.int16[D+10]=h,this.int16[D+11]=u,this.int16[D+12]=d,this.int16[D+13]=p,this.uint16[D+14]=f,this.uint16[D+15]=m,this.uint16[D+16]=_,this.uint16[D+17]=g,this.uint16[D+18]=y,this.uint16[D+19]=x,this.uint16[D+20]=v,this.uint16[D+21]=b,this.uint16[D+22]=w,this.uint16[D+23]=T,this.uint16[D+24]=E,this.uint16[D+25]=S,this.uint16[D+26]=I,this.uint16[D+27]=M,this.uint16[D+28]=A,this.uint32[L+15]=C,this.float32[L+16]=z,this.float32[L+17]=k,this.float32[L+18]=P,i}}oi.prototype.bytesPerElement=76,r$("StructArrayLayout3i2f6i15ui1ul3f76",oi);class or extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.float32[1*i+0]=r,i}}or.prototype.bytesPerElement=4,r$("StructArrayLayout1f4",or);class on extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(i,r,n){const o=this.length;return this.resize(o+1),this.emplace(o,i,r,n)}emplace(i,r,n,o){const s=3*i;return this.int16[s+0]=r,this.int16[s+1]=n,this.int16[s+2]=o,i}}on.prototype.bytesPerElement=6,r$("StructArrayLayout3i6",on);class oo extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o,s,a,l){const c=this.length;return this.resize(c+1),this.emplace(c,i,r,n,o,s,a,l)}emplace(i,r,n,o,s,a,l,c){const h=7*i;return this.float32[h+0]=r,this.float32[h+1]=n,this.float32[h+2]=o,this.float32[h+3]=s,this.float32[h+4]=a,this.float32[h+5]=l,this.float32[h+6]=c,i}}oo.prototype.bytesPerElement=28,r$("StructArrayLayout7f28",oo);class os extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=6*i;return this.uint32[3*i+0]=r,this.uint16[a+2]=n,this.uint16[a+3]=o,this.uint16[a+4]=s,i}}os.prototype.bytesPerElement=12,r$("StructArrayLayout1ul3ui12",os);class oa extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.uint16[o+0]=r,this.uint16[o+1]=n,i}}oa.prototype.bytesPerElement=4,r$("StructArrayLayout2ui4",oa);class ol extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(i){const r=this.length;return this.resize(r+1),this.emplace(r,i)}emplace(i,r){return this.uint16[1*i+0]=r,i}}ol.prototype.bytesPerElement=2,r$("StructArrayLayout1ui2",ol);class oc extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r){const n=this.length;return this.resize(n+1),this.emplace(n,i,r)}emplace(i,r,n){const o=2*i;return this.float32[o+0]=r,this.float32[o+1]=n,i}}oc.prototype.bytesPerElement=8,r$("StructArrayLayout2f8",oc);class oh extends nH{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(i,r,n,o){const s=this.length;return this.resize(s+1),this.emplace(s,i,r,n,o)}emplace(i,r,n,o,s){const a=4*i;return this.float32[a+0]=r,this.float32[a+1]=n,this.float32[a+2]=o,this.float32[a+3]=s,i}}oh.prototype.bytesPerElement=16,r$("StructArrayLayout4f16",oh);class ou extends nW{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]}}ou.prototype.size=40;class od extends n6{get(i){return new ou(this,i)}}r$("CollisionBoxArray",od);class op extends nW{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(i){this._structArray.uint8[this._pos1+49]=i}get hidden(){return this._structArray.uint8[this._pos1+50]}set hidden(i){this._structArray.uint8[this._pos1+50]=i}get crossTileID(){return this._structArray.uint32[this._pos4+13]}set crossTileID(i){this._structArray.uint32[this._pos4+13]=i}get associatedIconIndex(){return this._structArray.int16[this._pos2+28]}get flipState(){return this._structArray.uint8[this._pos1+58]}set flipState(i){this._structArray.uint8[this._pos1+58]=i}}op.prototype.size=60;class of extends ot{get(i){return new op(this,i)}}r$("PlacedSymbolArray",of);class om extends nW{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 rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+8]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+9]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+10]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+11]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+12]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+13]}get key(){return this._structArray.uint16[this._pos2+14]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+17]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+18]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+19]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+20]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+21]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+22]}get featureIndex(){return this._structArray.uint16[this._pos2+23]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+24]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+25]}get numIconVertices(){return this._structArray.uint16[this._pos2+26]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+27]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+28]}get crossTileID(){return this._structArray.uint32[this._pos4+15]}set crossTileID(i){this._structArray.uint32[this._pos4+15]=i}get textOffset0(){return this._structArray.float32[this._pos4+16]}get textOffset1(){return this._structArray.float32[this._pos4+17]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+18]}}om.prototype.size=76;class o_ extends oi{get(i){return new om(this,i)}}r$("SymbolInstanceArray",o_);class og extends or{getoffsetX(i){return this.float32[1*i+0]}}r$("GlyphOffsetArray",og);class oy extends on{getx(i){return this.int16[3*i+0]}gety(i){return this.int16[3*i+1]}gettileUnitDistanceFromAnchor(i){return this.int16[3*i+2]}}r$("SymbolLineVertexArray",oy);class ox extends nW{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]}}ox.prototype.size=12;class ov extends os{get(i){return new ox(this,i)}}r$("FeatureIndexArray",ov);class ob extends nW{get a_centroid_pos0(){return this._structArray.uint16[this._pos2+0]}get a_centroid_pos1(){return this._structArray.uint16[this._pos2+1]}}ob.prototype.size=4;class ow extends oa{get(i){return new ob(this,i)}}r$("FillExtrusionCentroidArray",ow);const oT=nK([{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"}]),oE=nK([{name:"a_dash_to",components:4,type:"Uint16"},{name:"a_dash_from",components:4,type:"Uint16"}]);var oS=tM(function(i){i.exports=function(i,r){var n,o,s,a,l,c;for(o=i.length-(n=3&i.length),s=r,c=0;c>>16)*3432918353&65535)<<16)&4294967295)<<15|l>>>17))*461845907+(((l>>>16)*461845907&65535)<<16)&4294967295)<<13|s>>>19))+((5*(s>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,n){case 3:l^=(255&i.charCodeAt(c+2))<<16;case 2:l^=(255&i.charCodeAt(c+1))<<8;case 1:s^=l=(65535&(l=(l=(65535&(l^=255&i.charCodeAt(c)))*3432918353+(((l>>>16)*3432918353&65535)<<16)&4294967295)<<15|l>>>17))*461845907+(((l>>>16)*461845907&65535)<<16)&4294967295}return s^=i.length,s=2246822507*(65535&(s^=s>>>16))+((2246822507*(s>>>16)&65535)<<16)&4294967295,s=3266489909*(65535&(s^=s>>>13))+((3266489909*(s>>>16)&65535)<<16)&4294967295,(s^=s>>>16)>>>0}}),oI=tM(function(i){i.exports=function(i,r){for(var n,o=i.length,s=r^o,a=0;o>=4;)n=1540483477*(65535&(n=255&i.charCodeAt(a)|(255&i.charCodeAt(++a))<<8|(255&i.charCodeAt(++a))<<16|(255&i.charCodeAt(++a))<<24))+((1540483477*(n>>>16)&65535)<<16),s=1540483477*(65535&s)+((1540483477*(s>>>16)&65535)<<16)^(n=1540483477*(65535&(n^=n>>>24))+((1540483477*(n>>>16)&65535)<<16)),o-=4,++a;switch(o){case 3:s^=(255&i.charCodeAt(a+2))<<16;case 2:s^=(255&i.charCodeAt(a+1))<<8;case 1:s=1540483477*(65535&(s^=255&i.charCodeAt(a)))+((1540483477*(s>>>16)&65535)<<16)}return s=1540483477*(65535&(s^=s>>>13))+((1540483477*(s>>>16)&65535)<<16),(s^=s>>>15)>>>0}}),oM=oS;oM.murmur3=oS,oM.murmur2=oI;class oA{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(i,r,n,o){this.ids.push(oC(i)),this.positions.push(r,n,o)}getPositions(i){const r=oC(i);let n=0,o=this.ids.length-1;for(;n>1;this.ids[s]>=r?o=s:n=s+1}const a=[];for(;this.ids[n]===r;)a.push({index:this.positions[3*n],start:this.positions[3*n+1],end:this.positions[3*n+2]}),n++;return a}static serialize(i,r){const n=new Float64Array(i.ids),o=new Uint32Array(i.positions);return function i(r,n,o,s){for(;o>1];let l=o-1,c=s+1;for(;;){do l++;while(r[l]a)if(l>=c)break;oz(r,l,c),oz(n,3*l,3*c),oz(n,3*l+1,3*c+1),oz(n,3*l+2,3*c+2)}c-o`u_${i}`),this.type=n}setUniform(i,r,n){i.set(n.constantOr(this.value))}getBinding(i,r,n){return"color"===this.type?new oL(i,r):new oP(i,r)}}class oV{constructor(i,r){this.uniformNames=r.map(i=>`u_${i}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(i,r){this.pixelRatioFrom=r.pixelRatio,this.pixelRatioTo=i.pixelRatio,this.patternFrom=r.tl.concat(r.br),this.patternTo=i.tl.concat(i.br)}setUniform(i,r,n,o){const s="u_pattern_to"===o||"u_dash_to"===o?this.patternTo:"u_pattern_from"===o||"u_dash_from"===o?this.patternFrom:"u_pixel_ratio_to"===o?this.pixelRatioTo:"u_pixel_ratio_from"===o?this.pixelRatioFrom:null;s&&i.set(s)}getBinding(i,r,n){return"u_pattern_from"===n||"u_pattern_to"===n||"u_dash_from"===n||"u_dash_to"===n?new oD(i,r):new oP(i,r)}}class oN{constructor(i,r,n,o){this.expression=i,this.type=n,this.maxValue=0,this.paintVertexAttributes=r.map(i=>({name:`a_${i}`,type:"Float32",components:"color"===n?2:1,offset:0})),this.paintVertexArray=new o}populatePaintArray(i,r,n,o,s,a){const l=this.paintVertexArray.length,c=this.expression.evaluate(new nk(0),r,{},s,o,a);this.paintVertexArray.resize(i),this._setPaintValue(l,i,c)}updatePaintArray(i,r,n,o,s){const a=this.expression.evaluate({zoom:0},n,o,void 0,s);this._setPaintValue(i,r,a)}_setPaintValue(i,r,n){if("color"===this.type){const o=oO(n);for(let s=i;s`u_${i}_t`),this.type=n,this.useIntegerZoom=o,this.zoom=s,this.maxValue=0,this.paintVertexAttributes=r.map(i=>({name:`a_${i}`,type:"Float32",components:"color"===n?4:2,offset:0})),this.paintVertexArray=new a}populatePaintArray(i,r,n,o,s,a){const l=this.expression.evaluate(new nk(this.zoom),r,{},s,o,a),c=this.expression.evaluate(new nk(this.zoom+1),r,{},s,o,a),h=this.paintVertexArray.length;this.paintVertexArray.resize(i),this._setPaintValue(h,i,l,c)}updatePaintArray(i,r,n,o,s){const a=this.expression.evaluate({zoom:this.zoom},n,o,void 0,s),l=this.expression.evaluate({zoom:this.zoom+1},n,o,void 0,s);this._setPaintValue(i,r,a,l)}_setPaintValue(i,r,n,o){if("color"===this.type){const s=oO(n),a=oO(o);for(let l=i;l!0){this.binders={},this._buffers=[];const o=[];for(const s in i.paint._values){var a,l;if(!n(s))continue;const c=i.paint.get(s);if(!(c instanceof nO&&iH(c.property.specification)))continue;const h=(a=s,l=i.type,oq[a]||[a.replace(`${l}-`,"").replace(/-/g,"_")]),u=c.value,d=c.property.specification.type,p=c.property.useIntegerZoom,f=c.property.specification["property-type"],m="cross-faded"===f||"cross-faded-data-driven"===f,_="line-dasharray"===String(s)&&"constant"!==i.layout.get("line-cap").value.kind;if("constant"!==u.kind||_){if("source"===u.kind||_||m){const g=oH(s,d,"source");this.binders[s]=m?new oG(u,h,d,p,r,g,i.id):new oN(u,h,d,g),o.push(`/a_${s}`)}else{const y=oH(s,d,"composite");this.binders[s]=new oj(u,h,d,p,r,y),o.push(`/z_${s}`)}}else this.binders[s]=m?new oV(u.value,h):new oU(u.value,h,d),o.push(`/u_${s}`)}this.cacheKey=o.sort().join("")}getMaxValue(i){const r=this.binders[i];return r instanceof oN||r instanceof oj?r.maxValue:0}populatePaintArrays(i,r,n,o,s,a){for(const l in this.binders){const c=this.binders[l];(c instanceof oN||c instanceof oj||c instanceof oG)&&c.populatePaintArray(i,r,n,o,s,a)}}setConstantPatternPositions(i,r){for(const n in this.binders){const o=this.binders[n];o instanceof oV&&o.setConstantPatternPositions(i,r)}}updatePaintArrays(i,r,n,o,s,a){let l=!1;for(const c in i){const h=r.getPositions(c);for(const u of h){const d=n.feature(u.index);for(const p in this.binders){const f=this.binders[p];if((f instanceof oN||f instanceof oj||f instanceof oG)&&!0===f.expression.isStateDependent){const m=o.paint.get(p);f.expression=m.value,f.updatePaintArray(u.start,u.end,d,i[c],s,a),l=!0}}}}return l}defines(){const i=[];for(const r in this.binders){const n=this.binders[r];(n instanceof oU||n instanceof oV)&&i.push(...n.uniformNames.map(i=>`#define HAS_UNIFORM_${i}`))}return i}getBinderAttributes(){const i=[];for(const r in this.binders){const n=this.binders[r];if(n instanceof oN||n instanceof oj||n instanceof oG)for(let o=0;o!0){for(const o of(this.programConfigurations={},i))this.programConfigurations[o.id]=new oZ(o,r,n);this.needsUpload=!1,this._featureMap=new oA,this._bufferOffset=0}populatePaintArrays(i,r,n,o,s,a,l){for(const c in this.programConfigurations)this.programConfigurations[c].populatePaintArrays(i,r,o,s,a,l);void 0!==r.id&&this._featureMap.add(r.id,n,this._bufferOffset,i),this._bufferOffset=i,this.needsUpload=!0}updatePaintArrays(i,r,n,o,s){for(const a of n)this.needsUpload=this.programConfigurations[a.id].updatePaintArrays(i,this._featureMap,r,a,o,s)||this.needsUpload}get(i){return this.programConfigurations[i]}upload(i){if(this.needsUpload){for(const r in this.programConfigurations)this.programConfigurations[r].upload(i);this.needsUpload=!1}}destroy(){for(const i in this.programConfigurations)this.programConfigurations[i].destroy()}}const oq={"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"line-dasharray":["dash_to","dash_from"]},oX={"line-pattern":{source:n2,composite:n2},"fill-pattern":{source:n2,composite:n2},"fill-extrusion-pattern":{source:n2,composite:n2},"line-dasharray":{source:n3,composite:n3}},oW={color:{source:oc,composite:oh},number:{source:or,composite:oc}};function oH(i,r,n){const o=oX[i];return o&&o[n]||oW[r][n]}r$("ConstantBinder",oU),r$("CrossFadedConstantBinder",oV),r$("SourceExpressionBinder",oN),r$("CrossFadedCompositeBinder",oG),r$("CompositeExpressionBinder",oj),r$("ProgramConfiguration",oZ,{omit:["_buffers"]}),r$("ProgramConfigurationSet",o$);const oK="-transition";class oY extends ti{constructor(i,r){if(super(),this.id=i.id,this.type=i.type,this._featureFilter={filter:()=>!0,needGeometry:!1,needFeature:!1},this._filterCompiled=!1,"custom"!==i.type&&(this.metadata=i.metadata,this.minzoom=i.minzoom,this.maxzoom=i.maxzoom,"background"!==i.type&&"sky"!==i.type&&(this.source=i.source,this.sourceLayer=i["source-layer"],this.filter=i.filter),r.layout&&(this._unevaluatedLayout=new nF(r.layout)),r.paint)){for(const n in this._transitionablePaint=new nL(r.paint),i.paint)this.setPaintProperty(n,i.paint[n],{validate:!1});for(const o in i.layout)this.setLayoutProperty(o,i.layout[o],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new nU(r.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(i){return"visibility"===i?this.visibility:this._unevaluatedLayout.getValue(i)}setLayoutProperty(i,r,n={}){null!=r&&this._validate(rO,`layers.${this.id}.layout.${i}`,i,r,n)||("visibility"!==i?this._unevaluatedLayout.setValue(i,r):this.visibility=r)}getPaintProperty(i){return ei(i,oK)?this._transitionablePaint.getTransition(i.slice(0,-oK.length)):this._transitionablePaint.getValue(i)}setPaintProperty(i,r,n={}){if(null!=r&&this._validate(rF,`layers.${this.id}.paint.${i}`,i,r,n))return!1;if(ei(i,oK))return this._transitionablePaint.setTransition(i.slice(0,-oK.length),r||void 0),!1;{const o=this._transitionablePaint._values[i],s="cross-faded-data-driven"===o.property.specification["property-type"],a=o.value.isDataDriven(),l=o.value;this._transitionablePaint.setValue(i,r),this._handleSpecialPaintPropertyUpdate(i);const c=this._transitionablePaint._values[i].value;return c.isDataDriven()||a||s||this._handleOverridablePaintPropertyUpdate(i,l,c)}}_handleSpecialPaintPropertyUpdate(i){}getProgramIds(){return null}getProgramConfiguration(i){return null}_handleOverridablePaintPropertyUpdate(i,r,n){return!1}isHidden(i){return!!(this.minzoom&&i=this.maxzoom)||"none"===this.visibility}updateTransitions(i){this._transitioningPaint=this._transitionablePaint.transitioned(i,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(i,r){i.getCrossfadeParameters&&(this._crossfadeParameters=i.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(i,void 0,r)),this.paint=this._transitioningPaint.possiblyEvaluate(i,void 0,r)}serialize(){const i={id:this.id,type:this.type,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()};return this.visibility&&(i.layout=i.layout||{},i.layout.visibility=this.visibility),en(i,(i,r)=>!(void 0===i||"layout"===r&&!Object.keys(i).length||"paint"===r&&!Object.keys(i).length))}_validate(i,r,n,o,s={}){return(!s||!1!==s.validate)&&rU(this,i.call(rP,{key:r,layerType:this.type,objectKey:n,value:o,styleSpec:tr,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isSky(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const i in this.paint._values){const r=this.paint.get(i);if(r instanceof nO&&iH(r.property.specification)&&("source"===r.value.kind||"composite"===r.value.kind)&&r.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=rh(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const oJ=nK([{name:"a_pos",components:2,type:"Int16"}],4),{members:oQ}=oJ;class o0{constructor(i=[]){this.segments=i}prepareSegment(i,r,n,o){let s=this.segments[this.segments.length-1];return i>o0.MAX_VERTEX_ARRAY_LENGTH&&ea(`Max vertices per segment is ${o0.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${i}`),(!s||s.vertexLength+i>o0.MAX_VERTEX_ARRAY_LENGTH||s.sortKey!==o)&&(s={vertexOffset:r.length,primitiveOffset:n.length,vertexLength:0,primitiveLength:0},void 0!==o&&(s.sortKey=o),this.segments.push(s)),s}get(){return this.segments}destroy(){for(const i of this.segments)for(const r in i.vaos)i.vaos[r].destroy()}static simpleSegment(i,r,n,o){return new o0([{vertexOffset:i,primitiveOffset:r,vertexLength:n,primitiveLength:o,vaos:{},sortKey:0}])}}o0.MAX_VERTEX_ARRAY_LENGTH=65535,r$("SegmentVector",o0);class o1{constructor(i,r){i&&(r?this.setSouthWest(i).setNorthEast(r):4===i.length?this.setSouthWest([i[0],i[1]]).setNorthEast([i[2],i[3]]):this.setSouthWest(i[0]).setNorthEast(i[1]))}setNorthEast(i){return this._ne=i instanceof o2?new o2(i.lng,i.lat):o2.convert(i),this}setSouthWest(i){return this._sw=i instanceof o2?new o2(i.lng,i.lat):o2.convert(i),this}extend(i){let r,n;const o=this._sw,s=this._ne;if(i instanceof o2)r=i,n=i;else{if(!(i instanceof o1))return Array.isArray(i)?4===i.length||i.every(Array.isArray)?this.extend(o1.convert(i)):this.extend(o2.convert(i)):this;if(r=i._sw,n=i._ne,!r||!n)return this}return o||s?(o.lng=Math.min(r.lng,o.lng),o.lat=Math.min(r.lat,o.lat),s.lng=Math.max(n.lng,s.lng),s.lat=Math.max(n.lat,s.lat)):(this._sw=new o2(r.lng,r.lat),this._ne=new o2(n.lng,n.lat)),this}getCenter(){return new o2((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 o2(this.getWest(),this.getNorth())}getSouthEast(){return new o2(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(i){const{lng:r,lat:n}=o2.convert(i);let o=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(o=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=n&&n<=this._ne.lat&&o}static convert(i){return!i||i instanceof o1?i:new o1(i)}}class o2{constructor(i,r){if(isNaN(i)||isNaN(r))throw Error(`Invalid LngLat object: (${i}, ${r})`);if(this.lng=+i,this.lat=+r,this.lat>90||this.lat<-90)throw Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new o2(q(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(i){const r=Math.PI/180,n=this.lat*r,o=i.lat*r,s=Math.sin(n)*Math.sin(o)+Math.cos(n)*Math.cos(o)*Math.cos((i.lng-this.lng)*r);return 6371008.8*Math.acos(Math.min(s,1))}toBounds(i=0){const r=360*i/40075017,n=r/Math.cos(Math.PI/180*this.lat);return new o1(new o2(this.lng-n,this.lat-r),new o2(this.lng+n,this.lat+r))}static convert(i){if(i instanceof o2)return i;if(Array.isArray(i)&&(2===i.length||3===i.length))return new o2(Number(i[0]),Number(i[1]));if(!Array.isArray(i)&&"object"==typeof i&&null!==i)return new o2(Number("lng"in i?i.lng:i.lon),Number(i.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const o3=2*Math.PI*6371008.8;function o5(i){return o3*Math.cos(i*Math.PI/180)}function o4(i){return(180+i)/360}function o6(i){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360}function o8(i){return 360*i-180}function o9(i){return 360/Math.PI*Math.atan(Math.exp((180-360*i)*Math.PI/180))-90}function o7(i,r){return i*o5(o9(r))}class se{constructor(i,r,n=0){this.x=+i,this.y=+r,this.z=+n}static fromLngLat(i,r=0){const n=o2.convert(i);return new se(o4(n.lng),o6(n.lat),r/o5(n.lat))}toLngLat(){return new o2(o8(this.x),o9(this.y))}toAltitude(){return o7(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/o3*(1/Math.cos(o9(this.y)*Math.PI/180))}}const st=-16383-1;function si(i,r,n){const o=i.loadGeometry(),s=i.extent,a=8192/s;if(r&&n&&n.projection.isReprojectedInTileSpace){const c=1<{const n=o8((r.x+i.x/s)/c),o=o9((r.y+i.y/s)/c),a=p.project(n,o);i.x=(a.x*h-u)*s,i.y=(a.y*h-d)*s};for(let m=0;m=d?(i(r,n,o,p,f,c,m,u,d),i(r,p,f,s,a,m,h,u,d)):r.push(h)}(c,o,s,u,d,a,h,r,1):c.push(h),o=u,s=d,a=h}return c}(o[m],f,1);else{const _=[];for(const g of o[m])g.x<0||g.x>=s||g.y<0||g.y>=s||(f(g),_.push(g));o[m]=_}}for(const y of o)for(const x of y)!function(i,r){const n=Math.round(i.x*r),o=Math.round(i.y*r);i.x=Z(n,st,16383),i.y=Z(o,st,16383),(ni.x+1||oi.y+1)&&ea("Geometry exceeds allowed extent, reduce your vector tile buffer size")}(x,a);return o}function sr(i,r){return{type:i.type,id:i.id,properties:i.properties,geometry:r?si(i):[]}}function sn(i,r,n,o,s){i.emplaceBack(2*r+(o+1)/2,2*n+(s+1)/2)}class so{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.layoutVertexArray=new nJ,this.indexArray=new oe,this.segments=new o0,this.programConfigurations=new o$(i.layers,i.zoom),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){const s=this.layers[0],a=[];let l=null;for(const{feature:c,id:h,index:u,sourceLayerIndex:d}of("circle"===s.type&&(l=s.layout.get("circle-sort-key")),i)){const p=this.layers[0]._featureFilter.needGeometry,f=sr(c,p);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),f,n))continue;const m=l?l.evaluate(f,{},n):void 0,_={id:h,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:p?f.geometry:si(c,n,o),patterns:{},sortKey:m};a.push(_)}for(const g of(l&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:y,index:x,sourceLayerIndex:v}=g,b=i[x].feature;this.addFeature(g,y,x,r.availableImages,n),r.featureIndex.insert(b,y,x,v,this.index)}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,oQ),this.indexBuffer=i.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(i,r,n,o,s){for(const a of r)for(const l of a){const c=l.x,h=l.y;if(c<0||c>=8192||h<0||h>=8192)continue;const u=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,i.sortKey),d=u.vertexLength;sn(this.layoutVertexArray,c,h,-1,-1),sn(this.layoutVertexArray,c,h,1,-1),sn(this.layoutVertexArray,c,h,1,1),sn(this.layoutVertexArray,c,h,-1,1),this.indexArray.emplaceBack(d,d+1,d+2),this.indexArray.emplaceBack(d,d+3,d+2),u.vertexLength+=4,u.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,{},o,s)}}function ss(i,r){for(let n=0;n1?n:n.sub(r)._mult(s)._add(r))}function su(i,r){let n,o,s,a=!1;for(let l=0;lr.y!=s.y>r.y&&r.x<(s.x-o.x)*(r.y-o.y)/(s.y-o.y)+o.x&&(a=!a)}return a}function sd(i,r){let n=!1;for(let o=0,s=i.length-1;or.y!=l.y>r.y&&r.x<(l.x-a.x)*(r.y-a.y)/(l.y-a.y)+a.x&&(n=!n)}return n}function sp(i,r,n,o,s){for(const a of i)if(r<=a.x&&n<=a.y&&o>=a.x&&s>=a.y)return!0;const c=[new l(r,n),new l(r,s),new l(o,s),new l(o,n)];if(i.length>2){for(const h of c)if(sd(i,h))return!0}for(let u=0;us.x&&r.x>s.x||i.ys.y&&r.y>s.y)return!1;const a=el(i,r,n[0]);return a!==el(i,r,n[1])||a!==el(i,r,n[2])||a!==el(i,r,n[3])}(i[u],i[u+1],c))return!0;return!1}function sf(i,r,n){const o=r.paint.get(i).value;return"constant"===o.kind?o.value:n.programConfigurations.get(r.id).getMaxValue(i)}function sm(i){return Math.sqrt(i[0]*i[0]+i[1]*i[1])}function s_(i,r,n,o,s){if(!r[0]&&!r[1])return i;const a=l.convert(r)._mult(s);"viewport"===n&&a._rotate(-o);const c=[];for(let h=0;h{var a,l;const c=D([],n,i),h=1/c[3]/r*s;return a=c,l=[h,h,o?1/c[3]:h,h],a[0]=c[0]*l[0],a[1]=c[1]*l[1],a[2]=c[2]*l[2],a[3]=c[3]*l[3],a}),l=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(i=>{const r=A([],z([],E([],a[i[0]],a[i[1]]),E([],a[i[2]],a[i[1]]))),n=-C(r,a[i[1]]);return r.concat(n)});return new sv(a,l)}}class sb{constructor(i,r){this.min=i,this.max=r,this.center=I([],T([],this.min,this.max),.5)}quadrant(i){const r=[i%2==0,i<2],n=v(this.min),o=v(this.max);for(let s=0;s=0;if(0===a)return 0;a!==r.length&&(n=!1)}if(n)return 2;for(let c=0;c<3;c++){let h=Number.MAX_VALUE,u=-Number.MAX_VALUE;for(let d=0;dthis.max[c]-this.min[c])return 0}return 1}}function sw(i,r,n,o,s,a,c,h,u){if(a&&i.queryGeometry.isAboveHorizon)return!1;for(const d of(a&&(u*=i.pixelToTileUnitsFactor),r))for(const p of d){var f;const m=p.add(h),_=s&&n.elevation?n.elevation.exaggeration()*s.getElevationAt(m.x,m.y,!0):0,g=a?m:function(i,r,n){const o=D([],[i.x,i.y,r,1],n);return new l(o[0]/o[3],o[1]/o[3])}(m,_,o),y=a?i.tilespaceRays.map(i=>(function(i,r){const n=x();return sT[2]=r,i.intersectsPlane(sT,sE,n),new l(n[0],n[1])})(i,_)):i.queryGeometry.screenGeometry,v=D([],[p.x,p.y,_,1],o);if(!c&&a?u*=v[3]/n.cameraToCenterDistance:c&&!a&&(u*=n.cameraToCenterDistance/v[3]),f=u,sd(y,g)||sc(g,y,f))return!0}return!1}const sT=w(0,0,0),sE=w(0,0,1);class sS extends so{}function sI(i,{width:r,height:n},o,s){if(s){if(s instanceof Uint8ClampedArray)s=new Uint8Array(s.buffer);else if(s.length!==r*n*o)throw RangeError("mismatched image size")}else s=new Uint8Array(r*n*o);return i.width=r,i.height=n,i.data=s,i}function sM(i,{width:r,height:n},o){if(r===i.width&&n===i.height)return;const s=sI({},{width:r,height:n},o);sA(i,s,{x:0,y:0},{x:0,y:0},{width:Math.min(i.width,r),height:Math.min(i.height,n)},o),i.width=r,i.height=n,i.data=s.data}function sA(i,r,n,o,s,a){if(0===s.width||0===s.height)return r;if(s.width>i.width||s.height>i.height||n.x>i.width-s.width||n.y>i.height-s.height)throw RangeError("out of range source coordinates for image copy");if(s.width>r.width||s.height>r.height||o.x>r.width-s.width||o.y>r.height-s.height)throw RangeError("out of range destination coordinates for image copy");const l=i.data,c=r.data;for(let h=0;h{r[i.evaluationKey]=a;const l=i.expression.evaluate(r);s.data[n+o+0]=Math.floor(255*l.r/l.a),s.data[n+o+1]=Math.floor(255*l.g/l.a),s.data[n+o+2]=Math.floor(255*l.b/l.a),s.data[n+o+3]=Math.floor(255*l.a)};if(i.clips)for(let l=0,c=0;l=a.next.y&&a.next.y!==a.y){var u=a.x+(c-a.y)*(a.next.x-a.x)/(a.next.y-a.y);if(u<=l&&u>h){if(h=u,u===l){if(c===a.y)return a;if(c===a.next.y)return a.next}s=a.x=a.x&&a.x>=f&&l!==a.x&&sj(cs.x||a.x===s.x&&(n=s,o=a,0>sG(n.prev,n,o.prev)&&0>sG(o.next,n,n.next))))&&(s=a,_=d)),a=a.next;while(a!==p)return s}(i,r);if(!n)return r;var o=sH(n,i),s=sU(n,n.next);return sU(o,o.next),r===n?s:r}(c[s],n),n.next);return n}(i,r,f,n)),i.length>80*n){o=a=i[0],s=l=i[1];for(var _=n;_a&&(a=c),h>l&&(l=h);u=0!==(u=Math.max(a-o,l-s))?1/u:0}return function i(r,n,o,s,a,l,c){if(r){!c&&l&&function(i,r,n,o){var s=i;do null===s.z&&(s.z=sN(s.x,s.y,r,n,o)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==i)s.prevZ.nextZ=null,s.prevZ=null,function(i){var r,n,o,s,a,l,c,h,u=1;do{for(n=i,i=null,a=null,l=0;n;){for(l++,o=n,c=0,r=0;r0||h>0&&o;)0!==c&&(0===h||!o||n.z<=o.z)?(s=n,n=n.nextZ,c--):(s=o,o=o.nextZ,h--),a?a.nextZ=s:i=s,s.prevZ=a,a=s;n=o}a.nextZ=null,u*=2}while(l>1)}(s)}(r,s,a,l);for(var h,u,d=r;r.prev!==r.next;)if(h=r.prev,u=r.next,l?function(i,r,n,o){var s=i.prev,a=i.next;if(sG(s,i,a)>=0)return!1;for(var l=s.x>i.x?s.x>a.x?s.x:a.x:i.x>a.x?i.x:a.x,c=s.y>i.y?s.y>a.y?s.y:a.y:i.y>a.y?i.y:a.y,h=sN(s.x=h&&p&&p.z<=u;){if(d!==i.prev&&d!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sG(d.prev,d,d.next)>=0||(d=d.prevZ,p!==i.prev&&p!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sG(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;d&&d.z>=h;){if(d!==i.prev&&d!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sG(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;p&&p.z<=u;){if(p!==i.prev&&p!==i.next&&sj(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sG(p.prev,p,p.next)>=0)return!1;p=p.nextZ}return!0}(r,s,a,l):function(i){var r=i.prev,n=i.next;if(sG(r,i,n)>=0)return!1;for(var o=i.next.next;o!==i.prev;){if(sj(r.x,r.y,i.x,i.y,n.x,n.y,o.x,o.y)&&sG(o.prev,o,o.next)>=0)return!1;o=o.next}return!0}(r))n.push(h.i/o),n.push(r.i/o),n.push(u.i/o),sY(r),r=u.next,d=u.next;else if((r=u)===d){c?1===c?i(r=function(i,r,n){var o=i;do{var s=o.prev,a=o.next.next;!sZ(s,a)&&s$(s,o,o.next,a)&&sW(s,a)&&sW(a,s)&&(r.push(s.i/n),r.push(o.i/n),r.push(a.i/n),sY(o),sY(o.next),o=i=a),o=o.next}while(o!==i)return sU(o)}(sU(r),n,o),n,o,s,a,l,2):2===c&&function(r,n,o,s,a,l){var c=r;do{for(var h,u,d=c.next.next;d!==c.prev;){if(c.i!==d.i&&(h=c,u=d,h.next.i!==u.i&&h.prev.i!==u.i&&!function(i,r){var n=i;do{if(n.i!==i.i&&n.next.i!==i.i&&n.i!==r.i&&n.next.i!==r.i&&s$(n,n.next,i,r))return!0;n=n.next}while(n!==i)return!1}(h,u)&&(sW(h,u)&&sW(u,h)&&function(i,r){var n=i,o=!1,s=(i.x+r.x)/2,a=(i.y+r.y)/2;do n.y>a!=n.next.y>a&&n.next.y!==n.y&&s<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(o=!o),n=n.next;while(n!==i)return o}(h,u)&&(sG(h.prev,h,u.prev)||sG(h,u.prev,u))||sZ(h,u)&&sG(h.prev,h,h.next)>0&&sG(u.prev,u,u.next)>0))){var p=sH(c,d);return c=sU(c,c.next),p=sU(p,p.next),i(c,n,o,s,a,l),void i(p,n,o,s,a,l)}d=d.next}c=c.next}while(c!==r)}(r,n,o,s,a,l):i(sU(r),n,o,s,a,l,1);break}}}(f,m,n,o,s,u),m}function sO(i,r,n,o,s){var a,l;if(s===sQ(i,r,n,o)>0)for(a=r;a=r;a-=o)l=sK(a,i[a],i[a+1],l);return l&&sZ(l,l.next)&&(sY(l),l=l.next),l}function sU(i,r){if(!i)return i;r||(r=i);var n,o=i;do if(n=!1,o.steiner||!sZ(o,o.next)&&0!==sG(o.prev,o,o.next))o=o.next;else{if(sY(o),(o=r=o.prev)===o.next)break;n=!0}while(n||o!==r)return r}function sV(i,r){return i.x-r.x}function sN(i,r,n,o,s){return(i=1431655765&((i=858993459&((i=252645135&((i=16711935&((i=32767*(i-n)*s)|i<<8))|i<<4))|i<<2))|i<<1))|(r=1431655765&((r=858993459&((r=252645135&((r=16711935&((r=32767*(r-o)*s)|r<<8))|r<<4))|r<<2))|r<<1))<<1}function sj(i,r,n,o,s,a,l,c){return(s-l)*(r-c)-(i-l)*(a-c)>=0&&(i-l)*(o-c)-(n-l)*(r-c)>=0&&(n-l)*(a-c)-(s-l)*(o-c)>=0}function sG(i,r,n){return(r.y-i.y)*(n.x-r.x)-(r.x-i.x)*(n.y-r.y)}function sZ(i,r){return i.x===r.x&&i.y===r.y}function s$(i,r,n,o){var s=sX(sG(i,r,n)),a=sX(sG(i,r,o)),l=sX(sG(n,o,i)),c=sX(sG(n,o,r));return s!==a&&l!==c||!(0!==s||!sq(i,n,r))||!(0!==a||!sq(i,o,r))||!(0!==l||!sq(n,i,o))||!(0!==c||!sq(n,r,o))}function sq(i,r,n){return r.x<=Math.max(i.x,n.x)&&r.x>=Math.min(i.x,n.x)&&r.y<=Math.max(i.y,n.y)&&r.y>=Math.min(i.y,n.y)}function sX(i){return i>0?1:i<0?-1:0}function sW(i,r){return 0>sG(i.prev,i,i.next)?sG(i,r,i.next)>=0&&sG(i,i.prev,r)>=0:0>sG(i,r,i.prev)||0>sG(i,i.next,r)}function sH(i,r){var n=new sJ(i.i,i.x,i.y),o=new sJ(r.i,r.x,r.y),s=i.next,a=r.prev;return i.next=r,r.prev=i,n.next=s,s.prev=n,o.next=n,n.prev=o,a.next=o,o.prev=a,o}function sK(i,r,n,o){var s=new sJ(i,r,n);return o?(s.next=o.next,s.prev=o,o.next.prev=s,o.next=s):(s.prev=s,s.next=s),s}function sY(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function sJ(i,r,n){this.i=i,this.x=r,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function sQ(i,r,n,o){for(var s=0,a=r,l=n-o;ar?1:0}function s2(i,r){let n,o;const s=i.length;if(s<=1)return[i];const a=[];for(let l=0;l1)for(let h=0;ho;){if(s-o>600){var l=s-o+1,c=n-o+1,h=Math.log(l),u=.5*Math.exp(2*h/3),d=.5*Math.sqrt(h*u*(l-u)/l)*(c-l/2<0?-1:1);i(r,n,Math.max(o,Math.floor(n-c*u/l+d)),Math.min(s,Math.floor(n+(l-c)*u/l+d)),a)}var p=r[n],f=o,m=s;for(s0(r,o,n),a(r[s],p)>0&&s0(r,o,s);fa(r[f],p);)f++;for(;a(r[m],p)>0;)m--}0===a(r[o],p)?s0(r,o,m):s0(r,++m,s),m<=n&&(o=m+1),n<=m&&(s=m-1)}}(u,r,1,d||u.length-1,s3||s1),a[h]=a[h].slice(0,r))}return a}function s3(i,r){return r.area-i.area}function s5(i,r,n){const o=n.patternDependencies;let s=!1;for(const a of r){const l=a.paint.get(`${i}-pattern`);l.isConstant()||(s=!0);const c=l.constantOr(null);c&&(s=!0,o[c.to]=!0,o[c.from]=!0)}return s}function s4(i,r,n,o,s){const a=s.patternDependencies;for(const l of r){const c=l.paint.get(`${i}-pattern`).value;if("constant"!==c.kind){let h=c.evaluate({zoom:o-1},n,{},s.availableImages),u=c.evaluate({zoom:o},n,{},s.availableImages),d=c.evaluate({zoom:o+1},n,{},s.availableImages);h=h&&h.name?h.name:h,u=u&&u.name?u.name:u,d=d&&d.name?d.name:d,a[h]=!0,a[u]=!0,a[d]=!0,n.patterns[l.id]={min:h,mid:u,max:d}}}return n}sF.deviation=function(i,r,n,o){var s=r&&r.length,a=Math.abs(sQ(i,0,s?r[0]*n:i.length,n));if(s)for(var l=0,c=r.length;l0&&n.holes.push(o+=i[s-1].length)}return n},sR.default=sF;class s6{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new nJ,this.indexArray=new oe,this.indexArray2=new oa,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.segments2=new o0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=s5("fill",this.layers,r);const s=this.layers[0].layout.get("fill-sort-key"),a=[];for(const{feature:l,id:c,index:h,sourceLayerIndex:u}of i){const d=this.layers[0]._featureFilter.needGeometry,p=sr(l,d);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),p,n))continue;const f=s?s.evaluate(p,{},n,r.availableImages):void 0,m={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:d?p.geometry:si(l,n,o),patterns:{},sortKey:f};a.push(m)}for(const _ of(s&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:g,index:y,sourceLayerIndex:x}=_;if(this.hasPattern){const v=s4("fill",this.layers,_,this.zoom,r);this.patternFeatures.push(v)}else this.addFeature(_,g,y,n,{},r.availableImages);r.featureIndex.insert(i[y].feature,g,y,x,this.index)}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const s of this.patternFeatures)this.addFeature(s,s.geometry,s.index,r,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,sB),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.indexBuffer2=i.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(i),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(i,r,n,o,s,a=[]){for(const l of s2(r,500)){let c=0;for(const h of l)c+=h.length;const u=this.segments.prepareSegment(c,this.layoutVertexArray,this.indexArray),d=u.vertexLength,p=[],f=[];for(const m of l){if(0===m.length)continue;m!==l[0]&&f.push(p.length/2);const _=this.segments2.prepareSegment(m.length,this.layoutVertexArray,this.indexArray2),g=_.vertexLength;this.layoutVertexArray.emplaceBack(m[0].x,m[0].y),this.indexArray2.emplaceBack(g+m.length-1,g),p.push(m[0].x),p.push(m[0].y);for(let y=1;y>3;r=1===o?i.readString():2===o?i.readFloat():3===o?i.readDouble():4===o?i.readVarint64():5===o?i.readVarint():6===o?i.readSVarint():7===o?i.readBoolean():null}return r}(n))}function as(i,r,n){if(3===i){var o=new an(n,n.readVarint()+n.pos);o.length&&(r[o.name]=o)}}ai.types=["Unknown","Point","LineString","Polygon"],ai.prototype.loadGeometry=function(){var i=this._pbf;i.pos=this._geometry;for(var r,n=i.readVarint()+i.pos,o=1,s=0,a=0,c=0,h=[];i.pos>3}if(s--,1===o||2===o)a+=i.readSVarint(),c+=i.readSVarint(),1===o&&(r&&h.push(r),r=[]),r.push(new l(a,c));else{if(7!==o)throw Error("unknown command "+o);r&&r.push(r[0].clone())}}return r&&h.push(r),h},ai.prototype.bbox=function(){var i=this._pbf;i.pos=this._geometry;for(var r=i.readVarint()+i.pos,n=1,o=0,s=0,a=0,l=1/0,c=-1/0,h=1/0,u=-1/0;i.pos>3}if(o--,1===n||2===n)(s+=i.readSVarint())c&&(c=s),(a+=i.readSVarint())u&&(u=a);else if(7!==n)throw Error("unknown command "+n)}return[l,h,c,u]},ai.prototype.toGeoJSON=function(i,r,n){var o,s,a=this.extent*Math.pow(2,n),l=this.extent*i,c=this.extent*r,h=this.loadGeometry(),u=ai.types[this.type];function d(i){for(var r=0;r=this._features.length)throw Error("feature index out of bounds");this._pbf.pos=this._features[i];var r=this._pbf.readVarint()+this._pbf.pos;return new ai(this._pbf,r,this.extent,this._keys,this._values)};var aa={VectorTile:function(i,r){this.layers=i.readFields(as,{},r)},VectorTileFeature:ai,VectorTileLayer:an};const al=aa.VectorTileFeature.types;function ac(i,r,n,o,s,a,l,c){i.emplaceBack((r<<1)+l,(n<<1)+a,(Math.floor(8192*o)<<1)+s,Math.round(c))}class ah{constructor(){this.acc=new l(0,0),this.polyCount=[]}startRing(i){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new l(i.x,i.y),this.max=new l(i.x,i.y))}append(i,r){this.currentPolyCount.edges++,this.acc._add(i);let n=!!this.borders;const o=this.min,s=this.max;i.xs.x&&(s.x=i.x,n=!0),i.ys.y&&(s.y=i.y,n=!0),((0===i.x||8192===i.x)&&i.x===r.x)!=((0===i.y||8192===i.y)&&i.y===r.y)&&this.processBorderOverlap(i,r),n&&this.checkBorderIntersection(i,r)}checkBorderIntersection(i,r){r.x<0!=i.x<0&&this.addBorderIntersection(0,io(r.y,i.y,(0-r.x)/(i.x-r.x))),r.x>8192!=i.x>8192&&this.addBorderIntersection(1,io(r.y,i.y,(8192-r.x)/(i.x-r.x))),r.y<0!=i.y<0&&this.addBorderIntersection(2,io(r.x,i.x,(0-r.y)/(i.y-r.y))),r.y>8192!=i.y>8192&&this.addBorderIntersection(3,io(r.x,i.x,(8192-r.y)/(i.y-r.y)))}addBorderIntersection(i,r){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 n=this.borders[i];rn[1]&&(n[1]=r)}processBorderOverlap(i,r){if(i.x===r.x){if(i.y===r.y)return;const n=0===i.x?0:1;this.addBorderIntersection(n,r.y),this.addBorderIntersection(n,i.y)}else{const o=0===i.y?2:3;this.addBorderIntersection(o,r.x),this.addBorderIntersection(o,i.x)}}centroid(){const i=this.polyCount.reduce((i,r)=>i+r.edges,0);return 0!==i?this.acc.div(i)._round():new l(0,0)}span(){return new l(this.max.x-this.min.x,this.max.y-this.min.y)}intersectsCount(){return this.borders.reduce((i,r)=>i+ +(r[0]!==Number.MAX_VALUE),0)}}class au{constructor(i){this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.hasPattern=!1,this.layoutVertexArray=new nQ,this.centroidVertexArray=new ow,this.indexArray=new oe,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.enableTerrain=i.enableTerrain}populate(i,r,n,o){for(const{feature:s,id:a,index:l,sourceLayerIndex:c}of(this.features=[],this.hasPattern=s5("fill-extrusion",this.layers,r),this.featuresOnBorder=[],this.borders=[[],[],[],[]],this.borderDone=[!1,!1,!1,!1],this.tileToMeter=function(i){const r=Math.exp(Math.PI*(1-i.y/(1<i.x<=0)||l.every(i=>i.x>=8192)||l.every(i=>i.y<=0)||l.every(i=>i.y>=8192))continue;for(let m=0;m=1){const v=_[y-1];if(c=x,h=v,(c.x!==h.x||!(c.x<0)&&!(c.x>8192))&&(c.y!==h.y||!(c.y<0)&&!(c.y>8192))){u&&u.append(x,v),f.vertexLength+4>o0.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const b=x.sub(v)._perp(),w=b.x/(Math.abs(b.x)+Math.abs(b.y)),T=b.y>0?1:0,E=v.dist(x);g+E>32768&&(g=0),ac(this.layoutVertexArray,x.x,x.y,w,T,0,0,g),ac(this.layoutVertexArray,x.x,x.y,w,T,0,1,g),g+=E,ac(this.layoutVertexArray,v.x,v.y,w,T,0,0,g),ac(this.layoutVertexArray,v.x,v.y,w,T,0,1,g);const S=f.vertexLength;this.indexArray.emplaceBack(S,S+2,S+1),this.indexArray.emplaceBack(S+1,S+2,S+3),f.vertexLength+=4,f.primitiveLength+=2}}}}if(f.vertexLength+p>o0.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(p,this.layoutVertexArray,this.indexArray)),"Polygon"!==al[i.type])continue;const I=[],M=[],A=f.vertexLength;for(let C=0;C0){if(u.borders){u.vertexArrayOffset=this.centroidVertexArray.length;const B=u.borders,R=this.featuresOnBorder.push(u)-1;for(let F=0;F<4;F++)B[F][0]!==Number.MAX_VALUE&&this.borders[F].push(R)}this.encodeCentroid(u.borders?void 0:u.centroid(),u)}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,s,a,o)}sortBorders(){for(let i=0;i<4;i++)this.borders[i].sort((r,n)=>this.featuresOnBorder[r].borders[i][0]-this.featuresOnBorder[n].borders[i][0])}encodeCentroid(i,r,n=!0){let o,s;if(i){if(0!==i.y){const a=r.span()._mult(this.tileToMeter);o=(Math.max(i.x,1)<<3)+Math.min(7,Math.round(a.x/10)),s=(Math.max(i.y,1)<<3)+Math.min(7,Math.round(a.y/10))}else o=Math.ceil(7*(i.x+450)),s=0}else o=0,s=+n;let l=n?this.centroidVertexArray.length:r.vertexArrayOffset;for(const c of r.polyCount){n&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*c.edges+c.top);for(let h=0;h<2*c.edges;h++)this.centroidVertexArray.emplace(l++,0,s),this.centroidVertexArray.emplace(l++,o,s);for(let u=0;ui.id),this.index=i.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(i=>{this.gradients[i.id]={}}),this.layoutVertexArray=new n0,this.layoutVertexArray2=new n1,this.indexArray=new oe,this.programConfigurations=new o$(i.layers,i.zoom),this.segments=new o0,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=s5("line",this.layers,r);const s=this.layers[0].layout.get("line-sort-key"),a=[];for(const{feature:l,id:c,index:h,sourceLayerIndex:u}of i){const d=this.layers[0]._featureFilter.needGeometry,p=sr(l,d);if(!this.layers[0]._featureFilter.filter(new nk(this.zoom),p,n))continue;const f=s?s.evaluate(p,{},n):void 0,m={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:d?p.geometry:si(l,n,o),patterns:{},sortKey:f};a.push(m)}s&&a.sort((i,r)=>i.sortKey-r.sortKey);const{lineAtlas:_,featureIndex:g}=r,y=this.addConstantDashes(_);for(const x of a){const{geometry:v,index:b,sourceLayerIndex:w}=x;if(y&&this.addFeatureDashes(x,_),this.hasPattern){const T=s4("line",this.layers,x,this.zoom,r);this.patternFeatures.push(T)}else this.addFeature(x,v,b,n,_.positions,r.availableImages);g.insert(i[b].feature,v,b,w,this.index)}}addConstantDashes(i){let r=!1;for(const n of this.layers){const o=n.paint.get("line-dasharray").value,s=n.layout.get("line-cap").value;if("constant"!==o.kind||"constant"!==s.kind)r=!0;else{const a=s.value,l=o.value;if(!l)continue;i.addDash(l.from,a),i.addDash(l.to,a),l.other&&i.addDash(l.other,a)}}return r}addFeatureDashes(i,r){const n=this.zoom;for(const o of this.layers){let s,a,l,c,h,u;const d=o.paint.get("line-dasharray").value,p=o.layout.get("line-cap").value;if("constant"===d.kind&&"constant"===p.kind)continue;if("constant"===d.kind){const f=d.value;if(!f)continue;s=f.other||f.to,a=f.to,l=f.from}else s=d.evaluate({zoom:n-1},i),a=d.evaluate({zoom:n},i),l=d.evaluate({zoom:n+1},i);"constant"===p.kind?c=h=u=p.value:(c=p.evaluate({zoom:n-1},i),h=p.evaluate({zoom:n},i),u=p.evaluate({zoom:n+1},i)),r.addDash(s,c),r.addDash(a,h),r.addDash(l,u);const m=r.getKey(s,c),_=r.getKey(a,h),g=r.getKey(l,u);i.patterns[o.id]={min:m,mid:_,max:g}}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const s of this.patternFeatures)this.addFeature(s,s.geometry,s.index,r,n,o)}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(i){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=i.createVertexBuffer(this.layoutVertexArray2,ax)),this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,ag),this.indexBuffer=i.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(i),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(i){if(i.properties&&i.properties.hasOwnProperty("mapbox_clip_start")&&i.properties.hasOwnProperty("mapbox_clip_end"))return{start:+i.properties.mapbox_clip_start,end:+i.properties.mapbox_clip_end}}addFeature(i,r,n,o,s,a){const l=this.layers[0].layout,c=l.get("line-join").evaluate(i,{}),h=l.get("line-cap").evaluate(i,{}),u=l.get("line-miter-limit"),d=l.get("line-round-limit");for(const p of(this.lineClips=this.lineFeatureClips(i),r))this.addLine(p,i,c,h,u,d);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,s,a,o)}addLine(i,r,n,o,s,a){let l,c,h,u,d;if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineSoFar=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let p=0;p=2&&i[m-1].equals(i[m-2]);)m--;let _=0;for(;_0;if(S&&x>_){const M=l.dist(c);if(M>2*g){const A=l.sub(l.sub(c)._mult(g/M)._round());this.updateDistance(c,A),this.addCurrentVertex(A,u,0,0,y),c=A}}const C=c&&h;let z=C?n:f?"butt":o;if(C&&"round"===z&&(Ts&&(z="bevel"),"bevel"===z&&(T>2&&(z="flipbevel"),T100)v=d.mult(-1);else{const k=T*u.add(d).mag()/u.sub(d).mag();v._perp()._mult(k*(I?-1:1))}this.addCurrentVertex(l,v,0,0,y),this.addCurrentVertex(l,v.mult(-1),0,0,y)}else if("bevel"===z||"fakeround"===z){const P=-Math.sqrt(T*T-1),D=I?P:0,L=I?0:P;if(c&&this.addCurrentVertex(l,u,D,L,y),"fakeround"===z){const B=Math.round(180*E/Math.PI/20);for(let R=1;R2*g){const j=l.add(h.sub(l)._mult(g/N)._round());this.updateDistance(l,j),this.addCurrentVertex(j,d,0,0,y),l=j}}}}addCurrentVertex(i,r,n,o,s,a=!1){const l=r.y*o-r.x,c=-r.y-r.x*o;this.addHalfVertex(i,r.x+r.y*n,r.y-r.x*n,a,!1,n,s),this.addHalfVertex(i,l,c,a,!0,-o,s)}addHalfVertex({x:i,y:r},n,o,s,a,l,c){this.layoutVertexArray.emplaceBack((i<<1)+(s?1:0),(r<<1)+(a?1:0),Math.round(63*n)+128,Math.round(63*o)+128,1+(0===l?0:l<0?-1:1),0,this.lineSoFar),this.lineClips&&this.layoutVertexArray2.emplaceBack(this.scaledDistance,this.lineClipsArray.length,this.lineSoFar);const h=c.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,h),c.primitiveLength++),a?this.e2=h:this.e1=h}updateScaledDistance(){if(this.lineClips){const i=this.totalDistance/(this.lineClips.end-this.lineClips.start);this.scaledDistance=this.distance/this.totalDistance,this.lineSoFar=i*this.lineClips.start+this.distance}else this.lineSoFar=this.distance}updateDistance(i,r){this.distance+=i.dist(r),this.updateScaledDistance()}}r$("LineBucket",aw,{omit:["layers","patternFeatures"]});const aT=new n$({"line-cap":new nN(tr.layout_line["line-cap"]),"line-join":new nN(tr.layout_line["line-join"]),"line-miter-limit":new nV(tr.layout_line["line-miter-limit"]),"line-round-limit":new nV(tr.layout_line["line-round-limit"]),"line-sort-key":new nN(tr.layout_line["line-sort-key"])});var aE={paint:new n$({"line-opacity":new nN(tr.paint_line["line-opacity"]),"line-color":new nN(tr.paint_line["line-color"]),"line-translate":new nV(tr.paint_line["line-translate"]),"line-translate-anchor":new nV(tr.paint_line["line-translate-anchor"]),"line-width":new nN(tr.paint_line["line-width"]),"line-gap-width":new nN(tr.paint_line["line-gap-width"]),"line-offset":new nN(tr.paint_line["line-offset"]),"line-blur":new nN(tr.paint_line["line-blur"]),"line-dasharray":new nj(tr.paint_line["line-dasharray"]),"line-pattern":new nj(tr.paint_line["line-pattern"]),"line-gradient":new nZ(tr.paint_line["line-gradient"])}),layout:aT};const aS=new class extends nN{possiblyEvaluate(i,r){return r=new nk(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),super.possiblyEvaluate(i,r)}evaluate(i,r,n,o){return r=H({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(i,r,n,o)}}(aE.paint.properties["line-width"].specification);function aI(i,r){return r>0?r+2*i:i}aS.useIntegerZoom=!0;const aM=nK([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_tex_size",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"},{name:"a_z_tile_anchor",components:4,type:"Int16"}],4),aA=nK([{name:"a_projected_pos",components:3,type:"Float32"}],4);nK([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const aC=nK([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),az=nK([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);nK([{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 ak=nK([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),aP=nK([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function aD(i,r){const{expression:n}=r;if("constant"===n.kind)return{kind:"constant",layoutSize:n.evaluate(new nk(i+1))};if("source"===n.kind)return{kind:"source"};{const{zoomStops:o,interpolationType:s}=n;let a=0;for(;a":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","\xa2":"¢","\xa3":"£","\xa5":"¥","\xa6":"¦","\xac":"¬","\xaf":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var aO=function(i,r,n,o,s){var a,l,c=8*s-o-1,h=(1<>1,d=-7,p=n?s-1:0,f=n?-1:1,m=i[r+p];for(p+=f,a=m&(1<<-d)-1,m>>=-d,d+=c;d>0;a=256*a+i[r+p],p+=f,d-=8);for(l=a&(1<<-d)-1,a>>=-d,d+=o;d>0;l=256*l+i[r+p],p+=f,d-=8);if(0===a)a=1-u;else{if(a===h)return l?NaN:1/0*(m?-1:1);l+=Math.pow(2,o),a-=u}return(m?-1:1)*l*Math.pow(2,a-o)},aU=function(i,r,n,o,s,a){var l,c,h,u=8*a-s-1,d=(1<>1,f=23===s?5960464477539062e-23:0,m=o?0:a-1,_=o?1:-1,g=r<0||0===r&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(c=isNaN(r)?1:0,l=d):(l=Math.floor(Math.log(r)/Math.LN2),r*(h=Math.pow(2,-l))<1&&(l--,h*=2),(r+=l+p>=1?f/h:f*Math.pow(2,1-p))*h>=2&&(l++,h/=2),l+p>=d?(c=0,l=d):l+p>=1?(c=(r*h-1)*Math.pow(2,s),l+=p):(c=r*Math.pow(2,p-1)*Math.pow(2,s),l=0));s>=8;i[n+m]=255&c,m+=_,c/=256,s-=8);for(l=l<0;i[n+m]=255&l,m+=_,l/=256,u-=8);i[n+m-_]|=128*g};function aV(i){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(i)?i:new Uint8Array(i||0),this.pos=0,this.type=0,this.length=this.buf.length}aV.Varint=0,aV.Fixed64=1,aV.Bytes=2,aV.Fixed32=5;var aN="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function aj(i){return i.type===aV.Bytes?i.readVarint()+i.pos:i.pos+1}function aG(i,r,n){var o=r<=16383?1:r<=2097151?2:r<=268435455?3:Math.floor(Math.log(r)/(7*Math.LN2));n.realloc(o);for(var s=n.pos-1;s>=i;s--)n.buf[s+o]=n.buf[s]}function aZ(i,r){for(var n=0;n>>8,i[n+2]=r>>>16,i[n+3]=r>>>24}function a1(i,r){return(i[r]|i[r+1]<<8|i[r+2]<<16)+(i[r+3]<<24)}function a2(i,r,n){r.glyphs=[],1===i&&n.readMessage(a3,r)}function a3(i,r,n){if(3===i){const{id:o,bitmap:s,width:a,height:l,left:c,top:h,advance:u}=n.readMessage(a5,{});r.glyphs.push({id:o,bitmap:new sC({width:a+6,height:l+6},s),metrics:{width:a,height:l,left:c,top:h,advance:u}})}else 4===i?r.ascender=n.readSVarint():5===i&&(r.descender=n.readSVarint())}function a5(i,r,n){1===i?r.id=n.readVarint():2===i?r.bitmap=n.readBytes():3===i?r.width=n.readVarint():4===i?r.height=n.readVarint():5===i?r.left=n.readSVarint():6===i?r.top=n.readSVarint():7===i&&(r.advance=n.readVarint())}function a4(i){let r=0,n=0;for(const o of i)r+=o.w*o.h,n=Math.max(n,o.w);i.sort((i,r)=>r.h-i.h);const s=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(r/.95)),n),h:1/0}];let a=0,l=0;for(const c of i)for(let h=s.length-1;h>=0;h--){const u=s[h];if(!(c.w>u.w||c.h>u.h)){if(c.x=u.x,c.y=u.y,l=Math.max(l,c.y+c.h),a=Math.max(a,c.x+c.w),c.w===u.w&&c.h===u.h){const d=s.pop();h>3,a=this.pos;this.type=7&o,i(s,r,this),this.pos===a&&this.skip(o)}return r},readMessage:function(i,r){return this.readFields(i,r,this.readVarint()+this.pos)},readFixed32:function(){var i=aQ(this.buf,this.pos);return this.pos+=4,i},readSFixed32:function(){var i=a1(this.buf,this.pos);return this.pos+=4,i},readFixed64:function(){var i=aQ(this.buf,this.pos)+4294967296*aQ(this.buf,this.pos+4);return this.pos+=8,i},readSFixed64:function(){var i=aQ(this.buf,this.pos)+4294967296*a1(this.buf,this.pos+4);return this.pos+=8,i},readFloat:function(){var i=aO(this.buf,this.pos,!0,23,4);return this.pos+=4,i},readDouble:function(){var i=aO(this.buf,this.pos,!0,52,8);return this.pos+=8,i},readVarint:function(i){var r,n,o=this.buf;return r=127&(n=o[this.pos++]),n<128?r:(r|=(127&(n=o[this.pos++]))<<7,n<128?r:(r|=(127&(n=o[this.pos++]))<<14,n<128?r:(r|=(127&(n=o[this.pos++]))<<21,n<128?r:function(i,r,n){var o,s,a,l=n.buf;if(s=(112&(a=l[n.pos++]))>>4,a<128||(s|=(127&(a=l[n.pos++]))<<3,a<128)||(s|=(127&(a=l[n.pos++]))<<10,a<128)||(s|=(127&(a=l[n.pos++]))<<17,a<128)||(s|=(127&(a=l[n.pos++]))<<24,a<128)||(s|=(1&(a=l[n.pos++]))<<31,a<128))return o=s,r?4294967296*o+(i>>>0):4294967296*(o>>>0)+(i>>>0);throw Error("Expected varint not more than 10 bytes")}(r|=(15&(n=o[this.pos]))<<28,i,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var i=this.readVarint();return i%2==1?-((i+1)/2):i/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var i,r=this.readVarint()+this.pos,n=this.pos;return this.pos=r,r-n>=12&&aN?(i=this.buf,aN.decode(i.subarray(n,r))):function(i,r,n){for(var o="",s=r;s239?4:h>223?3:h>191?2:1;if(s+d>n)break;1===d?h<128&&(u=h):2===d?128==(192&(a=i[s+1]))&&(u=(31&h)<<6|63&a)<=127&&(u=null):3===d?(l=i[s+2],128==(192&(a=i[s+1]))&&128==(192&l)&&((u=(15&h)<<12|(63&a)<<6|63&l)<=2047||u>=55296&&u<=57343)&&(u=null)):4===d&&(l=i[s+2],c=i[s+3],128==(192&(a=i[s+1]))&&128==(192&l)&&128==(192&c)&&((u=(15&h)<<18|(63&a)<<12|(63&l)<<6|63&c)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,d=1):u>65535&&(u-=65536,o+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),o+=String.fromCharCode(u),s+=d}return o}(this.buf,n,r)},readBytes:function(){var i=this.readVarint()+this.pos,r=this.buf.subarray(this.pos,i);return this.pos=i,r},readPackedVarint:function(i,r){if(this.type!==aV.Bytes)return i.push(this.readVarint(r));var n=aj(this);for(i=i||[];this.pos127;);else if(r===aV.Bytes)this.pos=this.readVarint()+this.pos;else if(r===aV.Fixed32)this.pos+=4;else{if(r!==aV.Fixed64)throw Error("Unimplemented type: "+r);this.pos+=8}},writeTag:function(i,r){this.writeVarint(i<<3|r)},realloc:function(i){for(var r=this.length||16;r268435455||i<0?function(i,r){var n,o,s,a,l,c,h;if(i>=0?(n=i%4294967296|0,o=i/4294967296|0):(o=~(-i/4294967296),4294967295^(n=~(-i%4294967296))?n=n+1|0:(n=0,o=o+1|0)),i>=18446744073709552e3||i<-18446744073709552e3)throw Error("Given varint doesn't fit into 10 bytes");r.realloc(10),s=n,(a=r).buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,s>>>=7,a.buf[a.pos++]=127&s|128,a.buf[a.pos]=127&(s>>>=7),l=o,c=r,h=(7&l)<<4,c.buf[c.pos++]|=h|((l>>>=3)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l|((l>>>=7)?128:0),l&&(c.buf[c.pos++]=127&l)))))}(i,this):(this.realloc(4),this.buf[this.pos++]=127&i|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=127&(i>>>=7)|(i>127?128:0),i<=127||(this.buf[this.pos++]=i>>>7&127))))},writeSVarint:function(i){this.writeVarint(i<0?-(2*i)-1:2*i)},writeBoolean:function(i){this.writeVarint(Boolean(i))},writeString:function(i){i=String(i),this.realloc(4*i.length),this.pos++;var r=this.pos;this.pos=function(i,r,n){for(var o,s,a=0;a55295&&o<57344){if(!s){o>56319||a+1===r.length?(i[n++]=239,i[n++]=191,i[n++]=189):s=o;continue}if(o<56320){i[n++]=239,i[n++]=191,i[n++]=189,s=o;continue}o=s-55296<<10|o-56320|65536,s=null}else s&&(i[n++]=239,i[n++]=191,i[n++]=189,s=null);o<128?i[n++]=o:(o<2048?i[n++]=o>>6|192:(o<65536?i[n++]=o>>12|224:(i[n++]=o>>18|240,i[n++]=o>>12&63|128),i[n++]=o>>6&63|128),i[n++]=63&o|128)}return n}(this.buf,i,this.pos);var n=this.pos-r;n>=128&&aG(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeFloat:function(i){this.realloc(4),aU(this.buf,i,this.pos,!0,23,4),this.pos+=4},writeDouble:function(i){this.realloc(8),aU(this.buf,i,this.pos,!0,52,8),this.pos+=8},writeBytes:function(i){var r=i.length;this.writeVarint(r),this.realloc(r);for(var n=0;n=128&&aG(n,o,this),this.pos=n-1,this.writeVarint(o),this.pos+=o},writeMessage:function(i,r,n){this.writeTag(i,aV.Bytes),this.writeRawMessage(r,n)},writePackedVarint:function(i,r){r.length&&this.writeMessage(i,aZ,r)},writePackedSVarint:function(i,r){r.length&&this.writeMessage(i,a$,r)},writePackedBoolean:function(i,r){r.length&&this.writeMessage(i,aW,r)},writePackedFloat:function(i,r){r.length&&this.writeMessage(i,aq,r)},writePackedDouble:function(i,r){r.length&&this.writeMessage(i,aX,r)},writePackedFixed32:function(i,r){r.length&&this.writeMessage(i,aH,r)},writePackedSFixed32:function(i,r){r.length&&this.writeMessage(i,aK,r)},writePackedFixed64:function(i,r){r.length&&this.writeMessage(i,aY,r)},writePackedSFixed64:function(i,r){r.length&&this.writeMessage(i,aJ,r)},writeBytesField:function(i,r){this.writeTag(i,aV.Bytes),this.writeBytes(r)},writeFixed32Field:function(i,r){this.writeTag(i,aV.Fixed32),this.writeFixed32(r)},writeSFixed32Field:function(i,r){this.writeTag(i,aV.Fixed32),this.writeSFixed32(r)},writeFixed64Field:function(i,r){this.writeTag(i,aV.Fixed64),this.writeFixed64(r)},writeSFixed64Field:function(i,r){this.writeTag(i,aV.Fixed64),this.writeSFixed64(r)},writeVarintField:function(i,r){this.writeTag(i,aV.Varint),this.writeVarint(r)},writeSVarintField:function(i,r){this.writeTag(i,aV.Varint),this.writeSVarint(r)},writeStringField:function(i,r){this.writeTag(i,aV.Bytes),this.writeString(r)},writeFloatField:function(i,r){this.writeTag(i,aV.Fixed32),this.writeFloat(r)},writeDoubleField:function(i,r){this.writeTag(i,aV.Fixed64),this.writeDouble(r)},writeBooleanField:function(i,r){this.writeVarintField(i,Boolean(r))}};class a6{constructor(i,{pixelRatio:r,version:n,stretchX:o,stretchY:s,content:a}){this.paddedRect=i,this.pixelRatio=r,this.stretchX=o,this.stretchY=s,this.content=a,this.version=n}get tl(){return[this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get displaySize(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}}class a8{constructor(i,r){const n={},o={};this.haveRenderCallbacks=[];const s=[];this.addImages(i,n,s),this.addImages(r,o,s);const{w:a,h:l}=a4(s),c=new sz({width:a||1,height:l||1});for(const h in i){const u=i[h],d=n[h].paddedRect;sz.copy(u.data,c,{x:0,y:0},{x:d.x+1,y:d.y+1},u.data)}for(const p in r){const f=r[p],m=o[p].paddedRect,_=m.x+1,g=m.y+1,y=f.data.width,x=f.data.height;sz.copy(f.data,c,{x:0,y:0},{x:_,y:g},f.data),sz.copy(f.data,c,{x:0,y:x-1},{x:_,y:g-1},{width:y,height:1}),sz.copy(f.data,c,{x:0,y:0},{x:_,y:g+x},{width:y,height:1}),sz.copy(f.data,c,{x:y-1,y:0},{x:_-1,y:g},{width:1,height:x}),sz.copy(f.data,c,{x:0,y:0},{x:_+y,y:g},{width:1,height:x})}this.image=c,this.iconPositions=n,this.patternPositions=o}addImages(i,r,n){for(const o in i){const s=i[o],a={x:0,y:0,w:s.data.width+2,h:s.data.height+2};n.push(a),r[o]=new a6(a,s),s.hasRenderCallback&&this.haveRenderCallbacks.push(o)}}patchUpdatedImages(i,r){for(const n in i.dispatchRenderCallbacks(this.haveRenderCallbacks),i.updatedImages)this.patchUpdatedImage(this.iconPositions[n],i.getImage(n),r),this.patchUpdatedImage(this.patternPositions[n],i.getImage(n),r)}patchUpdatedImage(i,r,n){if(!i||!r||i.version===r.version)return;i.version=r.version;const[o,s]=i.tl;n.update(r.data,void 0,{x:o,y:s})}}r$("ImagePosition",a6),r$("ImageAtlas",a8);const a9={horizontal:1,vertical:2,horizontalOnly:3};class a7{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(i,r){const n=new a7;return n.scale=i||1,n.fontStack=r,n}static forImage(i){const r=new a7;return r.imageName=i,r}}class le{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(i,r){const n=new le;for(let o=0;o=0&&o>=i&&li[this.text.charCodeAt(o)];o--)n--;this.text=this.text.substring(i,n),this.sectionIndex=this.sectionIndex.slice(i,n)}substring(i,r){const n=new le;return n.text=this.text.substring(i,r),n.sectionIndex=this.sectionIndex.slice(i,r),n.sections=this.sections,n}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((i,r)=>Math.max(i,this.sections[r].scale),0)}addTextSection(i,r){this.text+=i.text,this.sections.push(a7.forText(i.scale,i.fontStack||r));const n=this.sections.length-1;for(let o=0;o=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function lt(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){let y;const x=le.fromFeature(i,s);p===a9.vertical&&x.verticalizePunctuation(f);const{processBidirectionalText:v,processStyledBidirectionalText:b}=nz;if(v&&1===x.sections.length){y=[];const w=v(x.toString(),la(x,u,a,r,o,m,_));for(const T of w){const E=new le;E.text=T,E.sections=x.sections;for(let S=0;S0&&q>z&&(z=q)}else{const X=n[L.fontStack];if(!X)continue;X[R]&&(U=X[R]);const W=r[L.fontStack];if(!W)continue;const H=W.glyphs[R];if(!H)continue;if(O=H.metrics,N=8203!==R?24:0,x){const K=void 0!==W.ascender?Math.abs(W.ascender):0,Y=void 0!==W.descender?Math.abs(W.descender):0,J=(K+Y)*F;k=0;let p=0;for(let f=0;f-n/2;){if(--l<0)return!1;c-=i[l].dist(a),a=i[l]}c+=i[l].dist(i[l+1]),l++;const h=[];let u=0;for(;co;)u-=h.shift().angleDelta;if(u>s)return!1;l++,c+=d.dist(p)}return!0}function lp(i){let r=0;for(let n=0;n=o&&f.x>=o||(p.x>=o?p=new l(o,p.y+(o-p.x)/(f.x-p.x)*(f.y-p.y))._round():f.x>=o&&(f=new l(o,p.y+(o-p.x)/(f.x-p.x)*(f.y-p.y))._round()),p.y>=s&&f.y>=s||(p.y>=s?p=new l(p.x+(s-p.y)/(f.y-p.y)*(f.x-p.x),s)._round():f.y>=s&&(f=new l(p.x+(s-p.y)/(f.y-p.y)*(f.x-p.x),s)._round()),h&&p.equals(h[h.length-1])||(h=[p],a.push(h)),h.push(f)))))}}return a}function lg(i,r,n,o,s,a,l,c,h){for(let u=r;u-1)a[++h]=c,l[h]=u,l[h+1]=1e20}for(let f=0,m=0;f{let o=this.entries[i];o||(o=this.entries[i]={glyphs:{},requests:{},ranges:{},ascender:void 0,descender:void 0});let s=o.glyphs[r];if(void 0!==s)return void n(null,{stack:i,id:r,glyph:s});if(s=this._tinySDF(o,i,r))return o.glyphs[r]=s,void n(null,{stack:i,id:r,glyph:s});const a=Math.floor(r/256);if(256*a>65535)return void n(Error("glyphs > 65535 not supported"));if(o.ranges[a])return void n(null,{stack:i,id:r,glyph:s});let l=o.requests[a];l||(l=o.requests[a]=[],lv.loadGlyphRange(i,a,this.url,this.requestManager,(i,r)=>{if(r){for(const n in o.ascender=r.ascender,o.descender=r.descender,r.glyphs)this._doesCharSupportLocalGlyph(+n)||(o.glyphs[+n]=r.glyphs[+n]);o.ranges[a]=!0}for(const s of l)s(i,r);delete o.requests[a]})),l.push((o,s)=>{o?n(o):s&&n(null,{stack:i,id:r,glyph:s.glyphs[r]||null})})},(i,n)=>{if(i)r(i);else if(n){const o={};for(const{stack:s,id:a,glyph:l}of n)void 0===o[s]&&(o[s]={}),void 0===o[s].glyphs&&(o[s].glyphs={}),o[s].glyphs[a]=l&&{id:l.id,bitmap:l.bitmap.clone(),metrics:l.metrics},o[s].ascender=this.entries[s].ascender,o[s].descender=this.entries[s].descender;r(null,o)}})}_doesCharSupportLocalGlyph(i){return this.localGlyphMode!==lx.none&&(this.localGlyphMode===lx.all?!!this.localFontFamily:!!this.localFontFamily&&(nn(i)||na(i)||r4(i)||r6(i))||r5(i))}_tinySDF(i,r,n){const o=this.localFontFamily;if(!o||!this._doesCharSupportLocalGlyph(n))return;let s=i.tinySDF;if(!s){let a="400";/bold/i.test(r)?a="900":/medium/i.test(r)?a="500":/light/i.test(r)&&(a="200"),(s=i.tinySDF=new lv.TinySDF({fontFamily:o,fontWeight:a,fontSize:48,buffer:6,radius:16})).fontWeight=a}if(this.localGlyphs[s.fontWeight][n])return this.localGlyphs[s.fontWeight][n];const l=String.fromCharCode(n),{data:c,width:h,height:u,glyphWidth:d,glyphHeight:p,glyphLeft:f,glyphTop:m,glyphAdvance:_}=s.draw(l);return this.localGlyphs[s.fontWeight][n]={id:n,bitmap:new sC({width:h,height:u},c),metrics:{width:d/2,height:p/2,left:f/2,top:m/2-27,advance:_/2,localGlyph:!0}}}}function lb(i,r,n,o){const s=[],a=i.image,c=a.pixelRatio,h=a.paddedRect.w-2,u=a.paddedRect.h-2,d=i.right-i.left,p=i.bottom-i.top,f=a.stretchX||[[0,h]],m=a.stretchY||[[0,u]],_=(i,r)=>i+r[1]-r[0],g=f.reduce(_,0),y=m.reduce(_,0),x=h-g,v=u-y;let b=0,w=g,T=0,E=y,S=0,I=x,M=0,A=v;if(a.content&&o){const C=a.content;b=lw(f,0,C[0]),T=lw(m,0,C[1]),w=lw(f,C[0],C[2]),E=lw(m,C[1],C[3]),S=C[0]-b,M=C[1]-T,I=C[2]-C[0]-w,A=C[3]-C[1]-E}const z=(o,s,h,u)=>{var f,m,_,x,v,C,z,k,P,D,L,B,R,F,O,U;const V=(f=o.stretch-b,m=w,f/m*d+i.left),N=(_=o.fixed-S,x=I,_-x*o.stretch/g),j=(v=s.stretch-T,C=E,v/C*p+i.top),G=(z=s.fixed-M,k=A,z-k*s.stretch/y),Z=(P=h.stretch-b,D=w,P/D*d+i.left),$=(L=h.fixed-S,B=I,L-B*h.stretch/g),q=(R=u.stretch-T,F=E,R/F*p+i.top),X=(O=u.fixed-M,U=A,O-U*u.stretch/y),W=new l(V,j),H=new l(Z,j),K=new l(Z,q),Y=new l(V,q),J=new l(N/c,G/c),Q=new l($/c,X/c),ee=r*Math.PI/180;if(ee){const et=Math.sin(ee),ei=Math.cos(ee),er=[ei,-et,et,ei];W._matMult(er),H._matMult(er),Y._matMult(er),K._matMult(er)}const en=o.stretch+o.fixed,eo=s.stretch+s.fixed;return{tl:W,tr:H,bl:Y,br:K,tex:{x:a.paddedRect.x+1+en,y:a.paddedRect.y+1+eo,w:h.stretch+h.fixed-en,h:u.stretch+u.fixed-eo},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:J,pixelOffsetBR:Q,minFontScaleX:I/c/d,minFontScaleY:A/c/p,isSDF:n}};if(o&&(a.stretchX||a.stretchY)){const k=lT(f,x,g),P=lT(m,v,y);for(let D=0;D{if(i)s(i);else if(r){const n={},o=new aV(r).readFields(a2,{});for(const a of o.glyphs)n[a.id]=a;s(null,{glyphs:n,ascender:o.ascender,descender:o.descender})}})},lv.TinySDF=class{constructor({fontSize:i=24,buffer:r=3,radius:n=8,cutoff:o=.25,fontFamily:s="sans-serif",fontWeight:a="normal",fontStyle:l="normal"}){this.buffer=r,this.cutoff=o,this.radius=n;const c=this.size=i+4*r,h=this._createCanvas(c),u=this.ctx=h.getContext("2d",{willReadFrequently:!0});u.font=`${l} ${a} ${i}px ${s}`,u.textBaseline="alphabetic",u.textAlign="left",u.fillStyle="black",this.gridOuter=new Float64Array(c*c),this.gridInner=new Float64Array(c*c),this.f=new Float64Array(c),this.z=new Float64Array(c+1),this.v=new Uint16Array(c)}_createCanvas(i){const r=document.createElement("canvas");return r.width=r.height=i,r}draw(i){const{width:r,actualBoundingBoxAscent:n,actualBoundingBoxDescent:o,actualBoundingBoxLeft:s,actualBoundingBoxRight:a}=this.ctx.measureText(i),l=Math.floor(n),c=Math.min(this.size-this.buffer,Math.ceil(a-s)),h=Math.min(this.size-this.buffer,Math.ceil(n)+Math.ceil(o)),u=c+2*this.buffer,d=h+2*this.buffer,p=u*d,f=new Uint8ClampedArray(p),m={data:f,width:u,height:d,glyphWidth:c,glyphHeight:h,glyphTop:l,glyphLeft:0,glyphAdvance:r};if(0===c||0===h)return m;const{ctx:_,buffer:g,gridInner:y,gridOuter:x}=this;_.clearRect(g,g,c,h),_.fillText(i,g,g+l+1);const v=_.getImageData(g,g,c,h);x.fill(1e20,0,p),y.fill(0,0,p);for(let b=0;b0?S*S:0,y[E]=S<0?S*S:0}}lg(x,0,0,u,d,u,this.f,this.v,this.z),lg(y,g,g,c,h,u,this.f,this.v,this.z);for(let I=0;I0)for(let n=(this.length>>1)-1;n>=0;n--)this._down(n)}push(i){this.data.push(i),this.length++,this._up(this.length-1)}pop(){if(0===this.length)return;const i=this.data[0],r=this.data.pop();return this.length--,this.length>0&&(this.data[0]=r,this._down(0)),i}peek(){return this.data[0]}_up(i){const{data:r,compare:n}=this,o=r[i];for(;i>0;){const s=i-1>>1,a=r[s];if(n(o,a)>=0)break;r[i]=a,i=s}r[i]=o}_down(i){const{data:r,compare:n}=this,o=this.length>>1,s=r[i];for(;in(r[c],l)&&(a=c,l=r[c]),n(l,s)>=0)break;r[i]=l,i=a}r[i]=s}}function lS(i,r){return ir?1:0}function lI(i,r){return r.max-i.max}function lM(i,r,n,o){this.p=new l(i,r),this.h=n,this.d=function(i,r){let n=!1,o=1/0;for(let s=0;si.y!=d.y>i.y&&i.x<(d.x-u.x)*(i.y-u.y)/(d.y-u.y)+u.x&&(n=!n),o=Math.min(o,sh(i,u,d))}}return(n?1:-1)*Math.sqrt(o)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}const lA=Number.POSITIVE_INFINITY,lC=Math.sqrt(2);function lz(i,r){return r[1]!==lA?function(i,r,n){let o=0,s=0;switch(r=Math.abs(r),n=Math.abs(n),i){case"top-right":case"top-left":case"top":s=n-7;break;case"bottom-right":case"bottom-left":case"bottom":s=7-n}switch(i){case"top-right":case"bottom-right":case"right":o=-r;break;case"top-left":case"bottom-left":case"left":o=r}return[o,s]}(i,r[0],r[1]):function(i,r){let n=0,o=0;r<0&&(r=0);const s=r/lC;switch(i){case"top-right":case"top-left":o=s-7;break;case"bottom-right":case"bottom-left":o=7-s;break;case"bottom":o=7-r;break;case"top":o=r-7}switch(i){case"top-right":case"bottom-right":n=-s;break;case"top-left":case"bottom-left":n=s;break;case"left":n=r;break;case"right":n=-r}return[n,o]}(i,r[0])}function lk(i){switch(i){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function lP(i,r,n,o,s,a,c,h,u,d,p,f,m,_,g,y,x){const v=function(i,r,n,o,s,a,c,h){const u=[];if(0===r.positionedLines.length)return u;const d=o.layout.get("text-rotate").evaluate(a,{})*Math.PI/180,p=function(i){const r=i[0],n=i[1],o=r*n;return o>0?[r,-n]:o<0?[-r,n]:0===r?[n,r]:[n,-r]}(n);let f=Math.abs(r.top-r.bottom);for(const m of r.positionedLines)f-=m.lineOffset;const _=r.positionedLines.length,g=f/_;let y=r.top-n[1];for(let x=0;x<_;++x){const v=r.positionedLines[x];for(const b of(y=function(i,r,n,o){const s=r+i.positionedLines[o].lineOffset;return 0===o?n+s/2:n+(s+(r+i.positionedLines[o-1].lineOffset))/2}(r,g,y,x),v.positionedGlyphs)){let w,T,E,S;if(!b.rect)continue;const I=b.rect||{};let M=4,A=!0,C=1,z=0;if(b.imageName){const k=c[b.imageName];if(!k)continue;if(k.sdf){ea("SDF images are not supported in formatted text and will be ignored.");continue}A=!1,M=1/(C=k.pixelRatio)}const P=(s||h)&&b.vertical,D=b.metrics.advance*b.scale/2,L=b.metrics,B=b.rect;if(null===B)continue;h&&r.verticalizable&&(z=b.imageName?D-b.metrics.width*b.scale/2:0);const R=s?[b.x+D,b.y]:[0,0];let F=[0,0],O=[0,0],U=!1;s||(P?(O=[b.x+D+p[0],b.y+p[1]-z],U=!0):F=[b.x+D+n[0],b.y+n[1]-z]);const V=B.w*b.scale/(C*(b.localGlyph?2:1)),N=B.h*b.scale/(C*(b.localGlyph?2:1));if(P){const j=b.y-y,G=new l(-D,D-j),Z=-Math.PI/2,$=new l(...O);(w=new l(-D+F[0],F[1]))._rotateAround(Z,G)._add($),w.x+=-j+D,w.y-=(L.left-M)*b.scale;const q=b.imageName?L.advance*b.scale:24*b.scale,X=String.fromCharCode(b.glyph);"︶"===X||"﹈"===X||"︸"===X||"﹄"===X||"﹂"===X||"︾"===X||"︼"===X||"︺"===X||"︘"===X||"﹀"===X||"︐"===X||"︓"===X||"︔"===X||"`"===X||" ̄"===X||"︑"===X||"︒"===X?w.x+=(1-M)*b.scale:"︵"===X||"﹇"===X||"︷"===X||"﹃"===X||"﹁"===X||"︽"===X||"︻"===X||"︹"===X||"︗"===X||"︿"===X?w.x+=q-L.height*b.scale+(-M-1)*b.scale:w.x+=b.imageName||L.width+2*M===B.w&&L.height+2*M===B.h?(q-N)/2:(q-(L.height+2*M)*b.scale)/2,T=new l(w.x,w.y-V),E=new l(w.x+N,w.y),S=new l(w.x+N,w.y-V)}else{const W=(L.left-M)*b.scale-D+F[0],H=(-L.top-M)*b.scale+F[1],K=W+V,Y=H+N;w=new l(W,H),T=new l(K,H),E=new l(W,Y),S=new l(K,Y)}if(d){let J;J=s?new l(0,0):U?new l(p[0],p[1]):new l(n[0],n[1]),w._rotateAround(d,J),T._rotateAround(d,J),E._rotateAround(d,J),S._rotateAround(d,J)}const Q=new l(0,0),ee=new l(0,0);u.push({tl:w,tr:T,bl:E,br:S,tex:I,writingMode:r.writingMode,glyphOffset:R,sectionIndex:b.sectionIndex,isSDF:A,pixelOffsetTL:Q,pixelOffsetBR:ee,minFontScaleX:0,minFontScaleY:0})}}return u}(0,o,u,a,c,h,s,i.allowVerticalPlacement),b=i.textSizeData;let w=null;for(const T of("source"===b.kind?(w=[128*a.layout.get("text-size").evaluate(h,{},x)])[0]>32640&&ea(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`):"composite"===b.kind&&((w=[128*g.compositeTextSizes[0].evaluate(h,{},x),128*g.compositeTextSizes[1].evaluate(h,{},x)])[0]>32640||w[1]>32640)&&ea(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`),i.addSymbols(i.text,v,w,u,c,h,p,r,n,d.lineStartIndex,d.lineLength,_,y,x),f))m[T]=i.text.placedSymbolArray.length-1;return 4*v.length}function lD(i){for(const r in i)return i[r];return null}function lL(i,r,n,o,s,a,c,h,u,d){let p=c.top,f=c.bottom,m=c.left,_=c.right;const g=c.collisionPadding;if(g&&(m-=g[0],p-=g[1],_+=g[2],f+=g[3]),u){const y=new l(m,p),x=new l(_,p),v=new l(m,f),b=new l(_,f),w=u*O;let T=new l(0,0);d&&(T=new l(d[0],d[1])),y._rotateAround(w,T),x._rotateAround(w,T),v._rotateAround(w,T),b._rotateAround(w,T),m=Math.min(y.x,x.x,v.x,b.x),_=Math.max(y.x,x.x,v.x,b.x),p=Math.min(y.y,x.y,v.y,b.y),f=Math.max(y.y,x.y,v.y,b.y)}return i.emplaceBack(r.x,r.y,r.z,n.x,n.y,m,p,_,f,h,o,s,a),i.length-1}function lB(i){i.collisionPadding&&(i.top-=i.collisionPadding[1],i.bottom+=i.collisionPadding[3]);const r=i.bottom-i.top;return r>0?Math.max(10,r):null}const lR=aa.VectorTileFeature.types,lF=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function lO(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){const y=d?Math.min(32640,Math.round(d[0])):0,x=d?Math.min(32640,Math.round(d[1])):0;i.emplaceBack(r,n,Math.round(32*l),Math.round(32*c),h,u,(y<<1)+(p?1:0),x,16*f,16*m,256*_,256*g,o,s,a,0)}function lU(i,r,n){i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n),i.emplaceBack(r.x,r.y,n)}class lV{constructor(i){this.layoutVertexArray=new n5,this.indexArray=new oe,this.programConfigurations=i,this.segments=new o0,this.dynamicLayoutVertexArray=new n1,this.opacityVertexArray=new n4,this.placedSymbolArray=new of}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length}upload(i,r,n,o){this.isEmpty()||(n&&(this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,aM.members),this.indexBuffer=i.createIndexBuffer(this.indexArray,r),this.dynamicLayoutVertexBuffer=i.createVertexBuffer(this.dynamicLayoutVertexArray,aA.members,!0),this.opacityVertexBuffer=i.createVertexBuffer(this.opacityVertexArray,lF,!0),this.opacityVertexBuffer.itemSize=1),(n||o)&&this.programConfigurations.upload(i))}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())}}r$("SymbolBuffers",lV);class lN{constructor(i,r,n){this.layoutVertexArray=new i,this.layoutAttributes=r,this.indexArray=new n,this.segments=new o0,this.collisionVertexArray=new n7,this.collisionVertexArrayExt=new n1}upload(i){this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=i.createVertexBuffer(this.collisionVertexArray,aC.members,!0),this.collisionVertexBufferExt=i.createVertexBuffer(this.collisionVertexArrayExt,az.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}r$("CollisionBuffers",lN);class lj{constructor(i){this.collisionBoxArray=i.collisionBoxArray,this.zoom=i.zoom,this.overscaling=i.overscaling,this.layers=i.layers,this.layerIds=this.layers.map(i=>i.id),this.index=i.index,this.pixelRatio=i.pixelRatio,this.sourceLayerIndex=i.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.fullyClipped=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=p([]),this.placementViewportMatrix=p([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=aD(this.zoom,r["text-size"]),this.iconSizeData=aD(this.zoom,r["icon-size"]);const n=this.layers[0].layout,o=n.get("symbol-sort-key"),s=n.get("symbol-z-order");this.canOverlap=n.get("text-allow-overlap")||n.get("icon-allow-overlap")||n.get("text-ignore-placement")||n.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==s&&void 0!==o.constantOr(1),this.sortFeaturesByY=("viewport-y"===s||"auto"===s&&!this.sortFeaturesByKey)&&this.canOverlap,this.writingModes=n.get("text-writing-mode").map(i=>a9[i]),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.sourceID=i.sourceID}createArrays(){this.text=new lV(new o$(this.layers,this.zoom,i=>/^text/.test(i))),this.icon=new lV(new o$(this.layers,this.zoom,i=>/^icon/.test(i))),this.glyphOffsetArray=new og,this.lineVertexArray=new oy,this.symbolInstances=new o_}calculateGlyphDependencies(i,r,n,o,s){for(let a=0;a0)&&("constant"!==l.value.kind||l.value.value.length>0),d="constant"!==h.value.kind||!!h.value.value||Object.keys(h.parameters).length>0,p=a.get("symbol-sort-key");if(this.features=[],!u&&!d)return;const f=r.iconDependencies,m=r.glyphDependencies,_=r.availableImages,g=new nk(this.zoom);for(const{feature:y,id:x,index:v,sourceLayerIndex:b}of i){let w,T;const E=s._featureFilter.needGeometry,S=sr(y,E);if(!s._featureFilter.filter(g,S,n))continue;if(E||(S.geometry=si(y,n,o)),u){const I=s.getValueAndResolveTokens("text-field",S,n,_),M=tP.factory(I);(function(i){for(const r of i.sections)if(function(i){for(const r of i)if(ny(r.charCodeAt(0)))return!0;return!1}(r.text))return!0;return!1})(M)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===nA()||this.hasRTLText&&nz.isParsed())&&(w=function(i,r,n){return i.sections.forEach(i=>{i.text=function(i,r,n){const o=r.layout.get("text-transform").evaluate(n,{});return"uppercase"===o?i=i.toLocaleUpperCase():"lowercase"===o&&(i=i.toLocaleLowerCase()),nz.applyArabicShaping&&(i=nz.applyArabicShaping(i)),i}(i.text,r,n)}),i}(M,s,S))}if(d){const A=s.getValueAndResolveTokens("icon-image",S,n,_);T=A instanceof tD?A:tD.fromString(A)}if(!w&&!T)continue;const C=this.sortFeaturesByKey?p.evaluate(S,{},n):void 0;if(this.features.push({id:x,text:w,icon:T,index:v,sourceLayerIndex:b,geometry:S.geometry,properties:y.properties,type:lR[y.type],sortKey:C}),T&&(f[T.name]=!0),w){const z=l.evaluate(S,{},n).join(","),k="map"===a.get("text-rotation-alignment")&&"point"!==a.get("symbol-placement");for(const P of(this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(a9.vertical)>=0,w.sections))if(P.image)f[P.image.name]=!0;else{const D=nm(w.toString()),L=P.fontStack||z,B=m[L]=m[L]||{};this.calculateGlyphDependencies(P.text,B,k,this.allowVerticalPlacement,D)}}}"line"===a.get("symbol-placement")&&(this.features=function(i){const r={},n={},o=[];let s=0;function a(r){o.push(i[r]),s++}function l(i,r,s){const a=n[i];return delete n[i],n[r]=a,o[a].geometry[0].pop(),o[a].geometry[0]=o[a].geometry[0].concat(s[0]),a}function c(i,n,s){const a=r[n];return delete r[n],r[i]=a,o[a].geometry[0].shift(),o[a].geometry[0]=s[0].concat(o[a].geometry[0]),a}function h(i,r,n){const o=n?r[0][r[0].length-1]:r[0][0];return`${i}:${o.x}:${o.y}`}for(let u=0;ui.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((i,r)=>i.sortKey-r.sortKey)}update(i,r,n,o){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(i,r,this.layers,n,o),this.icon.programConfigurations.updatePaintArrays(i,r,this.layers,n,o))}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(i){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(i),this.iconCollisionBox.upload(i)),this.text.upload(i,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(i,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(i,r){const n=this.lineVertexArray.length;if(void 0!==i.segment){let o=i.dist(r[i.segment+1]),s=i.dist(r[i.segment]);const a={};for(let l=i.segment+1;l=0;c--)a[c]={x:r[c].x,y:r[c].y,tileUnitDistanceFromAnchor:s},c>0&&(s+=r[c-1].dist(r[c]));for(let h=0;h=0?r.rightJustifiedTextSymbolIndex:r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.leftJustifiedTextSymbolIndex>=0?r.leftJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex>=0?r.verticalPlacedTextSymbolIndex:o),a=aL(this.textSizeData,i,s)/24;return this.tilePixelRatio*a}getSymbolInstanceIconSize(i,r,n){const o=this.icon.placedSymbolArray.get(n),s=aL(this.iconSizeData,i,o);return this.tilePixelRatio*s}_commitDebugCollisionVertexUpdate(i,r,n){i.emplaceBack(r,-n,-n),i.emplaceBack(r,n,-n),i.emplaceBack(r,n,n),i.emplaceBack(r,-n,n)}_updateTextDebugCollisionBoxes(i,r,n,o,s,a){for(let l=o;l0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(i,r){const n=i.placedSymbolArray.get(r),o=n.vertexStartIndex+4*n.numGlyphs;for(let s=n.vertexStartIndex;so[i]-o[r]||s[r]-s[i]),a}addToSortKeyRanges(i,r){const n=this.sortKeyRanges[this.sortKeyRanges.length-1];n&&n.sortKey===r?n.symbolInstanceEnd=i+1:this.sortKeyRanges.push({sortKey:r,symbolInstanceStart:i,symbolInstanceEnd:i+1})}sortFeatures(i){if(this.sortFeaturesByY&&this.sortedAngle!==i&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){for(const r of(this.symbolInstanceIndexes=this.getSortedSymbolIndexes(i),this.sortedAngle=i,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[],this.symbolInstanceIndexes)){const n=this.symbolInstances.get(r);this.featureSortOrder.push(n.featureIndex),[n.rightJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.leftJustifiedTextSymbolIndex].forEach((i,r,n)=>{i>=0&&n.indexOf(i)===r&&this.addIndicesForPlacedSymbol(this.text,i)}),n.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,n.verticalPlacedTextSymbolIndex),n.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,n.placedIconSymbolIndex),n.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,n.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}r$("SymbolBucket",lj,{omit:["layers","collisionBoxArray","features","compareText"]}),lj.MAX_GLYPHS=65535,lj.addDynamicAttributes=lU;const lG=new n$({"symbol-placement":new nV(tr.layout_symbol["symbol-placement"]),"symbol-spacing":new nV(tr.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new nV(tr.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new nN(tr.layout_symbol["symbol-sort-key"]),"symbol-z-order":new nV(tr.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new nV(tr.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new nV(tr.layout_symbol["icon-ignore-placement"]),"icon-optional":new nV(tr.layout_symbol["icon-optional"]),"icon-rotation-alignment":new nV(tr.layout_symbol["icon-rotation-alignment"]),"icon-size":new nN(tr.layout_symbol["icon-size"]),"icon-text-fit":new nV(tr.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new nV(tr.layout_symbol["icon-text-fit-padding"]),"icon-image":new nN(tr.layout_symbol["icon-image"]),"icon-rotate":new nN(tr.layout_symbol["icon-rotate"]),"icon-padding":new nV(tr.layout_symbol["icon-padding"]),"icon-keep-upright":new nV(tr.layout_symbol["icon-keep-upright"]),"icon-offset":new nN(tr.layout_symbol["icon-offset"]),"icon-anchor":new nN(tr.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new nV(tr.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new nV(tr.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new nV(tr.layout_symbol["text-rotation-alignment"]),"text-field":new nN(tr.layout_symbol["text-field"]),"text-font":new nN(tr.layout_symbol["text-font"]),"text-size":new nN(tr.layout_symbol["text-size"]),"text-max-width":new nN(tr.layout_symbol["text-max-width"]),"text-line-height":new nN(tr.layout_symbol["text-line-height"]),"text-letter-spacing":new nN(tr.layout_symbol["text-letter-spacing"]),"text-justify":new nN(tr.layout_symbol["text-justify"]),"text-radial-offset":new nN(tr.layout_symbol["text-radial-offset"]),"text-variable-anchor":new nV(tr.layout_symbol["text-variable-anchor"]),"text-anchor":new nN(tr.layout_symbol["text-anchor"]),"text-max-angle":new nV(tr.layout_symbol["text-max-angle"]),"text-writing-mode":new nV(tr.layout_symbol["text-writing-mode"]),"text-rotate":new nN(tr.layout_symbol["text-rotate"]),"text-padding":new nV(tr.layout_symbol["text-padding"]),"text-keep-upright":new nV(tr.layout_symbol["text-keep-upright"]),"text-transform":new nN(tr.layout_symbol["text-transform"]),"text-offset":new nN(tr.layout_symbol["text-offset"]),"text-allow-overlap":new nV(tr.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new nV(tr.layout_symbol["text-ignore-placement"]),"text-optional":new nV(tr.layout_symbol["text-optional"])});var lZ={paint:new n$({"icon-opacity":new nN(tr.paint_symbol["icon-opacity"]),"icon-color":new nN(tr.paint_symbol["icon-color"]),"icon-halo-color":new nN(tr.paint_symbol["icon-halo-color"]),"icon-halo-width":new nN(tr.paint_symbol["icon-halo-width"]),"icon-halo-blur":new nN(tr.paint_symbol["icon-halo-blur"]),"icon-translate":new nV(tr.paint_symbol["icon-translate"]),"icon-translate-anchor":new nV(tr.paint_symbol["icon-translate-anchor"]),"text-opacity":new nN(tr.paint_symbol["text-opacity"]),"text-color":new nN(tr.paint_symbol["text-color"],{runtimeType:tm,getOverride:i=>i.textColor,hasOverride:i=>!!i.textColor}),"text-halo-color":new nN(tr.paint_symbol["text-halo-color"]),"text-halo-width":new nN(tr.paint_symbol["text-halo-width"]),"text-halo-blur":new nN(tr.paint_symbol["text-halo-blur"]),"text-translate":new nV(tr.paint_symbol["text-translate"]),"text-translate-anchor":new nV(tr.paint_symbol["text-translate-anchor"])}),layout:lG};class l${constructor(i){this.type=i.property.overrides?i.property.overrides.runtimeType:tu,this.defaultValue=i}evaluate(i){if(i.formattedSection){const r=this.defaultValue.property.overrides;if(r&&r.hasOverride(i.formattedSection))return r.getOverride(i.formattedSection)}return i.feature&&i.featureState?this.defaultValue.evaluate(i.feature,i.featureState):this.defaultValue.property.specification.default}eachChild(i){this.defaultValue.isConstant()||i(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}r$("FormatSectionOverride",l$,{omit:["defaultValue"]});class lq extends oY{constructor(i){super(i,lZ)}recalculate(i,r){super.recalculate(i,r),"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 n=this.layout.get("text-writing-mode");if(n){const o=[];for(const s of n)0>o.indexOf(s)&&o.push(s);this.layout._values["text-writing-mode"]=o}else this.layout._values["text-writing-mode"]="point"===this.layout.get("symbol-placement")?["horizontal"]:["horizontal","vertical"];this._setPaintOverrides()}getValueAndResolveTokens(i,r,n,o){var s;const a=this.layout.get(i).evaluate(r,{},n,o),l=this._unevaluatedLayout._values[i];return l.isDataDriven()||i8(l.value)||!a?a:(s=r.properties,a.replace(/{([^{}]+)}/g,(i,r)=>r in s?String(s[r]):""))}createBucket(i){return new lj(i)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const i of lZ.paint.overridableProperties){if(!lq.hasPaintOverride(this.layout,i))continue;const r=this.paint.get(i),n=new l$(r),o=new i6(n,r.property.specification);let s=null;s="constant"===r.value.kind||"source"===r.value.kind?new i7("source",o):new re("composite",o,r.value.zoomStops,r.value._interpolationType),this.paint._values[i]=new nO(r.property,s,r.parameters)}}_handleOverridablePaintPropertyUpdate(i,r,n){return!(!this.layout||r.isDataDriven()||n.isDataDriven())&&lq.hasPaintOverride(this.layout,i)}static hasPaintOverride(i,r){const n=i.get("text-field"),o=lZ.paint.properties[r];let s=!1;const a=i=>{for(const r of i)if(o.overrides&&o.overrides.hasOverride(r))return void(s=!0)};if("constant"===n.value.kind&&n.value.value instanceof tP)a(n.value.value.sections);else if("source"===n.value.kind){const l=i=>{s||(i instanceof tO&&tR(i.value)===tx?a(i.value.sections):i instanceof tj?a(i.sections):i.eachChild(l))},c=n.value;c._styleExpression&&l(c._styleExpression.expression)}return s}getProgramConfiguration(i){return new oZ(this,i)}}var lX={paint:new n$({"background-color":new nV(tr.paint_background["background-color"]),"background-pattern":new nG(tr.paint_background["background-pattern"]),"background-opacity":new nV(tr.paint_background["background-opacity"])})},lW={paint:new n$({"raster-opacity":new nV(tr.paint_raster["raster-opacity"]),"raster-hue-rotate":new nV(tr.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new nV(tr.paint_raster["raster-brightness-min"]),"raster-brightness-max":new nV(tr.paint_raster["raster-brightness-max"]),"raster-saturation":new nV(tr.paint_raster["raster-saturation"]),"raster-contrast":new nV(tr.paint_raster["raster-contrast"]),"raster-resampling":new nV(tr.paint_raster["raster-resampling"]),"raster-fade-duration":new nV(tr.paint_raster["raster-fade-duration"])})};class lH extends oY{constructor(i){super(i,{}),this.implementation=i}is3D(){return"3d"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}recalculate(){}updateTransitions(){}hasTransition(){}serialize(){}onAdd(i){this.implementation.onAdd&&this.implementation.onAdd(i,i.painter.context.gl)}onRemove(i){this.implementation.onRemove&&this.implementation.onRemove(i,i.painter.context.gl)}}var lK={paint:new n$({"sky-type":new nV(tr.paint_sky["sky-type"]),"sky-atmosphere-sun":new nV(tr.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new nV(tr.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new nV(tr.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new nV(tr.paint_sky["sky-gradient-radius"]),"sky-gradient":new nZ(tr.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new nV(tr.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new nV(tr.paint_sky["sky-atmosphere-color"]),"sky-opacity":new nV(tr.paint_sky["sky-opacity"])})};function lY(i,r,n){var o,s,a,l,c,h,u,d;const p=w(0,0,1),f=B(L());return o=f,s=n?-(i*O)+Math.PI:i*O,s*=.5,a=f[0],l=f[1],c=f[2],h=f[3],u=Math.sin(s),d=Math.cos(s),o[0]=a*d-c*u,o[1]=l*d+h*u,o[2]=c*d+a*u,o[3]=h*d-l*u,R(f,f,-(r*O)),P(p,p,f),A(p,p)}const lJ={circle:class extends oY{constructor(i){super(i,sx)}createBucket(i){return new so(i)}queryRadius(i){return sf("circle-radius",this,i)+sf("circle-stroke-width",this,i)+sm(this.paint.get("circle-translate"))}queryIntersectsFeature(i,r,n,o,s,a,l,c){const h=sg(this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),u=this.paint.get("circle-radius").evaluate(r,n)+this.paint.get("circle-stroke-width").evaluate(r,n);return sw(i,o,a,l,c,"map"===this.paint.get("circle-pitch-alignment"),"map"===this.paint.get("circle-pitch-scale"),h,u)}getProgramIds(){return["circle"]}getProgramConfiguration(i){return new oZ(this,i)}},heatmap:class extends oY{createBucket(i){return new sS(i)}constructor(i){super(i,sk),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(i){"heatmap-color"===i&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=sP({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(i){return sf("heatmap-radius",this,i)}queryIntersectsFeature(i,r,n,o,s,a,c,h){const u=this.paint.get("heatmap-radius").evaluate(r,n);return sw(i,o,a,c,h,!0,!0,new l(0,0),u)}hasOffscreenPass(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(i){return new oZ(this,i)}},hillshade:class extends oY{constructor(i){super(i,sD)}hasOffscreenPass(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility}getProgramIds(){return["hillshade","hillshadePrepare"]}getProgramConfiguration(i){return new oZ(this,i)}},fill:class extends oY{constructor(i){super(i,s9)}getProgramIds(){const i=this.paint.get("fill-pattern"),r=i&&i.constantOr(1),n=[r?"fillPattern":"fill"];return this.paint.get("fill-antialias")&&n.push(r&&!this.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline"),n}getProgramConfiguration(i){return new oZ(this,i)}recalculate(i,r){super.recalculate(i,r);const n=this.paint._values["fill-outline-color"];"constant"===n.value.kind&&void 0===n.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])}createBucket(i){return new s6(i)}queryRadius(){return sm(this.paint.get("fill-translate"))}queryIntersectsFeature(i,r,n,o,s,a){return!i.queryGeometry.isAboveHorizon&&sa(s_(i.tilespaceGeometry,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),o)}isTileClipped(){return!0}},"fill-extrusion":class extends oY{constructor(i){super(i,ad)}createBucket(i){return new au(i)}queryRadius(){return sm(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}getProgramIds(){return[this.paint.get("fill-extrusion-pattern").constantOr(1)?"fillExtrusionPattern":"fillExtrusion"]}getProgramConfiguration(i){return new oZ(this,i)}queryIntersectsFeature(i,r,n,o,s,a,c,h,u){var d,p;const f=sg(this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),m=this.paint.get("fill-extrusion-height").evaluate(r,n),_=this.paint.get("fill-extrusion-base").evaluate(r,n),g=[0,0],y=h&&a.elevation,x=a.elevation?a.elevation.exaggeration():1;if(y){const v=i.tile.getBucket(this).centroidVertexArray,b=u+1;if(b=3){for(let a=0;a1){if(sl(i,r))return!0;for(let o=0;o1&&(c=i[++l]);const d=Math.abs(h-c.left),p=Math.abs(h-c.right),f=Math.min(d,p),m=s/n*(o+1);if(c.isDash){const _=o-Math.abs(m);u=Math.sqrt(f*f+_*_)}else u=o-Math.sqrt(f*f+m*m);this.image.data[a+h]=Math.max(0,Math.min(255,u+128))}}}addRegularDash(i,r){for(let n=i.length-1;n>=0;--n){const o=i[n],s=i[n+1];o.zeroLength?i.splice(n,1):s&&s.isDash===o.isDash&&(s.left=o.left,i.splice(n,1))}const a=i[0],l=i[i.length-1];a.isDash===l.isDash&&(a.left=l.left-this.width,l.right=a.right+this.width);const c=this.width*this.nextRow;let h=0,u=i[0];for(let d=0;d1&&(u=i[++h]);const p=Math.abs(d-u.left),f=Math.abs(d-u.right),m=Math.min(p,f);this.image.data[c+d]=Math.max(0,Math.min(255,(u.isDash?m:-m)+r+128))}}addDash(i,r){const n=this.getKey(i,r);if(this.positions[n])return this.positions[n];const o="round"===r,s=o?7:0,a=2*s+1;if(this.nextRow+a>this.height)return ea("LineAtlas out of space"),null;0===i.length&&i.push(1);let l=0;for(let c=0;c{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(){delete this._channel,this._callback=()=>{}}}const l8=h.performance;function l9(i){const r=i?i.url.toString():void 0;return l8.getEntriesByName(r)}class l7{constructor(){this.tasks={},this.taskQueue=[],et(["process"],this),this.invoker=new l6(this.process),this.nextId=0}add(i,r){const n=this.nextId++,o=function({type:i,isSymbolTile:r,zoom:n}){return n=n||0,"message"===i?0:"maybePrepare"!==i||r?"parseTile"!==i||r?"parseTile"===i&&r?300-n:"maybePrepare"===i&&r?400-n:500:200-n:100-n}(r);return 0===o?(ec(),i(),{cancel(){}}):(this.tasks[n]={fn:i,metadata:r,priority:o,id:n},this.taskQueue.push(n),this.invoker.trigger(),{cancel:()=>{delete this.tasks[n]}})}process(){ec();{if(this.taskQueue=this.taskQueue.filter(i=>!!this.tasks[i]),!this.taskQueue.length)return;const i=this.pick();if(null===i)return;const r=this.tasks[i];if(delete this.tasks[i],this.taskQueue.length&&this.invoker.trigger(),!r)return;r.fn()}}pick(){let i=null,r=1/0;for(let n=0;n0;a--)s+=(r&(o=1<this.canonical.z?new cr(i,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new cr(i,this.wrap,i,this.canonical.x>>r,this.canonical.y>>r)}calculateScaledKey(i,r=!0){if(this.overscaledZ===i&&r)return this.key;if(i>this.canonical.z)return cn(this.wrap*+r,i,this.canonical.z,this.canonical.x,this.canonical.y);{const n=this.canonical.z-i;return cn(this.wrap*+r,i,i,this.canonical.x>>n,this.canonical.y>>n)}}isChildOf(i){if(i.wrap!==this.wrap)return!1;const r=this.canonical.z-i.canonical.z;return 0===i.overscaledZ||i.overscaledZ>r&&i.canonical.y===this.canonical.y>>r}children(i){if(this.overscaledZ>=i)return[new cr(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const r=this.canonical.z+1,n=2*this.canonical.x,o=2*this.canonical.y;return[new cr(r,this.wrap,r,n,o),new cr(r,this.wrap,r,n+1,o),new cr(r,this.wrap,r,n,o+1),new cr(r,this.wrap,r,n+1,o+1)]}isLessThan(i){return this.wrapi.wrap)&&(this.overscaledZi.overscaledZ)&&(this.canonical.xi.canonical.x)&&this.canonical.yMath.abs(o[l])){if(n[l]r[l])return null}else{const c=1/o[l];let h=(i[l]-n[l])*c,u=(r[l]-n[l])*c;if(h>u){const d=h;h=u,u=d}if(h>s&&(s=h),ua)return null}return s}function cf(i,r,n,o,s,a,l,c,h,u,d){const p=o-i,f=s-r,m=a-n,_=l-i,g=c-r,y=h-n,x=d[1]*y-d[2]*g,v=d[2]*_-d[0]*y,b=d[0]*g-d[1]*_,w=p*x+f*v+m*b;if(1e-15>Math.abs(w))return null;const T=1/w,E=u[0]-i,S=u[1]-r,I=u[2]-n,M=(E*x+S*v+I*b)*T;if(M<0||M>1)return null;const A=S*m-I*f,C=I*p-E*m,z=E*f-S*p,k=(d[0]*A+d[1]*C+d[2]*z)*T;return k<0||M+k>1?null:(_*A+g*C+y*z)*T}function cm(i,r,n,o,s,a,l,c,h){const u=1<{const a=o?1:0;s[0]=i*n,s[1]=r*n,s[2]=(i+1)*n-a,s[3]=(r+1)*n-a};let l=new cd(o);const c=[];for(let h=0;h=1;o/=2){const m=n[n.length-1];l=new cd(o);for(let _=0;_0;){const{idx:m,t:_,nodex:g,nodey:y,depth:x}=f.pop();if(this.leaves[m]){cm(g,y,x,i,r,n,o,d,p);const v=1<=U[2])return _}continue}let V=0;for(let N=0;N=h[u[Z]]&&(u.splice(Z,0,N),G=!0);G||(u[V]=N),V++}}for(let $=0;$=this.dim+1||r<-1||r>=this.dim+1)throw RangeError("out of range source coordinates for DEM data");return(r+1)*this.stride+(i+1)}_unpackMapbox(i,r,n){return(256*i*256+256*r+n)/10-1e4}_unpackTerrarium(i,r,n){return 256*i+r+n/256-32768}static pack(i,r){const n=[0,0,0,0],o=cv.getUnpackVector(r);let s=Math.floor((i+o[3])/o[2]);return n[2]=s%256,s=Math.floor(s/256),n[1]=s%256,s=Math.floor(s/256),n[0]=s,n}getPixels(){return new sz({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(i,r,n){if(this.dim!==i.dim)throw Error("dem dimension mismatch");let o=r*this.dim,s=r*this.dim+this.dim,a=n*this.dim,l=n*this.dim+this.dim;switch(r){case -1:o=s-1;break;case 1:s=o+1}switch(n){case -1:a=l-1;break;case 1:l=a+1}const c=-r*this.dim,h=-n*this.dim;for(let u=a;u{this.remove(i,s)},n)),this.data[o].push(s),this.order.push(o),this.order.length>this.max){const a=this._getAndRemoveByKey(this.order[0]);a&&this.onRemove(a)}return this}has(i){return i.wrapped().key in this.data}getAndRemove(i){return this.has(i)?this._getAndRemoveByKey(i.wrapped().key):null}_getAndRemoveByKey(i){const r=this.data[i].shift();return r.timeout&&clearTimeout(r.timeout),0===this.data[i].length&&delete this.data[i],this.order.splice(this.order.indexOf(i),1),r.value}getByKey(i){const r=this.data[i];return r?r[0].value:null}get(i){return this.has(i)?this.data[i.wrapped().key][0].value:null}remove(i,r){if(!this.has(i))return this;const n=i.wrapped().key,o=void 0===r?0:this.data[n].indexOf(r),s=this.data[n][o];return this.data[n].splice(o,1),s.timeout&&clearTimeout(s.timeout),0===this.data[n].length&&delete this.data[n],this.onRemove(s.value),this.order.splice(this.order.indexOf(n),1),this}setMaxSize(i){for(this.max=i;this.order.length>this.max;){const r=this._getAndRemoveByKey(this.order[0]);r&&this.onRemove(r)}return this}filter(i){const r=[];for(const n in this.data)for(const o of this.data[n])i(o.value)||r.push(o);for(const s of r)this.remove(s.value.tileID,s)}}class cw extends ti{constructor(i,r,n){super(),this.id=i,this._onlySymbols=n,r.on("data",i=>{"source"===i.dataType&&"metadata"===i.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&"source"===i.dataType&&"content"===i.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform))}),r.on("error",()=>{this._sourceErrored=!0}),this._source=r,this._tiles={},this._cache=new cb(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=null,this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new cu}onAdd(i){this.map=i,this._minTileCacheSize=i?i._minTileCacheSize:null,this._maxTileCacheSize=i?i._maxTileCacheSize:null}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(const i in this._tiles){const r=this._tiles[i];if("loaded"!==r.state&&"errored"!==r.state)return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const i=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,i&&this.reload(),this.transform&&this.update(this.transform)}_loadTile(i,r){return i.isSymbolTile=this._onlySymbols,this._source.loadTile(i,r)}_unloadTile(i){if(this._source.unloadTile)return this._source.unloadTile(i,()=>{})}_abortTile(i){if(this._source.abortTile)return this._source.abortTile(i,()=>{})}serialize(){return this._source.serialize()}prepare(i){for(const r in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){const n=this._tiles[r];n.upload(i),n.prepare(this.map.style.imageManager)}}getIds(){return W(this._tiles).map(i=>i.tileID).sort(cT).map(i=>i.key)}getRenderableIds(i){const r=[];for(const n in this._tiles)this._isIdRenderable(+n,i)&&r.push(this._tiles[n]);return i?r.sort((i,r)=>{const n=i.tileID,o=r.tileID,s=new l(n.canonical.x,n.canonical.y)._rotate(this.transform.angle),a=new l(o.canonical.x,o.canonical.y)._rotate(this.transform.angle);return n.overscaledZ-o.overscaledZ||a.y-s.y||a.x-s.x}).map(i=>i.tileID.key):r.map(i=>i.tileID).sort(cT).map(i=>i.key)}hasRenderableParent(i){const r=this.findLoadedParent(i,0);return!!r&&this._isIdRenderable(r.tileID.key)}_isIdRenderable(i,r){return this._tiles[i]&&this._tiles[i].hasData()&&!this._coveredTiles[i]&&(r||!this._tiles[i].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else for(const i in this._cache.reset(),this._tiles)"errored"!==this._tiles[i].state&&this._reloadTile(+i,"reloading")}_reloadTile(i,r){const n=this._tiles[i];n&&("loading"!==n.state&&(n.state=r),this._loadTile(n,this._tileLoaded.bind(this,n,i,r)))}_tileLoaded(i,r,n,o){if(o){if(i.state="errored",404!==o.status)this._source.fire(new tt(o,{tile:i}));else if("raster-dem"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){const s=this.map.painter.terrain;this.update(this.transform,s.getScaledDemTileSize(),!0),s.resetTileLookupCache(this.id)}else this.update(this.transform)}else i.timeAdded=ex.now(),"expired"===n&&(i.refreshedUponExpiration=!0),this._setTileReloadTimer(r,i),"raster-dem"===this._source.type&&i.dem&&this._backfillDEM(i),this._state.initializeTileState(i,this.map?this.map.painter:null),this._source.fire(new te("data",{dataType:"source",tile:i,coord:i.tileID,sourceCacheId:this.id}))}_backfillDEM(i){const r=this.getRenderableIds();for(let n=0;n1||(Math.abs(n)>1&&(1===Math.abs(n+s)?n+=s:1===Math.abs(n-s)&&(n-=s)),r.dem&&i.dem&&(i.dem.backfillBorder(r.dem,n,o),i.neighboringTiles&&i.neighboringTiles[a]&&(i.neighboringTiles[a].backfilled=!0)))}}getTile(i){return this.getTileByID(i.key)}getTileByID(i){return this._tiles[i]}_retainLoadedChildren(i,r,n,o){for(const s in this._tiles){let a=this._tiles[s];if(o[s]||!a.hasData()||a.tileID.overscaledZ<=r||a.tileID.overscaledZ>n)continue;let l=a.tileID;for(;a&&a.tileID.overscaledZ>r+1;){const c=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[c.key])&&a.hasData()&&(l=c)}let h=l;for(;h.overscaledZ>r;)if(i[(h=h.scaledTo(h.overscaledZ-1)).key]){o[l.key]=l;break}}}findLoadedParent(i,r){if(i.key in this._loadedParentTiles){const n=this._loadedParentTiles[i.key];return n&&n.tileID.overscaledZ>=r?n:null}for(let o=i.overscaledZ-1;o>=r;o--){const s=i.scaledTo(o),a=this._getLoadedTile(s);if(a)return a}}_getLoadedTile(i){const r=this._tiles[i.key];return r&&r.hasData()?r:this._cache.getByKey(this._source.reparseOverscaled?i.wrapped().key:i.canonical.key)}updateCacheSize(i,r){r=r||this._source.tileSize;const n=Math.ceil(i.width/r)+1,o=Math.ceil(i.height/r)+1,s=Math.floor(n*o*5),a="number"==typeof this._minTileCacheSize?Math.max(this._minTileCacheSize,s):s,l="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,a):a;this._cache.setMaxSize(l)}handleWrapJump(i){const r=Math.round((i-(void 0===this._prevLng?i:this._prevLng))/360);if(this._prevLng=i,r){const n={};for(const o in this._tiles){const s=this._tiles[o];s.tileID=s.tileID.unwrapTo(s.tileID.wrap+r),n[s.tileID.key]=s}for(const a in this._tiles=n,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(const l in this._tiles)this._setTileReloadTimer(+l,this._tiles[l])}}update(i,r,n){let o;if(this.transform=i,!this._sourceLoaded||this._paused||this.transform.freezeTileCoverage||this.usedForTerrain&&!n)return;this.updateCacheSize(i,r),"globe"!==this.transform.projection.name&&this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?o=i.getVisibleUnwrappedCoordinates(this._source.tileID).map(i=>new cr(i.canonical.z,i.wrap,i.canonical.z,i.canonical.x,i.canonical.y)):(o=i.coveringTiles({tileSize:r||this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom&&!n,reparseOverscaled:this._source.reparseOverscaled,isTerrainDEM:this.usedForTerrain}),this._source.hasTile&&(o=o.filter(i=>this._source.hasTile(i)))):o=[];const s=this._updateRetainedTiles(o);if(cE(this._source.type)&&0!==o.length){const a={},l={},c=Object.keys(s);for(const h of c){const u=s[h],d=this._tiles[h];if(!d||d.fadeEndTime&&d.fadeEndTime<=ex.now())continue;const p=this.findLoadedParent(u,Math.max(u.overscaledZ-cw.maxOverzooming,this._source.minzoom));p&&(this._addTile(p.tileID),a[p.tileID.key]=p.tileID),l[h]=u}const f=o[o.length-1].overscaledZ;for(const m in this._tiles){const _=this._tiles[m];if(s[m]||!_.hasData())continue;let g=_.tileID;for(;g.overscaledZ>f;){g=g.scaledTo(g.overscaledZ-1);const y=this._tiles[g.key];if(y&&y.hasData()&&l[g.key]){s[m]=_.tileID;break}}}for(const x in a)s[x]||(this._coveredTiles[x]=!0,s[x]=a[x])}for(const v in s)this._tiles[v].clearFadeHold();const b=function(i,r){const n=[];for(const o in i)o in r||n.push(o);return n}(this._tiles,s);for(const w of b){const T=this._tiles[w];T.hasSymbolBuckets&&!T.holdingForFade()?T.setHoldDuration(this.map._fadeDuration):T.hasSymbolBuckets&&!T.symbolFadeFinished()||this._removeTile(+w)}this._updateLoadedParentTileCache(),this._onlySymbols&&this._source.afterUpdate&&this._source.afterUpdate()}releaseSymbolFadeTiles(){for(const i in this._tiles)this._tiles[i].holdingForFade()&&this._removeTile(+i)}_updateRetainedTiles(i){const r={};if(0===i.length)return r;const n={},o=i.reduce((i,r)=>Math.min(i,r.overscaledZ),1/0),s=i[0].overscaledZ,a=Math.max(s-cw.maxOverzooming,this._source.minzoom),l=Math.max(s+cw.maxUnderzooming,this._source.minzoom),c={};for(const h of i){const u=this._addTile(h);r[h.key]=h,u.hasData()||o=this._source.maxzoom){const f=d.children(this._source.maxzoom)[0],m=this.getTile(f);if(m&&m.hasData()){r[f.key]=f;continue}}else{const _=d.children(this._source.maxzoom);if(r[_[0].key]&&r[_[1].key]&&r[_[2].key]&&r[_[3].key])continue}let g=p.wasRequested();for(let y=d.overscaledZ-1;y>=a;--y){const x=d.scaledTo(y);if(n[x.key]||(n[x.key]=!0,(p=this.getTile(x))||!g||(p=this._addTile(x)),p&&(r[x.key]=x,g=p.wasRequested(),p.hasData())))break}}return r}_updateLoadedParentTileCache(){for(const i in this._loadedParentTiles={},this._tiles){const r=[];let n,o=this._tiles[i].tileID;for(;o.overscaledZ>0;){if(o.key in this._loadedParentTiles){n=this._loadedParentTiles[o.key];break}r.push(o.key);const s=o.scaledTo(o.overscaledZ-1);if(n=this._getLoadedTile(s))break;o=s}for(const a of r)this._loadedParentTiles[a]=n}}_addTile(i){let r=this._tiles[i.key];if(r)return r;(r=this._cache.getAndRemove(i))&&(this._setTileReloadTimer(i.key,r),r.tileID=i,this._state.initializeTileState(r,this.map?this.map.painter:null),this._cacheTimers[i.key]&&(clearTimeout(this._cacheTimers[i.key]),delete this._cacheTimers[i.key],this._setTileReloadTimer(i.key,r)));const n=Boolean(r);if(!n){const o=this.map?this.map.painter:null,s="raster"===this._source.type||"raster-dem"===this._source.type;r=new cW(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,o,s),this._loadTile(r,this._tileLoaded.bind(this,r,i.key,r.state))}return r?(r.uses++,this._tiles[i.key]=r,n||this._source.fire(new te("dataloading",{tile:r,coord:r.tileID,dataType:"source"})),r):null}_setTileReloadTimer(i,r){i in this._timers&&(clearTimeout(this._timers[i]),delete this._timers[i]);const n=r.getExpiryTimeout();n&&(this._timers[i]=setTimeout(()=>{this._reloadTile(i,"expired"),delete this._timers[i]},n))}_removeTile(i){const r=this._tiles[i];r&&(r.uses--,delete this._tiles[i],this._timers[i]&&(clearTimeout(this._timers[i]),delete this._timers[i]),r.uses>0||(r.hasData()&&"reloading"!==r.state?this._cache.add(r.tileID,r,r.getExpiryTimeout()):(r.aborted=!0,this._abortTile(r),this._unloadTile(r))))}clearTiles(){for(const i in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(+i);this._source._clear&&this._source._clear(),this._cache.reset()}tilesIn(i,r,n){const o=[],s=this.transform;if(!s)return o;for(const a in this._tiles){const l=this._tiles[a];if(n&&l.clearQueryDebugViz(),l.holdingForFade())continue;const c=i.containsTile(l,s,r);c&&o.push(c)}return o}getVisibleCoordinates(i){const r=this.getRenderableIds(i).map(i=>this._tiles[i].tileID);for(const n of r)n.projMatrix=this.transform.calculateProjMatrix(n.toUnwrapped());return r}hasTransition(){if(this._source.hasTransition())return!0;if(cE(this._source.type))for(const i in this._tiles){const r=this._tiles[i];if(void 0!==r.fadeEndTime&&r.fadeEndTime>=ex.now())return!0}return!1}setFeatureState(i,r,n){this._state.updateState(i=i||"_geojsonTileLayer",r,n)}removeFeatureState(i,r,n){this._state.removeFeatureState(i=i||"_geojsonTileLayer",r,n)}getFeatureState(i,r){return this._state.getState(i=i||"_geojsonTileLayer",r)}setDependencies(i,r,n){const o=this._tiles[i];o&&o.setDependencies(r,n)}reloadTilesForDependencies(i,r){for(const n in this._tiles)this._tiles[n].hasDependency(i,r)&&this._reloadTile(+n,"reloading");this._cache.filter(n=>!n.hasDependency(i,r))}_preloadTiles(i,r){const n=new Map,o=Array.isArray(i)?i:[i],s=this.map.painter.terrain,a=this.usedForTerrain&&s?s.getScaledDemTileSize():this._source.tileSize;for(const l of o){const c=l.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 h of c)n.set(h.key,h);this.usedForTerrain&&l.updateElevation(!1)}const u=Array.from(n.values()),d="raster"===this._source.type||"raster-dem"===this._source.type;X(u,(i,r)=>{const n=new cW(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,this.map.painter,d);this._loadTile(n,i=>{"raster-dem"===this._source.type&&n.dem&&this._backfillDEM(n),r(i,n)})},r)}}function cT(i,r){const n=Math.abs(2*i.wrap)-+(i.wrap<0),o=Math.abs(2*r.wrap)-+(r.wrap<0);return i.overscaledZ-r.overscaledZ||o-n||r.canonical.y-i.canonical.y||r.canonical.x-i.canonical.x}function cE(i){return"raster"===i||"image"===i||"video"===i}cw.maxOverzooming=10,cw.maxUnderzooming=3;class cS{constructor(i,r,n){this._demTile=i,this._dem=this._demTile.dem,this._scale=r,this._offset=n}static create(i,r,n){const o=n||i.findDEMTileFor(r);if(!o||!o.dem)return;const s=o.dem,a=o.tileID,l=1<=0&&d[3]>=0&&c.insert(l,d[0],d[1],d[2],d[3])}}loadVTLayers(){if(!this.vtLayers)for(const i in this.vtLayers=new aa.VectorTile(new aV(this.rawTileData)).layers,this.sourceLayerCoder=new cc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"]),this.vtFeatures={},this.vtLayers)this.vtFeatures[i]=[];return this.vtLayers}query(i,r,n,o){let s;this.loadVTLayers();const a=i.params||{},l=rh(a.filter),c=i.tileResult,h=i.transform,u=c.bufferedTilespaceBounds,d=this.grid.query(u.min.x,u.min.y,u.max.x,u.max.y,(i,r,n,o)=>sp(c.bufferedTilespaceGeometry,i,r,n,o));d.sort(cA);let p=null;h.elevation&&d.length>0&&(p=cS.create(h.elevation,this.tileID));const f={};for(let m=0;m(y||(y=si(r,this.tileID.canonical,i.tileTransform)),n.queryIntersectsFeature(c,r,o,y,this.z,i.transform,i.pixelPosMatrix,p,s)))}return f}loadMatchingFeature(i,r,n,o,s,a,l,c,h){const{featureIndex:u,bucketIndex:d,sourceLayerIndex:p,layoutVertexArrayOffset:f}=r,m=this.bucketLayerIDs[d];if(o&&!function(i,r){for(let n=0;n=0)return!0;return!1}(o,m))return;const _=this.sourceLayerCoder.decode(p),g=this.vtLayers[_].feature(u);if(n.needGeometry){const y=sr(g,!0);if(!n.filter(new nk(this.tileID.overscaledZ),y,this.tileID.canonical))return}else if(!n.filter(new nk(this.tileID.overscaledZ),g))return;const x=this.getId(g,_);for(let v=0;vo.indexOf(b))continue;const w=a[b];if(!w)continue;let T={};void 0!==x&&c&&(T=c.getState(w.sourceLayer||"_geojsonTileLayer",x));const E=H({},l[b]);E.paint=cM(E.paint,w.paint,g,T,s),E.layout=cM(E.layout,w.layout,g,T,s);const S=!h||h(g,w,T,f);if(!S)continue;const I=new ch(g,this.z,this.x,this.y,x);I.layer=E;let M=i[b];void 0===M&&(M=i[b]=[]),M.push({featureIndex:u,feature:I,intersectionZ:S})}}lookupSymbolFeatures(i,r,n,o,s,a,l,c){const h={};this.loadVTLayers();const u=rh(s);for(const d of i)this.loadMatchingFeature(h,{bucketIndex:n,sourceLayerIndex:o,featureIndex:d,layoutVertexArrayOffset:0},u,a,l,c,r);return h}loadFeature(i){const{featureIndex:r,sourceLayerIndex:n}=i;this.loadVTLayers();const o=this.sourceLayerCoder.decode(n),s=this.vtFeatures[o];if(s[r])return s[r];const a=this.vtLayers[o].feature(r);return s[r]=a,a}hasLayer(i){for(const r of this.bucketLayerIDs)for(const n of r)if(i===n)return!0;return!1}getId(i,r){let n=i.id;return this.promoteId&&"boolean"==typeof(n=i.properties["string"==typeof this.promoteId?this.promoteId:this.promoteId[r]])&&(n=Number(n)),n}}function cM(i,r,n,o,s){return er(i,(i,a)=>{const l=r instanceof nU?r.get(a):null;return l&&l.evaluate?l.evaluate(n,o,s):l})}function cA(i,r){return r-i}r$("FeatureIndex",cI,{omit:["rawTileData","sourceLayerCoder"]});var cC=nK([{name:"a_pos",type:"Int16",components:2}]);const cz=new Uint16Array(8184);for(let ck=0;ck<2046;ck++){let cP=ck+2,cD=0,cL=0,cB=0,cR=0,cF=0,cO=0;for(1&cP?cB=cR=cF=32:cD=cL=cO=32;(cP>>=1)>1;){const cU=cD+cB>>1,cV=cL+cR>>1;1&cP?(cB=cD,cR=cL,cD=cF,cL=cO):(cD=cB,cL=cR,cB=cF,cR=cO),cF=cU,cO=cV}const cN=4*ck;cz[cN+0]=cD,cz[cN+1]=cL,cz[cN+2]=cB,cz[cN+3]=cR}const cj=new Uint16Array(2178),cG=new Uint8Array(1089),cZ=new Uint16Array(1089);function c$(i){return 0===i?-.03125:32===i?.03125:0}var cq=nK([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const cX={type:2,extent:8192,loadGeometry:()=>[[new l(0,0),new l(8193,0),new l(8193,8193),new l(0,8193),new l(0,0)]]};class cW{constructor(i,r,n,o,s){this.tileID=i,this.uid=Y(),this.uses=0,this.tileSize=r,this.tileZoom=n,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.isRaster=s,this.expiredRequestCount=0,this.state="loading",o&&o.transform&&(this.projection=o.transform.projection)}registerFadeDuration(i){const r=i+this.timeAdded;rr.getLayer(i)).filter(Boolean);if(0!==s.length)for(const a of(o.layers=s,o.stateDependentLayerIds&&(o.stateDependentLayers=o.stateDependentLayerIds.map(i=>s.filter(r=>r.id===i)[0])),s))n[a.id]=o}return n}(i.buckets,r.style),this.hasSymbolBuckets=!1,this.buckets){const s=this.buckets[o];if(s instanceof lj){if(this.hasSymbolBuckets=!0,!n)break;s.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const a in this.buckets){const l=this.buckets[a];if(l instanceof lj&&l.hasRTLText){this.hasRTLText=!0,nz.isLoading()||nz.isLoaded()||"deferred"!==nA()||nC();break}}for(const c in this.queryPadding=0,this.buckets){const h=this.buckets[c];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(c).queryRadius(h))}i.imageAtlas&&(this.imageAtlas=i.imageAtlas),i.glyphAtlasImage&&(this.glyphAtlasImage=i.glyphAtlasImage),i.lineAtlas&&(this.lineAtlas=i.lineAtlas)}else this.collisionBoxArray=new od}unloadVectorData(){if(this.hasData()){for(const i in this.buckets)this.buckets[i].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._tileDebugIndexBuffer.destroy(),this._tileDebugSegments.destroy(),this._tileDebugBuffer=null),this.globeGridBuffer&&(this.globeGridBuffer.destroy(),this.globeGridBuffer=null),this.globePoleBuffer&&(this.globePoleBuffer.destroy(),this.globePoleBuffer=null),this.latestFeatureIndex=null,this.state="unloaded"}}getBucket(i){return this.buckets[i.id]}upload(i){for(const r in this.buckets){const n=this.buckets[r];n.uploadPending()&&n.upload(i)}const o=i.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new l5(i,this.imageAtlas.image,o.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new l5(i,this.glyphAtlasImage,o.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new l5(i,this.lineAtlas.image,o.ALPHA),this.lineAtlas.uploaded=!0)}prepare(i){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(i,this.imageAtlasTexture)}queryRenderedFeatures(i,r,n,o,s,a,l,c){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({tileResult:o,pixelPosMatrix:l,transform:a,params:s,tileTransform:this.tileTransform},i,r,n):{}}querySourceFeatures(i,r){const n=this.latestFeatureIndex;if(!n||!n.rawTileData)return;const o=n.loadVTLayers(),s=r?r.sourceLayer:"",a=o._geojsonTileLayer||o[s];if(!a)return;const l=rh(r&&r.filter),{z:c,x:h,y:u}=this.tileID.canonical,d={z:c,x:h,y:u};for(let p=0;po)s=!1;else if(r){if(this.expirationTime=0;d--){const p=4*d,f=cz[p+0],m=cz[p+1],_=cz[p+2],g=cz[p+3],y=f+_>>1,x=m+g>>1,v=y+x-m,b=x+f-y,w=33*m+f,T=33*g+_,E=33*x+y,S=Math.hypot((cj[2*w+0]+cj[2*T+0])/2-cj[2*E+0],(cj[2*w+1]+cj[2*T+1])/2-cj[2*E+1])>=16;if(cG[E]=cG[E]||(S?1:0),d<1022){const I=(m+b>>1)*33+(f+v>>1),M=(g+b>>1)*33+(_+v>>1);cG[E]=cG[E]||cG[I]||cG[M]}}const A=new nQ,C=new oe;let z=0;function k(i,r){const n=33*r+i;return 0===cZ[n]&&(A.emplaceBack(cj[2*n+0],cj[2*n+1],8192*i/32,8192*r/32),cZ[n]=++z),cZ[n]-1}function P(i,r,n,o,s,a){const l=i+n>>1,c=r+o>>1;if(Math.abs(i-s)+Math.abs(r-a)>1&&cG[33*c+l])P(s,a,i,r,l,c),P(n,o,s,a,l,c);else{const h=k(i,r),u=k(n,o),d=k(s,a);C.emplaceBack(h,u,d)}}return P(0,0,32,32,32,0),P(32,32,0,0,0,32),{vertices:A,indices:C}}(this.tileID.canonical,r);n=a.vertices,o=a.indices}else{for(const{x:l,y:c}of(n=new nQ,o=new oe,s))n.emplaceBack(l,c,0,0);const h=sR(n.int16,void 0,4);for(let u=0;u{const o=65*n+r;i.emplaceBack(o+1,o,o+65),i.emplaceBack(o+65,o+65+1,o+1)};for(let n=0;n<64;n++)for(let o=0;o<64;o++)r(o,n);return i}getWirefameBuffer(i){if(!this.wireframeSegments){const r=this._createWireframeGrid();this.wireframeIndexBuffer=i.createIndexBuffer(r),this.wireframeSegments=o0.simpleSegment(0,0,4096,r.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}_createWireframeGrid(){const i=new oa,r=(r,n)=>{const o=65*n+r;i.emplaceBack(o,o+1),i.emplaceBack(o,o+65),i.emplaceBack(o,o+65+1)};for(let n=0;n<64;n++)for(let o=0;o<64;o++)r(o,n);return i}}function he(i,r){if(!r.isReprojectedInTileSpace)return{scale:1<b&&(w(i,u,o,s,c,h),w(u,n,c,h,a,l))}w(p,f,o,a,s,a),w(f,m,s,a,s,l),w(m,_,s,l,o,l),w(_,p,o,l,o,a),g-=b,y-=b,x+=b,v+=b;const T=1/Math.max(x-g,v-y);return{scale:T,x:g*T,y:y*T,x2:x*T,y2:v*T,projection:r}}class ht{constructor(i){const r={},n=[];for(const o in i){const s=i[o],a=r[o]={};for(const l in s.glyphs){const c=s.glyphs[+l];if(!c||0===c.bitmap.width||0===c.bitmap.height)continue;const h=c.metrics.localGlyph?2:1,u={x:0,y:0,w:c.bitmap.width+2*h,h:c.bitmap.height+2*h};n.push(u),a[l]=u}}const{w:d,h:p}=a4(n),f=new sC({width:d||1,height:p||1});for(const m in i){const _=i[m];for(const g in _.glyphs){const y=_.glyphs[+g];if(!y||0===y.bitmap.width||0===y.bitmap.height)continue;const x=r[m][g],v=y.metrics.localGlyph?2:1;sC.copy(y.bitmap,f,{x:0,y:0},{x:x.x+v,y:x.y+v},y.bitmap)}}this.image=f,this.positions=r}}r$("GlyphAtlas",ht);class hi{constructor(i){this.tileID=new cr(i.tileID.overscaledZ,i.tileID.wrap,i.tileID.canonical.z,i.tileID.canonical.x,i.tileID.canonical.y),this.tileZoom=i.tileZoom,this.uid=i.uid,this.zoom=i.zoom,this.canonical=i.tileID.canonical,this.pixelRatio=i.pixelRatio,this.tileSize=i.tileSize,this.source=i.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=i.showCollisionBoxes,this.collectResourceTiming=!!i.collectResourceTiming,this.returnDependencies=!!i.returnDependencies,this.promoteId=i.promoteId,this.enableTerrain=!!i.enableTerrain,this.isSymbolTile=i.isSymbolTile,this.tileTransform=he(i.tileID.canonical,i.projection),this.projection=i.projection}parse(i,r,n,o,s){let a,c,h,u;this.status="parsing",this.data=i,this.collisionBoxArray=new od;const d=new cc(Object.keys(i.layers).sort()),p=new cI(this.tileID,this.promoteId);p.bucketLayerIDs=[];const f={},m=new l4(256,256),_={featureIndex:p,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:m,availableImages:n},g=r.familiesBySource[this.source];for(const y in g){const x=i.layers[y];if(!x)continue;let v=!1,b=!1;for(const w of g[y])"symbol"===w[0].type?v=!0:b=!0;if(!0===this.isSymbolTile&&!v||!1===this.isSymbolTile&&!b)continue;1===x.version&&ea(`Vector tile source "${this.source}" layer "${y}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const T=d.encode(y),E=[];for(let S=0;S=C.maxzoom||"none"!==C.visibility&&(hr(A,this.zoom,n),(f[C.id]=C.createBucket({index:p.bucketLayerIDs.length,layers:A,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:T,sourceID:this.source,enableTerrain:this.enableTerrain,availableImages:n})).populate(E,_,this.tileID.canonical,this.tileTransform),p.bucketLayerIDs.push(A.map(i=>i.id)))}}m.trim();const z={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},k=er(_.glyphDependencies,i=>Object.keys(i).map(Number));Object.keys(k).length?o.send("getGlyphs",{uid:this.uid,stacks:k},(i,r)=>{a||(a=i,c=r,L.call(this))},void 0,!1,z):c={};const P=Object.keys(_.iconDependencies);P.length?o.send("getImages",{icons:P,source:this.source,tileID:this.tileID,type:"icons"},(i,r)=>{a||(a=i,h=r,L.call(this))},void 0,!1,z):h={};const D=Object.keys(_.patternDependencies);function L(){if(a)return s(a);if(c&&h&&u){const i=new ht(c),r=new a8(h,u);for(const o in f){const d=f[o];d instanceof lj?(hr(d.layers,this.zoom,n),function(i,r,n,o,s,a,c,h,u,d){i.createArrays(),i.tilePixelRatio=8192/(512*i.overscaling),i.compareText={},i.iconsNeedLinear=!1;const p=i.layers[0].layout,f=i.layers[0]._unevaluatedLayout._values,m={};if("composite"===i.textSizeData.kind){const{minZoom:_,maxZoom:g}=i.textSizeData;m.compositeTextSizes=[f["text-size"].possiblyEvaluate(new nk(_),h),f["text-size"].possiblyEvaluate(new nk(g),h)]}if("composite"===i.iconSizeData.kind){const{minZoom:y,maxZoom:x}=i.iconSizeData;m.compositeIconSizes=[f["icon-size"].possiblyEvaluate(new nk(y),h),f["icon-size"].possiblyEvaluate(new nk(x),h)]}m.layoutTextSize=f["text-size"].possiblyEvaluate(new nk(u+1),h),m.layoutIconSize=f["icon-size"].possiblyEvaluate(new nk(u+1),h),m.textMaxSize=f["text-size"].possiblyEvaluate(new nk(18),h);const v="map"===p.get("text-rotation-alignment")&&"point"!==p.get("symbol-placement"),b=p.get("text-size");for(const w of i.features){const T=p.get("text-font").evaluate(w,{},h).join(","),E=b.evaluate(w,{},h),S=m.layoutTextSize.evaluate(w,{},h),I=(m.layoutIconSize.evaluate(w,{},h),{horizontal:{},vertical:void 0}),M=w.text;let A,C=[0,0];if(M){const z=M.toString(),k=24*p.get("text-letter-spacing").evaluate(w,{},h),P=24*p.get("text-line-height").evaluate(w,{},h),D=!function(i){for(const r of i){var n;if(rJ(n=r.charCodeAt(0))||rQ(n)||r0(n)||nc(n)||np(n))return!1}return!0}(z)?0:k,L=p.get("text-anchor").evaluate(w,{},h),B=p.get("text-variable-anchor");if(!B){const R=p.get("text-radial-offset").evaluate(w,{},h);C=R?lz(L,[24*R,lA]):p.get("text-offset").evaluate(w,{},h).map(i=>24*i)}let F=v?"center":p.get("text-justify").evaluate(w,{},h);const U=p.get("symbol-placement"),V="point"===U,N="point"===U?24*p.get("text-max-width").evaluate(w,{},h):0,j=o=>{i.allowVerticalPlacement&&nm(z)&&(I.vertical=lt(M,r,n,s,T,N,P,L,o,D,C,a9.vertical,!0,U,S,E))};if(!v&&B){const G="auto"===F?B.map(i=>lk(i)):[F];let Z=!1;for(let $=0;$=0||!nm(z)){const W=lt(M,r,n,s,T,N,P,L,F,D,C,a9.horizontal,!1,U,S,E);W&&(I.horizontal[F]=W)}j("point"===U?"left":F)}}let H=!1;if(w.icon&&w.icon.name){const K=o[w.icon.name];K&&(A=function(i,r,n){const{horizontalAlign:o,verticalAlign:s}=ll(n),a=r[0]-i.displaySize[0]*o,l=r[1]-i.displaySize[1]*s;return{image:i,top:l,bottom:l+i.displaySize[1],left:a,right:a+i.displaySize[0]}}(s[w.icon.name],p.get("icon-offset").evaluate(w,{},h),p.get("icon-anchor").evaluate(w,{},h)),H=K.sdf,void 0===i.sdfIcons?i.sdfIcons=K.sdf:i.sdfIcons!==K.sdf&&ea("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(K.pixelRatio!==i.pixelRatio||0!==p.get("icon-rotate").constantOr(1))&&(i.iconsNeedLinear=!0))}const Y=lD(I.horizontal)||I.vertical;i.iconsInText||(i.iconsInText=!!Y&&Y.iconsInText),(Y||A)&&function(i,r,n,o,s,a,c,h,u,d,p,f,m){let _,g=a.textMaxSize.evaluate(r,{},f);void 0===g&&(g=c);const y=i.layers[0].layout,x=y.get("icon-offset").evaluate(r,{},f),v=lD(n.horizontal)||n.vertical,b=c/24,w=i.tilePixelRatio*g/24,T=i.tilePixelRatio*y.get("symbol-spacing"),E=y.get("text-padding")*i.tilePixelRatio,S=y.get("icon-padding")*i.tilePixelRatio,I=y.get("text-max-angle")*O,M="map"===y.get("text-rotation-alignment")&&"point"!==y.get("symbol-placement"),A="map"===y.get("icon-rotation-alignment")&&"point"!==y.get("symbol-placement"),C=y.get("symbol-placement"),z=T/2,k=y.get("icon-text-fit");o&&"none"!==k&&(i.allowVerticalPlacement&&n.vertical&&(_=lh(o,n.vertical,k,y.get("icon-text-fit-padding"),x,b)),v&&(o=lh(o,v,k,y.get("icon-text-fit-padding"),x,b)));const P=(l,c,h)=>{if(c.x<0||c.x>=8192||c.y<0||c.y>=8192)return;const{x:g,y:y,z:v}=m.projectTilePoint(c.x,c.y,h),b=new lu(g,y,v,0,void 0);!function(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x,v,b,w,T,E,S,I){const M=i.addToLineVertexArray(r,o);let A,C,z,k,P,D,L,B=0,R=0,F=0,O=0,U=-1,V=-1;const N={};let j=oM(""),G=0,Z=0;if(void 0===h._unevaluatedLayout.getValue("text-radial-offset")?[G,Z]=h.layout.get("text-offset").evaluate(w,{},I).map(i=>24*i):(G=24*h.layout.get("text-radial-offset").evaluate(w,{},I),Z=lA),i.allowVerticalPlacement&&s.vertical){const $=s.vertical;if(_)D=lB($),c&&(L=lB(c));else{const q=h.layout.get("text-rotate").evaluate(w,{},I)+90;z=lL(u,n,r,d,p,f,$,m,q,g),c&&(k=lL(u,n,r,d,p,f,c,x,q))}}if(a){const X=h.layout.get("icon-rotate").evaluate(w,{},I),W="none"!==h.layout.get("icon-text-fit"),H=lb(a,X,E,W),K=c?lb(c,X,E,W):void 0;C=lL(u,n,r,d,p,f,a,x,X),B=4*H.length;const Y=i.iconSizeData;let J=null;"source"===Y.kind?(J=[128*h.layout.get("icon-size").evaluate(w,{},I)])[0]>32640&&ea(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`):"composite"===Y.kind&&((J=[128*T.compositeIconSizes[0].evaluate(w,{},I),128*T.compositeIconSizes[1].evaluate(w,{},I)])[0]>32640||J[1]>32640)&&ea(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`),i.addSymbols(i.icon,H,J,b,v,w,!1,n,r,M.lineStartIndex,M.lineLength,-1,S,I),U=i.icon.placedSymbolArray.length-1,K&&(R=4*K.length,i.addSymbols(i.icon,K,J,b,v,w,a9.vertical,n,r,M.lineStartIndex,M.lineLength,-1,S,I),V=i.icon.placedSymbolArray.length-1)}for(const Q in s.horizontal){const ee=s.horizontal[Q];A||(j=oM(ee.text),_?P=lB(ee):A=lL(u,n,r,d,p,f,ee,m,h.layout.get("text-rotate").evaluate(w,{},I),g));const et=1===ee.positionedLines.length;if(F+=lP(i,n,r,ee,l,h,_,w,g,M,s.vertical?a9.horizontal:a9.horizontalOnly,et?Object.keys(s.horizontal):[Q],N,U,T,S,I),et)break}s.vertical&&(O+=lP(i,n,r,s.vertical,l,h,_,w,g,M,a9.vertical,["vertical"],N,V,T,S,I));let ei=-1;const er=(i,r)=>i?Math.max(i,r):r;ei=er(P,ei),ei=er(D,ei),ei=er(L,ei);const en=ei>-1?1:0;i.glyphOffsetArray.length>=lj.MAX_GLYPHS&&ea("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==w.sortKey&&i.addToSortKeyRanges(i.symbolInstances.length,w.sortKey),i.symbolInstances.emplaceBack(n.x,n.y,n.z,r.x,r.y,N.right>=0?N.right:-1,N.center>=0?N.center:-1,N.left>=0?N.left:-1,N.vertical>=0?N.vertical:-1,U,V,j,void 0!==A?A:i.collisionBoxArray.length,void 0!==A?A+1:i.collisionBoxArray.length,void 0!==z?z:i.collisionBoxArray.length,void 0!==z?z+1:i.collisionBoxArray.length,void 0!==C?C:i.collisionBoxArray.length,void 0!==C?C+1:i.collisionBoxArray.length,k||i.collisionBoxArray.length,k?k+1:i.collisionBoxArray.length,d,F,O,B,R,en,0,G,Z,ei)}(i,c,b,l,n,o,s,_,i.layers[0],i.collisionBoxArray,r.index,r.sourceLayerIndex,i.index,E,M,u,0,S,A,x,r,a,d,p,f)};if("line"===C)for(const D of l_(r.geometry,0,0,8192,8192)){const L=function(i,r,n,o,s,a,l,c,h){const u=lf(o,a,l),d=lm(o,s),p=d*l,f=0===i[0].x||i[0].x===h||0===i[0].y||i[0].y===h;return r-p=0&&T=0&&E=0&&m+d<=p){const S=new lu(T,E,0,b,g);S._round(),s&&!ld(r,S,l,s,a)||_.push(S)}}f+=v}return h||_.length||c||(_=i(r,f/2,o,s,a,l,c,!0,u)),_}(i,f?r/2*c%r:(d/2+2*a)*l*c%r,r,u,n,p,f,!1,h)}(D,T,I,n.vertical||v,o,24,w,i.overscaling,8192);for(const B of L)v&&function(i,r,n,o){const s=i.compareText;if(r in s){const a=s[r];for(let l=a.length-1;l>=0;l--)if(o.dist(a[l])1){const F=function(i,r,n,o,s,a){const l=lf(n,24,a),c=lm(n,o)*a;let h=0;const u=lp(i)/2;for(let d=0;du){const _=(u-h)/m,g=io(p.x,f.x,_),y=io(p.y,f.y,_),x=new lu(g,y,0,f.angleTo(p),d);return!l||ld(i,x,c,l,r)?x:void 0}h+=m}}(R,I,n.vertical||v,o,24,w);F&&P(R,F,f)}}else if("Polygon"===r.type)for(const U of s2(r.geometry,0)){const V=function(i,r=1,n=!1){let o=1/0,s=1/0,a=-1/0,c=-1/0;const h=i[0];for(let u=0;ua)&&(a=d.x),(!u||d.y>c)&&(c=d.y)}const p=Math.min(a-o,c-s);let f=p/2;const m=new lE([],lI);if(0===p)return new l(o,s);for(let _=o;_y.d||!y.d)&&(y=v,n&&console.log("found best %d after %d probes",Math.round(1e4*v.d)/1e4,x)),v.max-y.d<=r||(f=v.h/2,m.push(new lM(v.p.x-f,v.p.y-f,f,i)),m.push(new lM(v.p.x+f,v.p.y-f,f,i)),m.push(new lM(v.p.x-f,v.p.y+f,f,i)),m.push(new lM(v.p.x+f,v.p.y+f,f,i)),x+=4)}return n&&(console.log(`num probes: ${x}`),console.log(`best distance: ${y.d}`)),y.p}(U,16);P(U[0],new lu(V.x,V.y,0,0,void 0),f)}else if("LineString"===r.type)for(const N of r.geometry)P(N,new lu(N[0].x,N[0].y,0,0,void 0),f);else if("Point"===r.type)for(const j of r.geometry)for(const G of j)P([G],new lu(G.x,G.y,0,0,void 0),f)}(i,w,I,A,o,m,S,0,C,H,c,h,d)}a&&i.generateCollisionDebugBuffers(u,i.collisionBoxArray)}(d,c,i.positions,h,r.iconPositions,this.showCollisionBoxes,n,this.tileID.canonical,this.tileZoom,this.projection),d.projection=this.projection.name):d.hasPattern&&(d instanceof aw||d instanceof s6||d instanceof au)&&(hr(d.layers,this.zoom,n),d.addFeatures(_,this.tileID.canonical,r.patternPositions,n))}this.status="done",s(null,{buckets:W(f).filter(i=>!i.isEmpty()),featureIndex:p,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:i.image,lineAtlas:m,imageAtlas:r,glyphMap:this.returnDependencies?c:null,iconMap:this.returnDependencies?h:null,glyphPositions:this.returnDependencies?i.positions:null})}}D.length?o.send("getImages",{icons:D,source:this.source,tileID:this.tileID,type:"patterns"},(i,r)=>{a||(a=i,u=r,L.call(this))},void 0,!1,z):u={},L.call(this)}}function hr(i,r,n){const o=new nk(r);for(const s of i)s.recalculate(o,n)}class hn{constructor(i){this.entries={},this.scheduler=i}request(i,r,n,o){const s=this.entries[i]=this.entries[i]||{callbacks:[]};if(s.result){const[a,l]=s.result;return this.scheduler?this.scheduler.add(()=>{o(a,l)},r):o(a,l),()=>{}}return s.callbacks.push(o),s.cancel||(s.cancel=n((n,o)=>{for(const a of(s.result=[n,o],s.callbacks))this.scheduler?this.scheduler.add(()=>{a(n,o)},r):a(n,o);setTimeout(()=>delete this.entries[i],3e3)})),()=>{s.result||(s.callbacks=s.callbacks.filter(i=>i!==o),s.callbacks.length||(s.cancel(),delete this.entries[i]))}}}function ho(i,r,n){const o=JSON.stringify(i.request);return i.data&&(this.deduped.entries[o]={result:[null,i.data]}),this.deduped.request(o,{type:"parseTile",isSymbolTile:i.isSymbolTile,zoom:i.tileZoom},r=>{const o=e3(i.request,(i,o,s,a)=>{i?r(i):o&&r(null,{vectorTile:n?void 0:new aa.VectorTile(new aV(o)),rawData:o,cacheControl:s,expires:a})});return()=>{o.cancel(),r()}},r)}const hs=p(new Float64Array(16));class ha{constructor(i,r){this._tr=i,this._worldSize=r}createInversionMatrix(){return hs}createTileMatrix(i){let r,n,o;const s=i.canonical,a=p(new Float64Array(16)),l=this._tr.projection;if(l.isReprojectedInTileSpace){const c=he(s,l);r=1,n=c.x+i.wrap*c.scale,o=c.y,_(a,a,[r/c.scale,r/c.scale,this._tr.pixelsPerMeter/this._worldSize])}else r=this._worldSize/this._tr.zoomScale(s.z),n=(s.x+Math.pow(2,s.z)*i.wrap)*r,o=s.y*r;return m(a,a,[n,o,0]),_(a,a,[r/8192,r/8192,1]),a}pointCoordinate(i,r,n){const o=this._tr.horizonLineFromTop(!1),s=new l(i,Math.max(o,r));return this._tr.rayIntersectionCoordinate(this._tr.pointRayIntersection(s,n))}upVector(){return[0,0,1]}upVectorScale(){return 1}}const hl=Math.sqrt(3)/2,hc=Math.PI/2;function hh(i){return Math.tan((hc+i)/2)}const hu=85.051129*O,hd=85.051129*O,hp={albers:{name:"albers",range:[4,7],center:[-96,37.5],parallels:[29.5,45.5],zAxisUnit:"meters",conic:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],initializeConstants(){if(this.constants&&F(this.parallels,this.constants.parallels))return;const i=Math.sin(this.parallels[0]*O),r=(i+Math.sin(this.parallels[1]*O))/2,n=1+i*(2*r-i),o=Math.sqrt(n)/r;this.constants={n:r,c:n,r0:o,parallels:this.parallels}},project(i,r){this.initializeConstants();const n=(i-this.center[0])*O,{n:o,c:s,r0:a}=this.constants,l=Math.sqrt(s-2*o*Math.sin(r*O))/o;return{x:l*Math.sin(n*o),y:l*Math.cos(n*o)-a,z:0}},unproject(i,r){this.initializeConstants();const{n:n,c:o,r0:s}=this.constants,a=s+r;let l=Math.atan2(i,Math.abs(a))*Math.sign(a);a*n<0&&(l-=Math.PI*Math.sign(i)*Math.sign(a));const c=this.center[0]*O*n;l=q(l,-Math.PI-c,Math.PI-c);const h=l/n*U+this.center[0],u=Math.asin(Z((o-(i*i+a*a)*n*n)/(2*n),-1,1)),d=Z(u*U,-85.051129,85.051129);return new o2(h,d)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},equalEarth:{name:"equalEarth",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r=r/180*Math.PI,i=i/180*Math.PI;const n=Math.asin(hl*Math.sin(r)),o=n*n,s=o*o*o;return{x:.5*(i*Math.cos(n)/(hl*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o)))/Math.PI+.5),y:1-.5*(n*(1.340264+-.081106*o+s*(893e-6+.003796*o))/Math.PI+1),z:0}},unproject(i,r){i=(2*i-.5)*Math.PI;let n=r=(2*(1-r)-1)*Math.PI,o=n*n,s=o*o*o;for(let a,l,c=0;c<12&&(l=n*(1.340264+-.081106*o+s*(893e-6+.003796*o))-r,s=(o=(n=Z(n-(a=l/(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))),-Math.PI/3,Math.PI/3))*n)*o*o,!(1e-12>Math.abs(a)));++c);const h=hl*i*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))/Math.cos(n),u=Math.asin(Math.sin(n)/hl),d=Z(180*h/Math.PI,-180,180),p=Z(180*u/Math.PI,-85.051129,85.051129);return new o2(d,p)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},equirectangular:{name:"equirectangular",supportsWorldCopies:!0,center:[0,0],range:[3.5,7],zAxisUnit:"meters",wrap:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project:(i,r)=>({x:.5+i/360,y:.5-r/360,z:0}),unproject(i,r){const n=Z(360*(.5-r),-85.051129,85.051129);return new o2(360*(i-.5),n)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},lambertConformalConic:{name:"lambertConformalConic",range:[3.5,7],zAxisUnit:"meters",center:[0,30],parallels:[30,30],conic:!0,isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],initializeConstants(){if(this.constants&&F(this.parallels,this.constants.parallels))return;const i=this.parallels[0]*O,r=this.parallels[1]*O,n=Math.cos(i),o=i===r?Math.sin(i):Math.log(n/Math.cos(r))/Math.log(hh(r)/hh(i)),s=n*Math.pow(hh(i),o)/o;this.constants={n:o,f:s,parallels:this.parallels}},project(i,r){this.initializeConstants(),r*=O,i=(i-this.center[0])*O;const{n:n,f:o}=this.constants;o>0?r<-hc+1e-6&&(r=-hc+1e-6):r>hc-1e-6&&(r=hc-1e-6);const s=o/Math.pow(hh(r),n),a=s*Math.sin(n*i),l=o-s*Math.cos(n*i);return{x:.5*(a/Math.PI+.5),y:1-.5*(l/Math.PI+.5),z:0}},unproject(i,r){this.initializeConstants(),i=(2*i-.5)*Math.PI,r=(2*(1-r)-.5)*Math.PI;const{n:n,f:o}=this.constants,s=o-r,a=Math.sign(s),l=Math.sign(n)*Math.sqrt(i*i+s*s);let c=Math.atan2(i,Math.abs(s))*a;s*n<0&&(c-=Math.PI*Math.sign(i)*a);const h=Z(c/n*U+this.center[0],-180,180),u=Z((2*Math.atan(Math.pow(o/l,1/n))-hc)*U,-85.051129,85.051129);return new o2(h,u)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},mercator:{name:"mercator",wrap:!0,requiresDraping:!1,supportsWorldCopies:!0,supportsTerrain:!0,supportsFog:!0,supportsFreeCamera:!0,zAxisUnit:"meters",center:[0,0],project:(i,r)=>({x:o4(i),y:o6(r),z:0}),unproject(i,r){const n=o8(i),o=o9(r);return new o2(n,o)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},naturalEarth:{name:"naturalEarth",center:[0,0],range:[3.5,7],isReprojectedInTileSpace:!0,zAxisUnit:"meters",unsupportedLayers:["custom"],project(i,r){const n=(r*=O)*r,o=n*n;return{x:.5*((i*=O)*(.8707-.131979*n+o*(o*(.003971*n-.001529*o)-.013791))/Math.PI+.5),y:1-.5*(r*(1.007226+n*(.015085+o*(.028874*n-.044475-.005916*o)))/Math.PI+1),z:0}},unproject(i,r){i=(2*i-.5)*Math.PI;let n=r=(2*(1-r)-1)*Math.PI,o=25,s=0,a=n*n;do{a=n*n;const l=a*a;s=(n*(1.007226+a*(.015085+l*(.028874*a-.044475-.005916*l)))-r)/(1.007226+a*(.045255+l*(.259866*a-.311325-.005916*11*l))),n=Z(n-s,-hu,hu)}while(Math.abs(s)>1e-6&&--o>0)a=n*n;const c=Z(i/(.8707+a*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979))*U,-180,180),h=n*U;return new o2(c,h)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)},winkelTripel:{name:"winkelTripel",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r*=O,i*=O;const n=Math.cos(r),o=2/Math.PI,s=Math.acos(n*Math.cos(i/2)),a=Math.sin(s)/s,l=.5*(i*o+2*n*Math.sin(i/2)/a)||0,c=.5*(r+Math.sin(r)/a)||0;return{x:.5*(l/Math.PI+.5),y:1-.5*(c/Math.PI+1),z:0}},unproject(i,r){let n=i=(2*i-.5)*Math.PI,o=r=(2*(1-r)-1)*Math.PI,s=25,a=0,l=0;do{const c=Math.cos(o),h=Math.sin(o),u=2*h*c,d=h*h,p=c*c,f=Math.cos(n/2),m=Math.sin(n/2),_=2*f*m,g=m*m,y=1-p*f*f,x=y?1/y:0,v=y?Math.acos(c*f)*Math.sqrt(1/y):0,b=.5*(2*v*c*m+2*n/Math.PI)-i,w=.5*(v*h+o)-r,T=.5*x*(p*g+v*c*f*d)+1/Math.PI,E=x*(_*u/4-v*h*m),S=.125*x*(u*m-v*h*p*_),I=.5*x*(d*f+v*g*c)+.5,M=E*S-I*T;a=(w*E-b*I)/M,l=(b*S-w*T)/M,n=Z(n-a,-Math.PI,Math.PI),o=Z(o-l,-hd,hd)}while((Math.abs(a)>1e-6||Math.abs(l)>1e-6)&&--s>0)return new o2(n*U,o*U)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/o5(i)*r,farthestPixelDistance(i){return cJ(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new ha(i,r)}};i.ARRAY_TYPE=u,i.AUTH_ERR_MSG=ez,i.Aabb=sb,i.Actor=class{constructor(i,r,n){this.target=i,this.parent=r,this.mapId=n,this.callbacks={},this.cancelCallbacks={},et(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=ec()?i:h,this.scheduler=new l7}send(i,r,n,o,s=!1,a){const l=Math.round(1e18*Math.random()).toString(36).substring(0,10);n&&(n.metadata=a,this.callbacks[l]=n);const c=eg(this.globalScope)?void 0:[];return this.target.postMessage({id:l,type:i,hasCallback:!!n,targetMapId:o,mustQueue:s,sourceMapId:this.mapId,data:rH(r,c)},c),{cancel:()=>{n&&delete this.callbacks[l],this.target.postMessage({id:l,type:"",targetMapId:o,sourceMapId:this.mapId})}}}receive(i){const r=i.data,n=r.id;if(n&&(!r.targetMapId||this.mapId===r.targetMapId)){if(""===r.type){const o=this.cancelCallbacks[n];delete this.cancelCallbacks[n],o&&o.cancel()}else if(r.mustQueue||ec()){const s=this.callbacks[n];this.cancelCallbacks[n]=this.scheduler.add(()=>this.processTask(n,r),s&&s.metadata||{type:"message"})}else this.processTask(n,r)}}processTask(i,r){if(""===r.type){const n=this.callbacks[i];delete this.callbacks[i],n&&(r.error?n(rK(r.error)):n(null,rK(r.data)))}else{const o=eg(this.globalScope)?void 0:[],s=r.hasCallback?(r,n)=>{delete this.cancelCallbacks[i],this.target.postMessage({id:i,type:"",sourceMapId:this.mapId,error:r?rH(r):null,data:rH(n,o)},o)}:i=>{},a=rK(r.data);if(this.parent[r.type])this.parent[r.type](r.sourceMapId,a,s);else if(this.parent.getWorkerSource){const l=r.type.split(".");this.parent.getWorkerSource(r.sourceMapId,l[0],a.source)[l[1]](a,s)}else s(Error(`Could not find function ${r.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},i.CanonicalTileID=ct,i.Color=tC,i.ColorMode=ca,i.CullFaceMode=cl,i.DEMData=cv,i.DataConstantProperty=nV,i.DedupedRequest=hn,i.DepthMode=co,i.EXTENT=8192,i.Elevation=class{getAtPointOrZero(i,r=0){return this.getAtPoint(i,r)||0}getAtPoint(i,r,n=!0){null==r&&(r=null);const o=this._source();if(!o||i.y<0||i.y>1)return r;const s=o.getSource().maxzoom,a=1<{const o=this.getAtTileOffset(i,n.x,n.y),s=r.upVector(i.canonical,n.x,n.y);return I(s,s,o*r.upVectorScale(i.canonical)),s}}getForTilePoints(i,r,n,o){const s=cS.create(this,i,o);return!!s&&(r.forEach(i=>{i[2]=this.exaggeration()*s.getElevationAt(i[0],i[1],n)}),!0)}getMinMaxForTile(i){const r=this.findDEMTileFor(i);if(!r||!r.dem)return null;const n=r.dem.tree,o=r.tileID,s=1<Math.abs(o))return!1;const s=((i[0]-this.pos[0])*r[0]+(i[1]-this.pos[1])*r[1]+(i[2]-this.pos[2])*r[2])/o;return n[0]=this.pos[0]+this.dir[0]*s,n[1]=this.pos[1]+this.dir[1]*s,n[2]=this.pos[2]+this.dir[2]*s,!0}closestPointOnSphere(i,r,n){var o,s,a,l,c,h,u;if(s=(o=this.pos)[0],a=o[1],l=o[2],c=i[0],h=i[1],u=i[2],Math.abs(s-c)<=1e-6*Math.max(1,Math.abs(s),Math.abs(c))&&Math.abs(a-h)<=1e-6*Math.max(1,Math.abs(a),Math.abs(h))&&Math.abs(l-u)<=1e-6*Math.max(1,Math.abs(l),Math.abs(u))||0===r)return n[0]=n[1]=n[2]=0,!1;const[d,p,f]=this.dir,m=this.pos[0]-i[0],_=this.pos[1]-i[1],g=this.pos[2]-i[2],y=d*d+p*p+f*f,x=2*(m*d+_*p+g*f),v=x*x-4*y*(m*m+_*_+g*g-r*r);if(v<0){const b=Math.max(-x/2,0),w=m+d*b,T=_+p*b,E=g+f*b,S=Math.hypot(w,T,E);return n[0]=w*r/S,n[1]=T*r/S,n[2]=E*r/S,!1}{const I=(-x-Math.sqrt(v))/(2*y);if(I<0){const M=Math.hypot(m,_,g);return n[0]=m*r/M,n[1]=_*r/M,n[2]=g*r/M,!1}return n[0]=m+d*I,n[1]=_+p*I,n[2]=g+f*I,!0}}},i.RequestManager=class{constructor(i,r,n){this._transformRequestFn=i,this._customAccessToken=r,this._silenceAuthErrors=!!n,this._createSkuToken()}_createSkuToken(){const i=function(){let i="";for(let r=0;r<10;r++)i+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1","01",i].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=i.token,this._skuTokenExpiresAt=i.tokenExpiresAt}_isSkuTokenExpired(){return Date.now()>this._skuTokenExpiresAt}transformRequest(i,r){return this._transformRequestFn&&this._transformRequestFn(i,r)||{url:i}}normalizeStyleURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/styles/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeGlyphsURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/fonts/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeSourceURL(i,r){if(!ek(i))return i;const n=eL(i);return n.path=`/v4/${n.authority}.json`,n.params.push("secure"),this._makeAPIURL(n,this._customAccessToken||r)}normalizeSpriteURL(i,r,n,o){const s=eL(i);return ek(i)?(s.path=`/styles/v1${s.path}/sprite${r}${n}`,this._makeAPIURL(s,this._customAccessToken||o)):(s.path+=`${r}${n}`,eB(s))}normalizeTileURL(i,r,n){if(this._isSkuTokenExpired()&&this._createSkuToken(),i&&!ek(i))return i;const o=eL(i);o.path=o.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${r||n&&"raster"!==o.authority&&512===n?"@2x":""}${eT.supported?".webp":"$1"}`),"raster"===o.authority?o.path=`/${ev.RASTER_URL_PREFIX}${o.path}`:(o.path=o.path.replace(/^.+\/v4\//,"/"),o.path=`/${ev.TILE_URL_VERSION}${o.path}`);const s=this._customAccessToken||function(i){for(const r of i){const n=r.match(/^access_token=(.*)$/);if(n)return n[1]}return null}(o.params)||ev.ACCESS_TOKEN;return ev.REQUIRE_ACCESS_TOKEN&&s&&this._skuToken&&o.params.push(`sku=${this._skuToken}`),this._makeAPIURL(o,s)}canonicalizeTileURL(i,r){const n=eL(i);if(!n.path.match(/^(\/v4\/|\/raster\/v1\/)/)||!n.path.match(/\.[\w]+$/))return i;let o="mapbox://";n.path.match(/^\/raster\/v1\//)?o+=`raster/${n.path.replace(`/${ev.RASTER_URL_PREFIX}/`,"")}`:o+=`tiles/${n.path.replace(`/${ev.TILE_URL_VERSION}/`,"")}`;let s=n.params;return r&&(s=s.filter(i=>!i.match(/^access_token=/))),s.length&&(o+=`?${s.join("&")}`),o}canonicalizeTileset(i,r){const n=!!r&&ek(r),o=[];for(const s of i.tiles||[])eP(s)?o.push(this.canonicalizeTileURL(s,n)):o.push(s);return o}_makeAPIURL(i,r){const n="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",o=eL(ev.API_URL);if(i.protocol=o.protocol,i.authority=o.authority,"http"===i.protocol){const s=i.params.indexOf("secure");s>=0&&i.params.splice(s,1)}if("/"!==o.path&&(i.path=`${o.path}${i.path}`),!ev.REQUIRE_ACCESS_TOKEN)return eB(i);if(r=r||ev.ACCESS_TOKEN,!this._silenceAuthErrors){if(!r)throw Error(`An API access token is required to use Mapbox GL. ${n}`);if("s"===r[0])throw Error(`Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). ${n}`)}return i.params=i.params.filter(i=>-1===i.indexOf("access_token")),i.params.push(`access_token=${r||""}`),eB(i)}},i.ResourceType=eQ,i.SegmentVector=o0,i.SourceCache=cw,i.StencilMode=cs,i.StructArrayLayout1ui2=ol,i.StructArrayLayout2f1f2i16=n9,i.StructArrayLayout2i4=nJ,i.StructArrayLayout2ui4=oa,i.StructArrayLayout3f12=n1,i.StructArrayLayout3ui6=oe,i.StructArrayLayout4i8=nQ,i.Texture=l5,i.Tile=cW,i.Transitionable=nL,i.Uniform1f=oP,i.Uniform1i=class extends ok{constructor(i,r){super(i,r),this.current=0}set(i){this.current!==i&&(this.current=i,this.gl.uniform1i(this.location,i))}},i.Uniform2f=class extends ok{constructor(i,r){super(i,r),this.current=[0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]||(this.current=i,this.gl.uniform2f(this.location,i[0],i[1]))}},i.Uniform3f=class extends ok{constructor(i,r){super(i,r),this.current=[0,0,0]}set(i){i[0]===this.current[0]&&i[1]===this.current[1]&&i[2]===this.current[2]||(this.current=i,this.gl.uniform3f(this.location,i[0],i[1],i[2]))}},i.Uniform4f=oD,i.UniformColor=oL,i.UniformMatrix2f=class extends ok{constructor(i,r){super(i,r),this.current=oF}set(i){for(let r=0;r<4;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix2fv(this.location,!1,i);break}}},i.UniformMatrix3f=class extends ok{constructor(i,r){super(i,r),this.current=oR}set(i){for(let r=0;r<9;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix3fv(this.location,!1,i);break}}},i.UniformMatrix4f=class extends ok{constructor(i,r){super(i,r),this.current=oB}set(i){if(i[12]!==this.current[12]||i[0]!==this.current[0])return this.current=i,void this.gl.uniformMatrix4fv(this.location,!1,i);for(let r=1;r<16;r++)if(i[r]!==this.current[r]){this.current=i,this.gl.uniformMatrix4fv(this.location,!1,i);break}}},i.UnwrappedTileID=ci,i.ValidationError=tn,i.VectorTileWorkerSource=class extends ti{constructor(i,r,n,o,s){super(),this.actor=i,this.layerIndex=r,this.availableImages=n,this.loadVectorData=s||ho,this.loading={},this.loaded={},this.deduped=new hn(i.scheduler),this.isSpriteLoaded=o,this.scheduler=i.scheduler}loadTile(i,r){const n=i.uid,o=i&&i.request,s=o&&o.collectResourceTiming,a=this.loading[n]=new hi(i);a.abort=this.loadVectorData(i,(l,c)=>{const h=!this.loading[n];if(delete this.loading[n],h||l||!c)return a.status="done",h||(this.loaded[n]=a),r(l);const u=c.rawData,d={};c.expires&&(d.expires=c.expires),c.cacheControl&&(d.cacheControl=c.cacheControl),a.vectorTile=c.vectorTile||new aa.VectorTile(new aV(u));const p=()=>{a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,(i,n)=>{if(i||!n)return r(i);const a={};if(s){const l=l9(o);l.length>0&&(a.resourceTiming=JSON.parse(JSON.stringify(l)))}r(null,H({rawTileData:u.slice(0)},n,d,a))})};this.isSpriteLoaded?p():this.once("isSpriteLoaded",()=>{this.scheduler?this.scheduler.add(p,{type:"parseTile",isSymbolTile:i.isSymbolTile,zoom:i.tileZoom}):p()}),this.loaded=this.loaded||{},this.loaded[n]=a})}reloadTile(i,r){const n=this.loaded,o=i.uid,s=this;if(n&&n[o]){const a=n[o];a.showCollisionBoxes=i.showCollisionBoxes,a.enableTerrain=!!i.enableTerrain,a.projection=i.projection;const l=(i,n)=>{const o=a.reloadCallback;o&&(delete a.reloadCallback,a.parse(a.vectorTile,s.layerIndex,this.availableImages,s.actor,o)),r(i,n)};"parsing"===a.status?a.reloadCallback=l:"done"===a.status&&(a.vectorTile?a.parse(a.vectorTile,this.layerIndex,this.availableImages,this.actor,l):l())}}abortTile(i,r){const n=i.uid,o=this.loading[n];o&&(o.abort&&o.abort(),delete this.loading[n]),r()}removeTile(i,r){const n=this.loaded,o=i.uid;n&&n[o]&&delete n[o],r()}},i.WritingMode=a9,i.ZoomHistory=rY,i.add=T,i.addDynamicAttributes=lU,i.adjoint=function(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=r[4],c=r[5],h=r[6],u=r[7],d=r[8];return i[0]=l*d-c*u,i[1]=s*u-o*d,i[2]=o*c-s*l,i[3]=c*h-a*d,i[4]=n*d-s*h,i[5]=s*a-n*c,i[6]=a*u-l*h,i[7]=o*h-n*u,i[8]=n*l-o*a,i},i.asyncAll=X,i.bezier=j,i.bindAll=et,i.boundsAttributes=cq,i.bufferConvexPolygon=function(i,r){const n=[];for(let o=0;oeH&&(i.getActor().send("enforceCacheSizeLimit",eW),eJ=0)},i.calculateGlobeMatrix=c9,i.calculateGlobeMercatorMatrix=function(i){const r=i.worldSize,n=Z(i.center.lat,-85.051129,85.051129),o=new l(o4(i.center.lng)*r,o6(n)*r),s=1/o5(i.center.lat)*r,a=i.pixelsPerMeter,c=r/(s/i.pixelsPerMeter),h=p(new Float64Array(16));return m(h,h,[o.x,o.y,0]),_(h,h,[c,c,a]),h},i.clamp=Z,i.clearTileCache=function(i){const r=h.caches.delete(e$);i&&r.catch(i).then(()=>i())},i.clipLine=l_,i.clone=function(i){var r=new u(16);return r[0]=i[0],r[1]=i[1],r[2]=i[2],r[3]=i[3],r[4]=i[4],r[5]=i[5],r[6]=i[6],r[7]=i[7],r[8]=i[8],r[9]=i[9],r[10]=i[10],r[11]=i[11],r[12]=i[12],r[13]=i[13],r[14]=i[14],r[15]=i[15],r},i.clone$1=eo,i.collisionCircleLayout=aP,i.config=ev,i.conjugate=function(i,r){return i[0]=-r[0],i[1]=-r[1],i[2]=-r[2],i[3]=r[3],i},i.create=function(){var i=new u(16);return u!=Float32Array&&(i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=0,i[12]=0,i[13]=0,i[14]=0),i[0]=1,i[5]=1,i[10]=1,i[15]=1,i},i.create$1=d,i.createExpression=i9,i.createLayout=nK,i.createStyleLayer=function(i){return"custom"===i.type?new lH(i):new lJ[i.type](i)},i.cross=z,i.degToRad=function(i){return i*O},i.div=function(i,r,n){return i[0]=r[0]/n[0],i[1]=r[1]/n[1],i[2]=r[2]/n[2],i},i.dot=C,i.ease=G,i.easeCubicInOut=N,i.emitValidationErrors=rU,i.endsWith=ei,i.enforceCacheSizeLimit=function(i){eK(),eq&&eq.then(r=>{r.keys().then(n=>{for(let o=0;oa&&(o+=(i[s]-a)*(i[s]-a)),r[s]Math.abs(r.parallels[0]+r.parallels[1])){let n=function(i){const r=Math.max(.01,Math.cos(i*O)),n=1/(2*Math.max(Math.PI*r,1/r));return{wrap:!0,supportsWorldCopies:!0,unsupportedLayers:["custom"],project(i,o){const s=Math.sin(o*O)/r;return{x:i*O*r*n+.5,y:-s*n+.5,z:0}},unproject(i,o){const s=Z((i-.5)/n*U/r,-180,180),a=Math.asin(Z(-(o-.5)/n*r,-1,1)),l=Z(a*U,-85.051129,85.051129);return new o2(s,l)}}}(r.parallels[0]);if("lambertConformalConic"===r.name){const{project:o,unproject:s}=hp.mercator;n={wrap:!0,supportsWorldCopies:!0,project:o,unproject:s}}return H({},i,r,n)}return H({},i,r)}(r,i):r},i.getRTLTextPluginStatus=nA,i.getReferrer=e1,i.getTilePoint=function(i,{x:r,y:n},o=0){return new l(((r-o)*i.scale-i.x)*8192,(n*i.scale-i.y)*8192)},i.getTileVec3=function(i,r,n=0){return w(((r.x-n)*i.scale-i.x)*8192,(r.y*i.scale-i.y)*8192,o7(r.z,r.y))},i.getVideo=function(i,r){const n=h.document.createElement("video");n.muted=!0,n.onloadstart=function(){r(null,n)};for(let o=0;o0&&(l=1/Math.sqrt(l)),i[0]=n*l,i[1]=o*l,i[2]=s*l,i[3]=a*l,i},i.number=io,i.ortho=function(i,r,n,o,s,a,l){var c=1/(r-n),h=1/(o-s),u=1/(a-l);return i[0]=-2*c,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=-2*h,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=2*u,i[11]=0,i[12]=(r+n)*c,i[13]=(s+o)*h,i[14]=(l+a)*u,i[15]=1,i},i.pbf=aV,i.perspective=function(i,r,n,o,s){var a,l=1/Math.tan(r/2);return i[0]=l/n,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=l,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[11]=-1,i[12]=0,i[13]=0,i[15]=0,null!=s&&s!==1/0?(i[10]=(s+o)*(a=1/(o-s)),i[14]=2*s*o*a):(i[10]=-1,i[14]=-2*o),i},i.pick=function(i,r){const n={};for(let o=0;othis._layers[i.id]),h=c[0];if("none"===h.visibility)continue;const u=h.source||"";let d=this.familiesBySource[u];d||(d=this.familiesBySource[u]={});const p=h.sourceLayer||"_geojsonTileLayer";let f=d[p];f||(f=d[p]=[]),f.push(c)}}}const{ImageBitmap:n}=i.window;class o{loadTile(r,o){const{uid:s,encoding:a,rawImageData:l,padding:c,buildQuadTree:h}=r,u=n&&l instanceof n?this.getImageData(l,c):l;o(null,new i.DEMData(s,u,a,c<1,h))}getImageData(r,n){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(r.width,r.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=r.width,this.offscreenCanvas.height=r.height,this.offscreenCanvasContext.drawImage(r,0,0,r.width,r.height);const o=this.offscreenCanvasContext.getImageData(-n,-n,r.width+2*n,r.height+2*n);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new i.RGBAImage({width:o.width,height:o.height},o.data)}}var s,a=function i(r,n){var o,s=r&&r.type;if("FeatureCollection"===s)for(o=0;o=Math.abs(c)?n-h+c:c-h+n,n=h}n+o>=0!=!!r&&i.reverse()}const h=i.vectorTile.VectorTileFeature.prototype.toGeoJSON;class u{constructor(r){this._feature=r,this.extent=i.EXTENT,this.type=r.type,this.properties=r.tags,"id"in r&&!isNaN(r.id)&&(this.id=parseInt(r.id,10))}loadGeometry(){if(1===this._feature.type){const r=[];for(const n of this._feature.geometry)r.push([new i.pointGeometry(n[0],n[1])]);return r}{const o=[];for(const s of this._feature.geometry){const a=[];for(const l of s)a.push(new i.pointGeometry(l[0],l[1]));o.push(a)}return o}}toGeoJSON(i,r,n){return h.call(this,i,r,n)}}class d{constructor(r){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=i.EXTENT,this.length=r.length,this._features=r}feature(i){return new u(this._features[i])}}var p=i.vectorTile.VectorTileFeature;function f(i,r){this.options=r||{},this.features=i,this.length=i.length}function m(i,r){this.id="number"==typeof i.id?i.id:void 0,this.type=i.type,this.rawGeometry=1===i.type?[i.geometry]:i.geometry,this.properties=i.tags,this.extent=r||4096}f.prototype.feature=function(i){return new m(this.features[i],this.options.extent)},m.prototype.loadGeometry=function(){var r=this.rawGeometry;this.geometry=[];for(var n=0;n>31}function T(i,r){for(var n=i.loadGeometry(),o=i.type,s=0,a=0,l=n.length,c=0;ci[0],C=i=>i[1];class z{constructor(i,r=A,n=C,o=64,s=Float64Array){this.nodeSize=o,this.points=i;const a=i.length<65536?Uint16Array:Uint32Array,l=this.ids=new a(i.length),c=this.coords=new s(2*i.length);for(let h=0;h>1;(function i(r,n,o,s,a,l){for(;a>s;){if(a-s>600){const c=a-s+1,h=o-s+1,u=Math.log(c),d=.5*Math.exp(2*u/3),p=.5*Math.sqrt(u*d*(c-d)/c)*(h-c/2<0?-1:1);i(r,n,o,Math.max(s,Math.floor(o-h*d/c+p)),Math.min(a,Math.floor(o+(c-h)*d/c+p)),l)}const f=n[2*o+l];let m=s,_=a;for(S(r,n,s,o),n[2*a+l]>f&&S(r,n,s,a);m<_;){for(S(r,n,m,_),m++,_--;n[2*m+l]f;)_--}n[2*s+l]===f?S(r,n,s,_):S(r,n,++_,a),_<=o&&(s=_+1),o<=_&&(a=_-1)}})(r,n,c,s,a,l%2),i(r,n,o,s,c-1,l+1),i(r,n,o,c+1,a,l+1)}(l,c,o,0,l.length-1,0)}range(i,r,n,o){return function(i,r,n,o,s,a,l){let c,h;const u=[0,i.length-1,0],d=[];for(;u.length;){const p=u.pop(),f=u.pop(),m=u.pop();if(f-m<=l){for(let _=m;_<=f;_++)c=r[2*_],h=r[2*_+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[_]);continue}const g=Math.floor((m+f)/2);c=r[2*g],h=r[2*g+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[g]);const y=(p+1)%2;(0===p?n<=c:o<=h)&&(u.push(m),u.push(g-1),u.push(y)),(0===p?s>=c:a>=h)&&(u.push(g+1),u.push(f),u.push(y))}return d}(this.ids,this.coords,i,r,n,o,this.nodeSize)}within(i,r,n){return function(i,r,n,o,s,a){const l=[0,i.length-1,0],c=[],h=s*s;for(;l.length;){const u=l.pop(),d=l.pop(),p=l.pop();if(d-p<=a){for(let f=p;f<=d;f++)M(r[2*f],r[2*f+1],n,o)<=h&&c.push(i[f]);continue}const m=Math.floor((p+d)/2),_=r[2*m],g=r[2*m+1];M(_,g,n,o)<=h&&c.push(i[m]);const y=(u+1)%2;(0===u?n-s<=_:o-s<=g)&&(l.push(p),l.push(m-1),l.push(y)),(0===u?n+s>=_:o+s>=g)&&(l.push(m+1),l.push(d),l.push(y))}return c}(this.ids,this.coords,i,r,n,this.nodeSize)}}const k={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:i=>i},P=Math.fround||(s=new Float32Array(1),i=>(s[0]=+i,s[0]));class D{constructor(i){this.options=O(Object.create(k),i),this.trees=Array(this.options.maxZoom+1)}load(i){const{log:r,minZoom:n,maxZoom:o,nodeSize:s}=this.options;r&&console.time("total time");const a=`prepare ${i.length} points`;r&&console.time(a),this.points=i;let l=[];for(let c=0;c=n;h--){const u=+Date.now();l=this._cluster(l,h),this.trees[h]=new z(l,U,V,s,Float32Array),r&&console.log("z%d: %d clusters in %dms",h,l.length,+Date.now()-u)}return r&&console.timeEnd("total time"),this}getClusters(i,r){let n=((i[0]+180)%360+360)%360-180;const o=Math.max(-90,Math.min(90,i[1]));let s=180===i[2]?180:((i[2]+180)%360+360)%360-180;const a=Math.max(-90,Math.min(90,i[3]));if(i[2]-i[0]>=360)n=-180,s=180;else if(n>s){const l=this.getClusters([n,o,180,a],r),c=this.getClusters([-180,o,s,a],r);return l.concat(c)}const h=this.trees[this._limitZoom(r)],u=h.range(R(n),F(a),R(s),F(o)),d=[];for(const p of u){const f=h.points[p];d.push(f.numPoints?L(f):this.points[f.index])}return d}getChildren(i){const r=this._getOriginId(i),n=this._getOriginZoom(i),o="No cluster with the specified id.",s=this.trees[n];if(!s)throw Error(o);const a=s.points[r];if(!a)throw Error(o);const l=this.options.radius/(this.options.extent*Math.pow(2,n-1)),c=s.within(a.x,a.y,l),h=[];for(const u of c){const d=s.points[u];d.parentId===i&&h.push(d.numPoints?L(d):this.points[d.index])}if(0===h.length)throw Error(o);return h}getLeaves(i,r,n){const o=[];return this._appendLeaves(o,i,r=r||10,n=n||0,0),o}getTile(i,r,n){const o=this.trees[this._limitZoom(i)],s=Math.pow(2,i),{extent:a,radius:l}=this.options,c=l/a,h=(n-c)/s,u=(n+1+c)/s,d={features:[]};return this._addTileFeatures(o.range((r-c)/s,h,(r+1+c)/s,u),o.points,r,n,s,d),0===r&&this._addTileFeatures(o.range(1-c/s,h,1,u),o.points,s,n,s,d),r===s-1&&this._addTileFeatures(o.range(0,h,c/s,u),o.points,-1,n,s,d),d.features.length?d:null}getClusterExpansionZoom(i){let r=this._getOriginZoom(i)-1;for(;r<=this.options.maxZoom;){const n=this.getChildren(i);if(r++,1!==n.length)break;i=n[0].properties.cluster_id}return r}_appendLeaves(i,r,n,o,s){const a=this.getChildren(r);for(const l of a){const c=l.properties;if(c&&c.cluster?s+c.point_count<=o?s+=c.point_count:s=this._appendLeaves(i,c.cluster_id,n,o,s):sr&&(m+=g.numPoints||1)}if(m>f&&m>=l){var y,x,v,b;let w=u.x*f,T=u.y*f,E=a&&f>1?this._map(u,!0):null;const S=(h<<5)+(r+1)+this.points.length;for(const I of p){const M=d.points[I];if(M.zoom<=r)continue;M.zoom=r;const A=M.numPoints||1;w+=M.x*A,T+=M.y*A,M.parentId=S,a&&(E||(E=this._map(u,!0)),a(E,this._map(M)))}u.parentId=S,n.push((y=w/m,x=T/m,v=m,b=E,{x:P(y),y:P(x),zoom:1/0,id:S,parentId:-1,numPoints:v,properties:b}))}else if(n.push(u),m>1)for(const C of p){const z=d.points[C];z.zoom<=r||(z.zoom=r,n.push(z))}}return n}_getOriginId(i){return i-this.points.length>>5}_getOriginZoom(i){return(i-this.points.length)%32}_map(i,r){if(i.numPoints)return r?O({},i.properties):i.properties;const n=this.points[i.index].properties,o=this.options.map(n);return r&&o===n?O({},o):o}}function L(i){return{type:"Feature",id:i.id,properties:B(i),geometry:{type:"Point",coordinates:[360*(i.x-.5),function(i){const r=(180-360*i)*Math.PI/180;return 360*Math.atan(Math.exp(r))/Math.PI-90}(i.y)]}}}function B(i){const r=i.numPoints,n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r;return O(O({},i.properties),{cluster:!0,cluster_id:i.id,point_count:r,point_count_abbreviated:n})}function R(i){return i/360+.5}function F(i){const r=Math.sin(i*Math.PI/180),n=.5-.25*Math.log((1+r)/(1-r))/Math.PI;return n<0?0:n>1?1:n}function O(i,r){for(const n in r)i[n]=r[n];return i}function U(i){return i.x}function V(i){return i.y}function N(i,r,n,o){var s={id:void 0===i?null:i,type:r,geometry:n,tags:o,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(i){var r=i.geometry,n=i.type;if("Point"===n||"MultiPoint"===n||"LineString"===n)j(i,r);else if("Polygon"===n||"MultiLineString"===n)for(var o=0;o0&&(l+=o?(s*u-h*a)/2:Math.sqrt(Math.pow(h-s,2)+Math.pow(u-a,2))),s=h,a=u}var d=r.length-3;r[2]=1,function i(r,n,o,s){for(var a,l=s,c=o-n>>1,h=o-n,u=r[n],d=r[n+1],p=r[o],f=r[o+1],m=n+3;m1?(n=s,o=a):h>0&&(n+=l*h,o+=c*h)}return(l=i-n)*l+(c=r-o)*c}(r[m],r[m+1],u,d,p,f);if(_>l)a=m,l=_;else if(_===l){var g=Math.abs(m-c);gs&&(a-n>3&&i(r,n,a,s),r[a+2]=l,o-a>3&&i(r,a,o,s))}(r,0,d,n),r[d+2]=1,r.size=Math.abs(l),r.start=0,r.end=r.size}function q(i,r,n,o){for(var s=0;s1?1:n}function H(i,r,n,o,s,a,l,c){if(o/=r,a>=(n/=r)&&l=o)return null;for(var h=[],u=0;u=n&&_=o)){var g=[];if("Point"===f||"MultiPoint"===f)(function(i,r,n,o,s){for(var a=0;a=n&&l<=o&&(r.push(i[a]),r.push(i[a+1]),r.push(i[a+2]))}})(p,g,n,o,s);else if("LineString"===f)K(p,g,n,o,s,!1,c.lineMetrics);else if("MultiLineString"===f)J(p,g,n,o,s,!1);else if("Polygon"===f)J(p,g,n,o,s,!0);else if("MultiPolygon"===f)for(var y=0;yn&&(h=d(u,m,_,y,x,n),l&&(u.start=p+c*h)):v>o?b=n&&(h=d(u,m,_,y,x,n),w=!0),b>o&&v<=o&&(h=d(u,m,_,y,x,o),w=!0),!a&&w&&(l&&(u.end=p+c*h),r.push(u),u=Y(i)),l&&(p+=c)}var T=i.length-3;m=i[T],_=i[T+1],g=i[T+2],(v=0===s?m:_)>=n&&v<=o&&Q(u,m,_,g),T=u.length-3,a&&T>=3&&(u[T]!==u[0]||u[T+1]!==u[1])&&Q(u,u[0],u[1],u[2]),u.length&&r.push(u)}function Y(i){var r=[];return r.size=i.size,r.start=i.start,r.end=i.end,r}function J(i,r,n,o,s,a){for(var l=0;l0&&r.size<(s?l:o))n.numPoints+=r.length/3;else{for(var c=[],h=0;hl)&&(n.numSimplified++,c.push(r[h]),c.push(r[h+1])),n.numPoints++;s&&function(i,r){for(var n=0,o=0,s=i.length,a=s-2;o0===r)for(o=0,s=i.length;o24)throw Error("maxZoom should be in the 0-24 range");if(r.promoteId&&r.generateId)throw Error("promoteId and generateId cannot be used together.");var u=function(i,r){var n=[];if("FeatureCollection"===i.type)for(var o=0;o1&&console.time("creation"),f=this.tiles[p]=function(i,r,n,o,s){for(var a=r===s.maxZoom?0:s.tolerance/((1<l.maxX&&(l.maxX=d),p>l.maxY&&(l.maxY=p)}return l}(i,r,n,o,h),this.tileCoords.push({z:r,x:n,y:o}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",r,n,o,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));var m="z"+r;this.stats[m]=(this.stats[m]||0)+1,this.total++}if(f.source=i,s){if(r===h.maxZoom||r===s)continue;var _=1<1&&console.time("clipping");var g,y,x,v,b,w,T=.5*h.buffer/h.extent,E=.5-T,S=.5+T,I=1+T;g=y=x=v=null,b=H(i,d,n-T,n+S,0,f.minX,f.maxX,h),w=H(i,d,n+E,n+I,0,f.minX,f.maxX,h),i=null,b&&(g=H(b,d,o-T,o+S,1,f.minY,f.maxY,h),y=H(b,d,o+E,o+I,1,f.minY,f.maxY,h),b=null),w&&(x=H(w,d,o-T,o+S,1,f.minY,f.maxY,h),v=H(w,d,o+E,o+I,1,f.minY,f.maxY,h),w=null),u>1&&console.timeEnd("clipping"),c.push(g||[],r+1,2*n,2*o),c.push(y||[],r+1,2*n,2*o+1),c.push(x||[],r+1,2*n+1,2*o),c.push(v||[],r+1,2*n+1,2*o+1)}}},ea.prototype.getTile=function(i,r,n){var o=this.options,s=o.extent,a=o.debug;if(i<0||i>24)return null;var l=1<1&&console.log("drilling down to z%d-%d-%d",i,r,n);for(var h,u=i,d=r,p=n;!h&&u>0;)u--,d=Math.floor(d/2),p=Math.floor(p/2),h=this.tiles[el(u,d,p)];return h&&h.source?(a>1&&console.log("found parent tile z%d-%d-%d",u,d,p),a>1&&console.time("drilling down"),this.splitTile(h.source,u,d,p,i,r,n),a>1&&console.timeEnd("drilling down"),this.tiles[c]?en(this.tiles[c],s):null):null};class eh extends i.VectorTileWorkerSource{constructor(i,r,n,o,s){super(i,r,n,o,ec),s&&(this.loadGeoJSON=s)}loadData(r,n){const o=r&&r.request,s=o&&o.collectResourceTiming;this.loadGeoJSON(r,(l,c)=>{if(l||!c)return n(l);if("object"!=typeof c)return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`));{a(c,!0);try{var h,u;if(r.filter){const d=i.createExpression(r.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===d.result)throw Error(d.value.map(i=>`${i.key}: ${i.message}`).join(", "));const p=c.features.filter(i=>d.value.evaluate({zoom:0},i));c={type:"FeatureCollection",features:p}}this._geoJSONIndex=r.cluster?new D(function({superclusterOptions:r,clusterProperties:n}){if(!n||!r)return r;const o={},s={},a={accumulated:null,zoom:0},l={properties:null},c=Object.keys(n);for(const h of c){const[u,d]=n[h],p=i.createExpression(d),f=i.createExpression("string"==typeof u?[u,["accumulated"],["get",h]]:u);o[h]=p.value,s[h]=f.value}return r.map=i=>{l.properties=i;const r={};for(const n of c)r[n]=o[n].evaluate(a,l);return r},r.reduce=(i,r)=>{for(const n of(l.properties=r,c))a.accumulated=i[n],i[n]=s[n].evaluate(a,l)},r}(r)).load(c.features):(h=c,u=r.geojsonVtOptions,new ea(h,u))}catch(f){return n(f)}this.loaded={};const m={};if(s){const _=i.getPerformanceMeasurement(o);_&&(m.resourceTiming={},m.resourceTiming[r.source]=JSON.parse(JSON.stringify(_)))}n(null,m)}})}reloadTile(i,r){const n=this.loaded;return n&&n[i.uid]?super.reloadTile(i,r):this.loadTile(i,r)}loadGeoJSON(r,n){if(r.request)i.getJSON(r.request,n);else{if("string"!=typeof r.data)return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`));try{return n(null,JSON.parse(r.data))}catch(o){return n(Error(`Input data given to '${r.source}' is not a valid GeoJSON object.`))}}}getClusterExpansionZoom(i,r){try{r(null,this._geoJSONIndex.getClusterExpansionZoom(i.clusterId))}catch(n){r(n)}}getClusterChildren(i,r){try{r(null,this._geoJSONIndex.getChildren(i.clusterId))}catch(n){r(n)}}getClusterLeaves(i,r){try{r(null,this._geoJSONIndex.getLeaves(i.clusterId,i.limit,i.offset))}catch(n){r(n)}}}class eu{constructor(r){this.self=r,this.actor=new i.Actor(r,this),this.layerIndexes={},this.availableImages={},this.isSpriteLoaded={},this.projections={},this.defaultProjection=i.getProjection({name:"mercator"}),this.workerSourceTypes={vector:i.VectorTileWorkerSource,geojson:eh},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(i,r)=>{if(this.workerSourceTypes[i])throw Error(`Worker source with name "${i}" already registered.`);this.workerSourceTypes[i]=r},this.self.registerRTLTextPlugin=r=>{if(i.plugin.isParsed())throw Error("RTL text plugin already registered.");i.plugin.applyArabicShaping=r.applyArabicShaping,i.plugin.processBidirectionalText=r.processBidirectionalText,i.plugin.processStyledBidirectionalText=r.processStyledBidirectionalText}}clearCaches(i,r,n){delete this.layerIndexes[i],delete this.availableImages[i],delete this.workerSources[i],delete this.demWorkerSources[i],n()}checkIfReady(i,r,n){n()}setReferrer(i,r){this.referrer=r}spriteLoaded(r,n){for(const o in this.isSpriteLoaded[r]=n,this.workerSources[r]){const s=this.workerSources[r][o];for(const a in s)s[a]instanceof i.VectorTileWorkerSource&&(s[a].isSpriteLoaded=n,s[a].fire(new i.Event("isSpriteLoaded")))}}setImages(i,r,n){for(const o in this.availableImages[i]=r,this.workerSources[i]){const s=this.workerSources[i][o];for(const a in s)s[a].availableImages=r}n()}enableTerrain(i,r,n){this.terrain=r,n()}setProjection(r,n){this.projections[r]=i.getProjection(n)}setLayers(i,r,n){this.getLayerIndex(i).replace(r),n()}updateLayers(i,r,n){this.getLayerIndex(i).update(r.layers,r.removedIds),n()}loadTile(r,n,o){const s=this.enableTerrain?i.extend({enableTerrain:this.terrain},n):n;s.projection=this.projections[r]||this.defaultProjection,this.getWorkerSource(r,n.type,n.source).loadTile(s,o)}loadDEMTile(r,n,o){const s=this.enableTerrain?i.extend({buildQuadTree:this.terrain},n):n;this.getDEMWorkerSource(r,n.source).loadTile(s,o)}reloadTile(r,n,o){const s=this.enableTerrain?i.extend({enableTerrain:this.terrain},n):n;s.projection=this.projections[r]||this.defaultProjection,this.getWorkerSource(r,n.type,n.source).reloadTile(s,o)}abortTile(i,r,n){this.getWorkerSource(i,r.type,r.source).abortTile(r,n)}removeTile(i,r,n){this.getWorkerSource(i,r.type,r.source).removeTile(r,n)}removeSource(i,r,n){if(!this.workerSources[i]||!this.workerSources[i][r.type]||!this.workerSources[i][r.type][r.source])return;const o=this.workerSources[i][r.type][r.source];delete this.workerSources[i][r.type][r.source],void 0!==o.removeSource?o.removeSource(r,n):n()}loadWorkerSource(i,r,n){try{this.self.importScripts(r.url),n()}catch(o){n(o.toString())}}syncRTLPluginState(r,n,o){try{i.plugin.setState(n);const s=i.plugin.getPluginURL();if(i.plugin.isLoaded()&&!i.plugin.isParsed()&&null!=s){this.self.importScripts(s);const a=i.plugin.isParsed();o(a?void 0:Error(`RTL Text Plugin failed to import scripts from ${s}`),a)}}catch(l){o(l.toString())}}getAvailableImages(i){let r=this.availableImages[i];return r||(r=[]),r}getLayerIndex(i){let n=this.layerIndexes[i];return n||(n=this.layerIndexes[i]=new r),n}getWorkerSource(i,r,n){return this.workerSources[i]||(this.workerSources[i]={}),this.workerSources[i][r]||(this.workerSources[i][r]={}),this.workerSources[i][r][n]||(this.workerSources[i][r][n]=new this.workerSourceTypes[r]({send:(r,n,o,s,a,l)=>{this.actor.send(r,n,o,i,a,l)},scheduler:this.actor.scheduler},this.getLayerIndex(i),this.getAvailableImages(i),this.isSpriteLoaded[i])),this.workerSources[i][r][n]}getDEMWorkerSource(i,r){return this.demWorkerSources[i]||(this.demWorkerSources[i]={}),this.demWorkerSources[i][r]||(this.demWorkerSources[i][r]=new o),this.demWorkerSources[i][r]}enforceCacheSizeLimit(r,n){i.enforceCacheSizeLimit(n)}getWorkerPerformanceMetrics(i,r,n){n(void 0,void 0)}}return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope&&(self.worker=new eu(self)),eu}),o(["./shared"],function(i){function r(i){var o;return"undefined"!=typeof window&&"undefined"!=typeof document&&!!Array.prototype&&!!Array.prototype.every&&!!Array.prototype.filter&&!!Array.prototype.forEach&&!!Array.prototype.indexOf&&!!Array.prototype.lastIndexOf&&!!Array.prototype.map&&!!Array.prototype.some&&!!Array.prototype.reduce&&!!Array.prototype.reduceRight&&!!Array.isArray&&!!Function.prototype&&!!Function.prototype.bind&&!!Object.keys&&!!Object.create&&!!Object.getPrototypeOf&&!!Object.getOwnPropertyNames&&!!Object.isSealed&&!!Object.isFrozen&&!!Object.isExtensible&&!!Object.getOwnPropertyDescriptor&&!!Object.defineProperty&&!!Object.defineProperties&&!!Object.seal&&!!Object.freeze&&!!Object.preventExtensions&&!!("JSON"in window&&"parse"in JSON&&"stringify"in JSON)&&!!function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var i,r,n=new Blob([""],{type:"text/javascript"}),o=URL.createObjectURL(n);try{r=new Worker(o),i=!0}catch(s){i=!1}return r&&r.terminate(),URL.revokeObjectURL(o),i}()&&"Uint8ClampedArray"in window&&!!ArrayBuffer.isView&&!!function(){var i=document.createElement("canvas");i.width=i.height=1;var r=i.getContext("2d");if(!r)return!1;var n=r.getImageData(0,0,1,1);return n&&n.width===i.width}()&&(void 0===n[o=i&&i.failIfMajorPerformanceCaveat]&&(n[o]=function(i){var n,o,s,a=(n=document.createElement("canvas"),(o=Object.create(r.webGLContextAttributes)).failIfMajorPerformanceCaveat=i,n.getContext("webgl",o)||n.getContext("experimental-webgl",o));if(!a)return!1;try{s=a.createShader(a.VERTEX_SHADER)}catch(l){return!1}return!(!s||a.isContextLost())&&(a.shaderSource(s,"void main() {}"),a.compileShader(s),!0===a.getShaderParameter(s,a.COMPILE_STATUS))}(o)),!!n[o]&&!document.documentMode)}var n={};function o(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=n*a-s*o;return l?(i[0]=a*(l=1/l),i[1]=-o*l,i[2]=-s*l,i[3]=n*l,i):null}function s(i,r){if(Array.isArray(i)){if(!Array.isArray(r)||i.length!==r.length)return!1;for(let n=0;n{i.window.removeEventListener("click",h,!0)},0)},a.mousePos=function(i,r){const n=i.getBoundingClientRect();return u(i,n,r)},a.touchPos=function(i,r){const n=i.getBoundingClientRect(),o=[];for(let s=0;s=0?0:r.button};class d extends i.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new i.RGBAImage({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(i){if(this.loaded!==i&&(this.loaded=i,i)){for(const{ids:r,callback:n}of this.requestors)this._notify(r,n);this.requestors=[]}}getImage(i){return this.images[i]}addImage(i,r){this._validate(i,r)&&(this.images[i]=r)}_validate(r,n){let o=!0;return this._validateStretch(n.stretchX,n.data&&n.data.width)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "stretchX" value`))),o=!1),this._validateStretch(n.stretchY,n.data&&n.data.height)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "stretchY" value`))),o=!1),this._validateContent(n.content,n)||(this.fire(new i.ErrorEvent(Error(`Image "${r}" has invalid "content" value`))),o=!1),o}_validateStretch(i,r){if(!i)return!0;let n=0;for(const o of i){if(o[0]{this.ready=!0})}broadcast(r,n,o){i.asyncAll(this.actors,(i,o)=>{i.send(r,n,o)},o=o||function(){})}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach(i=>{i.remove()}),this.actors=[],this.workerPool.release(this.id)}}function S(r,n,o){return n*(i.EXTENT/(r.tileSize*Math.pow(2,o-r.tileID.overscaledZ)))}E.Actor=i.Actor;class I{constructor(i,r,n){this.context=i;const o=i.gl;this.buffer=o.createBuffer(),this.dynamicDraw=Boolean(n),this.context.unbindVAO(),i.bindElementBuffer.set(this.buffer),o.bufferData(o.ELEMENT_ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?o.DYNAMIC_DRAW:o.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(i){const r=this.context.gl;this.context.unbindVAO(),this.bind(),r.bufferSubData(r.ELEMENT_ARRAY_BUFFER,0,i.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const M={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class A{constructor(i,r,n,o){this.length=r.length,this.attributes=n,this.itemSize=r.bytesPerElement,this.dynamicDraw=o,this.context=i;const s=i.gl;this.buffer=s.createBuffer(),i.bindVertexBuffer.set(this.buffer),s.bufferData(s.ARRAY_BUFFER,r.arrayBuffer,this.dynamicDraw?s.DYNAMIC_DRAW:s.STATIC_DRAW),this.dynamicDraw||delete r.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(i){const r=this.context.gl;this.bind(),r.bufferSubData(r.ARRAY_BUFFER,0,i.arrayBuffer)}enableAttributes(i,r){for(let n=0;no.pointCoordinate3D(i)),this.cameraGeometry=this.bufferedCameraGeometry(0)}static createFromScreenPoints(r,n){let o,s;if(r instanceof i.pointGeometry||"number"==typeof r[0]){const a=i.pointGeometry.convert(r);o=[i.pointGeometry.convert(r)],s=n.isPointAboveHorizon(a)}else{const l=i.pointGeometry.convert(r[0]),c=i.pointGeometry.convert(r[1]);o=[l,c],s=i.polygonizeBounds(l,c).every(i=>n.isPointAboveHorizon(i))}return new ep(o,n.getCameraPoint(),s,n)}isPointQuery(){return 1===this.screenBounds.length}bufferedScreenGeometry(r){return i.polygonizeBounds(this.screenBounds[0],1===this.screenBounds.length?this.screenBounds[0]:this.screenBounds[1],r)}bufferedCameraGeometry(r){const n=this.screenBounds[0],o=1===this.screenBounds.length?this.screenBounds[0].add(new i.pointGeometry(1,1)):this.screenBounds[1],s=i.polygonizeBounds(n,o,0,!1);return this.cameraPoint.y>o.y&&(this.cameraPoint.x>n.x&&this.cameraPoint.x=o.x?s[2]=this.cameraPoint:this.cameraPoint.x<=n.x&&(s[3]=this.cameraPoint)),i.bufferConvexPolygon(s,r)}containsTile(r,n,o){var s;const a=r.queryPadding+1,l=r.tileID.wrap,c=o?this._bufferedCameraMercator(a,n).map(n=>i.getTilePoint(r.tileTransform,n,l)):this._bufferedScreenMercator(a,n).map(n=>i.getTilePoint(r.tileTransform,n,l)),h=this.screenGeometryMercator.map(n=>i.getTileVec3(r.tileTransform,n,l)),u=h.map(r=>new i.pointGeometry(r[0],r[1])),d=n.getFreeCameraOptions().position||new i.MercatorCoordinate(0,0,0),p=i.getTileVec3(r.tileTransform,d,l),f=h.map(r=>{const n=i.sub(r,r,p);return i.normalize(n,n),new i.Ray(p,n)}),m=S(r,1,n.zoom);if(i.polygonIntersectsBox(c,0,0,i.EXTENT,i.EXTENT))return{queryGeometry:this,tilespaceGeometry:u,tilespaceRays:f,bufferedTilespaceGeometry:c,bufferedTilespaceBounds:((s=i.getBounds(c)).min.x=i.clamp(s.min.x,0,i.EXTENT),s.min.y=i.clamp(s.min.y,0,i.EXTENT),s.max.x=i.clamp(s.max.x,0,i.EXTENT),s.max.y=i.clamp(s.max.y,0,i.EXTENT),s),tile:r,tileID:r.tileID,pixelToTileUnitsFactor:m}}_bufferedScreenMercator(i,r){const n=ef(i);if(this._screenRaycastCache[n])return this._screenRaycastCache[n];{const o=this.bufferedScreenGeometry(i).map(i=>r.pointCoordinate3D(i));return this._screenRaycastCache[n]=o,o}}_bufferedCameraMercator(i,r){const n=ef(i);if(this._cameraRaycastCache[n])return this._cameraRaycastCache[n];{const o=this.bufferedCameraGeometry(i).map(i=>r.pointCoordinate3D(i));return this._cameraRaycastCache[n]=o,o}}}function ef(i){return 100*i|0}function em(r,n,o){const s=function(s,a){if(s)return o(s);if(a){const l=i.pick(i.extend(a,r),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);a.vector_layers&&(l.vectorLayers=a.vector_layers,l.vectorLayerIds=l.vectorLayers.map(i=>i.id)),l.tiles=n.canonicalizeTileset(l,r.url),o(null,l)}};return r.url?i.getJSON(n.transformRequest(n.normalizeSourceURL(r.url),i.ResourceType.Source),s):i.exported.frame(()=>s(null,r))}class e_{constructor(r,n,o){this.bounds=i.LngLatBounds.convert(this.validateBounds(r)),this.minzoom=n||0,this.maxzoom=o||24}validateBounds(i){return Array.isArray(i)&&4===i.length?[Math.max(-180,i[0]),Math.max(-90,i[1]),Math.min(180,i[2]),Math.min(90,i[3])]:[-180,-90,180,90]}contains(r){const n=Math.pow(2,r.z),o=Math.floor(i.mercatorXfromLng(this.bounds.getWest())*n),s=Math.floor(i.mercatorYfromLat(this.bounds.getNorth())*n),a=Math.ceil(i.mercatorXfromLng(this.bounds.getEast())*n),l=Math.ceil(i.mercatorYfromLat(this.bounds.getSouth())*n);return r.x>=o&&r.x=s&&r.y{this._tileJSONRequest=null,this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(i.extend(this,n),n.bounds&&(this.tileBounds=new e_(n.bounds,this.minzoom,this.maxzoom)),i.postTurnstileEvent(n.tiles),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}onAdd(i){this.map=i,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return i.extend({},this._options)}hasTile(i){return!this.tileBounds||this.tileBounds.contains(i.canonical)}loadTile(r,n){const o=i.exported.devicePixelRatio>=2,s=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),o,this.tileSize);r.request=i.getImage(this.map._requestManager.transformRequest(s,i.ResourceType.Tile),(o,s,a,l)=>{if(delete r.request,r.aborted)r.state="unloaded",n(null);else if(o)r.state="errored",n(o);else if(s){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:a,expires:l});const c=this.map.painter.context,h=c.gl;r.texture=this.map.painter.getTileTexture(s.width),r.texture?r.texture.update(s,{useMipmap:!0}):(r.texture=new i.Texture(c,s,h.RGBA,{useMipmap:!0}),r.texture.bind(h.LINEAR,h.CLAMP_TO_EDGE),c.extTextureFilterAnisotropic&&h.texParameterf(h.TEXTURE_2D,c.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,c.extTextureFilterAnisotropicMax)),r.state="loaded",i.cacheEntryPossiblyAdded(this.dispatcher),n(null)}})}abortTile(i,r){i.request&&(i.request.cancel(),delete i.request),r()}unloadTile(i,r){i.texture&&this.map.painter.saveTileTexture(i.texture),r()}hasTransition(){return!1}}function ey(r,n,o,s,a,l,c,h){const u=[r,o,a,n,s,l,1,1,1],d=[c,h,1],p=i.adjoint([],u),[f,m,_]=i.transformMat3(d,d,i.transpose(p,p));return i.multiply(u,[f,0,0,0,m,0,0,0,_],u)}class ex extends i.Evented{constructor(i,r,n,o){super(),this.id=i,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(o),this.options=r}load(r,n){this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this.url=this.options.url,i.getImage(this.map._requestManager.transformRequest(this.url,i.ResourceType.Image),(o,s)=>{this._loaded=!0,o?this.fire(new i.ErrorEvent(o)):s&&(this.image=i.exported.getImageData(s),this.width=this.image.width,this.height=this.image.height,r&&(this.coordinates=r),n&&n(),this._finishLoading())})}loaded(){return this._loaded}updateImage(i){return this.image&&i.url&&(this.options.url=i.url,this.load(i.coordinates,()=>{this.texture=null})),this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(i){this.map=i,this.load()}setCoordinates(r){this.coordinates=r,delete this._boundsArray;const n=r.map(i.MercatorCoordinate.fromLngLat);return this.tileID=function(r){let n=1/0,o=1/0,s=-1/0,a=-1/0;for(const l of r)n=Math.min(n,l.x),o=Math.min(o,l.y),s=Math.max(s,l.x),a=Math.max(a,l.y);const c=Math.max(s-n,a-o),h=Math.max(0,Math.floor(-Math.log(c)/Math.LN2)),u=Math.pow(2,h);return new i.CanonicalTileID(h,Math.floor((n+s)/2*u),Math.floor((o+a)/2*u))}(n),this.minzoom=this.maxzoom=this.tileID.z,this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})),this}_clear(){delete this._boundsArray}_makeBoundsArray(){const r=i.tileTransform(this.tileID,this.map.transform.projection),[n,o,s,a]=this.coordinates.map(n=>{const o=r.projection.project(n[0],n[1]);return i.getTilePoint(r,o)._round()});return this.perspectiveTransform=function(r,n,o,s,a,l,c,h,u,d){const p=ey(0,0,r,0,0,n,r,n),f=ey(o,s,a,l,c,h,u,d);return i.multiply(f,i.adjoint(p,p),f),[f[6]/f[8]*r/i.EXTENT,f[7]/f[8]*n/i.EXTENT]}(this.width,this.height,n.x,n.y,o.x,o.y,a.x,a.y,s.x,s.y),this._boundsArray=new i.StructArrayLayout4i8,this._boundsArray.emplaceBack(n.x,n.y,0,0),this._boundsArray.emplaceBack(o.x,o.y,i.EXTENT,0),this._boundsArray.emplaceBack(a.x,a.y,0,i.EXTENT),this._boundsArray.emplaceBack(s.x,s.y,i.EXTENT,i.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this}prepare(){if(0===Object.keys(this.tiles).length||!this.image)return;const r=this.map.painter.context,n=r.gl;for(const o in this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new i.Texture(r,this.image,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE)),this.tiles){const s=this.tiles[o];"loaded"!==s.state&&(s.state="loaded",s.texture=this.texture)}}loadTile(i,r){this.tileID&&this.tileID.equals(i.tileID.canonical)?(this.tiles[String(i.tileID.wrap)]=i,i.buckets={},r(null)):(i.state="errored",r(null))}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}const ev={vector:class extends i.Evented{constructor(r,n,o,s){if(super(),this.id=r,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,i.extend(this,i.pick(n,["url","scheme","tileSize","promoteId"])),this._options=i.extend({type:"vector"},n),this._collectResourceTiming=n.collectResourceTiming,512!==this.tileSize)throw Error("vector tile sources must have a tileSize of 512");this.setEventedParent(s),this._tileWorkers={},this._deduped=new i.DedupedRequest}load(){this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=em(this._options,this.map._requestManager,(r,n)=>{this._tileJSONRequest=null,this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(i.extend(this,n),n.bounds&&(this.tileBounds=new e_(n.bounds,this.minzoom,this.maxzoom)),i.postTurnstileEvent(n.tiles,this.map._requestManager._customAccessToken),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})))})}loaded(){return this._loaded}hasTile(i){return!this.tileBounds||this.tileBounds.contains(i.canonical)}onAdd(i){this.map=i,this.load()}setSourceProperty(i){this._tileJSONRequest&&this._tileJSONRequest.cancel(),i();const r=this.map.style._getSourceCaches(this.id);for(const n of r)n.clearTiles();this.load()}setTiles(i){return this.setSourceProperty(()=>{this._options.tiles=i}),this}setUrl(i){return this.setSourceProperty(()=>{this.url=i,this._options.url=i}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)}serialize(){return i.extend({},this._options)}loadTile(r,n){const o=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme)),s={request:this.map._requestManager.transformRequest(o,i.ResourceType.Tile),data:void 0,uid:r.uid,tileID:r.tileID,tileZoom:r.tileZoom,zoom:r.tileID.overscaledZ,tileSize:this.tileSize*r.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:i.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId,isSymbolTile:r.isSymbolTile};if(s.request.collectResourceTiming=this._collectResourceTiming,r.actor&&"expired"!==r.state)"loading"===r.state?r.reloadCallback=n:r.request=r.actor.send("reloadTile",s,l.bind(this));else if(r.actor=this._tileWorkers[o]=this._tileWorkers[o]||this.dispatcher.getActor(),this.dispatcher.ready)r.request=r.actor.send("loadTile",s,l.bind(this),void 0,!0);else{const a=i.loadVectorTile.call({deduped:this._deduped},s,(i,n)=>{i||!n?l.call(this,i):(s.data={cacheControl:n.cacheControl,expires:n.expires,rawData:n.rawData.slice(0)},r.actor&&r.actor.send("loadTile",s,l.bind(this),void 0,!0))},!0);r.request={cancel:a}}function l(o,s){return delete r.request,r.aborted?n(null):o&&404!==o.status?n(o):(s&&s.resourceTiming&&(r.resourceTiming=s.resourceTiming),this.map._refreshExpiredTiles&&s&&r.setExpiryData(s),r.loadVectorData(s,this.map.painter),i.cacheEntryPossiblyAdded(this.dispatcher),n(null),void(r.reloadCallback&&(this.loadTile(r,r.reloadCallback),r.reloadCallback=null)))}}abortTile(i){i.request&&(i.request.cancel(),delete i.request),i.actor&&i.actor.send("abortTile",{uid:i.uid,type:this.type,source:this.id})}unloadTile(i){i.unloadVectorData(),i.actor&&i.actor.send("removeTile",{uid:i.uid,type:this.type,source:this.id})}hasTransition(){return!1}afterUpdate(){this._tileWorkers={}}},raster:eg,"raster-dem":class extends eg{constructor(r,n,o,s){super(r,n,o,s),this.type="raster-dem",this.maxzoom=22,this._options=i.extend({type:"raster-dem"},n),this.encoding=n.encoding||"mapbox"}loadTile(r,n){const o=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function s(i,o){i&&(r.state="errored",n(i)),o&&(r.dem=o,r.dem.onDeserialize(),r.needsHillshadePrepare=!0,r.needsDEMTextureUpload=!0,r.state="loaded",n(null))}r.request=i.getImage(this.map._requestManager.transformRequest(o,i.ResourceType.Tile),(function(o,a,l,c){if(delete r.request,r.aborted)r.state="unloaded",n(null);else if(o)r.state="errored",n(o);else if(a){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:l,expires:c});const h=i.window.ImageBitmap&&a instanceof i.window.ImageBitmap&&(null==rR&&(rR=i.window.OffscreenCanvas&&new i.window.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof i.window.createImageBitmap),rR),u=1-(a.width-i.prevPowerOfTwo(a.width))/2;u<1||r.neighboringTiles||(r.neighboringTiles=this._getNeighboringTiles(r.tileID));const d=h?a:i.exported.getImageData(a,u),p={uid:r.uid,coord:r.tileID,source:this.id,rawImageData:d,encoding:this.encoding,padding:u};r.actor&&"expired"!==r.state||(r.actor=this.dispatcher.getActor(),r.actor.send("loadDEMTile",p,s.bind(this),void 0,!0))}}).bind(this))}_getNeighboringTiles(r){const n=r.canonical,o=Math.pow(2,n.z),s=(n.x-1+o)%o,a=0===n.x?r.wrap-1:r.wrap,l=(n.x+1+o)%o,c=n.x+1===o?r.wrap+1:r.wrap,h={};return h[new i.OverscaledTileID(r.overscaledZ,a,n.z,s,n.y).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,c,n.z,l,n.y).key]={backfilled:!1},n.y>0&&(h[new i.OverscaledTileID(r.overscaledZ,a,n.z,s,n.y-1).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,r.wrap,n.z,n.x,n.y-1).key]={backfilled:!1},h[new i.OverscaledTileID(r.overscaledZ,c,n.z,l,n.y-1).key]={backfilled:!1}),n.y+1{if(this._loaded=!0,this._pendingLoad=null,r)this.fire(new i.ErrorEvent(r));else{const o={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&n&&n.resourceTiming&&n.resourceTiming[this.id]&&(o.resourceTiming=n.resourceTiming[this.id]),this.fire(new i.Event("data",o)),this._metadataFired=!0}this._coalesce&&(this._updateWorkerData(),this._coalesce=!1)})}loaded(){return this._loaded}loadTile(r,n){const o=r.actor?"reloadTile":"loadTile";r.actor=this.actor,r.request=this.actor.send(o,{type:this.type,uid:r.uid,tileID:r.tileID,tileZoom:r.tileZoom,zoom:r.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:i.exported.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(i,s)=>(delete r.request,r.unloadVectorData(),r.aborted?n(null):i?n(i):(r.loadVectorData(s,this.map.painter,"reloadTile"===o),n(null))),void 0,"loadTile"===o)}abortTile(i){i.request&&(i.request.cancel(),delete i.request),i.aborted=!0}unloadTile(i){i.unloadVectorData(),this.actor.send("removeTile",{uid:i.uid,type:this.type,source:this.id})}onRemove(){this._pendingLoad&&this._pendingLoad.cancel()}serialize(){return i.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}},video:class extends ex{constructor(i,r,n,o){super(i,r,n,o),this.roundZoom=!0,this.type="video",this.options=r}load(){this._loaded=!1;const r=this.options;for(const n of(this.urls=[],r.urls))this.urls.push(this.map._requestManager.transformRequest(n,i.ResourceType.Source).url);i.getVideo(this.urls,(r,n)=>{this._loaded=!0,r?this.fire(new i.ErrorEvent(r)):n&&(this.video=n,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(r){if(this.video){const n=this.video.seekable;rn.end(0)?this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${n.start(0)} and ${n.end(0)}-second mark.`))):this.video.currentTime=r}}getVideo(){return this.video}onAdd(i){this.map||(this.map=i,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 r=this.map.painter.context,n=r.gl;for(const o in this.texture?this.video.paused||(this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),n.texSubImage2D(n.TEXTURE_2D,0,0,0,n.RGBA,n.UNSIGNED_BYTE,this.video)):(this.texture=new i.Texture(r,this.video,n.RGBA),this.texture.bind(n.LINEAR,n.CLAMP_TO_EDGE),this.width=this.video.videoWidth,this.height=this.video.videoHeight),this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.tiles){const s=this.tiles[o];"loaded"!==s.state&&(s.state="loaded",s.texture=this.texture)}}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:ex,canvas:class extends ex{constructor(r,n,o,s){super(r,n,o,s),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some(i=>!Array.isArray(i)||2!==i.length||i.some(i=>"number"!=typeof i))||this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof i.window.HTMLCanvasElement||this.fire(new i.ErrorEvent(new i.ValidationError(`sources.${r}`,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 i.ErrorEvent(new i.ValidationError(`sources.${r}`,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof i.window.HTMLCanvasElement?this.options.canvas:i.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new i.ErrorEvent(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(i){this.map=i,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let r=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,r=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,r=!0),this._hasInvalidDimensions()||0===Object.keys(this.tiles).length)return;const n=this.map.painter.context,o=n.gl;for(const s in this._boundsArray||this._makeBoundsArray(),this.boundsBuffer||(this.boundsBuffer=n.createVertexBuffer(this._boundsArray,i.boundsAttributes.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(r||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new i.Texture(n,this.canvas,o.RGBA,{premultiply:!0}),this.tiles){const a=this.tiles[s];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const i of[this.canvas.width,this.canvas.height])if(isNaN(i)||i<=0)return!0;return!1}}},eb=function(r,n,o,s){const a=new ev[n.type](r,n,o,s);if(a.id!==r)throw Error(`Expected Source id to be ${r} instead of ${a.id}`);return i.bindAll(["load","abort","unload","serialize","prepare"],a),a};function ew(i,r){const n=i.tileID,o=r.tileID;return n.overscaledZ-o.overscaledZ||n.canonical.y-o.canonical.y||n.wrap-o.wrap||n.canonical.x-o.canonical.x}function eT(){return null!=rq.workerClass?new rq.workerClass:new i.window.Worker(rq.workerUrl)}const eE="mapboxgl_preloaded_worker_pool";class eS{constructor(){this.active={}}acquire(i){if(!this.workers)for(this.workers=[];this.workers.length{i.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[eE]}numActive(){return Object.keys(this.active).length}}function eI(){return rF||(rF=new eS),rF}function eM(r){r=r.slice();const n=Object.create(null);for(let o=0;o{i in n&&(o[i]=n[i])}),o}(r[s],n[r[s].ref]));return r}eS.workerCount=2;const eA={setStyle:"setStyle",addLayer:"addLayer",removeLayer:"removeLayer",setPaintProperty:"setPaintProperty",setLayoutProperty:"setLayoutProperty",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",setProjection:"setProjection"};function eC(i,r,n){n.push({command:eA.addSource,args:[i,r[i]]})}function ez(i,r,n){r.push({command:eA.removeSource,args:[i]}),n[i]=!0}function ek(i,r,n,o,a,l){let c;for(c in r=r||{},i=i||{})i.hasOwnProperty(c)&&(s(i[c],r[c])||n.push({command:l,args:[o,c,r[c],a]}));for(c in r)r.hasOwnProperty(c)&&!i.hasOwnProperty(c)&&(s(i[c],r[c])||n.push({command:l,args:[o,c,r[c],a]}))}function eP(i){return i.id}function eD(i,r){return i[r.id]=r,i}class eL{constructor(i,r){this.reset(i,r)}reset(i,r){this.points=i||[],this._distances=[0];for(let n=1;n0?(s-l)/c:0;return this.points[a].mult(1-h).add(this.points[n].mult(h))}}class eB{constructor(i,r,n){const o=this.boxCells=[],s=this.circleCells=[];this.xCellCount=Math.ceil(i/n),this.yCellCount=Math.ceil(r/n);for(let a=0;athis.width||o<0||r>this.height)return!s&&[];const l=[];if(i<=0&&r<=0&&this.width<=n&&this.height<=o){if(s)return!0;for(let c=0;c0:l}_queryCircle(i,r,n,o,s){const a=i-n,l=i+n,c=r-n,h=r+n;if(l<0||a>this.width||h<0||c>this.height)return!o&&[];const u=[];return this._forEachCell(a,c,l,h,this._queryCellCircle,u,{hitTest:o,circle:{x:i,y:r,radius:n},seenUids:{box:{},circle:{}}},s),o?u.length>0:u}query(i,r,n,o,s){return this._query(i,r,n,o,!1,s)}hitTest(i,r,n,o,s){return this._query(i,r,n,o,!0,s)}hitTestCircle(i,r,n,o){return this._queryCircle(i,r,n,!0,o)}_queryCell(i,r,n,o,s,a,l,c){const h=l.seenUids,u=this.boxCells[s];if(null!==u){const d=this.bboxes;for(const p of u)if(!h.box[p]){h.box[p]=!0;const f=4*p;if(i<=d[f+2]&&r<=d[f+3]&&n>=d[f+0]&&o>=d[f+1]&&(!c||c(this.boxKeys[p]))){if(l.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:d[f],y1:d[f+1],x2:d[f+2],y2:d[f+3]})}}}const m=this.circleCells[s];if(null!==m){const _=this.circles;for(const g of m)if(!h.circle[g]){h.circle[g]=!0;const y=3*g;if(this._circleAndRectCollide(_[y],_[y+1],_[y+2],i,r,n,o)&&(!c||c(this.circleKeys[g]))){if(l.hitTest)return a.push(!0),!0;{const x=_[y],v=_[y+1],b=_[y+2];a.push({key:this.circleKeys[g],x1:x-b,y1:v-b,x2:x+b,y2:v+b})}}}}}_queryCellCircle(i,r,n,o,s,a,l,c){const h=l.circle,u=l.seenUids,d=this.boxCells[s];if(null!==d){const p=this.bboxes;for(const f of d)if(!u.box[f]){u.box[f]=!0;const m=4*f;if(this._circleAndRectCollide(h.x,h.y,h.radius,p[m+0],p[m+1],p[m+2],p[m+3])&&(!c||c(this.boxKeys[f])))return a.push(!0),!0}}const _=this.circleCells[s];if(null!==_){const g=this.circles;for(const y of _)if(!u.circle[y]){u.circle[y]=!0;const x=3*y;if(this._circlesCollide(g[x],g[x+1],g[x+2],h.x,h.y,h.radius)&&(!c||c(this.circleKeys[y])))return a.push(!0),!0}}}_forEachCell(i,r,n,o,s,a,l,c){const h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(r),d=this._convertToXCellCoord(n),p=this._convertToYCellCoord(o);for(let f=h;f<=d;f++)for(let m=u;m<=p;m++)if(s.call(this,i,r,n,o,this.xCellCount*m+f,a,l,c))return}_convertToXCellCoord(i){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(i*this.xScale)))}_convertToYCellCoord(i){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(i*this.yScale)))}_circlesCollide(i,r,n,o,s,a){const l=o-i,c=s-r,h=n+a;return h*h>l*l+c*c}_circleAndRectCollide(i,r,n,o,s,a,l){const c=(a-o)/2,h=Math.abs(i-(o+c));if(h>c+n)return!1;const u=(l-s)/2,d=Math.abs(r-(s+u));if(d>u+n)return!1;if(h<=c||d<=u)return!0;const p=h-c,f=d-u;return p*p+f*f<=n*n}}const eR=Math.tan(85*Math.PI/180);function eF(r,n,s,a,l,c){let h=i.create();if(s){if("globe"===l.projection.name)h=i.calculateGlobeMatrix(l,l.worldSize/l._projectionScaler,[0,0]),i.multiply$1(h,h,i.globeDenormalizeECEF(i.globeTileBounds(n)));else{const u=o([],c);h[0]=u[0],h[1]=u[1],h[4]=u[2],h[5]=u[3]}a||i.rotateZ(h,h,l.angle)}else i.multiply$1(h,l.labelPlaneMatrix,r);return h}function eO(r,n,o,s,a,l){if(o){if("globe"===a.projection.name){const c=eF(r,n,o,s,a,l);return i.invert(c,c),i.multiply$1(c,r,c),c}{const h=i.clone(r),u=i.identity([]);return u[0]=l[0],u[1]=l[1],u[4]=l[2],u[5]=l[3],i.multiply$1(h,h,u),s||i.rotateZ(h,h,-a.angle),h}}return a.glCoordMatrix}function eU(r,n,o=0){const s=[r.x,r.y,o,1];o?i.transformMat4$1(s,s,n):eH(s,s,n);const a=s[3];return{point:new i.pointGeometry(s[0]/a,s[1]/a),signedDistanceFromCamera:a}}function eV(i,r){return Math.min(.5+i/r*.5,1.5)}function eN(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_){const g=c.glyphStartIndex+c.numGlyphs,y=c.lineStartIndex,x=c.lineStartIndex+c.lineLength,v=r.getoffsetX(c.glyphStartIndex),b=r.getoffsetX(g-1),w=eq(i*v,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);if(!w)return null;const T=eq(i*b,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);return T?{first:w,last:T}:null}function ej(r,n,o,s){return r.writingMode===i.WritingMode.horizontal&&Math.abs(o.y-n.y)>Math.abs(o.x-n.x)*s?{useVertical:!0}:r.writingMode===i.WritingMode.vertical?n.yeR}(n,o,s)?1===r.flipState?{needsFlipping:!0}:null:n.x>o.x?{needsFlipping:!0}:null}function eG(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){let v;const b=n/24,w=r.lineOffsetX*b,T=r.lineOffsetY*b;if(r.numGlyphs>1){const E=r.glyphStartIndex+r.numGlyphs,S=r.lineStartIndex,I=r.lineStartIndex+r.lineLength,M=eN(b,h,w,T,o,p,f,r,u,l,m,g,!1,y,x);if(!M)return{notEnoughRoom:!0};const A=eU(M.first.point,c).point,C=eU(M.last.point,c).point;if(s&&!o){const z=ej(r,A,C,_);if(r.flipState=z&&z.needsFlipping?1:2,z)return z}v=[M.first];for(let k=r.glyphStartIndex+1;k0?B.point:e$(f,L,P,1,a,void 0,y,x.canonical),_);if(r.flipState=R&&R.needsFlipping?1:2,R)return R}const F=eq(b*h.getoffsetX(r.glyphStartIndex),w,T,o,p,f,r.segment,r.lineStartIndex,r.lineStartIndex+r.lineLength,u,l,m,g,!1,!1,y,x);if(!F)return{notEnoughRoom:!0};v=[F]}for(const O of v)i.addDynamicAttributes(d,O.point,O.angle);return{}}function eZ(r,n,o,s,a){const l=s.projectTilePoint(r.x,r.y,n);if(!a)return eU(l,o,l.z);const c=a(r);return eU(new i.pointGeometry(l.x+c[0],l.y+c[1]),o,l.z+c[2])}function e$(i,r,n,o,s,a,l,c){const h=eZ(i.add(i.sub(r)._unit()),c,s,l,a).point,u=n.sub(h);return n.add(u._mult(o/u.mag()))}function eq(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){const v=s?r-n:r+n;let b=v>0?1:-1,w=0;s&&(b*=-1,w=Math.PI),b<0&&(w+=Math.PI);let T=b>0?h+c:h+c+1,E=a,S=a,I=0,M=0;const A=Math.abs(v),C=[],z=[];let k=l;const P=()=>{const r=T-b;return 0===I?l:new i.pointGeometry(d.getx(r),d.gety(r))},D=()=>e$(P(),k,S,A-I+1,p,m,y,x.canonical);for(;I+M<=A;){if((T+=b)=u)return null;if(S=E,C.push(E),_&&z.push(k||P()),void 0===(E=f[T])){k=new i.pointGeometry(d.getx(T),d.gety(T));const L=eZ(k,x.canonical,p,y,m);E=L.signedDistanceFromCamera>0?f[T]=L.point:D()}else k=null;I+=M,M=S.dist(E)}g&&m&&(k=k||new i.pointGeometry(d.getx(T),d.gety(T)),f[T]=E=void 0===f[T]?E:D(),M=S.dist(E));const B=(A-I)/M,R=E.sub(S),F=R.mult(B)._add(S);o&&F._add(R._unit()._perp()._mult(o*b));const O=w+Math.atan2(E.y-S.y,E.x-S.x);return C.push(F),_&&(k=k||new i.pointGeometry(d.getx(T),d.gety(T)),z.push(function(r,n,o){const s=1-o;return new i.pointGeometry(r.x*s+n.x*o,r.y*s+n.y*o)}(z.length>0?z[z.length-1]:k,k,B))),{point:F,angle:O,path:C,tilePath:z}}const eX=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function eW(i,r){for(let n=0;n[0,0,0],b=new i.pointGeometry(n.tileAnchorX,n.tileAnchorY),w=this.transform.projection.projectTilePoint(n.tileAnchorX,n.tileAnchorY,_.canonical),T=v(b),E=[w.x+T[0],w.y+T[1],w.z+T[2]],S=this.projectAndGetPerspectiveRatio(l,E[0],E[1],E[2],_),{perspectiveRatio:I}=S,M=(d?a/I:a*I)/i.ONE_EM,A=eU(new i.pointGeometry(E[0],E[1]),c,E[2]).point,C=S.signedDistanceFromCamera>0?eN(M,s,n.lineOffsetX*M,n.lineOffsetY*M,!1,A,b,n,o,c,{},y&&!d?v:null,d&&!!y,this.transform.projection,_):null;let z=!1,k=!1,P=!0;if(C&&!S.aboveHorizon){const D=.5*f*I+m,L=new i.pointGeometry(-100,-100),B=new i.pointGeometry(this.screenRightBoundary,this.screenBottomBoundary),R=new eL,F=C.first,O=C.last;let U=[];for(let V=F.path.length-1;V>=1;V--)U.push(F.path[V]);for(let N=1;N{const n=v(reU(i,h));U=G.some(i=>i.signedDistanceFromCamera<=0)?[]:G.map(i=>i.point)}let Z=[];if(U.length>0){const $=U[0].clone(),q=U[0].clone();for(let X=1;X=L.x&&q.x<=B.x&&$.y>=L.y&&q.y<=B.y?[U]:q.xB.x||q.yB.y?[]:i.clipLine([U],L.x,L.y,B.x,B.y)}for(const W of Z){R.reset(W,.25*D);let H=0;H=R.length<=.5*D?1:Math.ceil(R.paddedLength/j)+1;for(let K=0;K0){i.transformMat4$1(l,l,r);let h=!1;this.fogState&&a&&(h=function(r,n,o,s,a,l){const c=l.calculateFogTileMatrix(a),h=[n,o,s];return i.transformMat4(h,h,c),x(r,h,l.pitch,l._fov)}(this.fogState,n,o,s||0,a.toUnwrapped(),this.transform)>.9),c=l[2]>l[3]||h}else eH(l,l,r);return{point:new i.pointGeometry((l[0]/l[3]+1)/2*this.transform.width+100,(-l[1]/l[3]+1)/2*this.transform.height+100),perspectiveRatio:Math.min(.5+this.transform.cameraToCenterDistance/l[3]*.5,1.5),signedDistanceFromCamera:l[3],aboveHorizon:c}}isOffscreen(i,r,n,o){return n<100||i>=this.screenRightBoundary||o<100||r>this.screenBottomBoundary}isInsideGrid(i,r,n,o){return n>=0&&i=0&&ri.collisionGroupID===r}}return this.collisionGroups[i]}}function e3(r,n,o,s,a){const{horizontalAlign:l,verticalAlign:c}=i.getAnchorAlignment(r),h=i.evaluateVariableOffset(r,s);return new i.pointGeometry(-(l-.5)*n+h[0]*a,-(c-.5)*o+h[1]*a)}function e5(r,n,o,s,a){const l=new i.pointGeometry(r,n);return o&&l._rotate(s?a:-a),l}class e4{constructor(i,r,n,o,s){this.transform=i.clone(),this.collisionIndex=new eK(this.transform,s),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=r,this.retainedQueryData={},this.collisionGroups=new e2(n),this.collisionCircleArrays={},this.prevPlacement=o,o&&(o.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(r,n,o,s){const a=o.getBucket(n),l=o.latestFeatureIndex;if(!a||!l||n.id!==a.layerIds[0])return;const c=a.layers[0].layout,h=o.collisionBoxArray,u=Math.pow(2,this.transform.zoom-o.tileID.overscaledZ),d=o.tileSize/i.EXTENT,p=o.tileID.toUnwrapped(),f=this.transform.calculateProjMatrix(p),m="map"===c.get("text-pitch-alignment"),_="map"===c.get("text-rotation-alignment");n.compileFilter();const g=n.dynamicFilter(),y=n.dynamicFilterNeedsFeature(),x=this.transform.calculatePixelsToTileUnitsMatrix(o),v=eF(f,o.tileID.canonical,m,_,this.transform,x);let b=null;if(m){const w=eO(f,o.tileID.canonical,m,_,this.transform,x);b=i.multiply$1([],this.transform.labelPlaneMatrix,w)}let T=null;g&&o.latestFeatureIndex&&(T={unwrappedTileID:p,dynamicFilter:g,dynamicFilterNeedsFeature:y,featureIndex:o.latestFeatureIndex}),this.retainedQueryData[a.bucketInstanceId]=new e1(a.bucketInstanceId,l,a.sourceLayerIndex,a.index,o.tileID);const E={bucket:a,layout:c,posMatrix:f,textLabelPlaneMatrix:v,labelToScreenMatrix:b,clippingData:T,scale:u,textPixelRatio:d,holdingForFade:o.holdingForFade(),collisionBoxArray:h,partiallyEvaluatedTextSize:i.evaluateSizeForZoom(a.textSizeData,this.transform.zoom),partiallyEvaluatedIconSize:i.evaluateSizeForZoom(a.iconSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(a.sourceID)};if(s)for(const S of a.sortKeyRanges){const{sortKey:I,symbolInstanceStart:M,symbolInstanceEnd:A}=S;r.push({sortKey:I,symbolInstanceStart:M,symbolInstanceEnd:A,parameters:E})}else r.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:E})}attemptAnchorPlacement(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g,y,x){const v=[p.textOffset0,p.textOffset1],b=e3(i,n,o,v,s),w=this.collisionIndex.placeCollisionBox(s,r,e5(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate);if((!g||0!==this.collisionIndex.placeCollisionBox(m.getSymbolInstanceIconSize(x,this.transform.zoom,f),g,e5(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate).box.length)&&w.box.length>0){let T;return this.prevPlacement&&this.prevPlacement.variableOffsets[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID].text&&(T=this.prevPlacement.variableOffsets[p.crossTileID].anchor),this.variableOffsets[p.crossTileID]={textOffset:v,width:n,height:o,anchor:i,textScale:s,prevAnchor:T},this.markUsedJustification(m,i,p,_),m.allowVerticalPlacement&&(this.markUsedOrientation(m,_,p),this.placedOrientations[p.crossTileID]=_),{shift:b,placedGlyphBoxes:w}}}placeLayerBucketPart(r,n,o,s){const{bucket:a,layout:l,posMatrix:c,textLabelPlaneMatrix:h,labelToScreenMatrix:u,clippingData:d,textPixelRatio:p,holdingForFade:f,collisionBoxArray:m,partiallyEvaluatedTextSize:_,partiallyEvaluatedIconSize:g,collisionGroup:y}=r.parameters,x=l.get("text-optional"),v=l.get("icon-optional"),b=l.get("text-allow-overlap"),w=l.get("icon-allow-overlap"),T="map"===l.get("text-rotation-alignment"),E="map"===l.get("text-pitch-alignment"),S="none"!==l.get("icon-text-fit"),I="viewport-y"===l.get("symbol-z-order"),M=b&&(w||!a.hasIconData()||v),A=w&&(b||!a.hasTextData()||x);!a.collisionArrays&&m&&a.deserializeCollisionBoxes(m),o&&s&&a.updateCollisionDebugBuffers(this.transform.zoom,m);const C=(r,s,m)=>{if(d){const I={zoom:this.transform.zoom,pitch:this.transform.pitch};let C=null;if(d.dynamicFilterNeedsFeature){const z=this.retainedQueryData[a.bucketInstanceId];C=d.featureIndex.loadFeature({featureIndex:r.featureIndex,bucketIndex:z.bucketIndex,sourceLayerIndex:z.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,d.dynamicFilter)(I,C,this.retainedQueryData[a.bucketInstanceId].tileID.canonical,new i.pointGeometry(r.tileAnchorX,r.tileAnchorY),this.transform.calculateDistanceTileData(d.unwrappedTileID)))return this.placements[r.crossTileID]=new eQ(!1,!1,!1,!0),void(n[r.crossTileID]=!0)}if(n[r.crossTileID])return;if(f)return void(this.placements[r.crossTileID]=new eQ(!1,!1,!1));let k=!1,P=!1,D=!0,L=null,B={box:null,offscreen:null},R={box:null,offscreen:null},F=null,O=null,U=null,V=0,N=0,j=0;m.textFeatureIndex?V=m.textFeatureIndex:r.useRuntimeCollisionCircles&&(V=r.featureIndex),m.verticalTextFeatureIndex&&(N=m.verticalTextFeatureIndex);const G=i=>{i.tileID=this.retainedQueryData[a.bucketInstanceId].tileID,(this.transform.elevation||i.elevation)&&(i.elevation=this.transform.elevation?this.transform.elevation.getAtTileOffset(this.retainedQueryData[a.bucketInstanceId].tileID,i.tileAnchorX,i.tileAnchorY):0)},Z=m.textBox;if(Z){G(Z);const $=n=>{let o=i.WritingMode.horizontal;if(a.allowVerticalPlacement&&!n&&this.prevPlacement){const s=this.prevPlacement.placedOrientations[r.crossTileID];s&&(this.placedOrientations[r.crossTileID]=s,o=s,this.markUsedOrientation(a,o,r))}return o},q=(n,o)=>{if(a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&m.verticalTextBox){for(const s of a.writingModes)if(s===i.WritingMode.vertical?R=B=o():B=n(),B&&B.box&&B.box.length)break}else B=n()};if(l.get("text-variable-anchor")){let X=l.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[r.crossTileID]){const W=this.prevPlacement.variableOffsets[r.crossTileID];X.indexOf(W.anchor)>0&&(X=X.filter(i=>i!==W.anchor)).unshift(W.anchor)}const H=(i,n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),h=(i.x2-i.x1)*l+2*i.padding,u=(i.y2-i.y1)*l+2*i.padding,d=S&&!w?n:null;d&&G(d);let f={box:[],offscreen:!1};const m=b?2*X.length:X.length;for(let x=0;x=X.length,r,s,a,o,d,_,g);if(v&&(f=v.placedGlyphBoxes)&&f.box&&f.box.length){k=!0,L=v.shift;break}}return f};q(()=>H(Z,m.iconBox,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return n&&G(n),a.allowVerticalPlacement&&!(B&&B.box&&B.box.length)&&r.numVerticalGlyphVertices>0&&n?H(n,m.verticalIconBox,i.WritingMode.vertical):{box:null,offscreen:null}}),B&&(k=B.box,D=B.offscreen);const K=$(B&&B.box);if(!k&&this.prevPlacement){const Y=this.prevPlacement.variableOffsets[r.crossTileID];Y&&(this.variableOffsets[r.crossTileID]=Y,this.markUsedJustification(a,Y.anchor,r,K))}}else{const J=(n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),h=this.collisionIndex.placeCollisionBox(l,n,new i.pointGeometry(0,0),b,p,c,y.predicate);return h&&h.box&&h.box.length&&(this.markUsedOrientation(a,o,r),this.placedOrientations[r.crossTileID]=o),h};q(()=>J(Z,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&n?(G(n),J(n,i.WritingMode.vertical)):{box:null,offscreen:null}}),$(B&&B.box&&B.box.length)}}if(k=(F=B)&&F.box&&F.box.length>0,D=F&&F.offscreen,r.useRuntimeCollisionCircles){const Q=a.text.placedSymbolArray.get(r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex),ee=i.evaluateSizeForFeature(a.textSizeData,_,Q),et=l.get("text-padding");O=this.collisionIndex.placeCollisionCircles(b,Q,a.lineVertexArray,a.glyphOffsetArray,ee,c,h,u,o,E,y.predicate,r.collisionCircleDiameter*ee/i.ONE_EM,et,this.retainedQueryData[a.bucketInstanceId].tileID),k=b||O.circles.length>0&&!O.collisionDetected,D=D&&O.offscreen}if(m.iconFeatureIndex&&(j=m.iconFeatureIndex),m.iconBox){const ei=r=>{G(r);const n=S&&L?e5(L.x,L.y,T,E,this.transform.angle):new i.pointGeometry(0,0),o=a.getSymbolInstanceIconSize(g,this.transform.zoom,s);return this.collisionIndex.placeCollisionBox(o,r,n,w,p,c,y.predicate)};P=R&&R.box&&R.box.length&&m.verticalIconBox?(U=ei(m.verticalIconBox)).box.length>0:(U=ei(m.iconBox)).box.length>0,D=D&&U.offscreen}const er=x||0===r.numHorizontalGlyphVertices&&0===r.numVerticalGlyphVertices,en=v||0===r.numIconVertices;if(er||en?en?er||(P=P&&k):k=P&&k:P=k=P&&k,k&&F&&F.box&&this.collisionIndex.insertCollisionBox(F.box,l.get("text-ignore-placement"),a.bucketInstanceId,R&&R.box&&N?N:V,y.ID),P&&U&&this.collisionIndex.insertCollisionBox(U.box,l.get("icon-ignore-placement"),a.bucketInstanceId,j,y.ID),O&&(k&&this.collisionIndex.insertCollisionCircles(O.circles,l.get("text-ignore-placement"),a.bucketInstanceId,V,y.ID),o)){const eo=a.bucketInstanceId;let es=this.collisionCircleArrays[eo];void 0===es&&(es=this.collisionCircleArrays[eo]=new e0);for(let ea=0;ea=0;--k){const P=z[k];C(a.symbolInstances.get(P),P,a.collisionArrays[P])}}else for(let D=r.symbolInstanceStart;D=0&&(r.text.placedSymbolArray.get(c).crossTileID=a>=0&&c!==a?0:o.crossTileID)}markUsedOrientation(r,n,o){const s=n===i.WritingMode.horizontal||n===i.WritingMode.horizontalOnly?n:0,a=n===i.WritingMode.vertical?n:0,l=[o.leftJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.rightJustifiedTextSymbolIndex];for(const c of l)r.text.placedSymbolArray.get(c).placedOrientation=s;o.verticalPlacedTextSymbolIndex&&(r.text.placedSymbolArray.get(o.verticalPlacedTextSymbolIndex).placedOrientation=a)}commit(i){this.commitTime=i,this.zoomAtLastRecencyCheck=this.transform.zoom;const r=this.prevPlacement;let n=!1;this.prevZoomAdjustment=r?r.zoomAdjustment(this.transform.zoom):0;const o=r?r.symbolFadeChange(i):1,s=r?r.opacities:{},a=r?r.variableOffsets:{},l=r?r.placedOrientations:{};for(const c in this.placements){const h=this.placements[c],u=s[c];u?(this.opacities[c]=new eJ(u,o,h.text,h.icon,null,h.clipped),n=n||h.text!==u.text.placed||h.icon!==u.icon.placed):(this.opacities[c]=new eJ(null,o,h.text,h.icon,h.skipFade,h.clipped),n=n||h.text||h.icon)}for(const d in s){const p=s[d];if(!this.opacities[d]){const f=new eJ(p,o,!1,!1);f.isHidden()||(this.opacities[d]=f,n=n||p.text.placed||p.icon.placed)}}for(const m in a)this.variableOffsets[m]||!this.opacities[m]||this.opacities[m].isHidden()||(this.variableOffsets[m]=a[m]);for(const _ in l)this.placedOrientations[_]||!this.opacities[_]||this.opacities[_].isHidden()||(this.placedOrientations[_]=l[_]);n?this.lastPlacementChangeTime=i:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=r?r.lastPlacementChangeTime:i)}updateLayerOpacities(i,r){const n={};for(const o of r){const s=o.getBucket(i);s&&o.latestFeatureIndex&&i.id===s.layerIds[0]&&this.updateBucketOpacities(s,n,o.collisionBoxArray)}}updateBucketOpacities(r,n,o){r.hasTextData()&&r.text.opacityVertexArray.clear(),r.hasIconData()&&r.icon.opacityVertexArray.clear(),r.hasIconCollisionBoxData()&&r.iconCollisionBox.collisionVertexArray.clear(),r.hasTextCollisionBoxData()&&r.textCollisionBox.collisionVertexArray.clear();const s=r.layers[0].layout,a=!!r.layers[0].dynamicFilter(),l=new eJ(null,0,!1,!1,!0),c=s.get("text-allow-overlap"),h=s.get("icon-allow-overlap"),u=s.get("text-variable-anchor"),d="map"===s.get("text-rotation-alignment"),p="map"===s.get("text-pitch-alignment"),f="none"!==s.get("icon-text-fit"),m=new eJ(null,0,c&&(h||!r.hasIconData()||s.get("icon-optional")),h&&(c||!r.hasTextData()||s.get("text-optional")),!0);!r.collisionArrays&&o&&(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData())&&r.deserializeCollisionBoxes(o);const _=(i,r,n)=>{for(let o=0;o0||b>0,S=x.numIconVertices>0,I=this.placedOrientations[x.crossTileID],M=I===i.WritingMode.vertical,A=I===i.WritingMode.horizontal||I===i.WritingMode.horizontalOnly;if(!E&&!S||T.isHidden()||g++,E){const C=e8(T.text);_(r.text,v,M?e9:C),_(r.text,b,A?e9:C);const z=T.text.isHidden();[x.rightJustifiedTextSymbolIndex,x.centerJustifiedTextSymbolIndex,x.leftJustifiedTextSymbolIndex].forEach(i=>{i>=0&&(r.text.placedSymbolArray.get(i).hidden=z||M?1:0)}),x.verticalPlacedTextSymbolIndex>=0&&(r.text.placedSymbolArray.get(x.verticalPlacedTextSymbolIndex).hidden=z||A?1:0);const k=this.variableOffsets[x.crossTileID];k&&this.markUsedJustification(r,k.anchor,x,I);const P=this.placedOrientations[x.crossTileID];P&&(this.markUsedJustification(r,"left",x,P),this.markUsedOrientation(r,P,x))}if(S){const D=e8(T.icon);x.placedIconSymbolIndex>=0&&(_(r.icon,x.numIconVertices,M?e9:D),r.icon.placedSymbolArray.get(x.placedIconSymbolIndex).hidden=T.icon.isHidden()),x.verticalPlacedIconSymbolIndex>=0&&(_(r.icon,x.numVerticalIconVertices,A?e9:D),r.icon.placedSymbolArray.get(x.verticalPlacedIconSymbolIndex).hidden=T.icon.isHidden())}if(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData()){const L=r.collisionArrays[y];if(L){let B=new i.pointGeometry(0,0),R=!0;if(L.textBox||L.verticalTextBox){if(u){const F=this.variableOffsets[w];F?(B=e3(F.anchor,F.width,F.height,F.textOffset,F.textScale),d&&B._rotate(p?this.transform.angle:-this.transform.angle)):R=!1}a&&(R=!T.clipped),L.textBox&&e6(r.textCollisionBox.collisionVertexArray,T.text.placed,!R||M,B.x,B.y),L.verticalTextBox&&e6(r.textCollisionBox.collisionVertexArray,T.text.placed,!R||A,B.x,B.y)}const O=R&&Boolean(!A&&L.verticalIconBox);L.iconBox&&e6(r.iconCollisionBox.collisionVertexArray,T.icon.placed,O,f?B.x:0,f?B.y:0),L.verticalIconBox&&e6(r.iconCollisionBox.collisionVertexArray,T.icon.placed,!O,f?B.x:0,f?B.y:0)}}}if(r.fullyClipped=0===g,r.sortFeatures(this.transform.angle),this.retainedQueryData[r.bucketInstanceId]&&(this.retainedQueryData[r.bucketInstanceId].featureSortOrder=r.featureSortOrder),r.hasTextData()&&r.text.opacityVertexBuffer&&r.text.opacityVertexBuffer.updateData(r.text.opacityVertexArray),r.hasIconData()&&r.icon.opacityVertexBuffer&&r.icon.opacityVertexBuffer.updateData(r.icon.opacityVertexArray),r.hasIconCollisionBoxData()&&r.iconCollisionBox.collisionVertexBuffer&&r.iconCollisionBox.collisionVertexBuffer.updateData(r.iconCollisionBox.collisionVertexArray),r.hasTextCollisionBoxData()&&r.textCollisionBox.collisionVertexBuffer&&r.textCollisionBox.collisionVertexBuffer.updateData(r.textCollisionBox.collisionVertexArray),r.bucketInstanceId in this.collisionCircleArrays){const U=this.collisionCircleArrays[r.bucketInstanceId];r.placementInvProjMatrix=U.invProjMatrix,r.placementViewportMatrix=U.viewportMatrix,r.collisionCircleArray=U.circles,delete this.collisionCircleArrays[r.bucketInstanceId]}}symbolFadeChange(i){return 0===this.fadeDuration?1:(i-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(i){return Math.max(0,(this.transform.zoom-i)/1.5)}hasTransitions(i){return this.stale||i-this.lastPlacementChangeTimei}setStale(){this.stale=!0}}function e6(i,r,n,o,s){i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0),i.emplaceBack(r?1:0,n?1:0,o||0,s||0)}function e8(i){if(0===i.opacity&&!i.placed)return 0;if(1===i.opacity&&i.placed)return 4294967295;const r=i.placed?1:0,n=Math.floor(127*i.opacity);return 33554432*n+16777216*r+131072*n+65536*r+512*n+256*r+2*n+r}const e9=0;class e7{constructor(i){this._sortAcrossTiles="viewport-y"!==i.layout.get("symbol-z-order")&&void 0!==i.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(i,r,n,o,s){const a=this._bucketParts;for(;this._currentTileIndexi.sortKey-r.sortKey));this._currentPartIndex{const r=i.exported.now()-s;return!this._forceFullPlacement&&r>2};for(;this._currentPlacementIndex>=0;){const l=n[r[this._currentPlacementIndex]],c=this.placement.collisionIndex.transform.zoom;if("symbol"===l.type&&(!l.minzoom||l.minzoom<=c)&&(!l.maxzoom||l.maxzoom>c)){if(this._inProgressLayer||(this._inProgressLayer=new e7(l)),this._inProgressLayer.continuePlacement(o[l.source],this.placement,this._showCollisionBoxes,l,a))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(i){return this.placement.commit(i),this.placement}}const tt=512/i.EXTENT/2;class ti{constructor(i,r,n){this.tileID=i,this.indexedSymbolInstances={},this.bucketInstanceId=n;for(let o=0;oi.overscaledZ)for(const c in l){const h=l[c];h.tileID.isChildOf(i)&&h.findMatches(r.symbolInstances,i,s)}else{const u=l[i.scaledTo(Number(a)).key];u&&u.findMatches(r.symbolInstances,i,s)}}for(let d=0;d{r[i]=!0}),this.layerIndexes)r[n]||delete this.layerIndexes[n]}}const ts=(r,n)=>i.emitValidationErrors(r,n&&n.filter(i=>"source.canvas"!==i.identifier)),ta=i.pick(eA,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),tl=i.pick(eA,["setCenter","setZoom","setBearing","setPitch"]),tc=function(){const r={},n=i.spec.$version;for(const o in i.spec.$root){const s=i.spec.$root[o];if(s.required){let a=null;null!=(a="version"===o?n:"array"===s.type?[]:{})&&(r[o]=a)}}return r}(),th={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class tu extends i.Evented{constructor(r,n={}){super(),this.map=r,this.dispatcher=new E(eI(),this),this.imageManager=new d,this.imageManager.setEventedParent(this),this.glyphManager=new i.GlyphManager(r._requestManager,n.localFontFamily?i.LocalGlyphMode.all:n.localIdeographFontFamily?i.LocalGlyphMode.ideographs:i.LocalGlyphMode.none,n.localFontFamily||n.localIdeographFontFamily),this.lineAtlas=new i.LineAtlas(256,512),this.crossTileSymbolIndex=new to,this._layers={},this._num3DLayers=0,this._numSymbolLayers=0,this._numCircleLayers=0,this._serializedLayers={},this._sourceCaches={},this._otherSourceCaches={},this._symbolSourceCaches={},this.zoomHistory=new i.ZoomHistory,this._loaded=!1,this._availableImages=[],this._order=[],this._drapedFirstOrder=[],this._markersNeedUpdate=!1,this._resetUpdates(),this.dispatcher.broadcast("setReferrer",i.getReferrer());const o=this;this._rtlTextPluginCallback=tu.registerForPluginStateChange(r=>{o.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:r.pluginStatus,pluginURL:r.pluginURL},(r,n)=>{if(i.triggerPluginCompletionEvent(r),n&&n.every(i=>i))for(const s in o._sourceCaches){const a=o._sourceCaches[s],l=a.getSource().type;"vector"!==l&&"geojson"!==l||a.reload()}})}),this.on("data",i=>{if("source"!==i.dataType||"metadata"!==i.sourceDataType)return;const r=this.getSource(i.sourceId);if(r&&r.vectorLayerIds)for(const n in this._layers){const o=this._layers[n];o.source===r.id&&this._validateLayer(o)}})}loadURL(r,n={}){this.fire(new i.Event("dataloading",{dataType:"style"}));const o="boolean"==typeof n.validate?n.validate:!i.isMapboxURL(r);r=this.map._requestManager.normalizeStyleURL(r,n.accessToken);const s=this.map._requestManager.transformRequest(r,i.ResourceType.Style);this._request=i.getJSON(s,(r,n)=>{this._request=null,r?this.fire(new i.ErrorEvent(r)):n&&this._load(n,o)})}loadJSON(r,n={}){this.fire(new i.Event("dataloading",{dataType:"style"})),this._request=i.exported.frame(()=>{this._request=null,this._load(r,!1!==n.validate)})}loadEmpty(){this.fire(new i.Event("dataloading",{dataType:"style"})),this._load(tc,!1)}_updateLayerCount(i,r){const n=r?1:-1;i.is3D()&&(this._num3DLayers+=n),"circle"===i.type&&(this._numCircleLayers+=n),"symbol"===i.type&&(this._numSymbolLayers+=n)}_load(r,n){if(n&&ts(this,i.validateStyle(r)))return;for(const o in this._loaded=!0,this.stylesheet=r,this.updateProjection(),r.sources)this.addSource(o,r.sources[o],{validate:!1});this._changed=!1,r.sprite?this._loadSprite(r.sprite):(this.imageManager.setLoaded(!0),this.dispatcher.broadcast("spriteLoaded",!0)),this.glyphManager.setURL(r.glyphs);const s=eM(this.stylesheet.layers);for(let a of(this._order=s.map(i=>i.id),this._layers={},this._serializedLayers={},s))(a=i.createStyleLayer(a)).setEventedParent(this,{layer:{id:a.id}}),this._layers[a.id]=a,this._serializedLayers[a.id]=a.serialize(),this._updateLayerCount(a,!0);this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new m(this.stylesheet.light),this.stylesheet.terrain&&!this.terrainSetForDrapingOnly()&&this._createTerrain(this.stylesheet.terrain,1),this.stylesheet.fog&&this._createFog(this.stylesheet.fog),this._updateDrapeFirstLayers(),this.fire(new i.Event("data",{dataType:"style"})),this.fire(new i.Event("style.load"))}terrainSetForDrapingOnly(){return this.terrain&&0===this.terrain.drapeRenderMode}setProjection(i){i?this.stylesheet.projection=i:delete this.stylesheet.projection,this.updateProjection()}updateProjection(){const i=this.map.transform.projection,r=this.map.transform.setProjection(this.map._runtimeProjection||(this.stylesheet?this.stylesheet.projection:void 0)),n=this.map.transform.projection;if(this._loaded&&(n.requiresDraping?this.getTerrain()||this.stylesheet.terrain||this.setTerrainForDraping():this.terrainSetForDrapingOnly()&&this.setTerrain(null)),this.dispatcher.broadcast("setProjection",this.map.transform.projectionOptions),r){if(n.isReprojectedInTileSpace||i.isReprojectedInTileSpace)for(const o in this.map.painter.clearBackgroundTiles(),this._sourceCaches)this._sourceCaches[o].clearTiles();else this._forceSymbolLayerUpdate();this.map._update(!0)}}_loadSprite(r){this._spriteRequest=function(r,n,o){let s,a,l;const c=i.exported.devicePixelRatio>1?"@2x":"";let h=i.getJSON(n.transformRequest(n.normalizeSpriteURL(r,c,".json"),i.ResourceType.SpriteJSON),(i,r)=>{h=null,l||(l=i,s=r,d())}),u=i.getImage(n.transformRequest(n.normalizeSpriteURL(r,c,".png"),i.ResourceType.SpriteImage),(i,r)=>{u=null,l||(l=i,a=r,d())});function d(){if(l)o(l);else if(s&&a){const r=i.exported.getImageData(a),n={};for(const c in s){const{width:h,height:u,x:d,y:p,sdf:f,pixelRatio:m,stretchX:_,stretchY:g,content:y}=s[c],x=new i.RGBAImage({width:h,height:u});i.RGBAImage.copy(r,x,{x:d,y:p},{x:0,y:0},{width:h,height:u}),n[c]={data:x,pixelRatio:m,sdf:f,stretchX:_,stretchY:g,content:y}}o(null,n)}}return{cancel(){h&&(h.cancel(),h=null),u&&(u.cancel(),u=null)}}}(r,this.map._requestManager,(r,n)=>{if(this._spriteRequest=null,r)this.fire(new i.ErrorEvent(r));else if(n)for(const o in n)this.imageManager.addImage(o,n[o]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast("setImages",this._availableImages),this.dispatcher.broadcast("spriteLoaded",!0),this.fire(new i.Event("data",{dataType:"style"}))})}_validateLayer(r){const n=this.getSource(r.source);if(!n)return;const o=r.sourceLayer;o&&("geojson"===n.type||n.vectorLayerIds&&-1===n.vectorLayerIds.indexOf(o))&&this.fire(new i.ErrorEvent(Error(`Source layer "${o}" does not exist on source "${n.id}" as specified by style layer "${r.id}"`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const i in this._sourceCaches)if(!this._sourceCaches[i].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeLayers(i){const r=[];for(const n of i){const o=this._layers[n];"custom"!==o.type&&r.push(o.serialize())}return r}hasTransitions(){if(this.light&&this.light.hasTransition()||this.fog&&this.fog.hasTransition())return!0;for(const i in this._sourceCaches)if(this._sourceCaches[i].hasTransition())return!0;for(const r in this._layers)if(this._layers[r].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(i){return!!this.terrain&&th[i.type]}_checkLoaded(){if(!this._loaded)throw Error("Style is not done loading")}update(r){if(!this._loaded)return;const n=this._changed;if(this._changed){const o=Object.keys(this._updatedLayers),s=Object.keys(this._removedLayers);for(const a in(o.length||s.length)&&this._updateWorkerLayers(o,s),this._updatedSources){const l=this._updatedSources[a];"reload"===l?this._reloadSource(a):"clear"===l&&this._clearSource(a)}for(const c in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[c].updateTransitions(r);this.light.updateTransitions(r),this.fog&&this.fog.updateTransitions(r),this._resetUpdates()}const h={};for(const u in this._sourceCaches){const d=this._sourceCaches[u];h[u]=d.used,d.used=!1}for(const p of this._order){const f=this._layers[p];if(f.recalculate(r,this._availableImages),!f.isHidden(r.zoom)){const m=this._getLayerSourceCache(f);m&&(m.used=!0)}const _=this.map.painter;if(_){const g=f.getProgramIds();if(!g)continue;const y=f.getProgramConfiguration(r.zoom);for(const x of g)_.useProgram(x,y)}}for(const v in h){const b=this._sourceCaches[v];h[v]!==b.used&&b.getSource().fire(new i.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:b.getSource().id}))}this.light.recalculate(r),this.terrain&&this.terrain.recalculate(r),this.fog&&this.fog.recalculate(r),this.z=r.zoom,this._markersNeedUpdate&&(this._updateMarkersOpacity(),this._markersNeedUpdate=!1),n&&this.fire(new i.Event("data",{dataType:"style"}))}_updateTilesForChangedImages(){const i=Object.keys(this._changedImages);if(i.length){for(const r in this._sourceCaches)this._sourceCaches[r].reloadTilesForDependencies(["icons","patterns"],i);this._changedImages={}}}_updateWorkerLayers(i,r){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(i),removedIds:r})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}}setState(r){if(this._checkLoaded(),ts(this,i.validateStyle(r)))return!1;(r=i.clone$1(r)).layers=eM(r.layers);const n=(function(i,r){if(!i)return[{command:eA.setStyle,args:[r]}];let n=[];try{if(!s(i.version,r.version))return[{command:eA.setStyle,args:[r]}];s(i.center,r.center)||n.push({command:eA.setCenter,args:[r.center]}),s(i.zoom,r.zoom)||n.push({command:eA.setZoom,args:[r.zoom]}),s(i.bearing,r.bearing)||n.push({command:eA.setBearing,args:[r.bearing]}),s(i.pitch,r.pitch)||n.push({command:eA.setPitch,args:[r.pitch]}),s(i.sprite,r.sprite)||n.push({command:eA.setSprite,args:[r.sprite]}),s(i.glyphs,r.glyphs)||n.push({command:eA.setGlyphs,args:[r.glyphs]}),s(i.transition,r.transition)||n.push({command:eA.setTransition,args:[r.transition]}),s(i.light,r.light)||n.push({command:eA.setLight,args:[r.light]}),s(i.fog,r.fog)||n.push({command:eA.setFog,args:[r.fog]}),s(i.projection,r.projection)||n.push({command:eA.setProjection,args:[r.projection]});const o={},a=[];!function(i,r,n,o){let a;for(a in r=r||{},i=i||{})i.hasOwnProperty(a)&&(r.hasOwnProperty(a)||ez(a,n,o));for(a in r){var l,c;r.hasOwnProperty(a)&&(i.hasOwnProperty(a)?s(i[a],r[a])||("geojson"===i[a].type&&"geojson"===r[a].type&&function(i,r,n){let o;for(o in i[n])if(i[n].hasOwnProperty(o)&&"data"!==o&&!s(i[n][o],r[n][o]))return!1;for(o in r[n])if(r[n].hasOwnProperty(o)&&"data"!==o&&!s(i[n][o],r[n][o]))return!1;return!0}(i,r,a)?n.push({command:eA.setGeoJSONSourceData,args:[a,r[a].data]}):(l=a,c=r,ez(l,n,o),eC(l,c,n))):eC(a,r,n))}}(i.sources,r.sources,a,o);const l=[];i.layers&&i.layers.forEach(i=>{o[i.source]?n.push({command:eA.removeLayer,args:[i.id]}):l.push(i)});let c=i.terrain;c&&o[c.source]&&(n.push({command:eA.setTerrain,args:[void 0]}),c=void 0),n=n.concat(a),s(c,r.terrain)||n.push({command:eA.setTerrain,args:[r.terrain]}),function(i,r,n){let o,a,l,c,h,u,d;r=r||[];const p=(i=i||[]).map(eP),f=r.map(eP),m=i.reduce(eD,{}),_=r.reduce(eD,{}),g=p.slice(),y=Object.create(null);for(o=0,a=0;o!(i.command in tl));if(0===n.length)return!1;const o=n.filter(i=>!(i.command in ta));if(o.length>0)throw Error(`Unimplemented: ${o.map(i=>i.command).join(", ")}.`);return n.forEach(i=>{"setTransition"!==i.command&&this[i.command].apply(this,i.args)}),this.stylesheet=r,this.updateProjection(),!0}addImage(r,n){if(this.getImage(r))return this.fire(new i.ErrorEvent(Error("An image with this name already exists.")));this.imageManager.addImage(r,n),this._afterImageUpdated(r)}updateImage(i,r){this.imageManager.updateImage(i,r)}getImage(i){return this.imageManager.getImage(i)}removeImage(r){if(!this.getImage(r))return this.fire(new i.ErrorEvent(Error("No image with this name exists.")));this.imageManager.removeImage(r),this._afterImageUpdated(r)}_afterImageUpdated(r){this._availableImages=this.imageManager.listImages(),this._changedImages[r]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new i.Event("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this._availableImages.slice()}addSource(r,n,o={}){if(this._checkLoaded(),void 0!==this.getSource(r))throw Error("There is already a source with this ID");if(!n.type)throw Error(`The type property must be defined, but only the following properties were given: ${Object.keys(n).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(n.type)>=0&&this._validate(i.validateStyle.source,`sources.${r}`,n,null,o))return;this.map&&this.map._collectResourceTiming&&(n.collectResourceTiming=!0);const s=eb(r,n,this.dispatcher,this);s.setEventedParent(this,()=>({isSourceLoaded:this.loaded(),source:s.serialize(),sourceId:r}));const a=n=>{const o=(n?"symbol:":"other:")+r,a=this._sourceCaches[o]=new i.SourceCache(o,s,n);(n?this._symbolSourceCaches:this._otherSourceCaches)[r]=a,a.style=this,a.onAdd(this.map)};a(!1),"vector"!==n.type&&"geojson"!==n.type||a(!0),s.onAdd&&s.onAdd(this.map),this._changed=!0}removeSource(r){this._checkLoaded();const n=this.getSource(r);if(void 0===n)throw Error("There is no source with this ID");for(const o in this._layers)if(this._layers[o].source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while layer "${o}" is using it.`)));if(this.terrain&&this.terrain.get().source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while terrain is using it.`)));const s=this._getSourceCaches(r);for(const a of s)delete this._sourceCaches[a.id],delete this._updatedSources[a.id],a.fire(new i.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:a.getSource().id})),a.setEventedParent(null),a.clearTiles();delete this._otherSourceCaches[r],delete this._symbolSourceCaches[r],n.setEventedParent(null),n.onRemove&&n.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(i,r){this._checkLoaded(),this.getSource(i).setData(r),this._changed=!0}getSource(i){const r=this._getSourceCache(i);return r&&r.getSource()}addLayer(r,n,o={}){let s;this._checkLoaded();const a=r.id;if(this.getLayer(a))return void this.fire(new i.ErrorEvent(Error(`Layer with id "${a}" already exists on this map`)));if("custom"===r.type){if(ts(this,i.validateCustomStyleLayer(r)))return;s=i.createStyleLayer(r)}else{if("object"==typeof r.source&&(this.addSource(a,r.source),r=i.clone$1(r),r=i.extend(r,{source:a})),this._validate(i.validateStyle.layer,`layers.${a}`,r,{arrayIndex:-1},o))return;s=i.createStyleLayer(r),this._validateLayer(s),s.setEventedParent(this,{layer:{id:a}}),this._serializedLayers[s.id]=s.serialize(),this._updateLayerCount(s,!0)}const l=n?this._order.indexOf(n):this._order.length;if(n&&-1===l)return void this.fire(new i.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`)));this._order.splice(l,0,a),this._layerOrderChanged=!0,this._layers[a]=s;const c=this._getLayerSourceCache(s);if(this._removedLayers[a]&&s.source&&c&&"custom"!==s.type){const h=this._removedLayers[a];delete this._removedLayers[a],h.type!==s.type?this._updatedSources[s.source]="clear":(this._updatedSources[s.source]="reload",c.pause())}this._updateLayer(s),s.onAdd&&s.onAdd(this.map),this._updateDrapeFirstLayers()}moveLayer(r,n){if(this._checkLoaded(),this._changed=!0,!this._layers[r])return void this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be moved.`)));if(r===n)return;const o=this._order.indexOf(r);this._order.splice(o,1);const s=n?this._order.indexOf(n):this._order.length;n&&-1===s?this.fire(new i.ErrorEvent(Error(`Layer with id "${n}" does not exist on this map.`))):(this._order.splice(s,0,r),this._layerOrderChanged=!0,this._updateDrapeFirstLayers())}removeLayer(r){this._checkLoaded();const n=this._layers[r];if(!n)return void this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be removed.`)));n.setEventedParent(null),this._updateLayerCount(n,!1);const o=this._order.indexOf(r);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[r]=n,delete this._layers[r],delete this._serializedLayers[r],delete this._updatedLayers[r],delete this._updatedPaintProps[r],n.onRemove&&n.onRemove(this.map),this._updateDrapeFirstLayers()}getLayer(i){return this._layers[i]}hasLayer(i){return i in this._layers}hasLayerType(i){for(const r in this._layers)if(this._layers[r].type===i)return!0;return!1}setLayerZoomRange(r,n,o){this._checkLoaded();const s=this.getLayer(r);s?s.minzoom===n&&s.maxzoom===o||(null!=n&&(s.minzoom=n),null!=o&&(s.maxzoom=o),this._updateLayer(s)):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot have zoom extent.`)))}setFilter(r,n,o={}){this._checkLoaded();const a=this.getLayer(r);if(a){if(!s(a.filter,n))return null==n?(a.filter=void 0,void this._updateLayer(a)):void(this._validate(i.validateStyle.filter,`layers.${a.id}.filter`,n,{layerType:a.type},o)||(a.filter=i.clone$1(n),this._updateLayer(a)))}else this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be filtered.`)))}getFilter(r){return i.clone$1(this.getLayer(r).filter)}setLayoutProperty(r,n,o,a={}){this._checkLoaded();const l=this.getLayer(r);l?s(l.getLayoutProperty(n),o)||(l.setLayoutProperty(n,o,a),this._updateLayer(l)):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be styled.`)))}getLayoutProperty(r,n){const o=this.getLayer(r);if(o)return o.getLayoutProperty(n);this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style.`)))}setPaintProperty(r,n,o,a={}){this._checkLoaded();const l=this.getLayer(r);l?s(l.getPaintProperty(n),o)||(l.setPaintProperty(n,o,a)&&this._updateLayer(l),this._changed=!0,this._updatedPaintProps[r]=!0):this.fire(new i.ErrorEvent(Error(`The layer '${r}' does not exist in the map's style and cannot be styled.`)))}getPaintProperty(i,r){return this.getLayer(i).getPaintProperty(r)}setFeatureState(r,n){this._checkLoaded();const o=r.source,s=r.sourceLayer,a=this.getSource(o);if(void 0===a)return void this.fire(new i.ErrorEvent(Error(`The source '${o}' does not exist in the map's style.`)));const l=a.type;if("geojson"===l&&s)return void this.fire(new i.ErrorEvent(Error("GeoJSON sources cannot have a sourceLayer parameter.")));if("vector"===l&&!s)return void this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));void 0===r.id&&this.fire(new i.ErrorEvent(Error("The feature id parameter must be provided.")));const c=this._getSourceCaches(o);for(const h of c)h.setFeatureState(s,r.id,n)}removeFeatureState(r,n){this._checkLoaded();const o=r.source,s=this.getSource(o);if(void 0===s)return void this.fire(new i.ErrorEvent(Error(`The source '${o}' does not exist in the map's style.`)));const a=s.type,l="vector"===a?r.sourceLayer:void 0;if("vector"===a&&!l)return void this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")));if(n&&"string"!=typeof r.id&&"number"!=typeof r.id)return void this.fire(new i.ErrorEvent(Error("A feature id is required to remove its specific state property.")));const c=this._getSourceCaches(o);for(const h of c)h.removeFeatureState(l,r.id,n)}getFeatureState(r){this._checkLoaded();const n=r.source,o=r.sourceLayer,s=this.getSource(n);if(void 0!==s){if("vector"!==s.type||o)return void 0===r.id&&this.fire(new i.ErrorEvent(Error("The feature id parameter must be provided."))),this._getSourceCaches(n)[0].getFeatureState(o,r.id);this.fire(new i.ErrorEvent(Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new i.ErrorEvent(Error(`The source '${n}' does not exist in the map's style.`)))}getTransition(){return i.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){const r={};for(const n in this._sourceCaches){const o=this._sourceCaches[n].getSource();r[o.id]||(r[o.id]=o.serialize())}return i.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,terrain:this.stylesheet.terrain,fog:this.stylesheet.fog,center:this.stylesheet.center,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:r,layers:this._serializeLayers(this._order)},i=>void 0!==i)}_updateLayer(i){this._updatedLayers[i.id]=!0;const r=this._getLayerSourceCache(i);i.source&&!this._updatedSources[i.source]&&r&&"raster"!==r.getSource().type&&(this._updatedSources[i.source]="reload",r.pause()),this._changed=!0,i.invalidateCompiledFilter()}_flattenAndSortRenderedFeatures(i){var r,n;const o={},s=[];for(let a=this._order.length-1;a>=0;a--){const l=this._order[a];if(r=l,"fill-extrusion"===this._layers[r].type)for(const c of(o[l]=a,i)){const h=c[l];if(h)for(const u of h)s.push(u)}}s.sort((i,r)=>r.intersectionZ-i.intersectionZ);const d=[];for(let p=this._order.length-1;p>=0;p--){const f=this._order[p];if(n=f,"fill-extrusion"===this._layers[n].type)for(let m=s.length-1;m>=0;m--){const _=s[m].feature;if(o[_.layer.id]{const r=this.getLayer(i);return r&&r.is3D()}):this.has3DLayers(),u=ep.createFromScreenPoints(r,o);for(const d in this._sourceCaches){const p=this._sourceCaches[d].getSource().id;n.layers&&!s[p]||c.push(function(r,n,o,s,a,l,c,h=!1){const u=r.tilesIn(s,c,h);u.sort(ew);const d=[];for(const p of u)d.push({wrappedTileID:p.tile.tileID.wrapped().key,queryResults:p.tile.queryRenderedFeatures(n,o,r._state,p,a,l,function(r,n){const o=i.identity([]);return i.scale(o,o,[.5*r.width,-(.5*r.height),1]),i.translate(o,o,[1,-1,0]),i.multiply$1(o,o,r.calculateProjMatrix(n.toUnwrapped()))}(r.transform,p.tile.tileID),h)});const f=function(i){const r={},n={};for(const o of i){const s=o.queryResults,a=o.wrappedTileID,l=n[a]=n[a]||{};for(const c in s){const h=s[c],u=l[c]=l[c]||{},d=r[c]=r[c]||[];for(const p of h)u[p.featureIndex]||(u[p.featureIndex]=!0,d.push(p))}}return r}(d);for(const m in f)f[m].forEach(i=>{const n=i.feature,o=r.getFeatureState(n.layer["source-layer"],n.id);n.source=n.layer.source,n.layer["source-layer"]&&(n.sourceLayer=n.layer["source-layer"]),n.state=o});return f}(this._sourceCaches[d],this._layers,this._serializedLayers,u,n,o,h,!!this.map._showQueryGeometry))}return this.placement&&c.push(function(i,r,n,o,s,a,l){const c={},h=a.queryRenderedSymbols(o),u=[];for(const d of Object.keys(h).map(Number))u.push(l[d]);for(const p of(u.sort(ew),u)){const f=p.featureIndex.lookupSymbolFeatures(h[p.bucketInstanceId],r,p.bucketIndex,p.sourceLayerIndex,s.filter,s.layers,s.availableImages,i);for(const m in f){const _=c[m]=c[m]||[],g=f[m];for(const y of(g.sort((i,r)=>{const n=p.featureSortOrder;if(n){const o=n.indexOf(i.featureIndex);return n.indexOf(r.featureIndex)-o}return r.featureIndex-i.featureIndex}),g))_.push(y)}}for(const x in c)c[x].forEach(r=>{const o=r.feature,s=n(i[x]).getFeatureState(o.layer["source-layer"],o.id);o.source=o.layer.source,o.layer["source-layer"]&&(o.sourceLayer=o.layer["source-layer"]),o.state=s});return c}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),u.screenGeometry,n,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(c)}querySourceFeatures(r,n){n&&n.filter&&this._validate(i.validateStyle.filter,"querySourceFeatures.filter",n.filter,null,n);const o=this._getSourceCaches(r);let s=[];for(const a of o)s=s.concat(function(i,r){const n=i.getRenderableIds().map(r=>i.getTileByID(r)),o=[],s={};for(let a=0;a{for(const i of this.map._markers)i._evaluateOpacity()})}getFog(){return this.fog?this.fog.get():null}setFog(r){if(this._checkLoaded(),!r)return delete this.fog,delete this.stylesheet.fog,void(this._markersNeedUpdate=!0);if(this.fog){const n=this.fog,o=n.get();for(const a in r)if(!s(r[a],o[a])){n.set(r),this.stylesheet.fog=r;const l={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};n.updateTransitions(l);break}}else this._createFog(r);this._markersNeedUpdate=!0}_updateDrapeFirstLayers(){if(!this.map._optimizeForTerrain||!this.terrain)return;const i=this._order.filter(i=>this.isLayerDraped(this._layers[i])),r=this._order.filter(i=>!this.isLayerDraped(this._layers[i]));this._drapedFirstOrder=[],this._drapedFirstOrder.push(...i),this._drapedFirstOrder.push(...r)}_createTerrain(r,n){const o=this.terrain=new y(r,n);this.stylesheet.terrain=r,this.dispatcher.broadcast("enableTerrain",!0),this._force3DLayerUpdate();const s={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};o.updateTransitions(s)}_force3DLayerUpdate(){for(const i in this._layers){const r=this._layers[i];"fill-extrusion"===r.type&&this._updateLayer(r)}}_forceSymbolLayerUpdate(){for(const i in this._layers){const r=this._layers[i];"symbol"===r.type&&this._updateLayer(r)}}_validate(r,n,o,s,a={}){return(!a||!1!==a.validate)&&ts(this,r.call(i.validateStyle,i.extend({key:n,style:this.serialize(),value:o,styleSpec:i.spec},s)))}_remove(){for(const r in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),i.evented.off("pluginStateChange",this._rtlTextPluginCallback),this._layers)this._layers[r].setEventedParent(null);for(const n in this._sourceCaches)this._sourceCaches[n].clearTiles(),this._sourceCaches[n].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(i){const r=this._getSourceCaches(i);for(const n of r)n.clearTiles()}_reloadSource(i){const r=this._getSourceCaches(i);for(const n of r)n.resume(),n.reload()}_updateSources(i){for(const r in this._sourceCaches)this._sourceCaches[r].update(i)}_generateCollisionBoxes(){for(const i in this._sourceCaches){const r=this._sourceCaches[i];r.resume(),r.reload()}}_updatePlacement(r,n,o,s,a=!1){let l=!1,c=!1;const h={};for(const u of this._order){const d=this._layers[u];if("symbol"!==d.type)continue;if(!h[d.source]){const p=this._getLayerSourceCache(d);if(!p)continue;h[d.source]=p.getRenderableIds(!0).map(i=>p.getTileByID(i)).sort((i,r)=>r.tileID.overscaledZ-i.tileID.overscaledZ||(i.tileID.isLessThan(r.tileID)?-1:1))}const f=this.crossTileSymbolIndex.addLayer(d,h[d.source],r.center.lng,r.projection);l=l||f}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),a=a||this._layerOrderChanged||0===o,this._layerOrderChanged&&this.fire(new i.Event("neworder")),(a||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(i.exported.now(),r.zoom))&&(this.pauseablePlacement=new te(r,this._order,a,n,o,s,this.placement,this.fog&&r.projection.supportsFog?this.fog.state:null),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,h),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(i.exported.now()),c=!0),l&&this.pauseablePlacement.placement.setStale()),c||l)for(const m of this._order){const _=this._layers[m];"symbol"===_.type&&this.placement.updateLayerOpacities(_,h[_.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(i.exported.now())}_releaseSymbolFadeTiles(){for(const i in this._sourceCaches)this._sourceCaches[i].releaseSymbolFadeTiles()}getImages(i,r,n){this.imageManager.getImages(r.icons,n),this._updateTilesForChangedImages();const o=i=>{i&&i.setDependencies(r.tileID.key,r.type,r.icons)};o(this._otherSourceCaches[r.source]),o(this._symbolSourceCaches[r.source])}getGlyphs(i,r,n){this.glyphManager.getGlyphs(r.stacks,n)}getResource(r,n,o){return i.makeRequest(n,o)}_getSourceCache(i){return this._otherSourceCaches[i]}_getLayerSourceCache(i){return"symbol"===i.type?this._symbolSourceCaches[i.source]:this._otherSourceCaches[i.source]}_getSourceCaches(i){const r=[];return this._otherSourceCaches[i]&&r.push(this._otherSourceCaches[i]),this._symbolSourceCaches[i]&&r.push(this._symbolSourceCaches[i]),r}has3DLayers(){return this._num3DLayers>0}hasSymbolLayers(){return this._numSymbolLayers>0}hasCircleLayers(){return this._numCircleLayers>0}_clearWorkerCaches(){this.dispatcher.broadcast("clearCaches")}destroy(){this._clearWorkerCaches(),this.terrainSetForDrapingOnly()&&(delete this.terrain,delete this.stylesheet.terrain)}}tu.getSourceType=function(i){return ev[i]},tu.setSourceType=function(i,r){ev[i]=r},tu.registerForPluginStateChange=i.registerForPluginStateChange;var td="\n#define EPSILON 0.0000001\n#define PI 3.141592653589793\n#define EXTENT 8192.0\n#ifdef FOG\nuniform mediump vec4 u_fog_color;uniform mediump vec2 u_fog_range;uniform mediump float u_fog_horizon_blend;varying 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);}\n#endif",tp="attribute highp vec3 a_pos_3f;uniform lowp mat4 u_matrix;varying 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;}";let tf={},tm={};tf=ty("","\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\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nuniform highp sampler2D u_dem;uniform highp sampler2D u_dem_prev;\n#else\nuniform sampler2D u_dem;uniform sampler2D u_dem_prev;\n#endif\nuniform vec4 u_dem_unpack;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;uniform sampler2D u_depth;uniform vec2 u_depth_size_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 decodeElevation(vec4 v) {return dot(vec4(v.xyz*255.0,-1.0),u_dem_unpack);}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*texture2D(u_dem,pos).a;\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=decodeElevation(texture2D(u_dem,pos));\n#ifdef TERRAIN_DEM_NEAREST_FILTER\nreturn u_exaggeration*tl;\n#endif\nfloat tr=decodeElevation(texture2D(u_dem,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem,pos+vec2(dd,dd)));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*texture2D(u_dem_prev,pos).a;\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=decodeElevation(texture2D(u_dem_prev,pos));float tr=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,0.0)));float bl=decodeElevation(texture2D(u_dem_prev,pos+vec2(0.0,dd)));float br=decodeElevation(texture2D(u_dem_prev,pos+vec2(dd,dd)));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) {float nextElevation=currentElevation(apos);float prevElevation=prevElevation(apos);return mix(prevElevation,nextElevation,u_dem_lerp);}\n#else\nfloat elevation(vec2 apos) {return currentElevation(apos);}\n#endif\nfloat unpack_depth(vec4 rgba_depth)\n{const vec4 bit_shift=vec4(1.0/(256.0*256.0*256.0),1.0/(256.0*256.0),1.0/256.0,1.0);return dot(rgba_depth,bit_shift)*2.0-1.0;}bool isOccluded(vec4 frag) {vec3 coord=frag.xyz/frag.w;float depth=unpack_depth(texture2D(u_depth,(coord.xy+1.0)*0.5));return coord.z > depth+0.0005;}float occlusionFade(vec4 frag) {vec3 coord=frag.xyz/frag.w;vec3 df=vec3(5.0*u_depth_size_inv,0.0);vec2 uv=0.5*coord.xy+0.5;vec4 depth=vec4(\nunpack_depth(texture2D(u_depth,uv-df.xz)),unpack_depth(texture2D(u_depth,uv+df.xz)),unpack_depth(texture2D(u_depth,uv-df.zy)),unpack_depth(texture2D(u_depth,uv+df.zy))\n);return dot(vec4(0.25),vec4(1.0)-clamp(300.0*(vec4(coord.z-0.001)-depth),0.0,1.0));}vec4 fourSample(vec2 pos,vec2 off) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nfloat tl=texture2D(u_dem,pos).a;float tr=texture2D(u_dem,pos+vec2(off.x,0.0)).a;float bl=texture2D(u_dem,pos+vec2(0.0,off.y)).a;float br=texture2D(u_dem,pos+off).a;\n#else\nvec4 demtl=vec4(texture2D(u_dem,pos).xyz*255.0,-1.0);float tl=dot(demtl,u_dem_unpack);vec4 demtr=vec4(texture2D(u_dem,pos+vec2(off.x,0.0)).xyz*255.0,-1.0);float tr=dot(demtr,u_dem_unpack);vec4 dembl=vec4(texture2D(u_dem,pos+vec2(0.0,off.y)).xyz*255.0,-1.0);float bl=dot(dembl,u_dem_unpack);vec4 dembr=vec4(texture2D(u_dem,pos+off).xyz*255.0,-1.0);float br=dot(dembr,u_dem_unpack);\n#endif\nreturn 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;vec4 bounds=vec4(d,vec2(1.0)-d);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; }bool isOccluded(vec4 frag) { return false; }float occlusionFade(vec4 frag) { return 1.0; }\n#endif",!0),tm=ty("#ifdef FOG\nuniform float u_fog_temporal_offset;float fog_opacity(vec3 pos) {float depth=length(pos);return fog_opacity(fog_range(depth));}vec3 fog_apply(vec3 color,vec3 pos) {float depth=length(pos);float opacity=fog_opacity(fog_range(depth));opacity*=fog_horizon_blending(pos/depth);return mix(color,u_fog_color.rgb,opacity);}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;}vec3 fog_dither(vec3 color) {vec2 dither_seed=gl_FragCoord.xy+u_fog_temporal_offset;return dither(color,dither_seed);}vec4 fog_dither(vec4 color) {return vec4(fog_dither(color.rgb),color.a);}\n#endif","#ifdef FOG\nuniform mat4 u_fog_matrix;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",!0);const t_=ty("\nhighp 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 TERRAIN\nhighp vec4 pack_depth(highp float ndc_z) {highp float depth=ndc_z*0.5+0.5;const highp vec4 bit_shift=vec4(256.0*256.0*256.0,256.0*256.0,256.0,1.0);const highp vec4 bit_mask =vec4(0.0,1.0/256.0,1.0/256.0,1.0/256.0);highp vec4 res=fract(depth*bit_shift);res-=res.xxyz*bit_mask;return res;}\n#endif","\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;}vec3 mercator_tile_position(mat4 matrix,vec2 tile_anchor,vec3 tile_id,vec2 mercator_center) {\n#if defined(PROJECTION_GLOBE_VIEW) && !defined(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) {\n#if defined(PROJECTION_GLOBE_VIEW) && !defined(PROJECTED_POS_ON_VIEWPORT)\nreturn mix(globe,mercator,t);\n#else\nreturn globe;\n#endif\n}\n#ifdef PROJECTION_GLOBE_VIEW\nmat3 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 float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}const vec4 AWAY=vec4(-1000.0,-1000.0,-1000.0,1);//Normalized device coordinate that is not rendered.");var tg={background:ty("uniform vec4 u_color;uniform float u_opacity;void main() {vec4 out_color=u_color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),backgroundPattern:ty("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_mix);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),circle:ty("varying vec3 v_data;varying 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\nvoid 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 extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,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 FOG\nout_color=fog_apply_premultiplied(out_color,v_fog_pos);\n#endif\ngl_FragColor=out_color*(v_visibility*opacity_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\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;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;attribute float a_scale;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\nvarying vec3 v_data;varying 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);\n#ifdef PROJECTION_GLOBE_VIEW\nvec2 scaled_extrude=extrude*a_scale;vec3 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=scaled_extrude.x*surface_vectors[0]+scaled_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);vec4 world_center=vec4(pos,1);\n#else \nmat3 surface_vectors=mat3(1.0);float height=circle_elevation(circle_center);vec4 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\n#if defined(SCALE_WITH_MAP) && defined(PROJECTION_GLOBE_VIEW)\nview_scale*=a_scale;\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();\n#ifdef PITCH_WITH_MAP\nfloat cantilevered_height=cantilevered_elevation(circle_center,radius,stroke_width,view_scale);vec4 occlusion_world_center=vec4(circle_center,cantilevered_height,1);vec4 occlusion_projected_center=u_matrix*occlusion_world_center;\n#else\nvec4 occlusion_world_center=world_center;vec4 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:ty("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:ty("uniform highp float u_intensity;varying 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);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef FOG\ngl_FragColor.r*=pow(1.0-fog_opacity(v_fog_pos),2.0);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute vec3 a_pos_normal_3;attribute float a_scale;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\nvarying 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);\n#ifdef PROJECTION_GLOBE_VIEW\nextrude*=a_scale;vec3 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;vec3 pos=mix_globe_mercator(globe_pos,merc_pos,u_zoom_transition);\n#else\nvec3 pos=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:ty("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=vec4(a_pos,0,1);v_pos=a_pos*0.5+0.5;}"),collisionBox:ty("varying float v_placed;varying 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);gl_FragColor =mix(red,blue,step(0.5,v_placed))*0.5;gl_FragColor*=mix(1.0,0.1,step(0.5,v_notUsed));}","attribute vec3 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;attribute float a_size_scale;attribute vec2 a_padding;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_pos+elevationVector(a_anchor_pos)*elevation(a_anchor_pos),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:ty("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying 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);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos_2f;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying 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:ty("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;\n#endif\nvarying 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:ty("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\nvec4 out_color=color;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutline:ty("varying vec2 v_pos;\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 FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\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\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillOutlinePattern:ty("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);vec4 out_color=mix(color1,color2,u_fade);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillPattern:ty("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade);\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),fillExtrusion:ty("varying vec4 v_color;void main() {vec4 color=v_color;\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform 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;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute 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\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 pos_nx=floor(a_pos_normal_ed.xyz*0.5);mediump vec3 top_up_ny=a_pos_normal_ed.xyz-2.0*pos_nx;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));base=max(0.0,base);height=max(0.0,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\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;float ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;float h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 pos=vec3(pos_nx.xy,h);\n#else\nvec3 pos=vec3(pos_nx.xy,t > 0.0 ? height : base);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_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*(pos.z+lift));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 hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.0);gl_Position=mix(u_matrix*vec4(pos,1),AWAY,hidden);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.rgb+=clamp(color.rgb*directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_color*=u_opacity;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),fillExtrusionPattern:ty("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 out_color=mix(color1,color2,u_fade);out_color=out_color*v_lighting;\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\ngl_FragColor=out_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec4 a_pos_normal_ed;attribute vec2 a_centroid_pos;\n#ifdef PROJECTION_GLOBE_VIEW\nattribute vec3 a_pos_3;attribute 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\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 pos_nx=floor(a_pos_normal_ed.xyz*0.5);mediump vec3 top_up_ny=a_pos_normal_ed.xyz-2.0*pos_nx;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_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;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\n#ifdef TERRAIN\nbool flat_roof=centroid_pos.x !=0.0 && t > 0.0;float ele=elevation(pos_nx.xy);float c_ele=flat_roof ? centroid_pos.y==0.0 ? elevationFromUint16(centroid_pos.x) : flatElevation(centroid_pos) : ele;float h=flat_roof ? max(c_ele+height,ele+base+2.0) : ele+(t > 0.0 ? height : base==0.0 ?-5.0 : base);vec3 p=vec3(pos_nx.xy,h);\n#else\nvec3 p=vec3(pos_nx.xy,z);\n#endif\n#ifdef PROJECTION_GLOBE_VIEW\nfloat lift=float((t+base) > 0.0)*u_height_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\nfloat hidden=float(centroid_pos.x==0.0 && centroid_pos.y==1.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_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=(\n(1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;\n#ifdef FOG\nv_fog_pos=fog_position(p);\n#endif\n}"),hillshadePrepare:ty("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord) {\n#ifdef TERRAIN_DEM_FLOAT_FORMAT\nreturn texture2D(u_image,coord).a/4.0;\n#else\nvec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;\n#endif\n}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);float f=getElevation(v_pos+vec2(epsilon.x,0));float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y));float h=getElevation(v_pos+vec2(0,epsilon.y));float i=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+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c)\n)/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(\nderiv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying 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:ty("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;void main() {vec4 pixel=texture2D(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);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef FOG\ngl_FragColor=fog_dither(fog_apply_premultiplied(gl_FragColor,v_fog_pos));\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying 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:ty("uniform lowp float u_device_pixel_ratio;uniform float u_alpha_discard_threshold;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#ifdef RENDER_LINE_DASH\nuniform sampler2D u_dash_image;uniform float u_mix;uniform vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform sampler2D u_gradient_image;varying highp vec2 v_uv;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash_from\n#pragma mapbox: define lowp vec4 dash_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash_from\n#pragma mapbox: initialize lowp vec4 dash_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);\n#ifdef RENDER_LINE_DASH\nfloat sdfdist_a=texture2D(u_dash_image,v_tex_a).a;float sdfdist_b=texture2D(u_dash_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfwidth=min(dash_from.z*u_scale.y,dash_to.z*u_scale.z);float sdfgamma=1.0/(2.0*u_device_pixel_ratio)/sdfwidth;alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);\n#endif\n#ifdef RENDER_LINE_GRADIENT\nvec4 out_color=texture2D(u_gradient_image,v_uv);\n#else\nvec4 out_color=color;\n#endif\n#ifdef FOG\nout_color=fog_dither(fog_apply_premultiplied(out_color,v_fog_pos));\n#endif\n#ifdef RENDER_LINE_ALPHA_DISCARD\nif (alpha < u_alpha_discard_threshold) {discard;}\n#endif\ngl_FragColor=out_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define EXTRUDE_SCALE 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;\n#ifdef RENDER_LINE_GRADIENT\nattribute vec3 a_packed;\n#else\nattribute 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;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;\n#ifdef RENDER_LINE_DASH\nuniform vec2 u_texsize;uniform mediump vec3 u_scale;varying vec2 v_tex_a;varying vec2 v_tex_b;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nuniform float u_image_height;varying highp vec2 v_uv;\n#endif\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 dash_from\n#pragma mapbox: define lowp vec4 dash_to\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\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize lowp vec4 dash_from\n#pragma mapbox: initialize lowp vec4 dash_to\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\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=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*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);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\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=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\n#ifdef RENDER_LINE_GRADIENT\nfloat a_uv_x=a_packed[0];float a_split_index=a_packed[1];float a_linesofar=a_packed[2];highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);\n#endif\n#ifdef RENDER_LINE_DASH\nfloat tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;float scaleA=dash_from.z==0.0 ? 0.0 : tileZoomRatio/(dash_from.z*fromScale);float scaleB=dash_to.z==0.0 ? 0.0 : tileZoomRatio/(dash_to.z*toScale);float heightA=dash_from.y;float heightB=dash_to.y;v_tex_a=vec2(a_linesofar*scaleA/floorwidth,(-normal.y*heightA+dash_from.x+0.5)/u_texsize.y);v_tex_b=vec2(a_linesofar*scaleB/floorwidth,(-normal.y*heightB+dash_to.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}"),linePattern:ty("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);\n#ifdef FOG\ncolor=fog_dither(fog_apply_premultiplied(color,v_fog_pos));\n#endif\ngl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_linesofar;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mat2 u_pixels_to_tile_units;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\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=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist*u_pixels_to_tile_units,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2*u_pixels_to_tile_units,0.0,1.0)+projected_extrude;\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=extrude_length_without_perspective/extrude_length_with_perspective;\n#else\nv_gamma_scale=1.0;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;\n#ifdef FOG\nv_fog_pos=fog_position(pos);\n#endif\n}"),raster:ty("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(\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 FOG\nout_color=fog_dither(fog_apply(out_color,v_fog_pos));\n#endif\ngl_FragColor=vec4(out_color*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform vec2 u_perspective_transform;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {float w=1.0+dot(a_texture_pos,u_perspective_transform);gl_Position=u_matrix*vec4(a_pos*w,0,w);v_pos0=a_texture_pos/8192.0;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;\n#ifdef FOG\nv_fog_pos=fog_position(a_pos);\n#endif\n}"),symbolIcon:ty("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\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_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.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 fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,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_minFontScale,fontScale)+a_pxoffset/16.0);\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\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));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\nv_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(occlusion_fade,fade_opacity[0]+fade_change))*projection_transition_fade;}"),symbolSDF:ty("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\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\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\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_pixeloffset;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;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_tile_id;uniform float u_zoom_transition;varying vec2 v_data0;varying vec3 v_data1;\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\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\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;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.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 fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,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*fontScale+a_pxoffset);\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\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float gamma_scale=gl_Position.w;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));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade);}"),symbolTextAndIcon:ty("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\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\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\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec4 a_pos_offset;attribute vec4 a_tex_size;attribute vec4 a_z_tile_anchor;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;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 vec2 u_texsize_icon;uniform mat4 u_inv_rot_matrix;uniform vec2 u_merc_center;uniform vec3 u_tile_id;uniform float u_zoom_transition;varying vec4 v_data0;varying vec4 v_data1;\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\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\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);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}float anchorZ=a_z_tile_anchor.x;vec2 tileAnchor=a_z_tile_anchor.yz;vec3 h=elevationVector(tileAnchor)*elevation(tileAnchor);vec3 mercator_pos=mercator_tile_position(u_inv_rot_matrix,tileAnchor,u_tile_id,u_merc_center);vec3 world_pos=mix_globe_mercator(vec3(a_pos,anchorZ)+h,mercator_pos,u_zoom_transition);vec4 projectedPoint=u_matrix*vec4(world_pos,1);highp float camera_to_anchor_distance=projectedPoint.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 fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),anchorZ,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}vec3 proj_pos=mix_globe_mercator(vec3(a_projected_pos.xy,anchorZ),mercator_pos,u_zoom_transition);\n#ifdef PROJECTED_POS_ON_VIEWPORT\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xy,0.0,1.0);\n#else\nvec4 projected_pos=u_label_plane_matrix*vec4(proj_pos.xyz+h,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*fontScale);\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\nfloat occlusion_fade=occlusionFade(projectedPoint);gl_Position=mix(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+offset,z,1.0),AWAY,float(projectedPoint.w <=0.0 || occlusion_fade==0.0));float gamma_scale=gl_Position.w;vec2 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 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\nv_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity*projection_transition_fade,is_sdf);}"),terrainRaster:ty("uniform sampler2D u_image0;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\nvoid main() {vec4 color=texture2D(u_image0,v_pos0);\n#ifdef FOG\ncolor=fog_dither(fog_apply_from_vert(color,v_fog_opacity));\n#endif\ngl_FragColor=color;\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_skirt_height;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;\n#ifdef FOG\nvarying float v_fog_opacity;\n#endif\nconst float skirtOffset=24575.0;const float wireframeOffset=0.00015;void main() {v_pos0=a_texture_pos/8192.0;float skirt=float(a_pos.x >=skirtOffset);float elevation=elevation(a_texture_pos)-skirt*u_skirt_height;\n#ifdef TERRAIN_WIREFRAME\nelevation+=u_skirt_height*u_skirt_height*wireframeOffset;\n#endif\nvec2 decodedPos=a_pos-vec2(skirt*skirtOffset,0.0);gl_Position=u_matrix*vec4(decodedPos,elevation,1.0);\n#ifdef FOG\nv_fog_opacity=fog(fog_position(vec3(decodedPos,elevation)));\n#endif\n}"),terrainDepth:ty("#ifdef GL_ES\nprecision highp float;\n#endif\nvarying float v_depth;void main() {gl_FragColor=pack_depth(v_depth);}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying float v_depth;void main() {float elevation=elevation(a_texture_pos);gl_Position=u_matrix*vec4(a_pos,elevation,1.0);v_depth=gl_Position.z/gl_Position.w;}"),skybox:ty("\nvarying 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=textureCube(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);gl_FragColor=vec4(sky_color*u_opacity,u_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",tp),skyboxGradient:ty("varying 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=texture2D(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);gl_FragColor=color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}",tp),skyboxCapture:ty("\nvarying 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;\n#ifdef GL_ES\nprecision highp float;\n#endif\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;gl_FragColor=vec4(color,1.0);}","attribute highp vec3 a_pos_3f;uniform mat3 u_matrix_3f;varying 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:ty("uniform sampler2D u_image0;varying vec2 v_pos0;void main() {gl_FragColor=texture2D(u_image0,v_pos0);\n#ifdef TERRAIN_WIREFRAME\ngl_FragColor=vec4(1.0,0.0,0.0,0.8);\n#endif\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_proj_matrix;uniform mat4 u_globe_matrix;uniform mat4 u_merc_matrix;uniform float u_zoom_transition;uniform vec2 u_merc_center;attribute vec3 a_globe_pos;attribute vec2 a_merc_pos;attribute vec2 a_uv;varying vec2 v_pos0;const float wireframeOffset=1e3;void main() {v_pos0=a_uv;vec2 uv=a_uv*EXTENT;vec4 up_vector=vec4(elevationVector(uv),1.0);float height=elevation(uv);\n#ifdef TERRAIN_WIREFRAME\nheight+=wireframeOffset;\n#endif\nvec4 globe=u_globe_matrix*vec4(a_globe_pos+up_vector.xyz*height,1.0);vec4 mercator=vec4(0.0);if (u_zoom_transition > 0.0) {mercator=vec4(a_merc_pos,height,1.0);mercator.xy-=u_merc_center;mercator.x=wrap(mercator.x,-0.5,0.5);mercator=u_merc_matrix*mercator;}vec3 position=mix(globe.xyz,mercator.xyz,u_zoom_transition);gl_Position=u_proj_matrix*vec4(position,1.0);}"),globeAtmosphere:ty("uniform vec2 u_center;uniform float u_radius;uniform vec2 u_screen_size;uniform float u_opacity;uniform highp float u_fadeout_range;uniform vec3 u_start_color;uniform vec3 u_end_color;uniform float u_pixel_ratio;void main() {highp vec2 fragCoord=gl_FragCoord.xy/u_pixel_ratio;fragCoord.y=u_screen_size.y-fragCoord.y;float distFromCenter=length(fragCoord-u_center);float normDistFromCenter=length(fragCoord-u_center)/u_radius;if (normDistFromCenter < 1.0)\ndiscard;float t=clamp(1.0-sqrt(normDistFromCenter-1.0)/u_fadeout_range,0.0,1.0);vec3 color=mix(u_start_color,u_end_color,1.0-t);gl_FragColor=vec4(color*t*u_opacity,u_opacity);}","attribute vec3 a_pos;void main() {gl_Position=vec4(a_pos,1.0);}")};function ty(i,r,n){const o=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,s=/uniform (highp |mediump |lowp )?([\w]+) ([\w]+)([\s]*)([\w]*)/g,a=r.match(/attribute (highp |mediump |lowp )?([\w]+) ([\w]+)/g),l=i.match(s),c=r.match(s),h=td.match(s);let u=c?c.concat(l):l;n||(tf.staticUniforms&&(u=tf.staticUniforms.concat(u)),tm.staticUniforms&&(u=tm.staticUniforms.concat(u))),u&&(u=u.concat(h));const d={};return{fragmentSource:i=i.replace(o,(i,r,n,o,s)=>(d[s]=!0,"define"===r?` #ifndef HAS_UNIFORM_u_${s} varying ${n} ${o} ${s}; #else @@ -57,4 +57,4 @@ uniform ${n} ${o} u_${s}; `}),staticAttributes:a,staticUniforms:u}}class tx{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(i,r,n,o,s,a,l,c){this.context=i;let h=this.boundPaintVertexBuffers.length!==o.length;for(let u=0;!h&&u({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_image0:new i.Uniform1i(r,n.u_image0),u_skirt_height:new i.Uniform1f(r,n.u_skirt_height)}),tw=(i,r)=>({u_matrix:i,u_image0:0,u_skirt_height:r}),tT=(i,r,n,o,s)=>({u_proj_matrix:Float32Array.from(i),u_globe_matrix:r,u_merc_matrix:n,u_zoom_transition:o,u_merc_center:s,u_image0:0});function tE(i,r){return null!=i&&null!=r&&!(!i.hasData()||!r.hasData())&&null!=i.demTexture&&null!=r.demTexture&&i.tileID.key!==r.tileID.key}const tS=new class{constructor(){this.operations={}}newMorphing(i,r,n,o,s){if(i in this.operations){const a=this.operations[i];a.to.tileID.key!==n.tileID.key&&(a.queued=n)}else this.operations[i]={startTime:o,phase:0,duration:s,from:r,to:n,queued:null}}getMorphValuesForProxy(i){if(!(i in this.operations))return null;const r=this.operations[i];return{from:r.from,to:r.to,phase:r.phase}}update(i){for(const r in this.operations){const n=this.operations[r];for(n.phase=(i-n.startTime)/n.duration;n.phase>=1||!this._validOp(n);)if(!this._nextOp(n,i)){delete this.operations[r];break}}}_nextOp(i,r){return!!i.queued&&(i.from=i.to,i.to=i.queued,i.queued=null,i.phase=0,i.startTime=r,!0)}_validOp(i){return i.from.hasData()&&i.to.hasData()}},tI={0:null,1:"TERRAIN_VERTEX_MORPHING",2:"TERRAIN_WIREFRAME"},tM=i=>({u_matrix:i});function tA(r,n,o,s,a){if(a>0){const l=i.exported.now(),c=(l-r.timeAdded)/a,h=n?(l-n.timeAdded)/a:-1,u=o.getSource(),d=s.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),p=!n||Math.abs(n.tileID.overscaledZ-d)>Math.abs(r.tileID.overscaledZ-d),f=p&&r.refreshedUponExpiration?1:i.clamp(p?c:1-h,0,1);return r.refreshedUponExpiration&&c>=1&&(r.refreshedUponExpiration=!1),n?{opacity:1,mix:1-f}:{opacity:f,mix:0}}return{opacity:1,mix:0}}class tC extends i.SourceCache{constructor(i){const r={type:"raster-dem",maxzoom:i.transform.maxZoom},n=new E(eI(),null),o=eb("mock-dem",r,n,i.style);super("mock-dem",o,!1),o.setEventedParent(this),this._sourceLoaded=!0}_loadTile(i,r){i.state="loaded",r(null)}}class tz extends i.SourceCache{constructor(i){const r=eb("proxy",{type:"geojson",maxzoom:i.transform.maxZoom},new E(eI(),null),i.style);super("proxy",r,!1),r.setEventedParent(this),this.map=this.getSource().map=i,this.used=this._sourceLoaded=!0,this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}update(r,n,o){if(r.freezeTileCoverage)return;this.transform=r;const s=r.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}).reduce((n,o)=>{if(n[o.key]="",!this._tiles[o.key]){const s=new i.Tile(o,this._source.tileSize*o.overscaleFactor(),r.tileZoom);s.state="loaded",this._tiles[o.key]=s}return n},{});for(const a in this._tiles)a in s||(this.freeFBO(a),this._tiles[a].unloadVectorData(),delete this._tiles[a])}freeFBO(i){const r=this.proxyCachedFBO[i];if(void 0!==r){const n=Object.values(r);this.renderCachePool.push(...n),delete this.proxyCachedFBO[i]}}deallocRenderCache(){this.renderCache.forEach(i=>i.fb.destroy()),this.renderCache=[],this.renderCachePool=[],this.proxyCachedFBO={}}}class tk extends i.OverscaledTileID{constructor(i,r,n){super(i.overscaledZ,i.wrap,i.canonical.z,i.canonical.x,i.canonical.y),this.proxyTileKey=r,this.projMatrix=n}}class tP extends i.Elevation{constructor(r,n){super(),this.painter=r,this.terrainTileForTile={},this.prevTerrainTileForTile={};const[o,s,a]=function(r){const n=new i.StructArrayLayout4i8,o=new i.StructArrayLayout3ui6;n.reserve(17161),o.reserve(33800);const s=i.EXTENT/128,a=i.EXTENT+s/2,l=a+s;for(let c=-s;ca||c<0||c>a?24575:0,d=i.clamp(Math.round(h),0,i.EXTENT),p=i.clamp(Math.round(c),0,i.EXTENT);n.emplaceBack(d+u,p,d,p)}const f=(i,r)=>{const n=131*r+i;o.emplaceBack(n+1,n,n+131),o.emplaceBack(n+131,n+131+1,n+1)};for(let m=1;m<129;m++)for(let _=1;_<129;_++)f(_,m);return[0,129].forEach(i=>{for(let r=0;r<130;r++)f(r,i),f(i,r)}),[n,o,32768]}(),l=r.context;this.gridBuffer=l.createVertexBuffer(o,i.boundsAttributes.members),this.gridIndexBuffer=l.createIndexBuffer(s),this.gridSegments=i.SegmentVector.simpleSegment(0,0,o.length,s.length),this.gridNoSkirtSegments=i.SegmentVector.simpleSegment(0,0,o.length,a),this.proxyCoords=[],this.proxiedCoords={},this._visibleDemTiles=[],this._drapedRenderBatches=[],this._sourceTilesOverlap={},this.proxySourceCache=new tz(n.map),this.orthoMatrix=i.create(),i.ortho(this.orthoMatrix,0,i.EXTENT,0,i.EXTENT,0,1);const c=l.gl;this._overlapStencilMode=new i.StencilMode({func:c.GEQUAL,mask:255},0,255,c.KEEP,c.KEEP,c.REPLACE),this._previousZoom=r.transform.zoom,this.pool=[],this._findCoveringTileCache={},this._tilesDirty={},this.style=n,this._useVertexMorphing=!0,this._exaggeration=1,this._mockSourceCache=new tC(n.map)}set style(i){i.on("data",this._onStyleDataEvent.bind(this)),i.on("neworder",this._checkRenderCacheEfficiency.bind(this)),this._style=i,this._checkRenderCacheEfficiency()}update(r,n,o){if(r&&r.terrain){this._style!==r&&(this.style=r),this.enabled=!0;const s=r.terrain.properties;this.sourceCache=0===r.terrain.drapeRenderMode?this._mockSourceCache:r._getSourceCache(s.get("source")),this._exaggeration=s.get("exaggeration");const a=()=>{this.sourceCache.used&&i.warnOnce(`Raster DEM source '${this.sourceCache.id}' is used both for terrain and as layer source. This leads to lower resolution of hillshade. For full hillshade resolution but higher memory consumption, define another raster DEM source.`);const r=this.getScaledDemTileSize();this.sourceCache.update(n,r,!0),this.resetTileLookupCache(this.sourceCache.id)};this.sourceCache.usedForTerrain||(this.resetTileLookupCache(this.sourceCache.id),this.sourceCache.usedForTerrain=!0,a(),this._initializing=!0),a(),n.updateElevation(!o),this.resetTileLookupCache(this.proxySourceCache.id),this.proxySourceCache.update(n),this._emptyDEMTextureDirty=!0}else this._disable()}resetTileLookupCache(i){this._findCoveringTileCache[i]={}}getScaledDemTileSize(){return this.sourceCache.getSource().tileSize/128*this.proxySourceCache.getSource().tileSize}_checkRenderCacheEfficiency(){const r=this.renderCacheEfficiency(this._style);this._style.map._optimizeForTerrain||100!==r.efficiency&&i.warnOnce(`Terrain render cache efficiency is not optimal (${r.efficiency}%) and performance may be affected negatively, consider placing all background, fill and line layers before layer - with id '${r.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`)}_onStyleDataEvent(i){i.coord&&"source"===i.dataType?this._clearRenderCacheForTile(i.sourceCacheId,i.coord):"style"===i.dataType&&(this._invalidateRenderCache=!0)}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const i in this._style._sourceCaches)this._style._sourceCaches[i].usedForTerrain=!1}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach(i=>i.fb.destroy()),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),delete this._depthFBO,delete this._depthTexture)}_source(){return this.enabled?this.sourceCache:null}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const i=2*this.proxySourceCache.getSource().tileSize;return[i,i]}set useVertexMorphing(i){this._useVertexMorphing=i}updateTileBinding(r){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const n=this.proxySourceCache,o=this.painter.transform;this._initializing&&(this._initializing=0===o._centerAltitude&&-1===this.getAtPointOrZero(i.MercatorCoordinate.fromLngLat(o.center),-1),this._emptyDEMTextureDirty=!this._initializing);const s=this.proxyCoords=n.getIds().map(i=>{const r=n.getTileByID(i).tileID;return r.projMatrix=o.calculateProjMatrix(r.toUnwrapped()),r});(function(r,n){const o=n.transform.pointCoordinate(n.transform.getCameraPoint()),s=new i.pointGeometry(o.x,o.y);r.sort((r,n)=>{if(n.overscaledZ-r.overscaledZ)return n.overscaledZ-r.overscaledZ;const o=new i.pointGeometry(r.canonical.x+(1<{this.proxyToSource[i.key]={}}),this.terrainTileForTile={};const l=this._style._sourceCaches;for(const c in l){const h=l[c];if(!h.used||(h!==this.sourceCache&&this.resetTileLookupCache(h.id),this._setupProxiedCoordsForOrtho(h,r[c],a),h.usedForTerrain))continue;const u=r[c];h.getSource().reparseOverscaled&&this._assignTerrainTiles(u)}this.proxiedCoords[n.id]=s.map(i=>new tk(i,i.key,this.orthoMatrix)),this._assignTerrainTiles(s),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(a),this.renderingToTexture=!1,this._updateTimestamp=i.exported.now();const d={};for(const p of(this._visibleDemTiles=[],this.proxyCoords)){const f=this.terrainTileForTile[p.key];if(!f)continue;const m=f.tileID.key;m in d||(this._visibleDemTiles.push(f),d[m]=m)}}_assignTerrainTiles(i){this._initializing||i.forEach(i=>{if(this.terrainTileForTile[i.key])return;const r=this._findTileCoveringTileID(i,this.sourceCache);r&&(this.terrainTileForTile[i.key]=r)})}_prepareDEMTextures(){const i=this.painter.context,r=i.gl;for(const n in this.terrainTileForTile){const o=this.terrainTileForTile[n],s=o.dem;s&&(!o.demTexture||o.needsDEMTextureUpload)&&(i.activeTexture.set(r.TEXTURE1),tv(this.painter,o,s))}}_prepareDemTileUniforms(i,r,n,o){if(!r||null==r.demTexture)return!1;const s=i.tileID.canonical,a=Math.pow(2,r.tileID.canonical.z-s.z),l=o||"";return n[`u_dem_tl${l}`]=[s.x*a%1,s.y*a%1],n[`u_dem_scale${l}`]=a,!0}get emptyDEMTexture(){return!this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){const r=this.painter.context,n=r.gl;if(!this._emptyDepthBufferTexture){const o={width:1,height:1,data:new Uint8Array([255,255,255,255])};this._emptyDepthBufferTexture=new i.Texture(r,o,n.RGBA,{premultiply:!1})}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let i=0;const r=this._visibleDemTiles.reduce((r,n)=>{if(!n.dem)return r;const o=n.dem.tree.minimums[0];return o>0&&i++,r+o},0);return i?r/i:0}_updateEmptyDEMTexture(){const r=this.painter.context,n=r.gl;r.activeTexture.set(n.TEXTURE2);const o=this._getLoadedAreaMinimum(),s={width:1,height:1,data:new Uint8Array(i.DEMData.pack(o,this.sourceCache.getSource().encoding))};this._emptyDEMTextureDirty=!1;let a=this._emptyDEMTexture;return a?a.update(s,{premultiply:!1}):a=this._emptyDEMTexture=new i.Texture(r,s,n.RGBA,{premultiply:!1}),a}setupElevationDraw(r,n,o){var s;const a=this.painter.context,l=a.gl,c=(s=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:i.DEMData.getUnpackVector(s),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_exaggeration:0,u_tile_tl_up:[0,0,1],u_tile_tr_up:[0,0,1],u_tile_br_up:[0,0,1],u_tile_bl_up:[0,0,1],u_tile_up_scale:1});c.u_dem_size=this.sourceCache.getSource().tileSize,c.u_exaggeration=this.exaggeration();const h=this.painter.transform,u=h.projection.createTileTransform(h,h.worldSize),d=r.tileID.canonical;c.u_tile_tl_up=u.upVector(d,0,0),c.u_tile_tr_up=u.upVector(d,i.EXTENT,0),c.u_tile_br_up=u.upVector(d,i.EXTENT,i.EXTENT),c.u_tile_bl_up=u.upVector(d,0,i.EXTENT),c.u_tile_up_scale=u.upVectorScale(d);let p=null,f=null,m=1;if(o&&o.morphing&&this._useVertexMorphing){const _=o.morphing.srcDemTile,g=o.morphing.dstDemTile;m=o.morphing.phase,_&&g&&(this._prepareDemTileUniforms(r,_,c,"_prev")&&(f=_),this._prepareDemTileUniforms(r,g,c)&&(p=g))}if(f&&p?(a.activeTexture.set(l.TEXTURE2),p.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE,l.NEAREST),a.activeTexture.set(l.TEXTURE4),f.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE,l.NEAREST),c.u_dem_lerp=m):(p=this.terrainTileForTile[r.tileID.key],a.activeTexture.set(l.TEXTURE2),(this._prepareDemTileUniforms(r,p,c)?p.demTexture:this.emptyDEMTexture).bind(l.NEAREST,l.CLAMP_TO_EDGE)),a.activeTexture.set(l.TEXTURE3),o&&o.useDepthForOcclusion?(this._depthTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE),c.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height]):(this.emptyDepthBufferTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE),c.u_depth_size_inv=[1,1]),o&&o.useMeterToDem&&p){const y=(1<{if(c===i)return;const o=[];n&&o.push(tI[d]),o.push(tI[i]),o.push("PROJECTION_GLOBE_VIEW"),l=r.useProgram("globeRaster",null,o),c=i},f=r.colorModeForRenderPass(),m=new i.DepthMode(u.LEQUAL,i.DepthMode.ReadWrite,r.depthRangeFor3D);tS.update(a);const _=r.transform,g=i.calculateGlobeMatrix(_,_.worldSize),y=i.calculateGlobeMercatorMatrix(_),x=[i.mercatorXfromLng(_.center.lng),i.mercatorYfromLat(_.center.lat)],v=r.globeSharedBuffers;(d?[!1,!0]:[!1]).forEach(d=>{c=-1;const b=d?u.LINES:u.TRIANGLES;for(const w of s){const T=o.getTile(w),E=Math.pow(2,w.canonical.z),[S,I]=i.globeBuffersForTileMesh(r,T,w,E),M=i.StencilMode.disabled,A=n.prevTerrainTileForTile[w.key],C=n.terrainTileForTile[w.key];tE(A,C)&&tS.newMorphing(w.key,A,C,a,250),h.activeTexture.set(u.TEXTURE0),T.texture.bind(u.LINEAR,u.CLAMP_TO_EDGE);const z=tS.getMorphValuesForProxy(w.key),k=z?1:0,P={};z&&i.extend$1(P,{morphing:{srcDemTile:z.from,dstDemTile:z.to,phase:i.easeCubicInOut(z.phase)}});const D=i.globeMatrixForTile(w.canonical,g),L=tT(_.projMatrix,D,y,i.globeToMercatorTransition(_.zoom),x);if(p(k,d),n.setupElevationDraw(T,l,P),r.prepareDrawProgram(h,l,w.toUnwrapped()),v){const[B,R]=d?v.getWirefameBuffer(r.context):[v.gridIndexBuffer,v.gridSegments];l.draw(h,b,m,M,f,i.CullFaceMode.backCCW,L,"globe_raster",S,B,R)}if(!d){const F=[0===w.canonical.y?i.globePoleMatrixForTile(w.canonical,!1,_):null,w.canonical.y===E-1?i.globePoleMatrixForTile(w.canonical,!0,_):null];for(const O of F){if(!O)continue;const U=tT(_.projMatrix,O,O,0,x);v&&l.draw(h,b,m,M,f,i.CullFaceMode.disabled,U,"globe_pole_raster",I,v.poleIndexBuffer,v.poleSegments)}}}})}(r,n,o,s,a);else{let l,c;const h=r.context,u=h.gl,d=r.options.showTerrainWireframe?2:0,p=(i,n)=>{if(c===i)return;const o=[tI[i]];n&&o.push(tI[d]),l=r.useProgram("terrainRaster",null,o),c=i},f=r.colorModeForRenderPass(),m=new i.DepthMode(u.LEQUAL,i.DepthMode.ReadWrite,r.depthRangeFor3D);tS.update(a);const _=r.transform,g=6*Math.pow(1.5,22-_.zoom)*n.exaggeration();(d?[!1,!0]:[!1]).forEach(d=>{c=-1;const y=d?u.LINES:u.TRIANGLES,[x,v]=d?n.getWirefameBuffer():[n.gridIndexBuffer,n.gridSegments];for(const b of s){let w;const T=o.getTile(b),E=i.StencilMode.disabled,S=n.prevTerrainTileForTile[b.key],I=n.terrainTileForTile[b.key];tE(S,I)&&tS.newMorphing(b.key,S,I,a,250),h.activeTexture.set(u.TEXTURE0),T.texture.bind(u.LINEAR,u.CLAMP_TO_EDGE,u.LINEAR_MIPMAP_NEAREST);const M=tS.getMorphValuesForProxy(b.key),A=M?1:0;M&&(w={morphing:{srcDemTile:M.from,dstDemTile:M.to,phase:i.easeCubicInOut(M.phase)}});const C=tw(b.projMatrix,!function(i,r){const n=1<i.dem).forEach(r=>{i=Math.min(i,r.dem.tree.minimums[0])}),0===i?i:(i-30)*this._exaggeration}raycast(i,r,n){if(!this._visibleDemTiles)return null;const o=this._visibleDemTiles.filter(i=>i.dem).map(o=>{const s=o.tileID,a=Math.pow(2,s.overscaledZ),{x:l,y:c}=s.canonical,h=l/a,u=(l+1)/a,d=c/a,p=(c+1)/a;return{minx:h,miny:d,maxx:u,maxy:p,t:o.dem.tree.raycastRoot(h,d,u,p,i,r,n),tile:o}});for(const s of(o.sort((i,r)=>(null!==i.t?i.t:Number.MAX_VALUE)-(null!==r.t?r.t:Number.MAX_VALUE)),o)){if(null==s.t)break;const a=s.tile.dem.tree.raycast(s.minx,s.miny,s.maxx,s.maxy,i,r,n);if(null!=a)return a}return null}_createFBO(){const r=this.painter.context,n=r.gl,o=this.drapeBufferSize;r.activeTexture.set(n.TEXTURE0);const s=new i.Texture(r,{width:o[0],height:o[1],data:null},n.RGBA);s.bind(n.LINEAR,n.CLAMP_TO_EDGE);const a=r.createFramebuffer(o[0],o[1],!1);return a.colorAttachment.set(s.texture),a.depthAttachment=new eh(r,a.framebuffer),void 0===this._sharedDepthStencil?(this._sharedDepthStencil=r.createRenderbuffer(r.gl.DEPTH_STENCIL,o[0],o[1]),this._stencilRef=0,a.depthAttachment.set(this._sharedDepthStencil),r.clear({stencil:0})):a.depthAttachment.set(this._sharedDepthStencil),r.extTextureFilterAnisotropic&&!r.extTextureFilterAnisotropicForceOff&&n.texParameterf(n.TEXTURE_2D,r.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,r.extTextureFilterAnisotropicMax),{fb:a,tex:s,dirty:!1}}_initFBOPool(){for(;this.pool.length{const r=this._style._layers[i],n=r.isHidden(this.painter.transform.zoom),o=r.getCrossfadeParameters(),s=!!o&&1!==o.t,a=r.hasTransition();return"custom"!==r.type&&!n&&(s||a)})}_clearRasterFadeFromRenderCache(){let i=!1;for(const r in this._style._sourceCaches)if(this._style._sourceCaches[r]._source instanceof eg){i=!0;break}if(i)for(let n=0;nr.renderCachePool.length){const n=Object.values(r.proxyCachedFBO);r.proxyCachedFBO={};for(let o=0;o=0;c--){const h=a[c];if(r.getTileByID(h.key),void 0!==r.proxyCachedFBO[h.key]){const u=i[h.key],d=this.proxyToSource[h.key];let p=0;for(const f in d){const m=d[f],_=u[f];if(!_||_.length!==m.length||m.some((i,r)=>i!==_[r]||l[f]&&l[f].hasOwnProperty(i.key))){p=-1;break}++p}for(const g in r.proxyCachedFBO[h.key])r.renderCache[r.proxyCachedFBO[h.key][g]].dirty=p<0||p!==Object.values(u).length}}const y=[...this._drapedRenderBatches];for(const x of(y.sort((i,r)=>r.end-r.start-(i.end-i.start)),y))for(const v of a){if(r.proxyCachedFBO[v.key])continue;let b=r.renderCachePool.pop();void 0===b&&r.renderCache.length<50&&(b=r.renderCache.length,r.renderCache.push(this._createFBO())),void 0!==b&&(r.proxyCachedFBO[v.key]={},r.proxyCachedFBO[v.key][x.start]=b,r.renderCache[b].dirty=!0)}this._tilesDirty={}}_setupStencil(i,r,n,o){let s;if(!o||!this._sourceTilesOverlap[o.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const a=this.painter.context,l=a.gl;if(r.length<=1)return void(this._overlapStencilType=!1);if(n.isTileClipped())s=r.length,this._overlapStencilMode.test={func:l.EQUAL,mask:255},this._overlapStencilType="Clip";else{if(!(r[0].overscaledZ>r[r.length-1].overscaledZ))return void(this._overlapStencilType=!1);s=1,this._overlapStencilMode.test={func:l.GREATER,mask:255},this._overlapStencilType="Mask"}this._stencilRef+s>255&&(a.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=s,this._overlapStencilMode.ref=this._stencilRef,n.isTileClipped()&&this._renderTileClippingMasks(r,this._overlapStencilMode.ref)}clipOrMaskOverlapStencilType(){return"Clip"===this._overlapStencilType||"Mask"===this._overlapStencilType}stencilModeForRTTOverlap(r){return this.renderingToTexture&&this._overlapStencilType?("Clip"===this._overlapStencilType&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[r.key]),this._overlapStencilMode):i.StencilMode.disabled}_renderTileClippingMasks(r,n){const o=this.painter,s=this.painter.context,a=s.gl;o._tileClippingMaskIDs={},s.setColorMode(i.ColorMode.disabled),s.setDepthMode(i.DepthMode.disabled);const l=o.useProgram("clippingMask");for(const c of r){const h=o._tileClippingMaskIDs[c.key]=--n;l.draw(s,a.TRIANGLES,i.DepthMode.disabled,new i.StencilMode({func:a.ALWAYS,mask:0},h,255,a.KEEP,a.KEEP,a.REPLACE),i.ColorMode.disabled,i.CullFaceMode.disabled,tM(c.projMatrix),"$clipping",o.tileExtentBuffer,o.quadTriangleIndexBuffer,o.tileExtentSegments)}}pointCoordinate(r){const n=this.painter.transform;if(r.x<0||r.x>n.width||r.y<0||r.y>n.height)return null;const o=[r.x,r.y,1,1];i.transformMat4$1(o,o,n.pixelMatrixInverse),i.scale$1(o,o,1/o[3]),o[0]/=n.worldSize,o[1]/=n.worldSize;const s=n._camera.position,a=i.mercatorZfromAltitude(1,n.center.lat),l=[s[0],s[1],s[2]/a,0],c=i.subtract([],o.slice(0,3),l);i.normalize(c,c);const h=this.raycast(l,c,this._exaggeration);return null!==h&&h?(i.scaleAndAdd(l,l,c,h),l[3]=l[2],l[2]*=a,l):null}drawDepth(){const r=this.painter,n=r.context,o=this.proxySourceCache,s=Math.ceil(r.width),a=Math.ceil(r.height);if(this._depthFBO&&(this._depthFBO.width!==s||this._depthFBO.height!==a)&&(this._depthFBO.destroy(),delete this._depthFBO,delete this._depthTexture),!this._depthFBO){const l=n.gl,c=n.createFramebuffer(s,a,!0);n.activeTexture.set(l.TEXTURE0);const h=new i.Texture(n,{width:s,height:a,data:null},l.RGBA);h.bind(l.NEAREST,l.CLAMP_TO_EDGE),c.colorAttachment.set(h.texture);const u=n.createRenderbuffer(n.gl.DEPTH_COMPONENT16,s,a);c.depthAttachment.set(u),this._depthFBO=c,this._depthTexture=h}n.bindFramebuffer.set(this._depthFBO.framebuffer),n.viewport.set([0,0,s,a]),function(r,n,o,s){if("globe"===r.transform.projection.name)return;const a=r.context,l=a.gl;a.clear({depth:1});const c=r.useProgram("terrainDepth"),h=new i.DepthMode(l.LESS,i.DepthMode.ReadWrite,r.depthRangeFor3D);for(const u of s){const d=o.getTile(u),p=tw(u.projMatrix,0);n.setupElevationDraw(d,c),c.draw(a,l.TRIANGLES,h,i.StencilMode.disabled,i.ColorMode.unblended,i.CullFaceMode.backCCW,p,"terrain_depth",n.gridBuffer,n.gridIndexBuffer,n.gridNoSkirtSegments)}}(r,this,o,this.proxyCoords)}_setupProxiedCoordsForOrtho(i,r,n){if(i.getSource() instanceof ex)return this._setupProxiedCoordsForImageSource(i,r,n);this._findCoveringTileCache[i.id]=this._findCoveringTileCache[i.id]||{};const o=this.proxiedCoords[i.id]=[],s=this.proxyCoords;for(let a=0;a(i.min.x=Math.min(i.min.x,r.x-c.x),i.min.y=Math.min(i.min.y,r.y-c.y),i.max.x=Math.max(i.max.x,r.x-c.x),i.max.y=Math.max(i.max.y,r.y-c.y),i),{min:new i.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE),max:new i.pointGeometry(-Number.MAX_VALUE,-Number.MAX_VALUE)}),u=(r,n)=>{const o=r.wrap+r.canonical.x/(1<l+h.max.x||s+ac+h.max.y};for(let d=0;di.key===n.tileID.key);if(a)return a}if(n.tileID.key!==r.key){let l,c,h;const u=r.canonical.z-n.tileID.canonical.z;s=i.create();const d=n.tileID.wrap-r.wrap<0?(c=(l=i.EXTENT>>u)*((n.tileID.canonical.x<=d){const p=r.canonical.z-d;n.getSource().reparseOverscaled?(c=Math.max(r.canonical.z+2,n.transform.tileZoom),l=new i.OverscaledTileID(c,r.wrap,d,r.canonical.x>>p,r.canonical.y>>p)):0!==p&&(c=d,l=new i.OverscaledTileID(c,r.wrap,d,r.canonical.x>>p,r.canonical.y>>p))}l.key!==r.key&&(u.push(l.key),o=n.getTile(l))}const f=i=>{u.forEach(r=>{s[r]=i}),u.length=0};for(c-=1;c>=h&&(!o||!o.hasData());c--){o&&f(o.tileID.key);const m=l.calculateScaledKey(c);if((o=n.getTileByID(m))&&o.hasData())break;const _=s[m];if(null===_)break;void 0===_?u.push(m):o=n.getTileByID(_)}return f(o?o.tileID.key:null),o&&o.hasData()?o:null}findDEMTileFor(i){return this.enabled?this._findTileCoveringTileID(i,this.sourceCache):null}prepareDrawTile(i){this.renderedToTile=!0}_clearRenderCacheForTile(i,r){let n=this._tilesDirty[i];n||(n=this._tilesDirty[i]={}),n[r.key]=!0}getWirefameBuffer(){if(!this.wireframeSegments){const r=function(r){let n,o,s;const a=new i.StructArrayLayout2ui4;for(o=1;o<129;o++){for(n=1;n<129;n++)s=131*o+n,a.emplaceBack(s,s+1),a.emplaceBack(s,s+131),a.emplaceBack(s+1,s+131),128===o&&a.emplaceBack(s+131,s+131+1);a.emplaceBack(s+1,s+1+131)}return a}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(r),this.wireframeSegments=i.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,r.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}}function tD(i){const r=[];for(let n=0;n_.indexOf(g)&&_.push(g);let y=s?s.defines():[];y=y.concat(l.map(i=>`#define ${i}`));const x=y.concat("\n#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif",td,t_.fragmentSource,tm.fragmentSource,o.fragmentSource).join("\n"),v=y.concat("\n#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif",td,t_.vertexSource,tm.vertexSource,tf.vertexSource,o.vertexSource).join("\n"),b=c.createShader(c.FRAGMENT_SHADER);if(c.isContextLost())return void(this.failedToCreate=!0);c.shaderSource(b,x),c.compileShader(b),c.attachShader(this.program,b);const w=c.createShader(c.VERTEX_SHADER);if(c.isContextLost())return void(this.failedToCreate=!0);c.shaderSource(w,v),c.compileShader(w),c.attachShader(this.program,w),this.attributes={};const T={};this.numAttributes=d.length;for(let E=0;E>16,c>>16],u_pixel_coord_lower:[65535&l,65535&c]}}const tR=(r,n,o,s)=>{const a=n.style.light,l=a.properties.get("position"),c=[l.x,l.y,l.z],h=i.create$1();"viewport"===a.properties.get("anchor")&&(i.fromRotation(h,-n.transform.angle),i.transformMat3(c,c,h));const u=a.properties.get("color");return{u_matrix:r,u_lightpos:c,u_lightintensity:a.properties.get("intensity"),u_lightcolor:[u.r,u.g,u.b],u_vertical_gradient:+o,u_opacity:s}},tF=(r,n,o,s,a,l,c)=>i.extend(tR(r,n,o,s),tB(l,n,c),{u_height_factor:-Math.pow(2,a.overscaledZ)/c.tileSize/8}),tO=i=>({u_matrix:i}),tU=(r,n,o,s)=>i.extend(tO(r),tB(o,n,s)),tV=(i,r)=>({u_matrix:i,u_world:r}),tN=(r,n,o,s,a)=>i.extend(tU(r,n,o,s),{u_world:a}),tj=(r,n,o,s)=>{let a;const l=r.transform;return a="map"===s.paint.get("circle-pitch-alignment")?l.calculatePixelsToTileUnitsMatrix(o):new Float32Array([l.pixelsToGLUnits[0],0,0,l.pixelsToGLUnits[1]]),{u_camera_to_center_distance:l.cameraToCenterDistance,u_matrix:r.translatePosMatrix(n.projMatrix,o,s.paint.get("circle-translate"),s.paint.get("circle-translate-anchor")),u_device_pixel_ratio:i.exported.devicePixelRatio,u_extrude_scale:a}},tG=i=>{const r=[];return"map"===i.paint.get("circle-pitch-alignment")&&r.push("PITCH_WITH_MAP"),"map"===i.paint.get("circle-pitch-scale")&&r.push("SCALE_WITH_MAP"),r},tZ=(r,n,o)=>{const s=i.EXTENT/o.tileSize;return{u_matrix:r,u_camera_to_center_distance:n.cameraToCenterDistance,u_extrude_scale:[n.pixelsToGLUnits[0]/s,n.pixelsToGLUnits[1]/s]}},t$=(i,r,n=1)=>({u_matrix:i,u_color:r,u_overlay:0,u_overlay_scale:n}),tq=(i,r,n,o)=>({u_matrix:i,u_extrude_scale:S(r,1,n),u_intensity:o}),tX=(r,n,o,s,a,l)=>{const c=r.transform,h=c.calculatePixelsToTileUnitsMatrix(n),u={u_matrix:tK(r,n,o,a),u_pixels_to_tile_units:h,u_device_pixel_ratio:i.exported.devicePixelRatio,u_units_to_pixels:[1/c.pixelsToGLUnits[0],1/c.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:l,u_texsize:[0,0],u_scale:[0,0,0],u_mix:0,u_alpha_discard_threshold:0};if(tY(o)){const d=tH(n,r.transform);u.u_texsize=n.lineAtlasTexture.size,u.u_scale=[d,s.fromScale,s.toScale],u.u_mix=s.t}return u},tW=(r,n,o,s,a)=>{const l=r.transform,c=tH(n,l);return{u_matrix:tK(r,n,o,a),u_texsize:n.imageAtlasTexture.size,u_pixels_to_tile_units:l.calculatePixelsToTileUnitsMatrix(n),u_device_pixel_ratio:i.exported.devicePixelRatio,u_image:0,u_scale:[c,s.fromScale,s.toScale],u_fade:s.t,u_units_to_pixels:[1/l.pixelsToGLUnits[0],1/l.pixelsToGLUnits[1]],u_alpha_discard_threshold:0}};function tH(i,r){return 1/S(i,1,r.tileZoom)}function tK(i,r,n,o){return i.translatePosMatrix(o||r.tileID.projMatrix,r,n.paint.get("line-translate"),n.paint.get("line-translate-anchor"))}function tY(i){const r=i.paint.get("line-dasharray").value;return r.value||"constant"!==r.kind}const tJ=(i,r,n,o,s,a)=>{var l,c;return{u_matrix:i,u_tl_parent:r,u_scale_parent:n,u_fade_t:o.mix,u_opacity:o.opacity*s.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:s.paint.get("raster-brightness-min"),u_brightness_high:s.paint.get("raster-brightness-max"),u_saturation_factor:(c=s.paint.get("raster-saturation"))>0?1-1/(1.001-c):-c,u_contrast_factor:(l=s.paint.get("raster-contrast"))>0?1/(1-l):1+l,u_spin_weights:function(i){i*=Math.PI/180;const r=Math.sin(i),n=Math.cos(i);return[(2*n+1)/3,(-Math.sqrt(3)*r-n+1)/3,(Math.sqrt(3)*r-n+1)/3]}(s.paint.get("raster-hue-rotate")),u_perspective_transform:a}},tQ=(i,r,n,o,s,a,l,c,h,u,d,p,f,m)=>{const _=s.transform;return{u_is_size_zoom_constant:+("constant"===i||"source"===i),u_is_size_feature_constant:+("constant"===i||"camera"===i),u_size_t:r?r.uSizeT:0,u_size:r?r.uSize:0,u_camera_to_center_distance:_.cameraToCenterDistance,u_pitch:_.pitch/360*2*Math.PI,u_rotate_symbol:+n,u_aspect_ratio:_.width/_.height,u_fade_change:s.options.fadeDuration?s.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:l,u_coord_matrix:c,u_is_text:+h,u_pitch_with_map:+o,u_texsize:u,u_tile_id:d,u_zoom_transition:p,u_inv_rot_matrix:f,u_merc_center:m,u_texture:0}},t0=(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g)=>{const{cameraToCenterDistance:y,_pitch:x}=a.transform;return i.extend(tQ(r,n,o,s,a,l,c,h,u,d,f,m,_,g),{u_gamma_scale:s?y*Math.cos(a.terrain?0:x):1,u_device_pixel_ratio:i.exported.devicePixelRatio,u_is_halo:+p})},t1=(r,n,o,s,a,l,c,h,u,d,p,f,m,_)=>i.extend(t0(r,n,o,s,a,l,c,h,!0,u,!0,p,f,m,_),{u_texsize_icon:d,u_texture_icon:1}),t2=(i,r,n)=>({u_matrix:i,u_opacity:r,u_color:n}),t3=(r,n,o,s,a,l)=>i.extend(function(i,r,n,o){const s=n.imageManager.getPattern(i.from.toString()),a=n.imageManager.getPattern(i.to.toString()),{width:l,height:c}=n.imageManager.getPixelSize(),h=Math.pow(2,o.tileID.overscaledZ),u=o.tileSize*Math.pow(2,n.transform.tileZoom)/h,d=u*(o.tileID.canonical.x+o.tileID.wrap*h),p=u*o.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:s.tl,u_pattern_br_a:s.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[l,c],u_mix:r.t,u_pattern_size_a:s.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:r.fromScale,u_scale_b:r.toScale,u_tile_units_to_pixels:1/S(o,1,n.transform.tileZoom),u_pixel_coord_upper:[d>>16,p>>16],u_pixel_coord_lower:[65535&d,65535&p]}}(s,l,o,a),{u_matrix:r,u_opacity:n}),t5={fillExtrusion:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_lightpos:new i.Uniform3f(r,n.u_lightpos),u_lightintensity:new i.Uniform1f(r,n.u_lightintensity),u_lightcolor:new i.Uniform3f(r,n.u_lightcolor),u_vertical_gradient:new i.Uniform1f(r,n.u_vertical_gradient),u_opacity:new i.Uniform1f(r,n.u_opacity)}),fillExtrusionPattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_lightpos:new i.Uniform3f(r,n.u_lightpos),u_lightintensity:new i.Uniform1f(r,n.u_lightintensity),u_lightcolor:new i.Uniform3f(r,n.u_lightcolor),u_vertical_gradient:new i.Uniform1f(r,n.u_vertical_gradient),u_height_factor:new i.Uniform1f(r,n.u_height_factor),u_image:new i.Uniform1i(r,n.u_image),u_texsize:new i.Uniform2f(r,n.u_texsize),u_pixel_coord_upper:new i.Uniform2f(r,n.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(r,n.u_pixel_coord_lower),u_scale:new i.Uniform3f(r,n.u_scale),u_fade:new i.Uniform1f(r,n.u_fade),u_opacity:new i.Uniform1f(r,n.u_opacity)}),fill:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix)}),fillPattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_image:new i.Uniform1i(r,n.u_image),u_texsize:new i.Uniform2f(r,n.u_texsize),u_pixel_coord_upper:new i.Uniform2f(r,n.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(r,n.u_pixel_coord_lower),u_scale:new i.Uniform3f(r,n.u_scale),u_fade:new i.Uniform1f(r,n.u_fade)}),fillOutline:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_world:new i.Uniform2f(r,n.u_world)}),fillOutlinePattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_world:new i.Uniform2f(r,n.u_world),u_image:new i.Uniform1i(r,n.u_image),u_texsize:new i.Uniform2f(r,n.u_texsize),u_pixel_coord_upper:new i.Uniform2f(r,n.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(r,n.u_pixel_coord_lower),u_scale:new i.Uniform3f(r,n.u_scale),u_fade:new i.Uniform1f(r,n.u_fade)}),circle:(r,n)=>({u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_extrude_scale:new i.UniformMatrix2f(r,n.u_extrude_scale),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_matrix:new i.UniformMatrix4f(r,n.u_matrix)}),collisionBox:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_extrude_scale:new i.Uniform2f(r,n.u_extrude_scale)}),collisionCircle:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_inv_matrix:new i.UniformMatrix4f(r,n.u_inv_matrix),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_viewport_size:new i.Uniform2f(r,n.u_viewport_size)}),debug:(r,n)=>({u_color:new i.UniformColor(r,n.u_color),u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_overlay:new i.Uniform1i(r,n.u_overlay),u_overlay_scale:new i.Uniform1f(r,n.u_overlay_scale)}),clippingMask:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix)}),heatmap:(r,n)=>({u_extrude_scale:new i.Uniform1f(r,n.u_extrude_scale),u_intensity:new i.Uniform1f(r,n.u_intensity),u_matrix:new i.UniformMatrix4f(r,n.u_matrix)}),heatmapTexture:(r,n)=>({u_image:new i.Uniform1i(r,n.u_image),u_color_ramp:new i.Uniform1i(r,n.u_color_ramp),u_opacity:new i.Uniform1f(r,n.u_opacity)}),hillshade:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_image:new i.Uniform1i(r,n.u_image),u_latrange:new i.Uniform2f(r,n.u_latrange),u_light:new i.Uniform2f(r,n.u_light),u_shadow:new i.UniformColor(r,n.u_shadow),u_highlight:new i.UniformColor(r,n.u_highlight),u_accent:new i.UniformColor(r,n.u_accent)}),hillshadePrepare:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_image:new i.Uniform1i(r,n.u_image),u_dimension:new i.Uniform2f(r,n.u_dimension),u_zoom:new i.Uniform1f(r,n.u_zoom),u_unpack:new i.Uniform4f(r,n.u_unpack)}),line:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_pixels_to_tile_units:new i.UniformMatrix2f(r,n.u_pixels_to_tile_units),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(r,n.u_units_to_pixels),u_dash_image:new i.Uniform1i(r,n.u_dash_image),u_gradient_image:new i.Uniform1i(r,n.u_gradient_image),u_image_height:new i.Uniform1f(r,n.u_image_height),u_texsize:new i.Uniform2f(r,n.u_texsize),u_scale:new i.Uniform3f(r,n.u_scale),u_mix:new i.Uniform1f(r,n.u_mix),u_alpha_discard_threshold:new i.Uniform1f(r,n.u_alpha_discard_threshold)}),linePattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_texsize:new i.Uniform2f(r,n.u_texsize),u_pixels_to_tile_units:new i.UniformMatrix2f(r,n.u_pixels_to_tile_units),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_image:new i.Uniform1i(r,n.u_image),u_units_to_pixels:new i.Uniform2f(r,n.u_units_to_pixels),u_scale:new i.Uniform3f(r,n.u_scale),u_fade:new i.Uniform1f(r,n.u_fade),u_alpha_discard_threshold:new i.Uniform1f(r,n.u_alpha_discard_threshold)}),raster:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_tl_parent:new i.Uniform2f(r,n.u_tl_parent),u_scale_parent:new i.Uniform1f(r,n.u_scale_parent),u_fade_t:new i.Uniform1f(r,n.u_fade_t),u_opacity:new i.Uniform1f(r,n.u_opacity),u_image0:new i.Uniform1i(r,n.u_image0),u_image1:new i.Uniform1i(r,n.u_image1),u_brightness_low:new i.Uniform1f(r,n.u_brightness_low),u_brightness_high:new i.Uniform1f(r,n.u_brightness_high),u_saturation_factor:new i.Uniform1f(r,n.u_saturation_factor),u_contrast_factor:new i.Uniform1f(r,n.u_contrast_factor),u_spin_weights:new i.Uniform3f(r,n.u_spin_weights),u_perspective_transform:new i.Uniform2f(r,n.u_perspective_transform)}),symbolIcon:(r,n)=>({u_is_size_zoom_constant:new i.Uniform1i(r,n.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(r,n.u_is_size_feature_constant),u_size_t:new i.Uniform1f(r,n.u_size_t),u_size:new i.Uniform1f(r,n.u_size),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_pitch:new i.Uniform1f(r,n.u_pitch),u_rotate_symbol:new i.Uniform1i(r,n.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(r,n.u_aspect_ratio),u_fade_change:new i.Uniform1f(r,n.u_fade_change),u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(r,n.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(r,n.u_coord_matrix),u_is_text:new i.Uniform1i(r,n.u_is_text),u_pitch_with_map:new i.Uniform1i(r,n.u_pitch_with_map),u_texsize:new i.Uniform2f(r,n.u_texsize),u_tile_id:new i.Uniform3f(r,n.u_tile_id),u_zoom_transition:new i.Uniform1f(r,n.u_zoom_transition),u_inv_rot_matrix:new i.UniformMatrix4f(r,n.u_inv_rot_matrix),u_merc_center:new i.Uniform2f(r,n.u_merc_center),u_texture:new i.Uniform1i(r,n.u_texture)}),symbolSDF:(r,n)=>({u_is_size_zoom_constant:new i.Uniform1i(r,n.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(r,n.u_is_size_feature_constant),u_size_t:new i.Uniform1f(r,n.u_size_t),u_size:new i.Uniform1f(r,n.u_size),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_pitch:new i.Uniform1f(r,n.u_pitch),u_rotate_symbol:new i.Uniform1i(r,n.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(r,n.u_aspect_ratio),u_fade_change:new i.Uniform1f(r,n.u_fade_change),u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(r,n.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(r,n.u_coord_matrix),u_is_text:new i.Uniform1i(r,n.u_is_text),u_pitch_with_map:new i.Uniform1i(r,n.u_pitch_with_map),u_texsize:new i.Uniform2f(r,n.u_texsize),u_texture:new i.Uniform1i(r,n.u_texture),u_gamma_scale:new i.Uniform1f(r,n.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_tile_id:new i.Uniform3f(r,n.u_tile_id),u_zoom_transition:new i.Uniform1f(r,n.u_zoom_transition),u_inv_rot_matrix:new i.UniformMatrix4f(r,n.u_inv_rot_matrix),u_merc_center:new i.Uniform2f(r,n.u_merc_center),u_is_halo:new i.Uniform1i(r,n.u_is_halo)}),symbolTextAndIcon:(r,n)=>({u_is_size_zoom_constant:new i.Uniform1i(r,n.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(r,n.u_is_size_feature_constant),u_size_t:new i.Uniform1f(r,n.u_size_t),u_size:new i.Uniform1f(r,n.u_size),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_pitch:new i.Uniform1f(r,n.u_pitch),u_rotate_symbol:new i.Uniform1i(r,n.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(r,n.u_aspect_ratio),u_fade_change:new i.Uniform1f(r,n.u_fade_change),u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(r,n.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(r,n.u_coord_matrix),u_is_text:new i.Uniform1i(r,n.u_is_text),u_pitch_with_map:new i.Uniform1i(r,n.u_pitch_with_map),u_texsize:new i.Uniform2f(r,n.u_texsize),u_texsize_icon:new i.Uniform2f(r,n.u_texsize_icon),u_texture:new i.Uniform1i(r,n.u_texture),u_texture_icon:new i.Uniform1i(r,n.u_texture_icon),u_gamma_scale:new i.Uniform1f(r,n.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_is_halo:new i.Uniform1i(r,n.u_is_halo)}),background:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_opacity:new i.Uniform1f(r,n.u_opacity),u_color:new i.UniformColor(r,n.u_color)}),backgroundPattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_opacity:new i.Uniform1f(r,n.u_opacity),u_image:new i.Uniform1i(r,n.u_image),u_pattern_tl_a:new i.Uniform2f(r,n.u_pattern_tl_a),u_pattern_br_a:new i.Uniform2f(r,n.u_pattern_br_a),u_pattern_tl_b:new i.Uniform2f(r,n.u_pattern_tl_b),u_pattern_br_b:new i.Uniform2f(r,n.u_pattern_br_b),u_texsize:new i.Uniform2f(r,n.u_texsize),u_mix:new i.Uniform1f(r,n.u_mix),u_pattern_size_a:new i.Uniform2f(r,n.u_pattern_size_a),u_pattern_size_b:new i.Uniform2f(r,n.u_pattern_size_b),u_scale_a:new i.Uniform1f(r,n.u_scale_a),u_scale_b:new i.Uniform1f(r,n.u_scale_b),u_pixel_coord_upper:new i.Uniform2f(r,n.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(r,n.u_pixel_coord_lower),u_tile_units_to_pixels:new i.Uniform1f(r,n.u_tile_units_to_pixels)}),terrainRaster:tb,terrainDepth:tb,skybox:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_sun_direction:new i.Uniform3f(r,n.u_sun_direction),u_cubemap:new i.Uniform1i(r,n.u_cubemap),u_opacity:new i.Uniform1f(r,n.u_opacity),u_temporal_offset:new i.Uniform1f(r,n.u_temporal_offset)}),skyboxGradient:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_color_ramp:new i.Uniform1i(r,n.u_color_ramp),u_center_direction:new i.Uniform3f(r,n.u_center_direction),u_radius:new i.Uniform1f(r,n.u_radius),u_opacity:new i.Uniform1f(r,n.u_opacity),u_temporal_offset:new i.Uniform1f(r,n.u_temporal_offset)}),skyboxCapture:(r,n)=>({u_matrix_3f:new i.UniformMatrix3f(r,n.u_matrix_3f),u_sun_direction:new i.Uniform3f(r,n.u_sun_direction),u_sun_intensity:new i.Uniform1f(r,n.u_sun_intensity),u_color_tint_r:new i.Uniform4f(r,n.u_color_tint_r),u_color_tint_m:new i.Uniform4f(r,n.u_color_tint_m),u_luminance:new i.Uniform1f(r,n.u_luminance)}),globeRaster:(r,n)=>({u_proj_matrix:new i.UniformMatrix4f(r,n.u_proj_matrix),u_globe_matrix:new i.UniformMatrix4f(r,n.u_globe_matrix),u_merc_matrix:new i.UniformMatrix4f(r,n.u_merc_matrix),u_zoom_transition:new i.Uniform1f(r,n.u_zoom_transition),u_merc_center:new i.Uniform2f(r,n.u_merc_center),u_image0:new i.Uniform1i(r,n.u_image0)}),globeAtmosphere:(r,n)=>({u_center:new i.Uniform2f(r,n.u_center),u_radius:new i.Uniform1f(r,n.u_radius),u_screen_size:new i.Uniform2f(r,n.u_screen_size),u_pixel_ratio:new i.Uniform1f(r,n.u_pixel_ratio),u_opacity:new i.Uniform1f(r,n.u_opacity),u_fadeout_range:new i.Uniform1f(r,n.u_fadeout_range),u_start_color:new i.Uniform3f(r,n.u_start_color),u_end_color:new i.Uniform3f(r,n.u_end_color)})};function t4(r,n,o,s,a,l,c){var h;const u=r.context,d=u.gl,p=r.useProgram("collisionBox"),f=[];let m=0,_=0;for(let g=0;g0){const E=i.create(),S=b;i.mul(E,v.placementInvProjMatrix,r.transform.glCoordMatrix),i.mul(E,E,v.placementViewportMatrix),f.push({circleArray:T,circleOffset:_,transform:S,invTransform:E}),m+=T.length/4,_=m}w&&(r.terrain&&r.terrain.setupElevationDraw(x,p),p.draw(u,d.LINES,i.DepthMode.disabled,i.StencilMode.disabled,r.colorModeForRenderPass(),i.CullFaceMode.disabled,tZ(b,r.transform,x),o.id,w.layoutVertexBuffer,w.indexBuffer,w.segments,null,r.transform.zoom,null,w.collisionVertexBuffer,w.collisionVertexBufferExt))}if(!c||!f.length)return;const I=r.useProgram("collisionCircle"),M=new i.StructArrayLayout2f1f2i16;M.resize(4*m),M._trim();let A=0;for(const C of f)for(let z=0;z[0,0,0];!function(r,n,o,s,a,l,c,h,u,d){const p=o.transform,f=s?r.textSizeData:r.iconSizeData,m=i.evaluateSizeForZoom(f,o.transform.zoom),_=[256/o.width*2+1,256/o.height*2+1],g=s?r.text.dynamicLayoutVertexArray:r.icon.dynamicLayoutVertexArray;g.clear();const y=r.lineVertexArray,x=s?r.text.placedSymbolArray:r.icon.placedSymbolArray,v=o.transform.width/o.transform.height;let b=!1;for(let w=0;w=-r[0]&&n<=r[0]&&o>=-r[1]&&o<=r[1]}(A,_)){eW(T.numGlyphs,g);continue}const C=eV(o.transform.cameraToCenterDistance,A[3]),z=i.evaluateSizeForFeature(f,m,T),k=c?z/C:z*C,P=eU(new i.pointGeometry(M[0],M[1]),a,M[2]);if(P.signedDistanceFromCamera<=0){eW(T.numGlyphs,g);continue}let D={};const L=c?null:u,B=eG(T,k,!1,h,n,a,l,r.glyphOffsetArray,y,g,P.point,E,D,v,L,p.projection,d);b=B.useVertical,L&&B.needsFlipping&&(D={}),(B.notEnoughRoom||b||B.needsFlipping&&eG(T,k,!0,h,n,a,l,r.glyphOffsetArray,y,g,P.point,E,D,v,L,p.projection,d).notEnoughRoom)&&eW(T.numGlyphs,g)}s?r.text.dynamicLayoutVertexBuffer.updateData(g):r.icon.dynamicLayoutVertexBuffer.updateData(g)}(L,P.projMatrix,r,a,Q,et,v,d,eo,P)}const es=r.translatePosMatrix(P.projMatrix,D,l,c),ea=b||a&&M||er?t6:Q,el=r.translatePosMatrix(et,D,l,c,!0),ec=F&&0!==o.paint.get(a?"text-halo-width":"icon-halo-width").constantOr(1),eh=y.createInversionMatrix(P.toUnwrapped());G=F?L.iconsInText?t1(O.kind,N,w,v,r,es,ea,el,Z,W,j,C,eh,I):t0(O.kind,N,w,v,r,es,ea,el,a,Z,!0,j,C,eh,I):tQ(O.kind,N,w,v,r,es,ea,el,a,Z,j,C,eh,I);const eu={program:V,buffers:B,uniformValues:G,atlasTexture:$,atlasTextureIcon:H,atlasInterpolation:q,atlasInterpolationIcon:X,isSDF:F,hasHalo:ec,tile:D,labelPlaneMatrixInv:ee};if(T&&L.canOverlap){E=!0;const ed=B.segments.get();for(const ep of ed)z.push({segments:new i.SegmentVector([ep]),sortKey:ep.sortKey,state:eu})}else z.push({segments:B.segments,sortKey:0,state:eu})}for(const ef of(E&&z.sort((i,r)=>i.sortKey-r.sortKey),z)){const em=ef.state;if(r.terrain&&r.terrain.setupElevationDraw(em.tile,em.program,{useDepthForOcclusion:!A,labelPlaneMatrixInv:em.labelPlaneMatrixInv}),m.activeTexture.set(_.TEXTURE0),em.atlasTexture.bind(em.atlasInterpolation,_.CLAMP_TO_EDGE),em.atlasTextureIcon&&(m.activeTexture.set(_.TEXTURE1),em.atlasTextureIcon&&em.atlasTextureIcon.bind(em.atlasInterpolationIcon,_.CLAMP_TO_EDGE)),em.isSDF){const e_=em.uniformValues;em.hasHalo&&(e_.u_is_halo=1,t9(em.buffers,ef.segments,o,r,em.program,S,p,f,e_)),e_.u_is_halo=0}t9(em.buffers,ef.segments,o,r,em.program,S,p,f,em.uniformValues)}}function t9(r,n,o,s,a,l,c,h,u){const d=s.context;a.draw(d,d.gl.TRIANGLES,l,c,h,i.CullFaceMode.disabled,u,o.id,r.layoutVertexBuffer,r.indexBuffer,n,o.paint,s.transform.zoom,r.programConfigurations.get(o.id),r.dynamicLayoutVertexBuffer,r.opacityVertexBuffer)}function t7(r,n,o,s,a,l,c){let h,u,d,p,f;const m=r.context.gl,_=o.paint.get("fill-pattern"),g=_&&_.constantOr(1),y=o.getCrossfadeParameters();for(const x of(c?(u=g&&!o.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",h=m.LINES):(u=g?"fillPattern":"fill",h=m.TRIANGLES),s)){const v=n.getTile(x);if(g&&!v.patternsLoaded())continue;const b=v.getBucket(o);if(!b)continue;r.prepareDrawTile(x);const w=b.programConfigurations.get(o.id),T=r.useProgram(u,w);g&&(r.context.activeTexture.set(m.TEXTURE0),v.imageAtlasTexture.bind(m.LINEAR,m.CLAMP_TO_EDGE),w.updatePaintBuffers(y));const E=_.constantOr(null);if(E&&v.imageAtlas){const S=v.imageAtlas,I=S.patternPositions[E.to.toString()],M=S.patternPositions[E.from.toString()];I&&M&&w.setConstantPatternPositions(I,M)}const A=r.translatePosMatrix(x.projMatrix,v,o.paint.get("fill-translate"),o.paint.get("fill-translate-anchor"));if(c){p=b.indexBuffer2,f=b.segments2;const C=r.terrain&&r.terrain.renderingToTexture?r.terrain.drapeBufferSize:[m.drawingBufferWidth,m.drawingBufferHeight];d="fillOutlinePattern"===u&&g?tN(A,r,y,v,C):tV(A,C)}else p=b.indexBuffer,f=b.segments,d=g?tU(A,r,y,v):tO(A);r.prepareDrawProgram(r.context,T,x.toUnwrapped()),T.draw(r.context,h,a,r.stencilModeForClipping(x),l,i.CullFaceMode.disabled,d,o.id,b.layoutVertexBuffer,p,f,o.paint,r.transform.zoom,w)}}function ie(r,n,o,s,a,l,c){const h=r.context,u=h.gl,d=o.paint.get("fill-extrusion-pattern"),p=d.constantOr(1),f=o.getCrossfadeParameters(),m=o.paint.get("fill-extrusion-opacity");for(const _ of s){const g=n.getTile(_),y=g.getBucket(o);if(!y)continue;const x=y.programConfigurations.get(o.id),v=r.useProgram(p?"fillExtrusionPattern":"fillExtrusion",x);if(r.terrain){const b=r.terrain;if(!y.enableTerrain)continue;if(b.setupElevationDraw(g,v,{useMeterToDem:!0}),function(r,n,o,s,a,l){let c,h,u;const d=[r=>{let n=r.canonical.x-1,o=r.wrap;return n<0&&(n=(1<{let n=r.canonical.x+1,o=r.wrap;return n===1<new i.OverscaledTileID(r.overscaledZ,r.wrap,r.canonical.z,r.canonical.x,(0===r.canonical.y?1<new i.OverscaledTileID(r.overscaledZ,r.wrap,r.canonical.z,r.canonical.x,r.canonical.y===(1<{let r,o,s;const l=n.getSource().maxzoom,c=i=>{const r=n.getTileByID(i);if(r&&r.hasData())return r.getBucket(a)};return(i.overscaledZ===i.canonical.z||i.overscaledZ>=l)&&(r=c(i.key)),i.overscaledZ>=l&&(o=c(i.calculateScaledKey(i.overscaledZ+1))),i.overscaledZ>l&&(s=c(i.calculateScaledKey(i.overscaledZ-1))),r||o||s},f=[0,0,0],m=(r,n)=>(f[0]=Math.min(r.min.y,n.min.y),f[1]=Math.max(r.max.y,n.max.y),f[2]=i.EXTENT-n.min.x>r.max.x?n.min.x-i.EXTENT:r.max.x,f),_=(r,n)=>(f[0]=Math.min(r.min.x,n.min.x),f[1]=Math.max(r.max.x,n.max.x),f[2]=i.EXTENT-n.min.y>r.max.y?n.min.y-i.EXTENT:r.max.y,f),g=[(i,r)=>m(i,r),(i,r)=>m(r,i),(i,r)=>_(i,r),(i,r)=>_(r,i)],y=new i.pointGeometry(0,0),x=(r,n,s,a,d)=>{const p=[[a?s:r,a?r:s,0],[a?s:n,a?n:s,0]],f=d<0?i.EXTENT+d:d,m=[a?f:(r+n)/2,a?(r+n)/2:f,0];return 0===s&&d<0||0!==s&&d>0?l.getForTilePoints(u,[m],!0,h):p.push(m),l.getForTilePoints(o,p,!0,c),Math.max(p[0][2],p[1][2],m[2])/l.exaggeration()};for(let v=0;v<4;v++){const b=s.borders[v];if(0===b.length&&(s.borderDone[v]=!0),s.borderDone[v])continue;const w=u=d[v](o),T=p(w);if(!T||!T.enableTerrain||!(h=l.findDEMTileFor(w))||!h.dem)continue;if(!c){const E=l.findDEMTileFor(o);if(!E||!E.dem)return;c=E}const S=(v<2?1:5)-v,I=T.borders[S];let M=0;for(let A=0;Ak[0]+3);)T.borderDone[S]||T.encodeCentroid(void 0,C,!1),M++;if(C&&Mk[1]-3)&&(D++,++M!==I.length);)C=T.featuresOnBorder[I[M]];if(C=T.featuresOnBorder[I[P]],z.intersectsCount()>1||C.intersectsCount()>1||1!==D){1!==D&&(M=P),s.encodeCentroid(void 0,z,!1),T.borderDone[S]||T.encodeCentroid(void 0,C,!1);continue}const L=g[v](z,C),B=v%2?i.EXTENT-1:0;y.x=x(L[0],Math.min(i.EXTENT-1,L[1]),B,v<2,L[2]),y.y=0,s.encodeCentroid(y,z,!1),T.borderDone[S]||T.encodeCentroid(y,C,!1)}else s.encodeCentroid(void 0,z,!1)}s.borderDone[v]=s.needsCentroidUpdate=!0,T.borderDone[S]||(T.borderDone[S]=T.needsCentroidUpdate=!0)}(s.needsCentroidUpdate||!s.centroidVertexBuffer&&0!==s.centroidVertexArray.length)&&s.uploadCentroid(r)}(h,n,_,y,o,b),!y.centroidVertexBuffer){const w=v.attributes.a_centroid_pos;void 0!==w&&u.vertexAttrib2f(w,0,0)}}p&&(r.context.activeTexture.set(u.TEXTURE0),g.imageAtlasTexture.bind(u.LINEAR,u.CLAMP_TO_EDGE),x.updatePaintBuffers(f));const T=d.constantOr(null);if(T&&g.imageAtlas){const E=g.imageAtlas,S=E.patternPositions[T.to.toString()],I=E.patternPositions[T.from.toString()];S&&I&&x.setConstantPatternPositions(S,I)}const M=r.translatePosMatrix(_.projMatrix,g,o.paint.get("fill-extrusion-translate"),o.paint.get("fill-extrusion-translate-anchor")),A=o.paint.get("fill-extrusion-vertical-gradient"),C=p?tF(M,r,A,m,_,f,g):tR(M,r,A,m);r.prepareDrawProgram(h,v,_.toUnwrapped()),v.draw(h,h.gl.TRIANGLES,a,l,c,i.CullFaceMode.backCCW,C,o.id,y.layoutVertexBuffer,y.indexBuffer,y.segments,o.paint,r.transform.zoom,x,r.terrain?y.centroidVertexBuffer:null)}}const it=new i.Color(1,0,0,1),ii=new i.Color(0,1,0,1),ir=new i.Color(0,0,1,1),io=new i.Color(1,0,1,1),is=new i.Color(0,1,1,1);function ia(i,r,n,o){ic(i,0,r+n/2,i.transform.width,n,o)}function il(i,r,n,o){ic(i,r-n/2,0,n,i.transform.height,o)}function ic(r,n,o,s,a,l){const c=r.context,h=c.gl;h.enable(h.SCISSOR_TEST),h.scissor(n*i.exported.devicePixelRatio,o*i.exported.devicePixelRatio,s*i.exported.devicePixelRatio,a*i.exported.devicePixelRatio),c.clear({color:l}),h.disable(h.SCISSOR_TEST)}const ih=i.createLayout([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:iu}=ih;function id(i,r,n,o){i.emplaceBack(r,n,o)}class ip{constructor(r){this.vertexArray=new i.StructArrayLayout3f12,this.indices=new i.StructArrayLayout3ui6,id(this.vertexArray,-1,-1,1),id(this.vertexArray,1,-1,1),id(this.vertexArray,-1,1,1),id(this.vertexArray,1,1,1),id(this.vertexArray,-1,-1,-1),id(this.vertexArray,1,-1,-1),id(this.vertexArray,-1,1,-1),id(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=r.createVertexBuffer(this.vertexArray,iu),this.indexBuffer=r.createIndexBuffer(this.indices),this.segment=i.SegmentVector.simpleSegment(0,0,36,12)}}function im(r,n,o,s,a,l){const c=r.gl,h=n.paint.get("sky-atmosphere-color"),u=n.paint.get("sky-atmosphere-halo-color"),d=n.paint.get("sky-atmosphere-sun-intensity"),p={u_matrix_3f:i.fromMat4([],s),u_sun_direction:a,u_sun_intensity:d,u_color_tint_r:[h.r,h.g,h.b,h.a],u_color_tint_m:[u.r,u.g,u.b,u.a],u_luminance:5e-5};c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_CUBE_MAP_POSITIVE_X+l,n.skyboxTexture,0),o.draw(r,c.TRIANGLES,i.DepthMode.disabled,i.StencilMode.disabled,i.ColorMode.unblended,i.CullFaceMode.frontCW,p,"skyboxCapture",n.skyboxGeometry.vertexBuffer,n.skyboxGeometry.indexBuffer,n.skyboxGeometry.segment)}const i_={symbol:function(r,n,o,s,a){if("translucent"!==r.renderPass)return;const l=i.StencilMode.disabled,c=r.colorModeForRenderPass();o.layout.get("text-variable-anchor")&&function(r,n,o,s,a,l,c){const h=n.transform,u="map"===a,d="map"===l,p=h.projection.createTileTransform(h,h.worldSize);for(const f of r){const m=s.getTile(f),_=m.getBucket(o);if(!_||_.projection!==h.projection.name||!_.text||!_.text.segments.get().length)continue;const g=i.evaluateSizeForZoom(_.textSizeData,h.zoom),y=n.transform.calculatePixelsToTileUnitsMatrix(m),x=eF(f.projMatrix,m.tileID.canonical,d,u,n.transform,y),v="none"!==o.layout.get("icon-text-fit")&&_.hasIconData();if(g){const b=Math.pow(2,h.zoom-m.tileID.overscaledZ);(function(r,n,o,s,a,l,c,h,u,d,p,f){const m=r.text.placedSymbolArray,_=r.text.dynamicLayoutVertexArray,g=r.icon.dynamicLayoutVertexArray,y={},x=h.projMatrix,v=l.elevation,b=v?v.getAtTileOffsetFunc(h,f):i=>[0,0,0];_.clear();for(let w=0;w=0&&(y[T.associatedIconIndex]={shiftedAnchor:F,angle:O})}else eW(T.numGlyphs,_)}if(p){g.clear();const V=r.icon.placedSymbolArray;for(let N=0;Ni.sortKey-r.sortKey);const I={useDepthForOcclusion:"globe"!==r.transform.projection.name};for(const M of _){const{programConfiguration:A,program:C,layoutVertexBuffer:z,indexBuffer:k,uniformValues:P,tile:D}=M.state,L=M.segments;r.terrain&&r.terrain.setupElevationDraw(D,C,I),r.prepareDrawProgram(u,C,D.tileID.toUnwrapped()),C.draw(u,d.TRIANGLES,p,f,m,i.CullFaceMode.disabled,P,o.id,z,k,L,o.paint,r.transform.zoom,A)}},heatmap:function(r,n,o,s){if(0!==o.paint.get("heatmap-opacity")){if("offscreen"===r.renderPass){const a=r.context,l=a.gl,c=i.StencilMode.disabled,h=new i.ColorMode([l.ONE,l.ONE],i.Color.transparent,[!0,!0,!0,!0]);(function(i,r,n){const o=i.gl;i.activeTexture.set(o.TEXTURE1),i.viewport.set([0,0,r.width/4,r.height/4]);let s=n.heatmapFbo;if(s)o.bindTexture(o.TEXTURE_2D,s.colorAttachment.get()),i.bindFramebuffer.set(s.framebuffer);else{const a=o.createTexture();o.bindTexture(o.TEXTURE_2D,a),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),s=n.heatmapFbo=i.createFramebuffer(r.width/4,r.height/4,!1),function(i,r,n,o){const s=i.gl;s.texImage2D(s.TEXTURE_2D,0,s.RGBA,r.width/4,r.height/4,0,s.RGBA,i.extRenderToTextureHalfFloat?i.extTextureHalfFloat.HALF_FLOAT_OES:s.UNSIGNED_BYTE,null),o.colorAttachment.set(n)}(i,r,a,s)}})(a,r,o),a.clear({color:i.Color.transparent});for(let u=0;u{const r=[];tY(i)&&r.push("RENDER_LINE_DASH"),i.paint.get("line-gradient")&&r.push("RENDER_LINE_GRADIENT");const n=i.paint.get("line-pattern").constantOr(1),o=1!==i.paint.get("line-opacity").constantOr(1);return!n&&o&&r.push("RENDER_LINE_ALPHA_DISCARD"),r})(o);let w=b.includes("RENDER_LINE_ALPHA_DISCARD");for(const T of(r.terrain&&r.terrain.clipOrMaskOverlapStencilType()&&(w=!1),s)){const E=n.getTile(T);if(m&&!E.patternsLoaded())continue;const S=E.getBucket(o);if(!S)continue;r.prepareDrawTile(T);const I=S.programConfigurations.get(o.id),M=r.useProgram(y,I,b),A=f.constantOr(null);if(A&&E.imageAtlas){const C=E.imageAtlas,z=C.patternPositions[A.to.toString()],k=C.patternPositions[A.from.toString()];z&&k&&I.setConstantPatternPositions(z,k)}const P=u.constantOr(null),D=p.constantOr(null);if(!m&&P&&D&&E.lineAtlas){const L=E.lineAtlas,B=L.getDash(P.to,D),R=L.getDash(P.from,D);B&&R&&I.setConstantPatternPositions(B,R)}const F=r.terrain?T.projMatrix:null,O=m?tW(r,E,o,g,F):tX(r,E,o,g,F,S.lineClipsArray.length);if(_){const U=S.gradients[o.id];let V=U.texture;if(o.gradientVersion!==U.version){let N=256;if(o.stepInterpolant){const j=n.getSource().maxzoom,G=T.canonical.z===j?Math.ceil(1<{M.draw(x,v.TRIANGLES,c,n,h,i.CullFaceMode.disabled,O,o.id,S.layoutVertexBuffer,S.indexBuffer,S.segments,o.paint,r.transform.zoom,I,S.layoutVertexBuffer2)};if(w){const $=r.stencilModeForClipping(T).ref;0===$&&r.terrain&&x.clear({stencil:0});const q={func:v.EQUAL,mask:255};O.u_alpha_discard_threshold=.8,Z(new i.StencilMode(q,$,255,v.KEEP,v.KEEP,v.INVERT)),O.u_alpha_discard_threshold=0,Z(new i.StencilMode(q,$,255,v.KEEP,v.KEEP,v.KEEP))}else Z(r.stencilModeForClipping(T))}w&&(r.resetStencilClippingMasks(),r.terrain&&x.clear({stencil:0}))},fill:function(r,n,o,s){const a=o.paint.get("fill-color"),l=o.paint.get("fill-opacity");if(0===l.constantOr(1))return;const c=r.colorModeForRenderPass(),h=o.paint.get("fill-pattern"),u=r.opaquePassEnabledForLayer()&&!h.constantOr(1)&&1===a.constantOr(i.Color.transparent).a&&1===l.constantOr(0)?"opaque":"translucent";if(r.renderPass===u){const d=r.depthModeForSublayer(1,"opaque"===r.renderPass?i.DepthMode.ReadWrite:i.DepthMode.ReadOnly);t7(r,n,o,s,d,c,!1)}if("translucent"===r.renderPass&&o.paint.get("fill-antialias")){const p=r.depthModeForSublayer(o.getPaintProperty("fill-outline-color")?2:0,i.DepthMode.ReadOnly);t7(r,n,o,s,p,c,!0)}},"fill-extrusion":function(r,n,o,s){const a=o.paint.get("fill-extrusion-opacity");if(0!==a&&"translucent"===r.renderPass){const l=new i.DepthMode(r.context.gl.LEQUAL,i.DepthMode.ReadWrite,r.depthRangeFor3D);if(1!==a||o.paint.get("fill-extrusion-pattern").constantOr(1))ie(r,n,o,s,l,i.StencilMode.disabled,i.ColorMode.disabled),ie(r,n,o,s,l,r.stencilModeFor3D(),r.colorModeForRenderPass()),r.resetStencilClippingMasks();else{const c=r.colorModeForRenderPass();ie(r,n,o,s,l,i.StencilMode.disabled,c)}}},hillshade:function(r,n,o,s){if("offscreen"!==r.renderPass&&"translucent"!==r.renderPass)return;const a=r.context,l=r.depthModeForSublayer(0,i.DepthMode.ReadOnly),c=r.colorModeForRenderPass(),h=r.terrain&&r.terrain.renderingToTexture,[u,d]="translucent"!==r.renderPass||h?[{},s]:r.stencilConfigForOverlap(s);for(const p of d){const f=n.getTile(p);if(f.needsHillshadePrepare&&"offscreen"===r.renderPass)!function(r,n,o,s,a,l){const c=r.context,h=c.gl;if(!n.dem)return;const u=n.dem;if(c.activeTexture.set(h.TEXTURE1),tv(r,n,u),!n.demTexture)return;n.demTexture.bind(h.NEAREST,h.CLAMP_TO_EDGE);const d=u.dim;c.activeTexture.set(h.TEXTURE0);let p=n.fbo;if(!p){const f=new i.Texture(c,{width:d,height:d,data:null},h.RGBA);f.bind(h.LINEAR,h.CLAMP_TO_EDGE),(p=n.fbo=c.createFramebuffer(d,d,!0)).colorAttachment.set(f.texture)}c.bindFramebuffer.set(p.framebuffer),c.viewport.set([0,0,d,d]);const{tileBoundsBuffer:m,tileBoundsIndexBuffer:_,tileBoundsSegments:g}=r.getMercatorTileBoundsBuffers();r.useProgram("hillshadePrepare").draw(c,h.TRIANGLES,s,a,l,i.CullFaceMode.disabled,((r,n)=>{const o=n.stride,s=i.create();return i.ortho(s,0,i.EXTENT,-i.EXTENT,0,0,1),i.translate(s,s,[0,-i.EXTENT,0]),{u_matrix:s,u_image:1,u_dimension:[o,o],u_zoom:r.overscaledZ,u_unpack:n.unpackVector}})(n.tileID,u),o.id,m,_,g),n.needsHillshadePrepare=!1}(r,f,o,l,i.StencilMode.disabled,c);else if("translucent"===r.renderPass){const m=h&&r.terrain?r.terrain.stencilModeForRTTOverlap(p):u[p.overscaledZ];!function(r,n,o,s,a,l,c){const h=r.context,u=h.gl,d=o.fbo;if(!d)return;r.prepareDrawTile(n);const p=r.useProgram("hillshade");h.activeTexture.set(u.TEXTURE0),u.bindTexture(u.TEXTURE_2D,d.colorAttachment.get());const f=((r,n,o,s)=>{const a=o.paint.get("hillshade-shadow-color"),l=o.paint.get("hillshade-highlight-color"),c=o.paint.get("hillshade-accent-color");let h=o.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===o.paint.get("hillshade-illumination-anchor")&&(h-=r.transform.angle);const u=!r.options.moving;return{u_matrix:s||r.transform.calculateProjMatrix(n.tileID.toUnwrapped(),u),u_image:0,u_latrange:function(r,n){const o=Math.pow(2,n.canonical.z),s=n.canonical.y;return[new i.MercatorCoordinate(0,s/o).toLngLat().lat,new i.MercatorCoordinate(0,(s+1)/o).toLngLat().lat]}(0,n.tileID),u_light:[o.paint.get("hillshade-exaggeration"),h],u_shadow:a,u_highlight:l,u_accent:c}})(r,o,s,r.terrain?n.projMatrix:null);r.prepareDrawProgram(h,p,n.toUnwrapped());const{tileBoundsBuffer:m,tileBoundsIndexBuffer:_,tileBoundsSegments:g}=r.getTileBoundsBuffers(o);p.draw(h,u.TRIANGLES,a,l,c,i.CullFaceMode.disabled,f,s.id,m,_,g)}(r,p,f,o,l,m,c)}}a.viewport.set([0,0,r.width,r.height]),r.resetStencilClippingMasks()},raster:function(r,n,o,s,a,l){if("translucent"!==r.renderPass||0===o.paint.get("raster-opacity")||!s.length)return;const c=r.context,h=c.gl,u=n.getSource(),d=r.useProgram("raster"),p=r.colorModeForRenderPass(),f=r.terrain&&r.terrain.renderingToTexture,[m,_]=u instanceof ex||f?[{},s]:r.stencilConfigForOverlap(s),g=_[_.length-1].overscaledZ,y=!r.options.moving;for(const x of _){let v,b;const w=f?i.DepthMode.disabled:r.depthModeForSublayer(x.overscaledZ-g,1===o.paint.get("raster-opacity")?i.DepthMode.ReadWrite:i.DepthMode.ReadOnly,h.LESS),T=x.toUnwrapped(),E=n.getTile(x);if(f&&(!E||!E.hasData()))continue;const S=f?x.projMatrix:r.transform.calculateProjMatrix(T,y),I=r.terrain&&f?r.terrain.stencilModeForRTTOverlap(x):m[x.overscaledZ],M=l?0:o.paint.get("raster-fade-duration");E.registerFadeDuration(M);const A=n.findLoadedParent(x,0),C=tA(E,A,n,r.transform,M);r.terrain&&r.terrain.prepareDrawTile(x);const z="nearest"===o.paint.get("raster-resampling")?h.NEAREST:h.LINEAR;c.activeTexture.set(h.TEXTURE0),E.texture.bind(z,h.CLAMP_TO_EDGE),c.activeTexture.set(h.TEXTURE1),A?(A.texture.bind(z,h.CLAMP_TO_EDGE),v=Math.pow(2,A.tileID.overscaledZ-E.tileID.overscaledZ),b=[E.tileID.canonical.x*v%1,E.tileID.canonical.y*v%1]):E.texture.bind(z,h.CLAMP_TO_EDGE);const k=tJ(S,b||[0,0],v||1,C,o,u instanceof ex?u.perspectiveTransform:[0,0]);if(r.prepareDrawProgram(c,d,T),u instanceof ex)d.draw(c,h.TRIANGLES,w,i.StencilMode.disabled,p,i.CullFaceMode.disabled,k,o.id,u.boundsBuffer,r.quadTriangleIndexBuffer,u.boundsSegments);else{const{tileBoundsBuffer:P,tileBoundsIndexBuffer:D,tileBoundsSegments:L}=r.getTileBoundsBuffers(E);d.draw(c,h.TRIANGLES,w,I,p,i.CullFaceMode.disabled,k,o.id,P,D,L)}}r.resetStencilClippingMasks()},background:function(r,n,o,s){const a=o.paint.get("background-color"),l=o.paint.get("background-opacity");if(0===l)return;const c=r.context,h=c.gl,u=r.transform,d=u.tileSize,p=o.paint.get("background-pattern");if(r.isPatternMissing(p))return;const f=!p&&1===a.a&&1===l&&r.opaquePassEnabledForLayer()?"opaque":"translucent";if(r.renderPass!==f)return;const m=i.StencilMode.disabled,_=r.depthModeForSublayer(0,"opaque"===f?i.DepthMode.ReadWrite:i.DepthMode.ReadOnly),g=r.colorModeForRenderPass(),y=r.useProgram(p?"backgroundPattern":"background");let x,v=s;v||(v=Object.values(x=r.getBackgroundTiles()).map(i=>i.tileID)),p&&(c.activeTexture.set(h.TEXTURE0),r.imageManager.bind(r.context));const b=o.getCrossfadeParameters();for(const w of v){const T=w.toUnwrapped(),E=s?w.projMatrix:r.transform.calculateProjMatrix(T);r.prepareDrawTile(w);const S=n?n.getTile(w):x?x[w.key]:new i.Tile(w,d,u.zoom,r),I=p?t3(E,l,r,p,{tileID:w,tileSize:d},b):t2(E,l,a);r.prepareDrawProgram(c,y,T);const{tileBoundsBuffer:M,tileBoundsIndexBuffer:A,tileBoundsSegments:C}=r.getTileBoundsBuffers(S);y.draw(c,h.TRIANGLES,_,m,g,i.CullFaceMode.disabled,I,o.id,M,A,C)}},sky:function(r,n,o){const s=r.transform,a="mercator"===s.projection.name||"globe"===s.projection.name?1:i.smoothstep(7,8,s.zoom),l=o.paint.get("sky-opacity")*a;if(0===l)return;const c=r.context,h=o.paint.get("sky-type"),u=new i.DepthMode(c.gl.LEQUAL,i.DepthMode.ReadOnly,[0,1]),d=r.frameCounter/1e3%1;"atmosphere"===h?"offscreen"===r.renderPass?o.needsSkyboxCapture(r)&&(function(r,n,o,s){const a=r.context,l=a.gl;let c=n.skyboxFbo;if(!c){c=n.skyboxFbo=a.createFramebuffer(32,32,!1),n.skyboxGeometry=new ip(a),n.skyboxTexture=a.gl.createTexture(),l.bindTexture(l.TEXTURE_CUBE_MAP,n.skyboxTexture),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MIN_FILTER,l.LINEAR),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MAG_FILTER,l.LINEAR);for(let h=0;h<6;++h)l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+h,0,l.RGBA,32,32,0,l.RGBA,l.UNSIGNED_BYTE,null)}a.bindFramebuffer.set(c.framebuffer),a.viewport.set([0,0,32,32]);const u=n.getCenter(r,!0),d=r.useProgram("skyboxCapture"),p=new Float64Array(16);i.identity(p),i.rotateY(p,p,-(.5*Math.PI)),im(a,n,d,p,u,0),i.identity(p),i.rotateY(p,p,.5*Math.PI),im(a,n,d,p,u,1),i.identity(p),i.rotateX(p,p,-(.5*Math.PI)),im(a,n,d,p,u,2),i.identity(p),i.rotateX(p,p,.5*Math.PI),im(a,n,d,p,u,3),i.identity(p),im(a,n,d,p,u,4),i.identity(p),i.rotateY(p,p,Math.PI),im(a,n,d,p,u,5),a.viewport.set([0,0,r.width,r.height])}(r,o),o.markSkyboxValid(r)):"sky"===r.renderPass&&function(r,n,o,s,a){var l,c;const h=r.context,u=h.gl,d=r.transform,p=r.useProgram("skybox");h.activeTexture.set(u.TEXTURE0),u.bindTexture(u.TEXTURE_CUBE_MAP,n.skyboxTexture);const f=(l=d.skyboxMatrix,c=n.getCenter(r,!1),{u_matrix:l,u_sun_direction:c,u_cubemap:0,u_opacity:s,u_temporal_offset:a});r.prepareDrawProgram(h,p),p.draw(h,u.TRIANGLES,o,i.StencilMode.disabled,r.colorModeForRenderPass(),i.CullFaceMode.backCW,f,"skybox",n.skyboxGeometry.vertexBuffer,n.skyboxGeometry.indexBuffer,n.skyboxGeometry.segment)}(r,o,u,l,d):"gradient"===h&&"sky"===r.renderPass&&function(r,n,o,s,a){var l,c,h;const u=r.context,d=u.gl,p=r.transform,f=r.useProgram("skyboxGradient");n.skyboxGeometry||(n.skyboxGeometry=new ip(u)),u.activeTexture.set(d.TEXTURE0);let m=n.colorRampTexture;m||(m=n.colorRampTexture=new i.Texture(u,n.colorRamp,d.RGBA)),m.bind(d.LINEAR,d.CLAMP_TO_EDGE);const _=(l=p.skyboxMatrix,c=n.getCenter(r,!1),h=n.paint.get("sky-gradient-radius"),{u_matrix:l,u_color_ramp:0,u_center_direction:c,u_radius:i.degToRad(h),u_opacity:s,u_temporal_offset:a});r.prepareDrawProgram(u,f),f.draw(u,d.TRIANGLES,o,i.StencilMode.disabled,r.colorModeForRenderPass(),i.CullFaceMode.backCW,_,"skyboxGradient",n.skyboxGeometry.vertexBuffer,n.skyboxGeometry.indexBuffer,n.skyboxGeometry.segment)}(r,o,u,l,d)},debug:function(r,n,o){for(let s=0;s ${o.overscaledZ}`),function(i,r){i.initDebugOverlayCanvas();const n=i.debugOverlayCanvas,o=i.context.gl,s=i.debugOverlayCanvas.getContext("2d");s.clearRect(0,0,n.width,n.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(r,5,5),s.strokeText(r,5,5),i.debugOverlayTexture.update(n),i.debugOverlayTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE)}(r,`${w} ${x}kb`),c.draw(s,a.TRIANGLES,u,d,i.ColorMode.alphaBlended,i.CullFaceMode.disabled,t$(l,i.Color.transparent,b),f,r.debugBuffer,r.quadTriangleIndexBuffer,r.debugSegments)}(r,n,o[s])},custom:function(r,n,o){const s=r.context,a=o.implementation;if(r.transform.projection.unsupportedLayers&&r.transform.projection.unsupportedLayers.includes("custom"))i.warnOnce("Custom layers are not yet supported with non-mercator projections. Use mercator to enable custom layers.");else if("offscreen"===r.renderPass){const l=a.prerender;l&&(r.setCustomLayerDefaults(),s.setColorMode(r.colorModeForRenderPass()),l.call(a,s.gl,r.transform.customLayerMatrix()),s.setDirty(),r.setBaseState())}else if("translucent"===r.renderPass){r.setCustomLayerDefaults(),s.setColorMode(r.colorModeForRenderPass()),s.setStencilMode(i.StencilMode.disabled);const c="3d"===a.renderingMode?new i.DepthMode(r.context.gl.LEQUAL,i.DepthMode.ReadWrite,r.depthRangeFor3D):r.depthModeForSublayer(0,i.DepthMode.ReadOnly);s.setDepthMode(c),a.render(s.gl,r.transform.customLayerMatrix()),s.setDirty(),r.setBaseState(),s.bindFramebuffer.set(null)}}};class ig{constructor(r,n){this.context=new ed(r),this.transform=n,this._tileTextures={},this.frameCopies=[],this.loadTimeStamps=[],this.setup(),this.numSublayers=i.SourceCache.maxUnderzooming+i.SourceCache.maxOverzooming+1,this.depthEpsilon=1/65536,this.crossTileSymbolIndex=new to,this.gpuTimers={},this.frameCounter=0,this._backgroundTiles={}}updateTerrain(i,r){const n=!!i&&!!i.terrain&&this.transform.projection.supportsTerrain;if(!(n||this._terrain&&this._terrain.enabled))return;this._terrain||(this._terrain=new tP(this,i));const o=this._terrain;this.transform.elevation=n?o:null,o.update(i,this.transform,r)}_updateFog(i){const r=i.fog;if(!r||1>r.getOpacity(this.transform.pitch)||.03>r.properties.get("horizon-blend"))return void(this.transform.fogCullDistSq=null);const[n,o]=r.getFovAdjustedRange(this.transform._fov);if(n>o)return void(this.transform.fogCullDistSq=null);const s=n+.78*(o-n);this.transform.fogCullDistSq=s*s}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(r,n){if(this.width=r*i.exported.devicePixelRatio,this.height=n*i.exported.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const o of this.style.order)this.style._layers[o].resize()}setup(){const r=this.context,n=new i.StructArrayLayout2i4;n.emplaceBack(0,0),n.emplaceBack(i.EXTENT,0),n.emplaceBack(0,i.EXTENT),n.emplaceBack(i.EXTENT,i.EXTENT),this.tileExtentBuffer=r.createVertexBuffer(n,i.posAttributes.members),this.tileExtentSegments=i.SegmentVector.simpleSegment(0,0,4,2);const o=new i.StructArrayLayout2i4;o.emplaceBack(0,0),o.emplaceBack(i.EXTENT,0),o.emplaceBack(0,i.EXTENT),o.emplaceBack(i.EXTENT,i.EXTENT),this.debugBuffer=r.createVertexBuffer(o,i.posAttributes.members),this.debugSegments=i.SegmentVector.simpleSegment(0,0,4,5);const s=new i.StructArrayLayout2i4;s.emplaceBack(-1,-1),s.emplaceBack(1,-1),s.emplaceBack(-1,1),s.emplaceBack(1,1),this.viewportBuffer=r.createVertexBuffer(s,i.posAttributes.members),this.viewportSegments=i.SegmentVector.simpleSegment(0,0,4,2);const a=new i.StructArrayLayout4i8;a.emplaceBack(0,0,0,0),a.emplaceBack(i.EXTENT,0,i.EXTENT,0),a.emplaceBack(0,i.EXTENT,0,i.EXTENT),a.emplaceBack(i.EXTENT,i.EXTENT,i.EXTENT,i.EXTENT),this.mercatorBoundsBuffer=r.createVertexBuffer(a,i.boundsAttributes.members),this.mercatorBoundsSegments=i.SegmentVector.simpleSegment(0,0,4,2);const l=new i.StructArrayLayout3ui6;l.emplaceBack(0,1,2),l.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=r.createIndexBuffer(l);const c=new i.StructArrayLayout1ui2;for(const h of[0,1,3,2,0])c.emplaceBack(h);this.debugIndexBuffer=r.createIndexBuffer(c),this.emptyTexture=new i.Texture(r,{width:1,height:1,data:new Uint8Array([0,0,0,0])},r.gl.RGBA),this.identityMat=i.create();const u=this.context.gl;this.stencilClearMode=new i.StencilMode({func:u.ALWAYS,mask:0},0,255,u.ZERO,u.ZERO,u.ZERO),this.loadTimeStamps.push(i.window.performance.now())}getMercatorTileBoundsBuffers(){return{tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(i){return i._makeTileBoundsBuffers(this.context,this.transform.projection),i._tileBoundsBuffer?{tileBoundsBuffer:i._tileBoundsBuffer,tileBoundsIndexBuffer:i._tileBoundsIndexBuffer,tileBoundsSegments:i._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const r=this.context,n=r.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram("clippingMask").draw(r,n.TRIANGLES,i.DepthMode.disabled,this.stencilClearMode,i.ColorMode.disabled,i.CullFaceMode.disabled,tM(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={})}_renderTileClippingMasks(r,n,o){if(!n||this.currentStencilSource===n.id||!r.isTileClipped()||!o||0===o.length)return;if(this._tileClippingMaskIDs&&!this.terrain){let s=!1;for(const a of o)if(void 0===this._tileClippingMaskIDs[a.key]){s=!0;break}if(!s)return}this.currentStencilSource=n.id;const l=this.context,c=l.gl;this.nextStencilID+o.length>256&&this.clearStencil(),l.setColorMode(i.ColorMode.disabled),l.setDepthMode(i.DepthMode.disabled);const h=this.useProgram("clippingMask");for(const u of(this._tileClippingMaskIDs={},o)){const d=n.getTile(u),p=this._tileClippingMaskIDs[u.key]=this.nextStencilID++,{tileBoundsBuffer:f,tileBoundsIndexBuffer:m,tileBoundsSegments:_}=this.getTileBoundsBuffers(d);h.draw(l,c.TRIANGLES,i.DepthMode.disabled,new i.StencilMode({func:c.ALWAYS,mask:0},p,255,c.KEEP,c.KEEP,c.REPLACE),i.ColorMode.disabled,i.CullFaceMode.disabled,tM(u.projMatrix),"$clipping",f,m,_)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const r=this.nextStencilID++,n=this.context.gl;return new i.StencilMode({func:n.NOTEQUAL,mask:255},r,255,n.KEEP,n.KEEP,n.REPLACE)}stencilModeForClipping(r){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(r);const n=this.context.gl;return new i.StencilMode({func:n.EQUAL,mask:255},this._tileClippingMaskIDs[r.key],0,n.KEEP,n.KEEP,n.REPLACE)}stencilConfigForOverlap(r){const n=this.context.gl,o=r.sort((i,r)=>r.overscaledZ-i.overscaledZ),s=o[o.length-1].overscaledZ,a=o[0].overscaledZ-s+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();const l={};for(let c=0;c=0;this.currentLayer--){const v=this.style._layers[o[this.currentLayer]],b=r._getLayerSourceCache(v);if(v.isSky())continue;const w=b?h[b.id]:void 0;this._renderTileClippingMasks(v,b,w),this.renderLayer(this,b,v,w)}if(this.renderPass="sky",(i.globeToMercatorTransition(this.transform.zoom)>0||"globe"!==this.transform.projection.name)&&this.transform.isHorizonVisible())for(this.currentLayer=0;this.currentLayer{const n=r._getLayerSourceCache(i);n&&!i.isHidden(this.transform.zoom)&&(!A||A.getSource().maxzoom0?r.pop():null}isPatternMissing(i){if(!i)return!1;if(!i.from||!i.to)return!0;const r=this.imageManager.getPattern(i.from.toString()),n=this.imageManager.getPattern(i.to.toString());return!r||!n}currentGlobalDefines(){const i=this.terrain&&this.terrain.renderingToTexture,r=this.style&&this.style.fog,n=[];return this.terrain&&!this.terrain.renderingToTexture&&n.push("TERRAIN"),r&&!i&&0!==r.getOpacity(this.transform.pitch)&&n.push("FOG"),i&&n.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&n.push("OVERDRAW_INSPECTOR"),n}useProgram(i,r,n){this.cache=this.cache||{};const o=this.currentGlobalDefines().concat(n||[]),s=tL.cacheKey(i,o,r);return this.cache[s]||(this.cache[s]=new tL(this.context,i,tg[i],r,t5[i],o)),this.cache[s]}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 i=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(i.FUNC_ADD)}initDebugOverlayCanvas(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=i.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new i.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}prepareDrawTile(i){this.terrain&&this.terrain.prepareDrawTile(i)}prepareDrawProgram(i,r,n){if(this.terrain&&this.terrain.renderingToTexture)return;const o=this.style.fog;if(o){const s=o.getOpacity(this.transform.pitch);0!==s&&r.setFogUniformValues(i,((i,r,n,o)=>{const s=r.properties.get("color"),a=i.frameCounter/1e3%1,l=[s.r/s.a,s.g/s.a,s.b/s.a,o];return{u_fog_matrix:n?i.transform.calculateFogTileMatrix(n):i.identityMat,u_fog_range:r.getFovAdjustedRange(i.transform._fov),u_fog_color:l,u_fog_horizon_blend:r.properties.get("horizon-blend"),u_fog_temporal_offset:a}})(this,o,n,s))}}setTileLoadedFlag(i){this.tileLoaded=i}saveCanvasCopy(){this.frameCopies.push(this.canvasCopy()),this.tileLoaded=!1}canvasCopy(){const i=this.context.gl,r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.copyTexImage2D(i.TEXTURE_2D,0,i.RGBA,0,0,i.drawingBufferWidth,i.drawingBufferHeight,0),r}getCanvasCopiesAndTimestamps(){return{canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return!1;const i=this.style&&this.style.fog;return!!i&&0!==i.getOpacity(this.transform.pitch)}getBackgroundTiles(){const r=this._backgroundTiles,n=this._backgroundTiles={},o=this.transform.coveringTiles({tileSize:512});for(const s of o)n[s.key]=r[s.key]||new i.Tile(s,512,this.transform.tileZoom,this);return n}clearBackgroundTiles(){this._backgroundTiles={}}}class iy{constructor(i=0,r=0,n=0,o=0){if(isNaN(i)||i<0||isNaN(r)||r<0||isNaN(n)||n<0||isNaN(o)||o<0)throw Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=i,this.bottom=r,this.left=n,this.right=o}interpolate(r,n,o){return null!=n.top&&null!=r.top&&(this.top=i.number(r.top,n.top,o)),null!=n.bottom&&null!=r.bottom&&(this.bottom=i.number(r.bottom,n.bottom,o)),null!=n.left&&null!=r.left&&(this.left=i.number(r.left,n.left,o)),null!=n.right&&null!=r.right&&(this.right=i.number(r.right,n.right,o)),this}getCenter(r,n){const o=i.clamp((this.left+r-this.right)/2,0,r),s=i.clamp((this.top+n-this.bottom)/2,0,n);return new i.pointGeometry(o,s)}equals(i){return this.top===i.top&&this.bottom===i.bottom&&this.left===i.left&&this.right===i.right}clone(){return new iy(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function ix(r,n){const o=i.getColumn(r,3);i.fromQuat(r,n),i.setColumn(r,3,o)}function iv(r,n){i.setColumn(r,3,[n[0],n[1],n[2],1])}function ib(r,n){const o=i.identity$1([]);return i.rotateZ$1(o,o,-n),i.rotateX$1(o,o,-r),o}function iw(r,n){const o=[r[0],r[1],0],s=[n[0],n[1],0];if(i.length(o)>=1e-15){const a=i.normalize([],o);i.scale$2(s,a,i.dot(s,a)),n[0]=s[0],n[1]=s[1]}const l=i.cross([],n,r);if(1e-15>i.len(l))return null;const c=Math.atan2(-l[1],l[0]);return ib(Math.atan2(Math.sqrt(r[0]*r[0]+r[1]*r[1]),-r[2]),c)}class iT{constructor(i,r){this.position=i,this.orientation=r}get position(){return this._position}set position(r){this._position=this._renderWorldCopies?function(r){if(!r)return;const n=Array.isArray(r)?new i.MercatorCoordinate(r[0],r[1],r[2]):r;return n.x=i.wrap(n.x,0,1),n}(r):r}lookAtPoint(r,n){if(this.orientation=null,!this.position)return;const o=this._elevation?this._elevation.getAtPointOrZero(i.MercatorCoordinate.fromLngLat(r)):0,s=this.position,a=i.MercatorCoordinate.fromLngLat(r,o),l=[a.x-s.x,a.y-s.y,a.z-s.z];n||(n=[0,0,1]),n[2]=Math.abs(n[2]),this.orientation=iw(l,n)}setPitchBearing(r,n){this.orientation=ib(i.degToRad(r),i.degToRad(-n))}}class iE{constructor(r,n){this._transform=i.identity([]),this._orientation=i.identity$1([]),n&&(this._orientation=n,ix(this._transform,this._orientation)),r&&iv(this._transform,r)}get mercatorPosition(){const r=this.position;return new i.MercatorCoordinate(r[0],r[1],r[2])}get position(){const r=i.getColumn(this._transform,3);return[r[0],r[1],r[2]]}set position(i){iv(this._transform,i)}get orientation(){return this._orientation}set orientation(i){this._orientation=i,ix(this._transform,this._orientation)}getPitchBearing(){const i=this.forward(),r=this.right();return{bearing:Math.atan2(-r[1],r[0]),pitch:Math.atan2(Math.sqrt(i[0]*i[0]+i[1]*i[1]),-i[2])}}setPitchBearing(i,r){this._orientation=ib(i,r),ix(this._transform,this._orientation)}forward(){const r=i.getColumn(this._transform,2);return[-r[0],-r[1],-r[2]]}up(){const r=i.getColumn(this._transform,1);return[-r[0],-r[1],-r[2]]}right(){const r=i.getColumn(this._transform,0);return[r[0],r[1],r[2]]}getCameraToWorld(r,n){const o=new Float64Array(16);return i.invert(o,this.getWorldToCamera(r,n)),o}getWorldToCameraPosition(r,n,o){const s=this.position;i.scale$2(s,s,-r);const a=new Float64Array(16);return i.fromScaling(a,[o,o,o]),i.translate(a,a,s),a[10]*=n,a}getWorldToCamera(r,n){const o=new Float64Array(16),s=new Float64Array(4),a=this.position;return i.conjugate(s,this._orientation),i.scale$2(a,a,-r),i.fromQuat(o,s),i.translate(o,o,a),o[1]*=-1,o[5]*=-1,o[9]*=-1,o[13]*=-1,o[8]*=n,o[9]*=n,o[10]*=n,o[11]*=n,o}getCameraToClipPerspective(r,n,o,s){const a=new Float64Array(16);return i.perspective(a,r,n,o,s),a}getDistanceToElevation(r){const n=0===r?0:i.mercatorZfromAltitude(r,this.position[1]),o=this.forward();return(n-this.position[2])/o[2]}clone(){return new iE([...this.position],[...this.orientation])}}function iS(r,n){const o=iM(r),s=function(r,n,o,s,a){const l=new i.LngLat(o.lng-180*iA,o.lat),c=new i.LngLat(o.lng+180*iA,o.lat),h=r.project(l.lng,l.lat),u=r.project(c.lng,c.lat),d=-Math.atan2(u.y-h.y,u.x-h.x),p=i.MercatorCoordinate.fromLngLat(o);p.y=i.clamp(p.y,-.999975,.999975);const f=p.toLngLat(),m=r.project(f.lng,f.lat),_=i.MercatorCoordinate.fromLngLat(f);_.x+=iA;const g=_.toLngLat(),y=r.project(g.lng,g.lat),x=iz(y.x-m.x,y.y-m.y,d),v=i.MercatorCoordinate.fromLngLat(f);v.y+=iA;const b=v.toLngLat(),w=r.project(b.lng,b.lat),T=iz(w.x-m.x,w.y-m.y,d),E=Math.abs(x.x)/Math.abs(T.y),S=i.identity([]);i.rotateZ(S,S,-d*(1-(a?0:s)));const I=i.identity([]);return i.scale(I,I,[1,1-(1-E)*s,1]),I[4]=-T.x/T.y*s,i.rotateZ(I,I,d),i.multiply$1(I,S,I),I}(r.projection,0,r.center,o,n),a=iI(r);return i.scale(s,s,[a,a,1]),s}function iI(r){const n=r.projection,o=iM(r),s=iC(n,r.center),a=iC(n,i.LngLat.convert(n.center));return Math.pow(2,s*o+(1-o)*a)}function iM(r){const n=r.projection.range;if(!n)return 0;const o=Math.max(r.width,r.height),s=Math.log(o/1024)/Math.LN2;return i.smoothstep(n[0]+s,n[1]+s,r.zoom)}const iA=1/4e4;function iC(r,n){const o=i.clamp(n.lat,-i.MAX_MERCATOR_LATITUDE,i.MAX_MERCATOR_LATITUDE),s=new i.LngLat(n.lng-180*iA,o),a=new i.LngLat(n.lng+180*iA,o),l=r.project(s.lng,o),c=r.project(a.lng,o),h=i.MercatorCoordinate.fromLngLat(s),u=i.MercatorCoordinate.fromLngLat(a),d=c.x-l.x,p=c.y-l.y,f=u.x-h.x,m=u.y-h.y,_=Math.sqrt((f*f+m*m)/(d*d+p*p));return Math.log(_)/Math.LN2}function iz(i,r,n){const o=Math.cos(n),s=Math.sin(n);return{x:i*o-r*s,y:i*s+r*o}}class ik{constructor(r,n,o,s,a){this.tileSize=512,this._renderWorldCopies=void 0===a||a,this._minZoom=r||0,this._maxZoom=n||22,this._minPitch=null==o?0:o,this._maxPitch=null==s?60:s,this.setProjection(),this.setMaxBounds(),this.width=0,this.height=0,this._center=new i.LngLat(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 iy,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new iE,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._projectionScaler=1,this._horizonShift=.1}clone(){const i=new ik(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return i.setProjection(this.getProjection()),i._elevation=this._elevation,i._centerAltitude=this._centerAltitude,i.tileSize=this.tileSize,i.setMaxBounds(this.getMaxBounds()),i.width=this.width,i.height=this.height,i.cameraElevationReference=this.cameraElevationReference,i._center=this._center,i._setZoom(this.zoom),i._cameraZoom=this._cameraZoom,i.angle=this.angle,i._fov=this._fov,i._pitch=this._pitch,i._nearZ=this._nearZ,i._farZ=this._farZ,i._averageElevation=this._averageElevation,i._unmodified=this._unmodified,i._edgeInsets=this._edgeInsets.clone(),i._camera=this._camera.clone(),i._calcMatrices(),i.freezeTileCoverage=this.freezeTileCoverage,i}get elevation(){return this._elevation}set elevation(i){this._elevation!==i&&(this._elevation=i,i?this._updateCenterElevation()&&this._updateCameraOnTerrain():(this._cameraZoom=null,this._centerAltitude=0),this._calcMatrices())}updateElevation(i){this._terrainEnabled()&&null==this._cameraZoom&&this._updateCenterElevation()&&this._updateCameraOnTerrain(),i&&this._constrainCameraAltitude(),this._calcMatrices()}getProjection(){return i.pick(this.projection,["name","center","parallels"])}setProjection(r){null==r&&(r={name:"mercator"}),this.projectionOptions=r;const n=this.projection?this.getProjection():void 0;return this.projection=i.getProjection(r),!s(n,this.getProjection())&&(this._calcMatrices(),!0)}get minZoom(){return this._minZoom}set minZoom(i){this._minZoom!==i&&(this._minZoom=i,this.zoom=Math.max(this.zoom,i))}get maxZoom(){return this._maxZoom}set maxZoom(i){this._maxZoom!==i&&(this._maxZoom=i,this.zoom=Math.min(this.zoom,i))}get minPitch(){return this._minPitch}set minPitch(i){this._minPitch!==i&&(this._minPitch=i,this.pitch=Math.max(this.pitch,i))}get maxPitch(){return this._maxPitch}set maxPitch(i){this._maxPitch!==i&&(this._maxPitch=i,this.pitch=Math.min(this.pitch,i))}get renderWorldCopies(){return this._renderWorldCopies&&!0===this.projection.supportsWorldCopies}set renderWorldCopies(i){void 0===i?i=!0:null===i&&(i=!1),this._renderWorldCopies=i}get worldSize(){return this.tileSize*this.scale}get cameraWorldSize(){const i=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(i))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.cameraWorldSize)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new i.pointGeometry(this.width,this.height)}get bearing(){return i.wrap(this.rotation,-180,180)}set bearing(i){this.rotation=i}get rotation(){return-this.angle/Math.PI*180}set rotation(r){var n,o,s,a,l,c,h,u,d,p;const f=-r*Math.PI/180;this.angle!==f&&(this._unmodified=!1,this.angle=f,this._calcMatrices(),this.rotationMatrix=(n=new i.ARRAY_TYPE(4),i.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0),n[0]=1,n[3]=1,n),o=this.rotationMatrix,s=this.rotationMatrix,a=this.angle,l=s[0],c=s[1],h=s[2],u=s[3],d=Math.sin(a),p=Math.cos(a),o[0]=l*p+h*d,o[1]=c*p+u*d,o[2]=-(l*d)+h*p,o[3]=-(c*d)+u*p)}get pitch(){return this._pitch/Math.PI*180}set pitch(r){const n=i.clamp(r,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==n&&(this._unmodified=!1,this._pitch=n,this._calcMatrices())}get fov(){return this._fov/Math.PI*180}set fov(i){i=Math.max(.01,Math.min(60,i)),this._fov!==i&&(this._unmodified=!1,this._fov=i/180*Math.PI,this._calcMatrices())}get averageElevation(){return this._averageElevation}set averageElevation(i){this._averageElevation=i,this._calcFogMatrices()}get zoom(){return this._zoom}set zoom(i){const r=Math.min(Math.max(i,this.minZoom),this.maxZoom);this._zoom!==r&&(this._unmodified=!1,this._setZoom(r),this._terrainEnabled()&&this._updateCameraOnTerrain(),this._constrain(),this._calcMatrices())}_setZoom(i){this._zoom=i,this.scale=this.zoomScale(i),this.tileZoom=Math.floor(i),this.zoomFraction=i-this.tileZoom}_updateCenterElevation(){if(!this._elevation)return!1;const i=this._elevation.getAtPointOrZero(this.locationCoordinate(this.center),-1);return -1===i?(this._cameraZoom=null,!1):(this._centerAltitude=i,!0)}_updateCameraOnTerrain(){this._cameraZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize)}sampleAverageElevation(){if(!this._elevation)return 0;const r=this._elevation,n=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],o=this.horizonLineFromTop();let s=0,a=0;for(let l=0;lr.maxzoom&&(n=r.maxzoom);const l=this.locationCoordinate(this.center),c=1<{const n=1/4e4,o=new i.MercatorCoordinate(r.x+n,r.y,r.z),s=new i.MercatorCoordinate(r.x,r.y+n,r.z),a=r.toLngLat(),l=o.toLngLat(),c=s.toLngLat(),h=this.locationCoordinate(a),u=this.locationCoordinate(l),d=this.locationCoordinate(c),p=Math.hypot(u.x-h.x,u.y-h.y),f=Math.hypot(d.x-h.x,d.y-h.y);return Math.sqrt(p*f)*v/n},w=r=>({aabb:i.tileAABB(this,c,0,0,0,r,x,y,this.projection),zoom:0,x:0,y:0,minZ:x,maxZ:y,wrap:r,fullyVisible:!1}),T=[];let E=[];const S=n,I=r.reparseOverscaled?o:n,M=i=>i*i,A=M((f-this._centerAltitude)*p),C=i=>{if(!this._elevation||!i.tileID||!a)return;const r=this._elevation.getMinMaxForTile(i.tileID),n=i.aabb;r?(n.min[2]=r.min,n.max[2]=r.max,n.center[2]=(n.min[2]+n.max[2])/2):(i.shouldSplit=z(i),i.shouldSplit||(n.min[2]=n.max[2]=n.center[2]=this._centerAltitude))},z=r=>{if(r.zoom.85?1:u}const d=n*n+a*a+l;return d{if(r*M(.707)0;){const P=T.pop(),D=P.x,L=P.y;let B=P.fullyVisible;if(!B){const R=P.aabb.intersects(u);if(0===R)continue;B=2===R}if(P.zoom!==S&&z(P))for(let F=0;F<4;F++){const O=(D<<1)+F%2,U=(L<<1)+(F>>1),V={aabb:a?P.aabb.quadrant(F):i.tileAABB(this,c,P.zoom+1,O,U,P.wrap,P.minZ,P.maxZ,this.projection),zoom:P.zoom+1,x:O,y:U,wrap:P.wrap,fullyVisible:B,tileID:void 0,shouldSplit:void 0,minZ:P.minZ,maxZ:P.maxZ};s&&(V.tileID=new i.OverscaledTileID(P.zoom+1===S?I:P.zoom+1,P.wrap,P.zoom+1,O,U),C(V)),T.push(V)}else{const N=P.zoom===S?I:P.zoom;if(r.minzoom&&r.minzoom>N)continue;const j=h[0]-(.5+D+(P.wrap<{const o=[0,0,0,1],s=[i.EXTENT,i.EXTENT,0,1],a=this.calculateFogTileMatrix(n.tileID.toUnwrapped());i.transformMat4$1(o,o,a),i.transformMat4$1(s,s,a);const l=i.getAABBPointSquareDist(o,s);if(0===l)return!0;let c=!1;const h=this._elevation;if(h&&l>$&&0!==q){let u;const d=this.calculateProjMatrix(n.tileID.toUnwrapped());r.isTerrainDEM||(u=h.getMinMaxForTile(n.tileID)),u||(u={min:x,max:y});const p=i.furthestTileCorner(this.rotation),f=[p[0]*i.EXTENT,p[1]*i.EXTENT,u.max];i.transformMat4(f,f,d),c=(1-f[1])*this.height*.5i.distanceSq-r.distanceSq).map(i=>i.tileID)}resize(i,r){this.width=i,this.height=r,this.pixelsToGLUnits=[2/i,-2/r],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(i){return Math.pow(2,i)}scaleZoom(i){return Math.log(i)/Math.LN2}project(r){const n=i.clamp(r.lat,-i.MAX_MERCATOR_LATITUDE,i.MAX_MERCATOR_LATITUDE),o=this.projection.project(r.lng,n);return new i.pointGeometry(o.x*this.worldSize,o.y*this.worldSize)}unproject(i){return this.projection.unproject(i.x/this.worldSize,i.y/this.worldSize)}get point(){return this.project(this.center)}setLocationAtPoint(r,n){const o=this.pointCoordinate(n),s=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(r);this.setLocation(new i.MercatorCoordinate(a.x-(o.x-s.x),a.y-(o.y-s.y)))}setLocation(i){this.center=this.coordinateLocation(i),this.projection.wrap&&(this.center=this.center.wrap())}locationPoint(i){return this.projection.locationPoint(this,i)}locationPoint3D(i){return this._coordinatePoint(this.locationCoordinate(i),!0)}pointLocation(i){return this.coordinateLocation(this.pointCoordinate(i))}pointLocation3D(i){return this.coordinateLocation(this.pointCoordinate3D(i))}locationCoordinate(r,n){const o=n?i.mercatorZfromAltitude(n,r.lat):void 0,s=this.projection.project(r.lng,r.lat);return new i.MercatorCoordinate(s.x,s.y,o)}coordinateLocation(i){return this.projection.unproject(i.x,i.y)}pointRayIntersection(r,n){const o=null!=n?n:this._centerAltitude,s=[r.x,r.y,0,1],a=[r.x,r.y,1,1];i.transformMat4$1(s,s,this.pixelMatrixInverse),i.transformMat4$1(a,a,this.pixelMatrixInverse);const l=a[3];i.scale$1(s,s,1/s[3]),i.scale$1(a,a,1/l);const c=s[2],h=a[2];return{p0:s,p1:a,t:c===h?0:(o-c)/(h-c)}}screenPointToMercatorRay(r){const n=[r.x,r.y,0,1],o=[r.x,r.y,1,1];return i.transformMat4$1(n,n,this.pixelMatrixInverse),i.transformMat4$1(o,o,this.pixelMatrixInverse),i.scale$1(n,n,1/n[3]),i.scale$1(o,o,1/o[3]),n[2]=i.mercatorZfromAltitude(n[2],this._center.lat)*this.worldSize,o[2]=i.mercatorZfromAltitude(o[2],this._center.lat)*this.worldSize,i.scale$1(n,n,1/this.worldSize),i.scale$1(o,o,1/this.worldSize),new i.Ray([n[0],n[1],n[2]],i.normalize([],i.sub([],o,n)))}rayIntersectionCoordinate(r){const{p0:n,p1:o,t:s}=r,a=i.mercatorZfromAltitude(n[2],this._center.lat),l=i.mercatorZfromAltitude(o[2],this._center.lat);return new i.MercatorCoordinate(i.number(n[0],o[0],s)/this.worldSize,i.number(n[1],o[1],s)/this.worldSize,i.number(a,l,s))}pointCoordinate(i,r=this._centerAltitude){return this.projection.createTileTransform(this,this.worldSize).pointCoordinate(i.x,i.y,r)}pointCoordinate3D(r){if(!this.elevation)return this.pointCoordinate(r);const n=this.elevation;let o=this.elevation.pointCoordinate(r);if(o)return new i.MercatorCoordinate(o[0],o[1],o[2]);let s=0,a=this.horizonLineFromTop();if(r.y>a)return this.pointCoordinate(r);const l=.02*a,c=r.clone();for(let h=0;h<10&&a-s>l;h++){c.y=i.number(s,a,.66);const u=n.pointCoordinate(c);u?(a=c.y,o=u):s=c.y}return o?new i.MercatorCoordinate(o[0],o[1],o[2]):this.pointCoordinate(r)}isPointAboveHorizon(i){if(this.elevation)return!this.elevation.pointCoordinate(i);{const r=this.horizonLineFromTop();return i.y0?new i.pointGeometry(s[0]/s[3],s[1]/s[3]):new i.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE)}_getBounds(r,n){var o,s,a,l;const c=new i.pointGeometry(this._edgeInsets.left,this._edgeInsets.top),h=new i.pointGeometry(this.width-this._edgeInsets.right,this._edgeInsets.top),u=new i.pointGeometry(this.width-this._edgeInsets.right,this.height-this._edgeInsets.bottom),d=new i.pointGeometry(this._edgeInsets.left,this.height-this._edgeInsets.bottom);let p=this.pointCoordinate(c,r),f=this.pointCoordinate(h,r);const m=this.pointCoordinate(u,n),_=this.pointCoordinate(d,n);return p.y>1&&f.y>=0?p=new i.MercatorCoordinate((1-_.y)/(((o=p).y-_.y)/(o.x-_.x))+_.x,1):p.y<0&&f.y<=1&&(p=new i.MercatorCoordinate(-_.y/(((s=p).y-_.y)/(s.x-_.x))+_.x,0)),f.y>1&&p.y>=0?f=new i.MercatorCoordinate((1-m.y)/(((a=f).y-m.y)/(a.x-m.x))+m.x,1):f.y<0&&p.y<=1&&(f=new i.MercatorCoordinate(-m.y/(((l=f).y-m.y)/(l.x-m.x))+m.x,0)),new i.LngLatBounds().extend(this.coordinateLocation(p)).extend(this.coordinateLocation(f)).extend(this.coordinateLocation(_)).extend(this.coordinateLocation(m))}_getBounds3D(){const i=this.elevation;if(!i.visibleDemTiles.length)return this._getBounds(0,0);const r=i.visibleDemTiles.reduce((i,r)=>{if(r.dem){const n=r.dem.tree;i.min=Math.min(i.min,n.minimums[0]),i.max=Math.max(i.max,n.maximums[0])}return i},{min:Number.MAX_VALUE,max:0});return this._getBounds(r.min*i.exaggeration(),r.max*i.exaggeration())}getBounds(){return this._terrainEnabled()?this._getBounds3D():this._getBounds(0,0)}horizonLineFromTop(i=!0){const r=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,n=this.height/2-r*(1-this._horizonShift);return i?Math.max(0,n):n}getMaxBounds(){return this.maxBounds}setMaxBounds(r){this.maxBounds=r,this.minLat=-i.MAX_MERCATOR_LATITUDE,this.maxLat=i.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,r&&(this.minLat=r.getSouth(),this.maxLat=r.getNorth(),this.minLng=r.getWest(),this.maxLng=r.getEast(),this.maxLngp&&(c=p-u),p-dm&&(l=m-h),m-f.5?w-1:w,T>.5?T-1:T,0]),this.alignedProjMatrix=E,c=i.create(),i.scale(c,c,[this.width/2,-this.height/2,1]),i.translate(c,c,[1,-1,0]),this.labelPlaneMatrix=c,c=i.create(),i.scale(c,c,[1,-1,1]),i.translate(c,c,[-1,-1,0]),i.scale(c,c,[2/this.width,2/this.height,1]),this.glCoordMatrix=c,this.pixelMatrix=i.multiply$1(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},!(c=i.invert(new Float64Array(16),this.pixelMatrix)))throw Error("failed to invert matrix");this.pixelMatrixInverse=c,this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={}}_calcFogMatrices(){this._fogTileMatrixCache={};const r=this.cameraWorldSize,n=this.cameraPixelsPerMeter,o=this._camera.position,s=1/this.height,a=[r,r,n];i.scale$2(a,a,s),i.scale$2(o,o,-1),i.multiply$2(o,o,a);const l=i.create();i.translate(l,l,o),i.scale(l,l,a),this.mercatorFogMatrix=l,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(r,n,s)}_computeCameraPosition(i){const r=(i=i||this.pixelsPerMeter)/this.pixelsPerMeter,n=this._camera.forward(),o=this.point,s=this._mercatorZfromZoom(this._cameraZoom?this._cameraZoom:this._zoom)*r-i/this.worldSize*this._centerAltitude;return[o.x/this.worldSize-n[0]*s,o.y/this.worldSize-n[1]*s,i/this.worldSize*this._centerAltitude-n[2]*s]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition())}_translateCameraConstrained(r){const n=this._maxCameraBoundsDistance()*Math.cos(this._pitch),o=r[2];let s=1;o>0&&(s=Math.min((n-this._camera.position[2])/o,1)),this._camera.position=i.scaleAndAdd([],this._camera.position,r,s),this._updateStateFromCamera()}_updateStateFromCamera(){const r=this._camera.position,n=this._camera.forward(),{pitch:o,bearing:s}=this._camera.getPitchBearing(),a=i.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._projectionScaler,l=this._mercatorZfromZoom(this._maxZoom)*Math.cos(i.degToRad(this._maxPitch)),c=Math.max((r[2]-a)/Math.cos(o),l),h=this._zoomFromMercatorZ(c);i.scaleAndAdd(r,r,n,c),this._pitch=i.clamp(o,i.degToRad(this.minPitch),i.degToRad(this.maxPitch)),this.angle=i.wrap(s,-Math.PI,Math.PI),this._setZoom(i.clamp(h,this._minZoom,this._maxZoom)),this._terrainEnabled()&&this._updateCameraOnTerrain(),this._center=this.coordinateLocation(new i.MercatorCoordinate(r[0],r[1],r[2])),this._unmodified=!1,this._constrain(),this._calcMatrices()}_worldSizeFromZoom(i){return Math.pow(2,i)*this.tileSize}_mercatorZfromZoom(i){return this.cameraToCenterDistance/this._worldSizeFromZoom(i)}_minimumHeightOverTerrain(){const i=Math.min((null!=this._cameraZoom?this._cameraZoom:this._zoom)+2,this._maxZoom);return this._mercatorZfromZoom(i)}_zoomFromMercatorZ(i){return this.scaleZoom(this.cameraToCenterDistance/(i*this.tileSize))}_terrainEnabled(){return!(!this._elevation||!this.projection.supportsTerrain&&(i.warnOnce("Terrain is not yet supported with alternate projections. Use mercator to enable terrain."),1))}anyCornerOffEdge(r,n){const o=Math.min(r.x,n.x),s=Math.max(r.x,n.x),a=Math.min(r.y,n.y),l=Math.max(r.y,n.y);if(au||f.y>1)return!0}return!1}isHorizonVisible(){return this.pitch+i.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new i.pointGeometry(0,0),new i.pointGeometry(this.width,this.height))}zoomDeltaToMovement(r,n){const o=i.length(i.sub([],this._camera.position,r)),s=this._zoomFromMercatorZ(o)+n;return o-this._mercatorZfromZoom(s)}getCameraPoint(){const r=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new i.pointGeometry(0,r))}}function iP(i,r){let n=!1,o=null;const s=()=>{o=null,n&&(i(),o=setTimeout(s,r),n=!1)};return()=>(n=!0,o||s(),o)}class iD{constructor(r){this._hashName=r&&encodeURIComponent(r),i.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=iP(this._updateHashUnthrottled.bind(this),300)}addTo(r){return this._map=r,i.window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return i.window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this}getHashString(r){const n=this._map.getCenter(),o=Math.round(100*this._map.getZoom())/100,s=Math.ceil((o*Math.LN2+Math.log(512/360/.5))/Math.LN10),a=Math.pow(10,s),l=Math.round(n.lng*a)/a,c=Math.round(n.lat*a)/a,h=this._map.getBearing(),u=this._map.getPitch();let d="";if(d+=r?`/${l}/${c}/${o}`:`${o}/${c}/${l}`,(h||u)&&(d+="/"+Math.round(10*h)/10),u&&(d+=`/${Math.round(u)}`),this._hashName){const p=this._hashName;let f=!1;const m=i.window.location.hash.slice(1).split("&").map(i=>{const r=i.split("=")[0];return r===p?(f=!0,`${r}=${d}`):i}).filter(i=>i);return f||m.push(`${p}=${d}`),`#${m.join("&")}`}return`#${d}`}_getCurrentHash(){const r=i.window.location.hash.replace("#","");if(this._hashName){let n;return r.split("&").map(i=>i.split("=")).forEach(i=>{i[0]===this._hashName&&(n=i)}),(n&&n[1]||"").split("/")}return r.split("/")}_onHashChange(){const i=this._getCurrentHash();if(i.length>=3&&!i.some(i=>isNaN(i))){const r=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(i[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+i[2],+i[1]],zoom:+i[0],bearing:r,pitch:+(i[4]||0)}),!0}return!1}_updateHashUnthrottled(){const r=i.window.location.href.replace(/(#.+)?$/,this.getHashString());i.window.history.replaceState(i.window.history.state,null,r)}}const iL={linearity:.3,easing:i.bezier(0,0,.3,1)},iB=i.extend({deceleration:2500,maxSpeed:1400},iL),iR=i.extend({deceleration:20,maxSpeed:1400},iL),iF=i.extend({deceleration:1e3,maxSpeed:360},iL),iO=i.extend({deceleration:1e3,maxSpeed:90},iL);class iU{constructor(i){this._map=i,this.clear()}clear(){this._inertiaBuffer=[]}record(r){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:i.exported.now(),settings:r})}_drainInertiaBuffer(){const r=this._inertiaBuffer,n=i.exported.now();for(;r.length>0&&n-r[0].time>160;)r.shift()}_onMoveEnd(r){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const n={zoom:0,bearing:0,pitch:0,pan:new i.pointGeometry(0,0),pinchAround:void 0,around:void 0};for(const{settings:o}of this._inertiaBuffer)n.zoom+=o.zoomDelta||0,n.bearing+=o.bearingDelta||0,n.pitch+=o.pitchDelta||0,o.panDelta&&n.pan._add(o.panDelta),o.around&&(n.around=o.around),o.pinchAround&&(n.pinchAround=o.pinchAround);const s=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,a={};if(n.pan.mag()){const l=iN(n.pan.mag(),s,i.extend({},iB,r||{}));a.offset=n.pan.mult(l.amount/n.pan.mag()),a.center=this._map.transform.center,iV(a,l)}if(n.zoom){const c=iN(n.zoom,s,iR);a.zoom=this._map.transform.zoom+c.amount,iV(a,c)}if(n.bearing){const h=iN(n.bearing,s,iF);a.bearing=this._map.transform.bearing+i.clamp(h.amount,-179,179),iV(a,h)}if(n.pitch){const u=iN(n.pitch,s,iO);a.pitch=this._map.transform.pitch+u.amount,iV(a,u)}if(a.zoom||a.bearing){const d=void 0===n.pinchAround?n.around:n.pinchAround;a.around=d?this._map.unproject(d):this._map.getCenter()}return this.clear(),i.extend(a,{noMoveStart:!0})}}function iV(i,r){(!i.duration||i.durationn.unproject(i)),h=l.reduce((i,r,n,o)=>i.add(r.div(o.length)),new i.pointGeometry(0,0));super(r,{points:l,point:h,lngLats:c,lngLat:n.unproject(h),originalEvent:o}),this._defaultPrevented=!1}}class iZ extends i.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(i,r,n){super(i,{originalEvent:n}),this._defaultPrevented=!1}}class i${constructor(i,r){this._map=i,this._clickTolerance=r.clickTolerance}reset(){delete this._mousedownPos}wheel(i){return this._firePreventable(new iZ(i.type,this._map,i))}mousedown(i,r){return this._mousedownPos=r,this._firePreventable(new ij(i.type,this._map,i))}mouseup(i){this._map.fire(new ij(i.type,this._map,i))}preclick(r){const n=i.extend({},r);n.type="preclick",this._map.fire(new ij(n.type,this._map,n))}click(i,r){this._mousedownPos&&this._mousedownPos.dist(r)>=this._clickTolerance||(this.preclick(i),this._map.fire(new ij(i.type,this._map,i)))}dblclick(i){return this._firePreventable(new ij(i.type,this._map,i))}mouseover(i){this._map.fire(new ij(i.type,this._map,i))}mouseout(i){this._map.fire(new ij(i.type,this._map,i))}touchstart(i){return this._firePreventable(new iG(i.type,this._map,i))}touchmove(i){this._map.fire(new iG(i.type,this._map,i))}touchend(i){this._map.fire(new iG(i.type,this._map,i))}touchcancel(i){this._map.fire(new iG(i.type,this._map,i))}_firePreventable(i){if(this._map.fire(i),i.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class iq{constructor(i){this._map=i}reset(){this._delayContextMenu=!1,delete this._contextMenuEvent}mousemove(i){this._map.fire(new ij(i.type,this._map,i))}mousedown(){this._delayContextMenu=!0}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new ij("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(i){this._delayContextMenu?this._contextMenuEvent=i:this._map.fire(new ij(i.type,this._map,i)),this._map.listens("contextmenu")&&i.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class iX{constructor(i,r){this._map=i,this._el=i.getCanvasContainer(),this._container=i.getContainer(),this._clickTolerance=r.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(i,r){this.isEnabled()&&i.shiftKey&&0===i.button&&(a.disableDrag(),this._startPos=this._lastPos=r,this._active=!0)}mousemoveWindow(i,r){if(!this._active||this._lastPos.equals(r)||!this._box&&r.dist(this._startPos){this._box&&(this._box.style.transform=`translate(${o}px,${l}px)`,this._box.style.width=s-o+"px",this._box.style.height=c-l+"px")})}mouseupWindow(r,n){if(!this._active||0!==r.button)return;const o=this._startPos;if(this.reset(),a.suppressClick(),o.x!==n.x||o.y!==n.y)return this._map.fire(new i.Event("boxzoomend",{originalEvent:r})),{cameraAnimation:i=>i.fitScreenCoordinates(o,n,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",r)}keydown(i){this._active&&27===i.keyCode&&(this.reset(),this._fireEvent("boxzoomcancel",i))}blur(){this.reset()}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),a.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(r,n){return this._map.fire(new i.Event(r,{originalEvent:n}))}}function iW(i,r){const n={};for(let o=0;othis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=r.timeStamp),o.length===this.numTouches&&(this.centroid=function(r){const n=new i.pointGeometry(0,0);for(const o of r)n._add(o);return n.div(r.length)}(n),this.touches=iW(o,n)))}touchmove(i,r,n){if(this.aborted||!this.centroid)return;const o=iW(n,r);for(const s in this.touches){const a=this.touches[s],l=o[s];(!l||l.dist(a)>30)&&(this.aborted=!0)}}touchend(i,r,n){if((!this.centroid||i.timeStamp-this.startTime>500)&&(this.aborted=!0),0===n.length){const o=!this.aborted&&this.centroid;if(this.reset(),o)return o}}}class iK{constructor(i){this.singleTap=new iH(i),this.numTaps=i.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(i,r,n){this.singleTap.touchstart(i,r,n)}touchmove(i,r,n){this.singleTap.touchmove(i,r,n)}touchend(i,r,n){const o=this.singleTap.touchend(i,r,n);if(o){const s=i.timeStamp-this.lastTime<500,a=!this.lastTap||30>this.lastTap.dist(o);if(s&&a||this.reset(),this.count++,this.lastTime=i.timeStamp,this.lastTap=o,this.count===this.numTaps)return this.reset(),o}}}class iY{constructor(){this._zoomIn=new iK({numTouches:1,numTaps:2}),this._zoomOut=new iK({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(i,r,n){this._zoomIn.touchstart(i,r,n),this._zoomOut.touchstart(i,r,n)}touchmove(i,r,n){this._zoomIn.touchmove(i,r,n),this._zoomOut.touchmove(i,r,n)}touchend(i,r,n){const o=this._zoomIn.touchend(i,r,n),s=this._zoomOut.touchend(i,r,n);return o?(this._active=!0,i.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:r=>r.easeTo({duration:300,zoom:r.getZoom()+1,around:r.unproject(o)},{originalEvent:i})}):s?(this._active=!0,i.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:r=>r.easeTo({duration:300,zoom:r.getZoom()-1,around:r.unproject(s)},{originalEvent:i})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}const iJ={0:1,2:2};class iQ{constructor(i){this.reset(),this._clickTolerance=i.clickTolerance||1}blur(){this.reset()}reset(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton}_correctButton(i,r){return!1}_move(i,r){return{}}mousedown(i,r){if(this._lastPoint)return;const n=a.mouseButton(i);this._correctButton(i,n)&&(this._lastPoint=r,this._eventButton=n)}mousemoveWindow(i,r){const n=this._lastPoint;if(n){if(i.preventDefault(),function(i,r){const n=iJ[r];return void 0===i.buttons||(i.buttons&n)!==n}(i,this._eventButton))this.reset();else if(this._moved||!(r.dist(n)0&&(this._active=!0);const s=iW(o,n),a=new i.pointGeometry(0,0),l=new i.pointGeometry(0,0);let c=0;for(const h in s){const u=s[h],d=this._touches[h];d&&(a._add(u),l._add(u.sub(d)),c++,s[h]=u)}if(this._touches=s,c{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show")},500)}}class i5{constructor(){this.reset()}reset(){this._active=!1,delete this._firstTwoTouches}_start(i){}_move(i,r,n){return{}}touchstart(i,r,n){this._firstTwoTouches||n.length<2||(this._firstTwoTouches=[n[0].identifier,n[1].identifier],this._start([r[0],r[1]]))}touchmove(i,r,n){if(!this._firstTwoTouches)return;i.preventDefault();const[o,s]=this._firstTwoTouches,a=i4(n,r,o),l=i4(n,r,s);if(!a||!l)return;const c=this._aroundCenter?null:a.add(l).div(2);return this._move([a,l],c,i)}touchend(i,r,n){if(!this._firstTwoTouches)return;const[o,s]=this._firstTwoTouches,l=i4(n,r,o),c=i4(n,r,s);l&&c||(this._active&&a.suppressClick(),this.reset())}touchcancel(){this.reset()}enable(i){this._enabled=!0,this._aroundCenter=!!i&&"center"===i.around}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}function i4(i,r,n){for(let o=0;oMath.abs(i6(this._distance,this._startDistance))))return this._active=!0,{zoomDelta:i6(this._distance,n),pinchAround:r}}}function i9(i,r){return 180*i.angleWith(r)/Math.PI}class i7 extends i5{reset(){super.reset(),delete this._minDiameter,delete this._startVector,delete this._vector}_start(i){this._startVector=this._vector=i[0].sub(i[1]),this._minDiameter=i[0].dist(i[1])}_move(i,r){const n=this._vector;if(this._vector=i[0].sub(i[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:i9(this._vector,n),pinchAround:r}}_isBelowThreshold(i){this._minDiameter=Math.min(this._minDiameter,i.mag());const r=25/(Math.PI*this._minDiameter)*360,n=i9(i,this._startVector);return Math.abs(n)Math.abs(i.x)}class rt extends i5{constructor(i){super(),this._map=i}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}_start(i){this._lastPoints=i,re(i[0].sub(i[1]))&&(this._valid=!1)}_move(i,r,n){const o=i[0].sub(this._lastPoints[0]),s=i[1].sub(this._lastPoints[1]);if(!(this._map._cooperativeGestures&&n.touches.length<3)&&(this._valid=this.gestureBeginsVertically(o,s,n.timeStamp),this._valid))return this._lastPoints=i,this._active=!0,{pitchDelta:-((o.y+s.y)/2*.5)}}gestureBeginsVertically(i,r,n){if(void 0!==this._valid)return this._valid;const o=i.mag()>=2,s=r.mag()>=2;if(!o&&!s)return;if(!o||!s)return void 0===this._firstMove&&(this._firstMove=n),n-this._firstMove<100&&void 0;const a=i.y>0==r.y>0;return re(i)&&re(r)&&a}}const ri={panStep:100,bearingStep:15,pitchStep:10};class rr{constructor(){this._panStep=ri.panStep,this._bearingStep=ri.bearingStep,this._pitchStep=ri.pitchStep,this._rotationDisabled=!1}blur(){this.reset()}reset(){this._active=!1}keydown(i){if(i.altKey||i.ctrlKey||i.metaKey)return;let r=0,n=0,o=0,s=0,a=0;switch(i.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:i.shiftKey?n=-1:(i.preventDefault(),s=-1);break;case 39:i.shiftKey?n=1:(i.preventDefault(),s=1);break;case 38:i.shiftKey?o=1:(i.preventDefault(),a=-1);break;case 40:i.shiftKey?o=-1:(i.preventDefault(),a=1);break;default:return}return this._rotationDisabled&&(n=0,o=0),{cameraAnimation:l=>{const c=l.getZoom();l.easeTo({duration:300,easeId:"keyboardHandler",easing:rn,zoom:r?Math.round(c)+r*(i.shiftKey?2:1):c,bearing:l.getBearing()+n*this._bearingStep,pitch:l.getPitch()+o*this._pitchStep,offset:[-s*this._panStep,-a*this._panStep],center:l.getCenter()},{originalEvent:i})}}}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 rn(i){return i*(2-i)}class ro{constructor(r,n){this._map=r,this._el=r.getCanvasContainer(),this._handler=n,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,i.bindAll(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert","_isFullscreen"],this)}setZoomRate(i){this._defaultZoomRate=i}setWheelZoomRate(i){this._wheelZoomRate=i}isEnabled(){return!!this._enabled}isActive(){return!!this._active||void 0!==this._finishTimeout}isZooming(){return!!this._zooming}enable(i){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!i&&"center"===i.around,this._map._cooperativeGestures&&this._addScrollZoomBlocker())}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()))}wheel(r){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(r.ctrlKey||r.metaKey||this.isZooming()||this._isFullscreen()))return void this._showBlockerAlert();"hidden"!==this._alertContainer.style.visibility&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer))}let n=r.deltaMode===i.window.WheelEvent.DOM_DELTA_LINE?40*r.deltaY:r.deltaY;const o=i.exported.now(),s=o-(this._lastWheelEventTime||0);this._lastWheelEventTime=o,0!==n&&n%4.000244140625==0?this._type="wheel":0!==n&&4>Math.abs(n)?this._type="trackpad":s>400?(this._type=null,this._lastValue=n,this._timeout=setTimeout(this._onTimeout,40,r)):this._type||(this._type=200>Math.abs(s*n)?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,n+=this._lastValue)),r.shiftKey&&n&&(n/=4),this._type&&(this._lastWheelEvent=r,this._delta-=n,this._active||this._start(r)),r.preventDefault()}_onTimeout(i){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(i)}_start(i){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 r=a.mousePos(this._el,i);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:r,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const r=this._map.transform,n=()=>r._terrainEnabled()&&this._aroundCoord?r.computeZoomRelativeTo(this._aroundCoord):r.zoom;if(0!==this._delta){const o="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate;let s=2/(1+Math.exp(-Math.abs(this._delta*o)));this._delta<0&&0!==s&&(s=1/s);const a=n(),l=Math.pow(2,a),c="number"==typeof this._targetZoom?r.zoomScale(this._targetZoom):l;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(c*s))),"wheel"===this._type&&(this._startZoom=n(),this._easing=this._smoothOutEasing(200)),this._delta=0}const h="number"==typeof this._targetZoom?this._targetZoom:n(),u=this._startZoom,d=this._easing;let p,f=!1;if("wheel"===this._type&&u&&d){const m=Math.min((i.exported.now()-this._lastWheelEventTime)/200,1),_=d(m);p=i.number(u,h,_),m<1?this._frameId||(this._frameId=!0):f=!0}else p=h,f=!0;return this._active=!0,f&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!f,zoomDelta:p-n(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(r){let n=i.ease;if(this._prevEase){const o=this._prevEase,s=(i.exported.now()-o.start)/o.duration,a=o.easing(s+.01)-o.easing(s),l=.27/Math.sqrt(a*a+1e-4)*.01,c=Math.sqrt(.0729-l*l);n=i.bezier(l,c,.25,1)}return this._prevEase={start:i.exported.now(),duration:r,easing:n},n}blur(){this.reset()}reset(){this._active=!1}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=a.create("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(i.window.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`)}_isFullscreen(){return!!i.window.document.fullscreenElement}_showBlockerAlert(){"hidden"===this._alertContainer.style.visibility&&(this._alertContainer.style.visibility="visible"),this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout(()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show")},200)}}class rs{constructor(i,r){this._clickZoom=i,this._tapZoom=r}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 ra{constructor(){this.reset()}reset(){this._active=!1}blur(){this.reset()}dblclick(i,r){return i.preventDefault(),{cameraAnimation(n){n.easeTo({duration:300,zoom:n.getZoom()+(i.shiftKey?-1:1),around:n.unproject(r)},{originalEvent:i})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class rl{constructor(){this._tap=new iK({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()}touchstart(i,r,n){this._swipePoint||(this._tapTime&&i.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?n.length>0&&(this._swipePoint=r[0],this._swipeTouch=n[0].identifier):this._tap.touchstart(i,r,n))}touchmove(i,r,n){if(this._tapTime){if(this._swipePoint){if(n[0].identifier!==this._swipeTouch)return;const o=r[0],s=o.y-this._swipePoint.y;return this._swipePoint=o,i.preventDefault(),this._active=!0,{zoomDelta:s/128}}}else this._tap.touchmove(i,r,n)}touchend(i,r,n){this._tapTime?this._swipePoint&&0===n.length&&this.reset():this._tap.touchend(i,r,n)&&(this._tapTime=i.timeStamp)}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class rc{constructor(i,r,n){this._el=i,this._mousePan=r,this._touchPan=n}enable(i){this._inertiaOptions=i||{},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 rh{constructor(i,r,n){this._pitchWithRotate=i.pitchWithRotate,this._mouseRotate=r,this._mousePitch=n}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 ru{constructor(i,r,n,o){this._el=i,this._touchZoom=r,this._touchRotate=n,this._tapDragZoom=o,this._rotationDisabled=!1,this._enabled=!0}enable(i){this._touchZoom.enable(i),this._rotationDisabled||this._touchRotate.enable(i),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 rd=i=>i.zoom||i.drag||i.pitch||i.rotate;class rp extends i.Event{}class rf{constructor(){this.constants=[1,1,.01],this.radius=0}setup(r,n){const o=i.sub([],n,r);this.radius=i.length(o[2]<0?i.div([],o,this.constants):[o[0],o[1],0])}projectRay(r){i.div(r,r,this.constants),i.normalize(r,r),i.mul$1(r,r,this.constants);const n=i.scale$2([],r,this.radius);if(n[2]>0){const o=i.scale$2([],[0,0,1],i.dot(n,[0,0,1])),s=i.scale$2([],i.normalize([],[n[0],n[1],0]),this.radius),a=i.add([],n,i.scale$2([],i.sub([],i.add([],s,o),n),2));n[0]=a[0],n[1]=a[1]}return n}}function rm(i){return i.panDelta&&i.panDelta.mag()||i.zoomDelta||i.bearingDelta||i.pitchDelta}class r_{constructor(r,n){this._map=r,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new iU(r),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new rf,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(n),i.bindAll(["handleEvent","handleWindowEvent"],this);const o=this._el;for(const[s,a,l]of(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],[i.window.document,"mousemove",{capture:!0}],[i.window.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],[i.window,"blur",void 0]],this._listeners))s.addEventListener(a,s===i.window.document?this.handleWindowEvent:this.handleEvent,l)}destroy(){for(const[r,n,o]of this._listeners)r.removeEventListener(n,r===i.window.document?this.handleWindowEvent:this.handleEvent,o)}_addDefaultHandlers(i){const r=this._map,n=r.getCanvasContainer();this._add("mapEvent",new i$(r,i));const o=r.boxZoom=new iX(r,i);this._add("boxZoom",o);const s=new iY,a=new ra;r.doubleClickZoom=new rs(a,s),this._add("tapZoom",s),this._add("clickZoom",a);const l=new rl;this._add("tapDragZoom",l);const c=r.touchPitch=new rt(r);this._add("touchPitch",c);const h=new i1(i),u=new i2(i);r.dragRotate=new rh(i,h,u),this._add("mouseRotate",h,["mousePitch"]),this._add("mousePitch",u,["mouseRotate"]);const d=new i0(i),p=new i3(r,i);r.dragPan=new rc(n,d,p),this._add("mousePan",d),this._add("touchPan",p,["touchZoom","touchRotate"]);const f=new i7,m=new i8;r.touchZoomRotate=new ru(n,m,f,l),this._add("touchRotate",f,["touchPan","touchZoom"]),this._add("touchZoom",m,["touchPan","touchRotate"]),this._add("blockableMapEvent",new iq(r));const _=r.scrollZoom=new ro(r,this);this._add("scrollZoom",_,["mousePan"]);const g=r.keyboard=new rr;for(const y of(this._add("keyboard",g),["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"]))i.interactive&&i[y]&&r[y].enable(i[y])}_add(i,r,n){this._handlers.push({handlerName:i,handler:r,allowed:n}),this._handlersById[i]=r}stop(i){if(!this._updatingCamera){for(const{handler:r}of this._handlers)r.reset();this._inertia.clear(),this._fireEvents({},{},i),this._changes=[]}}isActive(){for(const{handler:i}of this._handlers)if(i.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return Boolean(rd(this._eventsInProgress))||this.isZooming()}_blockedByActive(i,r,n){for(const o in i)if(o!==n&&(!r||0>r.indexOf(o)))return!0;return!1}handleWindowEvent(i){this.handleEvent(i,`${i.type}Window`)}_getMapTouches(i){const r=[];for(const n of i)this._el.contains(n.target)&&r.push(n);return r}handleEvent(i,r){this._updatingCamera=!0;const n="renderFrame"===i.type,o=n?void 0:i,s={needsRenderFrame:!1},l={},c={},h=i.touches?this._getMapTouches(i.touches):void 0,u=h?a.touchPos(this._el,h):n?void 0:a.mousePos(this._el,i);for(const{handlerName:d,handler:p,allowed:f}of this._handlers){let m;p.isEnabled()&&(this._blockedByActive(c,f,d)?p.reset():p[r||i.type]&&(m=p[r||i.type](i,u,h),this.mergeHandlerResult(s,l,m,d,o),m&&m.needsRenderFrame&&this._triggerRenderFrame()),(m||p.isActive())&&(c[d]=p))}const _={};for(const g in this._previousActiveHandlers)c[g]||(_[g]=o);this._previousActiveHandlers=c,(Object.keys(_).length||rm(s))&&(this._changes.push([s,l,_]),this._triggerRenderFrame()),(Object.keys(c).length||rm(s))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:y}=s;y&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],y(this._map))}mergeHandlerResult(r,n,o,s,a){if(!o)return;i.extend(r,o);const l={handlerName:s,originalEvent:o.originalEvent||a};void 0!==o.zoomDelta&&(n.zoom=l),void 0!==o.panDelta&&(n.drag=l),void 0!==o.pitchDelta&&(n.pitch=l),void 0!==o.bearingDelta&&(n.rotate=l)}_applyChanges(){const r={},n={},o={};for(const[s,a,l]of this._changes)s.panDelta&&(r.panDelta=(r.panDelta||new i.pointGeometry(0,0))._add(s.panDelta)),s.zoomDelta&&(r.zoomDelta=(r.zoomDelta||0)+s.zoomDelta),s.bearingDelta&&(r.bearingDelta=(r.bearingDelta||0)+s.bearingDelta),s.pitchDelta&&(r.pitchDelta=(r.pitchDelta||0)+s.pitchDelta),void 0!==s.around&&(r.around=s.around),void 0!==s.aroundCoord&&(r.aroundCoord=s.aroundCoord),void 0!==s.pinchAround&&(r.pinchAround=s.pinchAround),s.noInertia&&(r.noInertia=s.noInertia),i.extend(n,a),i.extend(o,l);this._updateMapTransform(r,n,o),this._changes=[]}_updateMapTransform(r,n,o){const s=this._map,a=s.transform,l=i=>[i.x,i.y,i.z];if((i=>{const r=this._eventsInProgress.drag;return r&&!this._handlersById[r.handlerName].isActive()})()&&!rm(r)){const c=a.zoom;a.cameraElevationReference="sea",a.recenterOnTerrain(),a.cameraElevationReference="ground",c!==a.zoom&&this._map._update(!0)}if(!rm(r))return this._fireEvents(n,o,!0);let{panDelta:h,zoomDelta:u,bearingDelta:d,pitchDelta:p,around:f,aroundCoord:m,pinchAround:_}=r;void 0!==_&&(f=_),n.drag&&!this._eventsInProgress.drag&&f&&(this._dragOrigin=l(a.pointCoordinate3D(f)),this._trackingEllipsoid.setup(a._camera.position,this._dragOrigin)),a.cameraElevationReference="sea",s._stop(!0),f=f||s.transform.centerPoint,d&&(a.bearing+=d),p&&(a.pitch+=p),a._updateCameraState();const g=[0,0,0];if(h){const y=a.pointCoordinate(f),x=a.pointCoordinate(f.sub(h));y&&x&&(g[0]=x.x-y.x,g[1]=x.y-y.y)}const v=a.zoom,b=[0,0,0];if(u){const w=l(m||a.pointCoordinate3D(f)),T={dir:i.normalize([],i.sub([],w,a._camera.position))};if(T.dir[2]<0){const E=a.zoomDeltaToMovement(w,u);i.scale$2(b,T.dir,E)}}const S=i.add(g,g,b);a._translateCameraConstrained(S),u&&Math.abs(a.zoom-v)>1e-4&&a.recenterOnTerrain(),a.cameraElevationReference="ground",this._map._update(),r.noInertia||this._inertia.record(r),this._fireEvents(n,o,!0)}_fireEvents(r,n,o){let s;const a=rd(this._eventsInProgress),l=rd(r),c={};for(const h in r){const{originalEvent:u}=r[h];this._eventsInProgress[h]||(c[`${h}start`]=u),this._eventsInProgress[h]=r[h]}for(const d in!a&&l&&this._fireEvent("movestart",l.originalEvent),c)this._fireEvent(d,c[d]);for(const p in l&&this._fireEvent("move",l.originalEvent),r){const{originalEvent:f}=r[p];this._fireEvent(p,f)}const m={};for(const _ in this._eventsInProgress){const{handlerName:g,originalEvent:y}=this._eventsInProgress[_];this._handlersById[g].isActive()||(delete this._eventsInProgress[_],s=n[g]||y,m[`${_}end`]=s)}for(const x in m)this._fireEvent(x,m[x]);const v=rd(this._eventsInProgress);if(o&&(a||l)&&!v){var b,w;this._updatingCamera=!0;const T=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions);T?(0!==(b=T.bearing||this._map.getBearing())&&-this._bearingSnap{delete this._frameId,this.handleEvent(new rp("renderFrame",{timeStamp:i})),this._applyChanges()})}_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame())}}const rg="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";class ry extends i.Evented{constructor(r,n){super(),this._moving=!1,this._zooming=!1,this.transform=r,this._bearingSnap=n.bearingSnap,i.bindAll(["_renderFrameCallback"],this)}getCenter(){return new i.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(i,r){return this.jumpTo({center:i},r)}panBy(r,n,o){return r=i.pointGeometry.convert(r).mult(-1),this.panTo(this.transform.center,i.extend({offset:r},n),o)}panTo(r,n,o){return this.easeTo(i.extend({center:r},n),o)}getZoom(){return this.transform.zoom}setZoom(i,r){return this.jumpTo({zoom:i},r),this}zoomTo(r,n,o){return this.easeTo(i.extend({zoom:r},n),o)}zoomIn(i,r){return this.zoomTo(this.getZoom()+1,i,r),this}zoomOut(i,r){return this.zoomTo(this.getZoom()-1,i,r),this}getBearing(){return this.transform.bearing}setBearing(i,r){return this.jumpTo({bearing:i},r),this}getPadding(){return this.transform.padding}setPadding(i,r){return this.jumpTo({padding:i},r),this}rotateTo(r,n,o){return this.easeTo(i.extend({bearing:r},n),o)}resetNorth(r,n){return this.rotateTo(0,i.extend({duration:1e3},r),n),this}resetNorthPitch(r,n){return this.easeTo(i.extend({bearing:0,pitch:0,duration:1e3},r),n),this}snapToNorth(i,r){return Math.abs(this.getBearing())y=>{if(T&&(a.zoom=i.number(l,d,y)),E&&(a.bearing=i.number(c,p,y)),S&&(a.pitch=i.number(h,f,y)),I&&(a.interpolatePadding(u,m,y),g=a.centerPoint.add(_)),o)a.setLocationAtPoint(o,s);else{const x=a.zoomScale(a.zoom-l),M=d>l?Math.min(2,w):Math.max(.5,w),A=Math.pow(M,1-y),C=a.unproject(v.add(b.mult(y*A)).mult(x));a.setLocationAtPoint(a.renderWorldCopies?C.wrap():C,g)}return r.preloadOnly||this._fireMoveEvents(n),a};if(r.preloadOnly){const A=this._emulate(M,r.duration,a);return this._preloadTiles(A),this}const C={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=T,this._rotating=E,this._pitching=S,this._padding=I,this._easeId=r.easeId,this._prepareEase(n,r.noMoveStart,C),this._ease(M(a),i=>{a.recenterOnTerrain(),this._afterEase(n,i)},r),this}_prepareEase(r,n,o={}){this._moving=!0,this.transform.cameraElevationReference="sea",n||o.moving||this.fire(new i.Event("movestart",r)),this._zooming&&!o.zooming&&this.fire(new i.Event("zoomstart",r)),this._rotating&&!o.rotating&&this.fire(new i.Event("rotatestart",r)),this._pitching&&!o.pitching&&this.fire(new i.Event("pitchstart",r))}_fireMoveEvents(r){this.fire(new i.Event("move",r)),this._zooming&&this.fire(new i.Event("zoom",r)),this._rotating&&this.fire(new i.Event("rotate",r)),this._pitching&&this.fire(new i.Event("pitch",r))}_afterEase(r,n){if(this._easeId&&n&&this._easeId===n)return;delete this._easeId,this.transform.cameraElevationReference="ground";const o=this._zooming,s=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,o&&this.fire(new i.Event("zoomend",r)),s&&this.fire(new i.Event("rotateend",r)),a&&this.fire(new i.Event("pitchend",r)),this.fire(new i.Event("moveend",r))}flyTo(r,n){if(!r.essential&&i.exported.prefersReducedMotion){const o=i.pick(r,["center","zoom","bearing","pitch","around"]);return this.jumpTo(o,n)}this.stop(),r=i.extend({offset:[0,0],speed:1.2,curve:1.42,easing:i.ease},r);const s=this.transform,a=this.getZoom(),l=this.getBearing(),c=this.getPitch(),h=this.getPadding(),u="zoom"in r?i.clamp(+r.zoom,s.minZoom,s.maxZoom):a,d="bearing"in r?this._normalizeBearing(r.bearing,l):l,p="pitch"in r?+r.pitch:c,f="padding"in r?r.padding:s.padding,m=s.zoomScale(u-a),_=i.pointGeometry.convert(r.offset);let g=s.centerPoint.add(_);const y=s.pointLocation(g),x=i.LngLat.convert(r.center||y);this._normalizeCenter(x);const v=s.project(y),b=s.project(x).sub(v);let w=r.curve;const T=Math.max(s.width,s.height),E=T/m,S=b.mag();if("minZoom"in r){const I=i.clamp(Math.min(r.minZoom,a,u),s.minZoom,s.maxZoom),M=T/s.zoomScale(I-a);w=Math.sqrt(M/S*2)}const A=w*w;function C(i){const r=(E*E-T*T+(i?-1:1)*A*A*S*S)/(2*(i?E:T)*A*S);return Math.log(Math.sqrt(r*r+1)-r)}function z(i){return(Math.exp(i)-Math.exp(-i))/2}function k(i){return(Math.exp(i)+Math.exp(-i))/2}const P=C(0);let D=function(i){return k(P)/k(P+w*i)},L=function(i){var r;return T*((k(P)*(z(r=P+w*i)/k(r))-z(P))/A)/S},B=(C(1)-P)/w;if(1e-6>Math.abs(S)||!isFinite(B)){if(1e-6>Math.abs(T-E))return this.easeTo(r,n);const R=Er.maxDuration&&(r.duration=0);const F=l!==d,O=p!==c,U=!s.isPaddingEqual(f),V=o=>s=>{const m=s*B,y=1/D(m);o.zoom=1===s?u:a+o.scaleZoom(y),F&&(o.bearing=i.number(l,d,s)),O&&(o.pitch=i.number(c,p,s)),U&&(o.interpolatePadding(h,f,s),g=o.centerPoint.add(_));const w=1===s?x:o.unproject(v.add(b.mult(L(m))).mult(y));return o.setLocationAtPoint(o.renderWorldCopies?w.wrap():w,g),o._updateCenterElevation(),r.preloadOnly||this._fireMoveEvents(n),o};if(r.preloadOnly){const N=this._emulate(V,r.duration,s);return this._preloadTiles(N),this}return this._zooming=!0,this._rotating=F,this._pitching=O,this._padding=U,this._prepareEase(n,!1),this._ease(V(s),()=>this._afterEase(n),r),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(i,r){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const n=this._onEaseEnd;delete this._onEaseEnd,n.call(this,r)}if(!i){const o=this.handlers;o&&o.stop(!1)}return this}_ease(r,n,o){!1===o.animate||0===o.duration?(r(1),n()):(this._easeStart=i.exported.now(),this._easeOptions=o,this._onEaseFrame=r,this._onEaseEnd=n,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_renderFrameCallback(){const r=Math.min((i.exported.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(r)),r<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()}_normalizeBearing(r,n){r=i.wrap(r,-180,180);const o=Math.abs(r-n);return Math.abs(r-360-n)180?-360:n<-180?360:0}_emulate(i,r,n){const o=Math.ceil(15*r/1e3),s=[],a=i(n.clone());for(let l=0;l<=o;l++){const c=a(l/o);s.push(c.clone())}return s}}class rx{constructor(r={}){this.options=r,i.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)}getDefaultPosition(){return"bottom-right"}onAdd(i){const r=this.options&&this.options.compact;return this._map=i,this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=a.create("button","mapboxgl-ctrl-attrib-button",this._container),a.create("span","mapboxgl-ctrl-icon",this._compactButton).setAttribute("aria-hidden",!0),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=a.create("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),r&&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===r&&(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}_setElementTitle(i,r){const n=this._map._getUIString(`AttributionControl.${r}`);i.setAttribute("aria-label",n),i.removeAttribute("title"),i.firstElementChild&&i.firstElementChild.setAttribute("title",n)}_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 r=this._editLink;r||(r=this._editLink=this._container.querySelector(".mapbox-improve-map"));const n=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||i.config.ACCESS_TOKEN}];if(r){const o=n.reduce((i,r,o)=>(r.value&&(i+=`${r.key}=${r.value}${oi.indexOf(a.attribution)&&i.push(a.attribution)}}i.sort((i,r)=>i.length-r.length),i=i.filter((r,n)=>{for(let o=n+1;o=0)return!1;return!0}),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?i=[...this.options.customAttribution,...i]:i.unshift(this.options.customAttribution));const l=i.join(" | ");l!==this._attribHTML&&(this._attribHTML=l,i.length?(this._innerContainer.innerHTML=l,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 rv{constructor(){i.bindAll(["_updateLogo"],this),i.bindAll(["_updateCompact"],this)}onAdd(i){this._map=i,this._container=a.create("div","mapboxgl-ctrl");const r=a.create("a","mapboxgl-ctrl-logo");return r.target="_blank",r.rel="noopener nofollow",r.href="https://www.mapbox.com/",r.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),r.setAttribute("rel","noopener nofollow"),this._container.appendChild(r),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(i){i&&"metadata"!==i.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")}_logoRequired(){if(!this._map.style)return!0;const i=this._map.style._sourceCaches;if(0===Object.entries(i).length)return!0;for(const r in i){const n=i[r].getSource();if(n.hasOwnProperty("mapbox_logo")&&!n.mapbox_logo)return!1}return!0}_updateCompact(){const i=this._container.children;if(i.length){const r=i[0];this._map.getCanvasContainer().offsetWidth<250?r.classList.add("mapboxgl-compact"):r.classList.remove("mapboxgl-compact")}}}class rb{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(i){const r=++this._id;return this._queue.push({callback:i,id:r,cancelled:!1}),r}remove(i){const r=this._currentlyRunning,n=r?this._queue.concat(r):this._queue;for(const o of n)if(o.id===i)return void(o.cancelled=!0)}run(i=0){const r=this._currentlyRunning=this._queue;for(const n of(this._queue=[],r))if(!n.cancelled&&(n.callback(i),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}function rw(r,n,o){if(r=new i.LngLat(r.lng,r.lat),n){const s=new i.LngLat(r.lng-360,r.lat),a=new i.LngLat(r.lng+360,r.lat),l=360*Math.ceil(Math.abs(r.lng-o.center.lng)/360),c=o.locationPoint(r).distSqr(n),h=n.x<0||n.y<0||n.x>o.width||n.y>o.height;o.locationPoint(s).distSqr(n)180;){const u=o.locationPoint(r);if(u.x>=0&&u.y>=0&&u.x<=o.width&&u.y<=o.height)break;r.lng>o.center.lng?r.lng-=360:r.lng+=360}return r}const rT={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 rE extends i.Evented{constructor(r,n){if(super(),(r instanceof i.window.HTMLElement||n)&&(r=i.extend({element:r},n)),i.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this),this._anchor=r&&r.anchor||"center",this._color=r&&r.color||"#3FB1CE",this._scale=r&&r.scale||1,this._draggable=r&&r.draggable||!1,this._clickTolerance=r&&r.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=r&&r.rotation||0,this._rotationAlignment=r&&r.rotationAlignment||"auto",this._pitchAlignment=r&&r.pitchAlignment&&"auto"!==r.pitchAlignment?r.pitchAlignment:this._rotationAlignment,this._updateMoving=()=>this._update(!0),r&&r.element)this._element=r.element,this._offset=i.pointGeometry.convert(r&&r.offset||[0,0]);else{this._defaultMarker=!0,this._element=a.create("div");const o=a.createSVG("svg",{display:"block",height:41*this._scale+"px",width:27*this._scale+"px",viewBox:"0 0 27 41"},this._element),s=a.createSVG("radialGradient",{id:"shadowGradient"},a.createSVG("defs",{},o));a.createSVG("stop",{offset:"10%","stop-opacity":.4},s),a.createSVG("stop",{offset:"100%","stop-opacity":.05},s),a.createSVG("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},o),a.createSVG("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"},o),a.createSVG("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"},o),a.createSVG("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},o),this._offset=i.pointGeometry.convert(r&&r.offset||[0,-14])}this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",i=>{i.preventDefault()}),this._element.addEventListener("mousedown",i=>{i.preventDefault()});const l=this._element.classList;for(const c in rT)l.remove(`mapboxgl-marker-anchor-${c}`);l.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null}addTo(i){return i===this._map||(this.remove(),this._map=i,i.getCanvasContainer().appendChild(this._element),i.on("move",this._updateMoving),i.on("moveend",this._update),i.on("remove",this._clearFadeTimer),i._addMarker(this),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick)),this}remove(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._updateMoving),this._map.off("moveend",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._map.off("remove",this._clearFadeTimer),this._map._removeMarker(this),delete this._map),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(r){return this._lngLat=i.LngLat.convert(r),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(i){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")),i){if(!("offset"in i.options)){const r=Math.sqrt(91.125);i.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[r,-1*(24.6+r)],"bottom-right":[-r,-1*(24.6+r)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=i,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(i){const r=i.code,n=i.charCode||i.keyCode;"Space"!==r&&"Enter"!==r&&32!==n&&13!==n||this.togglePopup()}_onMapClick(i){const r=i.originalEvent.target,n=this._element;this._popup&&(r===n||n.contains(r))&&this.togglePopup()}getPopup(){return this._popup}togglePopup(){const i=this._popup;return i&&(i.isOpen()?(i.remove(),this._element.setAttribute("aria-expanded","false")):(i.addTo(this._map),this._element.setAttribute("aria-expanded","true"))),this}_evaluateOpacity(){const i=this._pos?this._pos.sub(this._transformedOffset()):null;if(!this._withinScreenBounds(i))return void this._clearFadeTimer();const r=this._map.unproject(i);let n=!1;if(this._map.transform._terrainEnabled()&&this._map.getTerrain()){const o=this._map.getFreeCameraOptions();if(o.position){const s=o.position.toLngLat();n=s.distanceTo(r)<.9*s.distanceTo(this._lngLat)}}const a=(1-this._map._queryFogOpacity(r))*(n?.2:1);this._element.style.opacity=`${a}`,this._popup&&this._popup._setOpacity(`${a}`),this._fadeTimer=null}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null)}_withinScreenBounds(i){const r=this._map.transform;return!!i&&i.x>=0&&i.x=0&&i.y{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM())}):this._pos=this._pos.round(),this._map._requestDomTask(()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(this._map.getTerrain()||this._map.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)))}))}_transformedOffset(){if(!this._defaultMarker)return this._offset;const i=this._map.transform,r=this._offset.mult(this._scale);return"map"===this._rotationAlignment&&r._rotate(i.angle),"map"===this._pitchAlignment&&(r.y*=Math.cos(i._pitch)),r}getOffset(){return this._offset}setOffset(r){return this._offset=i.pointGeometry.convert(r),this._update(),this}_onMove(r){if(!this._isDragging){const n=this._clickTolerance||this._map._clickTolerance;this._isDragging=r.point.dist(this._pointerdownPos)>=n}this._isDragging&&(this._pos=r.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none","pending"===this._state&&(this._state="active",this.fire(new i.Event("dragstart"))),this.fire(new i.Event("drag")))}_onUp(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),"active"===this._state&&this.fire(new i.Event("dragend")),this._state="inactive"}_addDragHandler(i){this._element.contains(i.originalEvent.target)&&(i.preventDefault(),this._positionDelta=i.point.sub(this._pos).add(this._transformedOffset()),this._pointerdownPos=i.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))}setDraggable(i){return this._draggable=!!i,this._map&&(i?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(i){return this._rotation=i||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(i){return this._rotationAlignment=i||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(i){return this._pitchAlignment=i&&"auto"!==i?i:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}}class rS{constructor(i){this.jumpTo(i)}getValue(r){if(r<=this._startTime)return this._start;if(r>=this._endTime)return this._end;const n=i.easeCubicInOut((r-this._startTime)/(this._endTime-this._startTime));return this._start*(1-n)+this._end*n}isEasing(i){return i>=this._startTime&&i<=this._endTime}jumpTo(i){this._startTime=-1/0,this._endTime=-1/0,this._start=i,this._end=i}easeTo(i,r,n){this._start=this.getValue(r),this._end=i,this._startTime=r,this._endTime=r+n}}const rI={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm","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"},{HTMLImageElement:rM,HTMLElement:rA,ImageBitmap:rC}=i.window,rz={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,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0};function rk(i){i.parentNode&&i.parentNode.removeChild(i)}const rP={showCompass:!0,showZoom:!0,visualizePitch:!1};class rD{constructor(r,n,o=!1){this._clickTolerance=10,this.element=n,this.mouseRotate=new i1({clickTolerance:r.dragRotate._mouseRotate._clickTolerance}),this.map=r,o&&(this.mousePitch=new i2({clickTolerance:r.dragRotate._mousePitch._clickTolerance})),i.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),n.addEventListener("mousedown",this.mousedown),n.addEventListener("touchstart",this.touchstart,{passive:!1}),n.addEventListener("touchmove",this.touchmove),n.addEventListener("touchend",this.touchend),n.addEventListener("touchcancel",this.reset)}down(i,r){this.mouseRotate.mousedown(i,r),this.mousePitch&&this.mousePitch.mousedown(i,r),a.disableDrag()}move(i,r){const n=this.map,o=this.mouseRotate.mousemoveWindow(i,r);if(o&&o.bearingDelta&&n.setBearing(n.getBearing()+o.bearingDelta),this.mousePitch){const s=this.mousePitch.mousemoveWindow(i,r);s&&s.pitchDelta&&n.setPitch(n.getPitch()+s.pitchDelta)}}off(){const i=this.element;i.removeEventListener("mousedown",this.mousedown),i.removeEventListener("touchstart",this.touchstart,{passive:!1}),i.removeEventListener("touchmove",this.touchmove),i.removeEventListener("touchend",this.touchend),i.removeEventListener("touchcancel",this.reset),this.offTemp()}offTemp(){a.enableDrag(),i.window.removeEventListener("mousemove",this.mousemove),i.window.removeEventListener("mouseup",this.mouseup)}mousedown(r){this.down(i.extend({},r,{ctrlKey:!0,preventDefault:()=>r.preventDefault()}),a.mousePos(this.element,r)),i.window.addEventListener("mousemove",this.mousemove),i.window.addEventListener("mouseup",this.mouseup)}mousemove(i){this.move(i,a.mousePos(this.element,i))}mouseup(i){this.mouseRotate.mouseupWindow(i),this.mousePitch&&this.mousePitch.mouseupWindow(i),this.offTemp()}touchstart(i){1!==i.targetTouches.length?this.reset():(this._startPos=this._lastPos=a.touchPos(this.element,i.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>i.preventDefault()},this._startPos))}touchmove(i){1!==i.targetTouches.length?this.reset():(this._lastPos=a.touchPos(this.element,i.targetTouches)[0],this.move({preventDefault:()=>i.preventDefault()},this._lastPos))}touchend(i){0===i.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)5280?rZ(r,o,h/5280,i._getUIString("ScaleControl.Miles"),i):rZ(r,o,h,i._getUIString("ScaleControl.Feet"),i)}else n&&"nautical"===n.unit?rZ(r,o,c/1852,i._getUIString("ScaleControl.NauticalMiles"),i):c>=1e3?rZ(r,o,c/1e3,i._getUIString("ScaleControl.Kilometers"),i):rZ(r,o,c,i._getUIString("ScaleControl.Meters"),i)}function rZ(i,r,n,o,s){const a=function(i){const r=Math.pow(10,`${Math.floor(i)}`.length-1);let n=i/r;return r*(n=n>=10?10:n>=5?5:n>=3?3:n>=2?2:n>=1?1:function(i){const r=Math.pow(10,Math.ceil(-Math.log(i)/Math.LN10));return Math.round(i*r)/r}(n))}(n),l=a/n;s._requestDomTask(()=>{i.style.width=r*l+"px",i.innerHTML=`${a} ${o}`})}const r$={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"},rq={version:i.version,supported:r,setRTLTextPlugin:i.setRTLTextPlugin,getRTLTextPluginStatus:i.getRTLTextPluginStatus,Map:class extends ry{constructor(r){if(null!=(r=i.extend({},rz,r)).minZoom&&null!=r.maxZoom&&r.minZoom>r.maxZoom)throw Error("maxZoom must be greater than or equal to minZoom");if(null!=r.minPitch&&null!=r.maxPitch&&r.minPitch>r.maxPitch)throw Error("maxPitch must be greater than or equal to minPitch");if(null!=r.minPitch&&r.minPitch<0)throw Error("minPitch must be greater than or equal to 0");if(null!=r.maxPitch&&r.maxPitch>85)throw Error("maxPitch must be less than or equal to 85");if(super(new ik(r.minZoom,r.maxZoom,r.minPitch,r.maxPitch,r.renderWorldCopies),r),this._interactive=r.interactive,this._minTileCacheSize=r.minTileCacheSize,this._maxTileCacheSize=r.maxTileCacheSize,this._failIfMajorPerformanceCaveat=r.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=r.preserveDrawingBuffer,this._antialias=r.antialias,this._trackResize=r.trackResize,this._bearingSnap=r.bearingSnap,this._refreshExpiredTiles=r.refreshExpiredTiles,this._fadeDuration=r.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=r.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=r.collectResourceTiming,this._optimizeForTerrain=r.optimizeForTerrain,this._renderTaskQueue=new rb,this._domRenderTaskQueue=new rb,this._controls=[],this._markers=[],this._mapId=i.uniqueId(),this._locale=i.extend({},rI,r.locale),this._clickTolerance=r.clickTolerance,this._cooperativeGestures=r.cooperativeGestures,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevation=new rS(0),this._requestManager=new i.RequestManager(r.transformRequest,r.accessToken,r.testMode),this._silenceAuthErrors=!!r.testMode,"string"==typeof r.container){if(this._container=i.window.document.getElementById(r.container),!this._container)throw Error(`Container '${r.container}' not found.`)}else{if(!(r.container instanceof rA))throw Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=r.container}if(this._container.childNodes.length>0&&i.warnOnce("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."),r.maxBounds&&this.setMaxBounds(r.maxBounds),i.bindAll(["_onWindowOnline","_onWindowResize","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw Error("Failed to initialize WebGL.");this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),void 0!==i.window&&(i.window.addEventListener("online",this._onWindowOnline,!1),i.window.addEventListener("resize",this._onWindowResize,!1),i.window.addEventListener("orientationchange",this._onWindowResize,!1),i.window.addEventListener("webkitfullscreenchange",this._onWindowResize,!1)),this.handlers=new r_(this,r),this._localFontFamily=r.localFontFamily,this._localIdeographFontFamily=r.localIdeographFontFamily,r.style&&this.setStyle(r.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),r.projection&&this.setProjection(r.projection),this._hash=r.hash&&new iD("string"==typeof r.hash&&r.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:r.center,zoom:r.zoom,bearing:r.bearing,pitch:r.pitch}),r.bounds&&(this.resize(),this.fitBounds(r.bounds,i.extend({},r.fitBoundsOptions,{duration:0})))),this.resize(),r.attributionControl&&this.addControl(new rx({customAttribution:r.customAttribution})),this._logoControl=new rv,this.addControl(this._logoControl,r.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",r=>{this._update("style"===r.dataType),this.fire(new i.Event(`${r.dataType}data`,r))}),this.on("dataloading",r=>{this.fire(new i.Event(`${r.dataType}dataloading`,r))})}_getMapId(){return this._mapId}addControl(r,n){if(void 0===n&&(n=r.getDefaultPosition?r.getDefaultPosition():"top-right"),!r||!r.onAdd)return this.fire(new i.ErrorEvent(Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const o=r.onAdd(this);this._controls.push(r);const s=this._controlPositions[n];return -1!==n.indexOf("bottom")?s.insertBefore(o,s.firstChild):s.appendChild(o),this}removeControl(r){if(!r||!r.onRemove)return this.fire(new i.ErrorEvent(Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const n=this._controls.indexOf(r);return n>-1&&this._controls.splice(n,1),r.onRemove(this),this}hasControl(i){return this._controls.indexOf(i)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(r){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 n=!this._moving;return n&&this.fire(new i.Event("movestart",r)).fire(new i.Event("move",r)),this.fire(new i.Event("resize",r)),n&&this.fire(new i.Event("moveend",r)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(r){return this.transform.setMaxBounds(i.LngLatBounds.convert(r)),this._update()}setMinZoom(r){if((r=null==r?-2:r)>=-2&&r<=this.transform.maxZoom)return this.transform.minZoom=r,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=r,this._update(),this.getZoom()>r?this.setZoom(r):this.fire(new i.Event("zoomstart")).fire(new i.Event("zoom")).fire(new i.Event("zoomend")),this;throw Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(r){if((r=null==r?0:r)<0)throw Error("minPitch must be greater than or equal to 0");if(r>=0&&r<=this.transform.maxPitch)return this.transform.minPitch=r,this._update(),this.getPitch()85)throw Error("maxPitch must be less than or equal to 85");if(r>=this.transform.minPitch)return this.transform.maxPitch=r,this._update(),this.getPitch()>r?this.setPitch(r):this.fire(new i.Event("pitchstart")).fire(new i.Event("pitch")).fire(new i.Event("pitchend")),this;throw Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(i){return this.transform.renderWorldCopies=i,this._update()}getProjection(){return this.transform.getProjection()}setProjection(i){return this._lazyInitEmptyStyle(),"string"==typeof i&&(i={name:i}),this._runtimeProjection=i,this.style.updateProjection(),this._transitionFromGlobe=!1,this}project(r){return this.transform.locationPoint3D(i.LngLat.convert(r))}unproject(r){return this.transform.pointLocation3D(i.pointGeometry.convert(r))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()}_createDelegatedListener(i,r,n){if("mouseenter"===i||"mouseover"===i){let o=!1;const s=s=>{const a=r.filter(i=>this.getLayer(i)),l=a.length?this.queryRenderedFeatures(s.point,{layers:a}):[];l.length?o||(o=!0,n.call(this,new ij(i,this,s.originalEvent,{features:l}))):o=!1},a=()=>{o=!1};return{layers:new Set(r),listener:n,delegates:{mousemove:s,mouseout:a}}}if("mouseleave"===i||"mouseout"===i){let l=!1;const c=o=>{const s=r.filter(i=>this.getLayer(i));(s.length?this.queryRenderedFeatures(o.point,{layers:s}):[]).length?l=!0:l&&(l=!1,n.call(this,new ij(i,this,o.originalEvent)))},h=r=>{l&&(l=!1,n.call(this,new ij(i,this,r.originalEvent)))};return{layers:new Set(r),listener:n,delegates:{mousemove:c,mouseout:h}}}{const u=i=>{const o=r.filter(i=>this.getLayer(i)),s=o.length?this.queryRenderedFeatures(i.point,{layers:o}):[];s.length&&(i.features=s,n.call(this,i),delete i.features)};return{layers:new Set(r),listener:n,delegates:{[i]:u}}}}on(i,r,n){if(void 0===n)return super.on(i,r);Array.isArray(r)||(r=[r]);const o=this._createDelegatedListener(i,r,n);for(const s in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[i]=this._delegatedListeners[i]||[],this._delegatedListeners[i].push(o),o.delegates)this.on(s,o.delegates[s]);return this}once(i,r,n){if(void 0===n)return super.once(i,r);Array.isArray(r)||(r=[r]);const o=this._createDelegatedListener(i,r,n);for(const s in o.delegates)this.once(s,o.delegates[s]);return this}off(i,r,n){if(void 0===n)return super.off(i,r);r=new Set(Array.isArray(r)?r:[r]);const o=(i,r)=>{if(i.size!==r.size)return!1;for(const n of i)if(!r.has(n))return!1;return!0},s=this._delegatedListeners?this._delegatedListeners[i]:void 0;return s&&(i=>{for(let s=0;s{r?this.fire(new i.ErrorEvent(r)):o&&this._updateDiff(o,n)})}else"object"==typeof r&&this._updateDiff(r,n)}_updateDiff(r,n){try{this.style.setState(r)&&this._update(!0)}catch(o){i.warnOnce(`Unable to perform style diff: ${o.message||o.error||o}. Rebuilding the style from scratch.`),this._updateStyle(r,n)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():i.warnOnce("There is no style added to the map.")}addSource(i,r){return this._lazyInitEmptyStyle(),this.style.addSource(i,r),this._update(!0)}isSourceLoaded(r){const n=this.style&&this.style._getSourceCaches(r);if(0!==n.length)return n.every(i=>i.loaded());this.fire(new i.ErrorEvent(Error(`There is no source with ID '${r}'`)))}areTilesLoaded(){const i=this.style&&this.style._sourceCaches;for(const r in i){const n=i[r]._tiles;for(const o in n){const s=n[o];if("loaded"!==s.state&&"errored"!==s.state)return!1}}return!0}addSourceType(i,r,n){return this._lazyInitEmptyStyle(),this.style.addSourceType(i,r,n)}removeSource(i){return this.style.removeSource(i),this._updateTerrain(),this._update(!0)}getSource(i){return this.style.getSource(i)}addImage(r,n,{pixelRatio:o=1,sdf:s=!1,stretchX:a,stretchY:l,content:c}={}){if(this._lazyInitEmptyStyle(),n instanceof rM||rC&&n instanceof rC){const{width:h,height:u,data:d}=i.exported.getImageData(n);this.style.addImage(r,{data:new i.RGBAImage({width:h,height:u},d),pixelRatio:o,stretchX:a,stretchY:l,content:c,sdf:s,version:0})}else{if(void 0===n.width||void 0===n.height)return this.fire(new i.ErrorEvent(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`")));{const{width:p,height:f,data:m}=n;this.style.addImage(r,{data:new i.RGBAImage({width:p,height:f},new Uint8Array(m)),pixelRatio:o,stretchX:a,stretchY:l,content:c,sdf:s,version:0,userImage:n}),n.onAdd&&n.onAdd(this,r)}}}updateImage(r,n){const o=this.style.getImage(r);if(!o)return this.fire(new i.ErrorEvent(Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const s=n instanceof rM||rC&&n instanceof rC?i.exported.getImageData(n):n,{width:a,height:l,data:c}=s;return void 0===a||void 0===l?this.fire(new i.ErrorEvent(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`"))):a!==o.data.width||l!==o.data.height?this.fire(new i.ErrorEvent(Error("The width and height of the updated image must be that same as the previous version of the image"))):(o.data.replace(c,!(n instanceof rM||rC&&n instanceof rC)),void this.style.updateImage(r,o))}hasImage(r){return r?!!this.style.getImage(r):(this.fire(new i.ErrorEvent(Error("Missing required image id"))),!1)}removeImage(i){this.style.removeImage(i)}loadImage(r,n){i.getImage(this._requestManager.transformRequest(r,i.ResourceType.Image),(r,o)=>{n(r,o instanceof rM?i.exported.getImageData(o):o)})}listImages(){return this.style.listImages()}addLayer(i,r){return this._lazyInitEmptyStyle(),this.style.addLayer(i,r),this._update(!0)}moveLayer(i,r){return this.style.moveLayer(i,r),this._update(!0)}removeLayer(i){return this.style.removeLayer(i),this._update(!0)}getLayer(i){return this.style.getLayer(i)}setLayerZoomRange(i,r,n){return this.style.setLayerZoomRange(i,r,n),this._update(!0)}setFilter(i,r,n={}){return this.style.setFilter(i,r,n),this._update(!0)}getFilter(i){return this.style.getFilter(i)}setPaintProperty(i,r,n,o={}){return this.style.setPaintProperty(i,r,n,o),this._update(!0)}getPaintProperty(i,r){return this.style.getPaintProperty(i,r)}setLayoutProperty(i,r,n,o={}){return this.style.setLayoutProperty(i,r,n,o),this._update(!0)}getLayoutProperty(i,r){return this.style.getLayoutProperty(i,r)}setLight(i,r={}){return this._lazyInitEmptyStyle(),this.style.setLight(i,r),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(i){return this._lazyInitEmptyStyle(),!i&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(i),this._averageElevationLastSampledAt=-1/0,this._update(!0)}_updateProjection(){"globe"===this.transform.projection.name&&this.transform.zoom>=i.GLOBE_ZOOM_THRESHOLD_MAX&&!this._transitionFromGlobe&&(this.setProjection({name:"mercator"}),this._transitionFromGlobe=!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(i){return this._lazyInitEmptyStyle(),this.style.setFog(i),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(r){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(i.LngLat.convert(r),this.transform):0}setFeatureState(i,r){return this.style.setFeatureState(i,r),this._update()}removeFeatureState(i,r){return this.style.removeFeatureState(i,r),this._update()}getFeatureState(i){return this.style.getFeatureState(i)}_updateContainerDimensions(){if(!this._container)return;const r=this._container.getBoundingClientRect().width||400,n=this._container.getBoundingClientRect().height||300;let o,s=this._container;for(;s&&!o;){const a=i.window.getComputedStyle(s).transform;a&&"none"!==a&&(o=a.match(/matrix.*\((.+)\)/)[1].split(", ")),s=s.parentElement}o?(this._containerWidth=o[0]&&"0"!==o[0]?Math.abs(r/o[0]):r,this._containerHeight=o[3]&&"0"!==o[3]?Math.abs(n/o[3]):n):(this._containerWidth=r,this._containerHeight=n)}_detectMissingCSS(){"rgb(250, 128, 114)"!==i.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")&&i.warnOnce("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 i=this._container;i.classList.add("mapboxgl-map"),(this._missingCSSCanary=a.create("div","mapboxgl-canary",i)).style.visibility="hidden",this._detectMissingCSS();const r=this._canvasContainer=a.create("div","mapboxgl-canvas-container",i);this._interactive&&r.classList.add("mapboxgl-interactive"),this._canvas=a.create("canvas","mapboxgl-canvas",r),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map"),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const n=this._controlContainer=a.create("div","mapboxgl-control-container",i),o=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(i=>{o[i]=a.create("div",`mapboxgl-ctrl-${i}`,n)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(r,n){const o=i.exported.devicePixelRatio||1;this._canvas.width=o*Math.ceil(r),this._canvas.height=o*Math.ceil(n),this._canvas.style.width=`${r}px`,this._canvas.style.height=`${n}px`}_addMarker(i){this._markers.push(i)}_removeMarker(i){const r=this._markers.indexOf(i);-1!==r&&this._markers.splice(r,1)}_setupPainter(){const n=i.extend({},r.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),o=this._canvas.getContext("webgl",n)||this._canvas.getContext("experimental-webgl",n);o?(i.storeAuthState(o,!0),this.painter=new ig(o,this.transform),this.on("data",i=>{"source"===i.dataType&&this.painter.setTileLoadedFlag(!0)}),i.exported$1.testSupport(o)):this.fire(new i.ErrorEvent(Error("Failed to initialize WebGL")))}_contextLost(r){r.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new i.Event("webglcontextlost",{originalEvent:r}))}_contextRestored(r){this._setupPainter(),this.resize(),this._update(),this.fire(new i.Event("webglcontextrestored",{originalEvent:r}))}_onMapScroll(i){if(i.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(i){return this.style&&(this._styleDirty=this._styleDirty||i,this._sourcesDirty=!0,this.triggerRepaint()),this}_requestRenderFrame(i){return this._update(),this._renderTaskQueue.add(i)}_cancelRenderFrame(i){this._renderTaskQueue.remove(i)}_requestDomTask(i){!this.loaded()||this.loaded()&&!this.isMoving()?i():this._domRenderTaskQueue.add(i)}_render(r){let n;const o=this.painter.context.extTimerQuery,s=i.exported.now();this.listens("gpu-timing-frame")&&(n=o.createQueryEXT(),o.beginQueryEXT(o.TIME_ELAPSED_EXT,n));let a=this._updateAverageElevation(s);if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(r),this._domRenderTaskQueue.run(r),this._removed)return;this._updateProjection();let l=!1;const c=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const h=this.transform.zoom,u=this.transform.pitch,d=i.exported.now();this.style.zoomHistory.update(h,d);const p=new i.EvaluationParameters(h,{now:d,fadeDuration:c,pitch:u,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),f=p.crossFadingFactor();1===f&&f===this._crossFadingFactor||(l=!0,this._crossFadingFactor=f),this.style.update(p)}if(this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),this.style._updateSources(this.transform),this._forceMarkerUpdate()),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,c,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:c,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),speedIndexTiming:this.speedIndexTiming}),this.fire(new i.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new i.Event("load"))),this.style&&(this.style.hasTransitions()||l)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),this.listens("gpu-timing-frame")){const m=i.exported.now()-s;o.endQueryEXT(o.TIME_ELAPSED_EXT,n),setTimeout(()=>{const r=o.getQueryObjectEXT(n,o.QUERY_RESULT_EXT)/1e6;o.deleteQueryEXT(n),this.fire(new i.Event("gpu-timing-frame",{cpuTime:m,gpuTime:r}))},50)}if(this.listens("gpu-timing-layer")){const _=this.painter.collectGpuTimers();setTimeout(()=>{const r=this.painter.queryGpuTimers(_);this.fire(new i.Event("gpu-timing-layer",{layerTimes:r}))},50)}const g=this._sourcesDirty||this._styleDirty||this._placementDirty||a;if(g||this._repaint)this.triggerRepaint();else{const y=!this.isMoving()&&this.loaded();if(y&&(a=this._updateAverageElevation(s,!0)),a)this.triggerRepaint();else if(this._triggerFrame(!1),y&&(this.fire(new i.Event("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){const x=this._calculateSpeedIndex();this.fire(new i.Event("speedindexcompleted",{speedIndex:x})),this.speedIndexTiming=!1}}return!this._loaded||this._fullyLoaded||g||(this._fullyLoaded=!0,this._authenticate()),this}_forceMarkerUpdate(){for(const i of this._markers)i._update()}_updateAverageElevation(i,r=!1){const n=i=>(this.transform.averageElevation=i,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return 0!==this.transform.averageElevation&&n(0);if((r||i-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(i)){const o=this.transform.averageElevation;let s=this.transform.sampleAverageElevation();isNaN(s)?s=0:this._averageElevationLastSampledAt=i;const a=Math.abs(o-s);if(a>1){if(this._isInitialLoad)return this._averageElevation.jumpTo(s),n(s);this._averageElevation.easeTo(s,i,300)}else if(a>1e-4)return this._averageElevation.jumpTo(s),n(s)}return!!this._averageElevation.isEasing(i)&&n(this._averageElevation.getValue(i))}_authenticate(){i.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,r=>{if(r&&(r.message===i.AUTH_ERR_MSG||401===r.status)){const n=this.painter.context.gl;i.storeAuthState(n,!1),this._logoControl instanceof rv&&this._logoControl._updateLogo(),n&&n.clear(n.DEPTH_BUFFER_BIT|n.COLOR_BUFFER_BIT|n.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new i.ErrorEvent(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/")))}}),i.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,()=>{})}_updateTerrain(){this.painter.updateTerrain(this.style,this.isMoving()||this.isRotating()||this.isZooming())}_calculateSpeedIndex(){const i=this.painter.canvasCopy(),r=this.painter.getCanvasCopiesAndTimestamps();r.timeStamps.push(performance.now());const n=this.painter.context.gl,o=n.createFramebuffer();function s(i){n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,i,0);const r=new Uint8Array(n.drawingBufferWidth*n.drawingBufferHeight*4);return n.readPixels(0,0,n.drawingBufferWidth,n.drawingBufferHeight,n.RGBA,n.UNSIGNED_BYTE,r),r}return n.bindFramebuffer(n.FRAMEBUFFER,o),this._canvasPixelComparison(s(i),r.canvasCopies.map(s),r.timeStamps)}_canvasPixelComparison(i,r,n){let o=n[1]-n[0];const s=i.length/4;for(let a=0;a{const r=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,r&&this._render(i)}))}_preloadTiles(r){const n=this.style&&Object.values(this.style._sourceCaches)||[];return i.asyncAll(n,(i,n)=>i._preloadTiles(r,n),()=>{this.triggerRepaint()}),this}_onWindowOnline(){this._update()}_onWindowResize(i){this._trackResize&&this.resize({originalEvent:i})._update()}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(i){this._showTileBoundaries!==i&&(this._showTileBoundaries=i,this._update())}get showTerrainWireframe(){return!!this._showTerrainWireframe}set showTerrainWireframe(i){this._showTerrainWireframe!==i&&(this._showTerrainWireframe=i,this._update())}get speedIndexTiming(){return!!this._speedIndexTiming}set speedIndexTiming(i){this._speedIndexTiming!==i&&(this._speedIndexTiming=i,this._update())}get showPadding(){return!!this._showPadding}set showPadding(i){this._showPadding!==i&&(this._showPadding=i,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(i){this._showCollisionBoxes!==i&&(this._showCollisionBoxes=i,i?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(i){this._showOverdrawInspector!==i&&(this._showOverdrawInspector=i,this._update())}get repaint(){return!!this._repaint}set repaint(i){this._repaint!==i&&(this._repaint=i,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(i){this._vertices=i,this._update()}_setCacheLimits(r,n){i.setCacheLimits(r,n)}get version(){return i.version}},NavigationControl:class{constructor(r){this.options=i.extend({},rP,r),this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",i=>i.preventDefault()),this.options.showZoom&&(i.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",i=>this._map.zoomIn({},{originalEvent:i})),a.create("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden",!0),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",i=>this._map.zoomOut({},{originalEvent:i})),a.create("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden",!0)),this.options.showCompass&&(i.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",i=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:i}):this._map.resetNorth({},{originalEvent:i})}),this._compassIcon=a.create("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden",!0))}_updateZoomButtons(){const i=this._map.getZoom(),r=i===this._map.getMaxZoom(),n=i===this._map.getMinZoom();this._zoomInButton.disabled=r,this._zoomOutButton.disabled=n,this._zoomInButton.setAttribute("aria-disabled",r.toString()),this._zoomOutButton.setAttribute("aria-disabled",n.toString())}_rotateCompassArrow(){const i=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._map._requestDomTask(()=>{this._compassIcon&&(this._compassIcon.style.transform=i)})}onAdd(i){return this._map=i,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new rD(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){this._container.remove(),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(i,r){const n=a.create("button",i,this._container);return n.type="button",n.addEventListener("click",r),n}_setButtonTitle(i,r){const n=this._map._getUIString(`NavigationControl.${r}`);i.setAttribute("aria-label",n),i.firstElementChild&&i.firstElementChild.setAttribute("title",n)}},GeolocateControl:class extends i.Evented{constructor(r){super(),this.options=i.extend({},rL,r),i.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation"],this),this._onDeviceOrientationListener=this._onDeviceOrientation.bind(this),this._updateMarkerRotationThrottled=iP(this._updateMarkerRotation,20)}onAdd(r){var n;return this._map=r,this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),n=this._setupUI,void 0!==rU?n(rU):void 0!==i.window.navigator.permissions?i.window.navigator.permissions.query({name:"geolocation"}).then(i=>{n(rU="denied"!==i.state)}):n(rU=!!i.window.navigator.geolocation),this._container}onRemove(){void 0!==this._geolocationWatchID&&(i.window.navigator.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,rV=0,rN=!1}_isOutOfMapMaxBounds(i){const r=this._map.getMaxBounds(),n=i.coords;return r&&(n.longituder.getEast()||n.latituder.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(r){if(this._map){if(this._isOutOfMapMaxBounds(r))return this._setErrorState(),this.fire(new i.Event("outofmaxbounds",r)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=r,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(r),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(r),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("geolocate",r)),this._finish()}}_updateCamera(r){const n=new i.LngLat(r.coords.longitude,r.coords.latitude),o=r.coords.accuracy,s=this._map.getBearing(),a=i.extend({bearing:s},this.options.fitBoundsOptions);this._map.fitBounds(n.toBounds(o),a,{geolocateSource:!0})}_updateMarker(r){if(r){const n=new i.LngLat(r.coords.longitude,r.coords.latitude);this._accuracyCircleMarker.setLngLat(n).addTo(this._map),this._userLocationDotMarker.setLngLat(n).addTo(this._map),this._accuracy=r.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()}_updateCircleRadius(){const i=this._map._containerHeight/2,r=this._map.unproject([0,i]),n=this._map.unproject([100,i]),o=r.distanceTo(n)/100,s=Math.ceil(2*this._accuracy/o);this._circleElement.style.width=`${s}px`,this._circleElement.style.height=`${s}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}_updateMarkerRotation(){this._userLocationDotMarker&&"number"==typeof this._heading?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add("mapboxgl-user-location-show-heading")):(this._dotElement.classList.remove("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0))}_onError(r){if(this._map){if(this.options.trackUserLocation){if(1===r.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 n=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",n),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",n),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===r.code&&rN)return;this._setErrorState()}}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("error",r)),this._finish()}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0}_setupUI(r){if(this._container.addEventListener("contextmenu",i=>i.preventDefault()),this._geolocateButton=a.create("button","mapboxgl-ctrl-geolocate",this._container),a.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",!1===r){i.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");const n=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",n),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",n)}else{const o=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=a.create("div","mapboxgl-user-location"),this._dotElement.appendChild(a.create("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(a.create("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new rE({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=a.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new rE({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",r=>{r.geolocateSource||"ACTIVE_LOCK"!==this._watchState||r.originalEvent&&"resize"===r.originalEvent.type||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new i.Event("trackuserlocationend")))})}_onDeviceOrientation(i){this._userLocationDotMarker&&(i.webkitCompassHeading?this._heading=i.webkitCompassHeading:!0===i.absolute&&(this._heading=-1*i.alpha),this._updateMarkerRotationThrottled())}trigger(){if(!this._setup)return i.warnOnce("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 i.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":rV--,rN=!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 i.Event("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 i.Event("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 r;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++rV>1?(r={maximumAge:6e5,timeout:0},rN=!0):(r=this.options.positionOptions,rN=!1),this._geolocationWatchID=i.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,r),this.options.showUserHeading&&this._addDeviceOrientationListener()}}else i.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_addDeviceOrientationListener(){const r=()=>{i.window.addEventListener("ondeviceorientationabsolute"in i.window?"deviceorientationabsolute":"deviceorientation",this._onDeviceOrientationListener)};void 0!==i.window.DeviceMotionEvent&&"function"==typeof i.window.DeviceMotionEvent.requestPermission?DeviceOrientationEvent.requestPermission().then(i=>{"granted"===i&&r()}).catch(console.error):r()}_clearWatch(){i.window.navigator.geolocation.clearWatch(this._geolocationWatchID),i.window.removeEventListener("deviceorientation",this._onDeviceOrientationListener),i.window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientationListener),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:rx,ScaleControl:class{constructor(r){this.options=i.extend({},rj,r),i.bindAll(["_onMove","setUnit"],this)}getDefaultPosition(){return"bottom-left"}_onMove(){rG(this._map,this._container,this.options)}onAdd(i){return this._map=i,this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",i.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._onMove),this._map=void 0}setUnit(i){this.options.unit=i,rG(this._map,this._container,this.options)}},FullscreenControl:class{constructor(r){this._fullscreen=!1,r&&r.container&&(r.container instanceof i.window.HTMLElement?this._container=r.container:i.warnOnce("Full screen control 'container' must be a DOM element.")),i.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in i.window.document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in i.window.document&&(this._fullscreenchange="webkitfullscreenchange")}onAdd(r){return this._map=r,this._container||(this._container=this._map.getContainer()),this._controlContainer=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",i.warnOnce("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,i.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)}_checkFullscreenSupport(){return!(!i.window.document.fullscreenEnabled&&!i.window.document.webkitFullscreenEnabled)}_setupUI(){const r=this._fullscreenButton=a.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);a.create("span","mapboxgl-ctrl-icon",r).setAttribute("aria-hidden",!0),r.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),i.window.document.addEventListener(this._fullscreenchange,this._changeIcon)}_updateTitle(){const i=this._getTitle();this._fullscreenButton.setAttribute("aria-label",i),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",i)}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(i.window.document.fullscreenElement||i.window.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()?i.window.document.exitFullscreen?i.window.document.exitFullscreen():i.window.document.webkitCancelFullScreen&&i.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()}},Popup:class extends i.Evented{constructor(r){super(),this.options=i.extend(Object.create(r$),r),i.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this),this._classList=new Set(r&&r.className?r.className.trim().split(/\s+/):[])}addTo(r){return this._map&&this.remove(),this._map=r,this.options.closeOnClick&&this._map.on("preclick",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new i.Event("open")),this}isOpen(){return!!this._map}remove(){return this._content&&this._content.remove(),this._container&&(this._container.remove(),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new i.Event("close")),this}getLngLat(){return this._lngLat}setLngLat(r){return this._lngLat=i.LngLat.convert(r),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(r){return this.setDOMContent(i.window.document.createTextNode(r))}setHTML(r){let n;const o=i.window.document.createDocumentFragment(),s=i.window.document.createElement("body");for(s.innerHTML=r;n=s.firstChild;)o.appendChild(n);return this.setDOMContent(o)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(i){return this.options.maxWidth=i,this._update(),this}setDOMContent(i){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=a.create("div","mapboxgl-popup-content",this._container);return this._content.appendChild(i),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(i){return this._classList.add(i),this._container&&this._updateClassList(),this}removeClassName(i){return this._classList.delete(i),this._container&&this._updateClassList(),this}setOffset(i){return this.options.offset=i,this._update(),this}toggleClassName(i){let r;return this._classList.delete(i)?r=!1:(this._classList.add(i),r=!0),this._container&&this._updateClassList(),r}_createCloseButton(){this.options.closeButton&&(this._closeButton=a.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.setAttribute("aria-hidden","true"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_onMouseUp(i){this._update(i.point)}_onMouseMove(i){this._update(i.point)}_onDrag(i){this._update(i.point)}_getAnchor(i){let r;if(this.options.anchor)return this.options.anchor;const n=this._pos,o=this._container.offsetWidth,s=this._container.offsetHeight;return r=n.y+i.bottom.ythis._map.transform.height-s?["bottom"]:[],n.xthis._map.transform.width-o/2&&r.push("right"),0===r.length?"bottom":r.join("-")}_updateClassList(){const i=[...this._classList];i.push("mapboxgl-popup"),this._anchor&&i.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&i.push("mapboxgl-popup-track-pointer"),this._container.className=i.join(" ")}_update(r){if(this._map&&(this._lngLat||this._trackPointer)&&this._content){if(this._container||(this._container=a.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=a.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content)),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=rw(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||r){const n=this._pos=this._trackPointer&&r?r:this._map.project(this._lngLat),o=function(r){if(r||(r=new i.pointGeometry(0,0)),"number"==typeof r){const n=Math.round(Math.sqrt(.5*Math.pow(r,2)));return{center:new i.pointGeometry(0,0),top:new i.pointGeometry(0,r),"top-left":new i.pointGeometry(n,n),"top-right":new i.pointGeometry(-n,n),bottom:new i.pointGeometry(0,-r),"bottom-left":new i.pointGeometry(n,-n),"bottom-right":new i.pointGeometry(-n,-n),left:new i.pointGeometry(r,0),right:new i.pointGeometry(-r,0)}}if(r instanceof i.pointGeometry||Array.isArray(r)){const o=i.pointGeometry.convert(r);return{center:o,top:o,"top-left":o,"top-right":o,bottom:o,"bottom-left":o,"bottom-right":o,left:o,right:o}}return{center:i.pointGeometry.convert(r.center||[0,0]),top:i.pointGeometry.convert(r.top||[0,0]),"top-left":i.pointGeometry.convert(r["top-left"]||[0,0]),"top-right":i.pointGeometry.convert(r["top-right"]||[0,0]),bottom:i.pointGeometry.convert(r.bottom||[0,0]),"bottom-left":i.pointGeometry.convert(r["bottom-left"]||[0,0]),"bottom-right":i.pointGeometry.convert(r["bottom-right"]||[0,0]),left:i.pointGeometry.convert(r.left||[0,0]),right:i.pointGeometry.convert(r.right||[0,0])}}(this.options.offset),s=this._anchor=this._getAnchor(o),l=n.add(o[s]).round();this._map._requestDomTask(()=>{this._container&&s&&(this._container.style.transform=`${rT[s]} translate(${l.x}px,${l.y}px)`)})}this._updateClassList()}}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const i=this._container.querySelector("a[href], [tabindex]:not([tabindex='-1']), [contenteditable]:not([contenteditable='false']), button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled])");i&&i.focus()}_onClose(){this.remove()}_setOpacity(i){this._content&&(this._content.style.opacity=i),this._tip&&(this._tip.style.opacity=i)}},Marker:rE,Style:tu,LngLat:i.LngLat,LngLatBounds:i.LngLatBounds,Point:i.pointGeometry,MercatorCoordinate:i.MercatorCoordinate,FreeCameraOptions:iT,Evented:i.Evented,config:i.config,prewarm:function(){eI().acquire(eE)},clearPrewarmedResources:function(){const i=rF;i&&(i.isPreloaded()&&1===i.numActive()?(i.release(eE),rF=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()"))},get accessToken(){return i.config.ACCESS_TOKEN},set accessToken(t){i.config.ACCESS_TOKEN=t},get baseApiUrl(){return i.config.API_URL},set baseApiUrl(t){i.config.API_URL=t},get workerCount(){return eS.workerCount},set workerCount(e){eS.workerCount=e},get maxParallelImageRequests(){return i.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(t){i.config.MAX_PARALLEL_IMAGE_REQUESTS=t},clearStorage(r){i.clearTileCache(r)},workerUrl:"",workerClass:null,setNow:i.exported.setNow,restoreNow:i.exported.restoreNow};return rq}),n},i.exports=o()}}]); + with id '${r.firstUndrapedLayer}' or create a map using optimizeForTerrain: true option.`)}_onStyleDataEvent(i){i.coord&&"source"===i.dataType?this._clearRenderCacheForTile(i.sourceCacheId,i.coord):"style"===i.dataType&&(this._invalidateRenderCache=!0)}_disable(){if(this.enabled&&(this.enabled=!1,this._sharedDepthStencil=void 0,this.proxySourceCache.deallocRenderCache(),this._style))for(const i in this._style._sourceCaches)this._style._sourceCaches[i].usedForTerrain=!1}destroy(){this._disable(),this._emptyDEMTexture&&this._emptyDEMTexture.destroy(),this._emptyDepthBufferTexture&&this._emptyDepthBufferTexture.destroy(),this.pool.forEach(i=>i.fb.destroy()),this.pool=[],this._depthFBO&&(this._depthFBO.destroy(),delete this._depthFBO,delete this._depthTexture)}_source(){return this.enabled?this.sourceCache:null}exaggeration(){return this._exaggeration}get visibleDemTiles(){return this._visibleDemTiles}get drapeBufferSize(){const i=2*this.proxySourceCache.getSource().tileSize;return[i,i]}set useVertexMorphing(i){this._useVertexMorphing=i}updateTileBinding(r){if(!this.enabled)return;this.prevTerrainTileForTile=this.terrainTileForTile;const n=this.proxySourceCache,o=this.painter.transform;this._initializing&&(this._initializing=0===o._centerAltitude&&-1===this.getAtPointOrZero(i.MercatorCoordinate.fromLngLat(o.center),-1),this._emptyDEMTextureDirty=!this._initializing);const s=this.proxyCoords=n.getIds().map(i=>{const r=n.getTileByID(i).tileID;return r.projMatrix=o.calculateProjMatrix(r.toUnwrapped()),r});(function(r,n){const o=n.transform.pointCoordinate(n.transform.getCameraPoint()),s=new i.pointGeometry(o.x,o.y);r.sort((r,n)=>{if(n.overscaledZ-r.overscaledZ)return n.overscaledZ-r.overscaledZ;const o=new i.pointGeometry(r.canonical.x+(1<{this.proxyToSource[i.key]={}}),this.terrainTileForTile={};const l=this._style._sourceCaches;for(const c in l){const h=l[c];if(!h.used||(h!==this.sourceCache&&this.resetTileLookupCache(h.id),this._setupProxiedCoordsForOrtho(h,r[c],a),h.usedForTerrain))continue;const u=r[c];h.getSource().reparseOverscaled&&this._assignTerrainTiles(u)}this.proxiedCoords[n.id]=s.map(i=>new tk(i,i.key,this.orthoMatrix)),this._assignTerrainTiles(s),this._prepareDEMTextures(),this._setupDrapedRenderBatches(),this._initFBOPool(),this._setupRenderCache(a),this.renderingToTexture=!1,this._updateTimestamp=i.exported.now();const d={};for(const p of(this._visibleDemTiles=[],this.proxyCoords)){const f=this.terrainTileForTile[p.key];if(!f)continue;const m=f.tileID.key;m in d||(this._visibleDemTiles.push(f),d[m]=m)}}_assignTerrainTiles(i){this._initializing||i.forEach(i=>{if(this.terrainTileForTile[i.key])return;const r=this._findTileCoveringTileID(i,this.sourceCache);r&&(this.terrainTileForTile[i.key]=r)})}_prepareDEMTextures(){const i=this.painter.context,r=i.gl;for(const n in this.terrainTileForTile){const o=this.terrainTileForTile[n],s=o.dem;s&&(!o.demTexture||o.needsDEMTextureUpload)&&(i.activeTexture.set(r.TEXTURE1),tv(this.painter,o,s))}}_prepareDemTileUniforms(i,r,n,o){if(!r||null==r.demTexture)return!1;const s=i.tileID.canonical,a=Math.pow(2,r.tileID.canonical.z-s.z),l=o||"";return n[`u_dem_tl${l}`]=[s.x*a%1,s.y*a%1],n[`u_dem_scale${l}`]=a,!0}get emptyDEMTexture(){return!this._emptyDEMTextureDirty&&this._emptyDEMTexture?this._emptyDEMTexture:this._updateEmptyDEMTexture()}get emptyDepthBufferTexture(){const r=this.painter.context,n=r.gl;if(!this._emptyDepthBufferTexture){const o={width:1,height:1,data:new Uint8Array([255,255,255,255])};this._emptyDepthBufferTexture=new i.Texture(r,o,n.RGBA,{premultiply:!1})}return this._emptyDepthBufferTexture}_getLoadedAreaMinimum(){let i=0;const r=this._visibleDemTiles.reduce((r,n)=>{if(!n.dem)return r;const o=n.dem.tree.minimums[0];return o>0&&i++,r+o},0);return i?r/i:0}_updateEmptyDEMTexture(){const r=this.painter.context,n=r.gl;r.activeTexture.set(n.TEXTURE2);const o=this._getLoadedAreaMinimum(),s={width:1,height:1,data:new Uint8Array(i.DEMData.pack(o,this.sourceCache.getSource().encoding))};this._emptyDEMTextureDirty=!1;let a=this._emptyDEMTexture;return a?a.update(s,{premultiply:!1}):a=this._emptyDEMTexture=new i.Texture(r,s,n.RGBA,{premultiply:!1}),a}setupElevationDraw(r,n,o){var s;const a=this.painter.context,l=a.gl,c=(s=this.sourceCache.getSource().encoding,{u_dem:2,u_dem_prev:4,u_dem_unpack:i.DEMData.getUnpackVector(s),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_exaggeration:0,u_tile_tl_up:[0,0,1],u_tile_tr_up:[0,0,1],u_tile_br_up:[0,0,1],u_tile_bl_up:[0,0,1],u_tile_up_scale:1});c.u_dem_size=this.sourceCache.getSource().tileSize,c.u_exaggeration=this.exaggeration();const h=this.painter.transform,u=h.projection.createTileTransform(h,h.worldSize),d=r.tileID.canonical;c.u_tile_tl_up=u.upVector(d,0,0),c.u_tile_tr_up=u.upVector(d,i.EXTENT,0),c.u_tile_br_up=u.upVector(d,i.EXTENT,i.EXTENT),c.u_tile_bl_up=u.upVector(d,0,i.EXTENT),c.u_tile_up_scale=u.upVectorScale(d);let p=null,f=null,m=1;if(o&&o.morphing&&this._useVertexMorphing){const _=o.morphing.srcDemTile,g=o.morphing.dstDemTile;m=o.morphing.phase,_&&g&&(this._prepareDemTileUniforms(r,_,c,"_prev")&&(f=_),this._prepareDemTileUniforms(r,g,c)&&(p=g))}if(f&&p?(a.activeTexture.set(l.TEXTURE2),p.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE,l.NEAREST),a.activeTexture.set(l.TEXTURE4),f.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE,l.NEAREST),c.u_dem_lerp=m):(p=this.terrainTileForTile[r.tileID.key],a.activeTexture.set(l.TEXTURE2),(this._prepareDemTileUniforms(r,p,c)?p.demTexture:this.emptyDEMTexture).bind(l.NEAREST,l.CLAMP_TO_EDGE)),a.activeTexture.set(l.TEXTURE3),o&&o.useDepthForOcclusion?(this._depthTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE),c.u_depth_size_inv=[1/this._depthFBO.width,1/this._depthFBO.height]):(this.emptyDepthBufferTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE),c.u_depth_size_inv=[1,1]),o&&o.useMeterToDem&&p){const y=(1<{if(c===i)return;const o=[];n&&o.push(tI[d]),o.push(tI[i]),o.push("PROJECTION_GLOBE_VIEW"),l=r.useProgram("globeRaster",null,o),c=i},f=r.colorModeForRenderPass(),m=new i.DepthMode(u.LEQUAL,i.DepthMode.ReadWrite,r.depthRangeFor3D);tS.update(a);const _=r.transform,g=i.calculateGlobeMatrix(_,_.worldSize),y=i.calculateGlobeMercatorMatrix(_),x=[i.mercatorXfromLng(_.center.lng),i.mercatorYfromLat(_.center.lat)],v=r.globeSharedBuffers;(d?[!1,!0]:[!1]).forEach(d=>{c=-1;const b=d?u.LINES:u.TRIANGLES;for(const w of s){const T=o.getTile(w),E=Math.pow(2,w.canonical.z),[S,I]=i.globeBuffersForTileMesh(r,T,w,E),M=i.StencilMode.disabled,A=n.prevTerrainTileForTile[w.key],C=n.terrainTileForTile[w.key];tE(A,C)&&tS.newMorphing(w.key,A,C,a,250),h.activeTexture.set(u.TEXTURE0),T.texture.bind(u.LINEAR,u.CLAMP_TO_EDGE);const z=tS.getMorphValuesForProxy(w.key),k=z?1:0,P={};z&&i.extend$1(P,{morphing:{srcDemTile:z.from,dstDemTile:z.to,phase:i.easeCubicInOut(z.phase)}});const D=i.globeMatrixForTile(w.canonical,g),L=tT(_.projMatrix,D,y,i.globeToMercatorTransition(_.zoom),x);if(p(k,d),n.setupElevationDraw(T,l,P),r.prepareDrawProgram(h,l,w.toUnwrapped()),v){const[B,R]=d?v.getWirefameBuffer(r.context):[v.gridIndexBuffer,v.gridSegments];l.draw(h,b,m,M,f,i.CullFaceMode.backCCW,L,"globe_raster",S,B,R)}if(!d){const F=[0===w.canonical.y?i.globePoleMatrixForTile(w.canonical,!1,_):null,w.canonical.y===E-1?i.globePoleMatrixForTile(w.canonical,!0,_):null];for(const O of F){if(!O)continue;const U=tT(_.projMatrix,O,O,0,x);v&&l.draw(h,b,m,M,f,i.CullFaceMode.disabled,U,"globe_pole_raster",I,v.poleIndexBuffer,v.poleSegments)}}}})}(r,n,o,s,a);else{let l,c;const h=r.context,u=h.gl,d=r.options.showTerrainWireframe?2:0,p=(i,n)=>{if(c===i)return;const o=[tI[i]];n&&o.push(tI[d]),l=r.useProgram("terrainRaster",null,o),c=i},f=r.colorModeForRenderPass(),m=new i.DepthMode(u.LEQUAL,i.DepthMode.ReadWrite,r.depthRangeFor3D);tS.update(a);const _=r.transform,g=6*Math.pow(1.5,22-_.zoom)*n.exaggeration();(d?[!1,!0]:[!1]).forEach(d=>{c=-1;const y=d?u.LINES:u.TRIANGLES,[x,v]=d?n.getWirefameBuffer():[n.gridIndexBuffer,n.gridSegments];for(const b of s){let w;const T=o.getTile(b),E=i.StencilMode.disabled,S=n.prevTerrainTileForTile[b.key],I=n.terrainTileForTile[b.key];tE(S,I)&&tS.newMorphing(b.key,S,I,a,250),h.activeTexture.set(u.TEXTURE0),T.texture.bind(u.LINEAR,u.CLAMP_TO_EDGE,u.LINEAR_MIPMAP_NEAREST);const M=tS.getMorphValuesForProxy(b.key),A=M?1:0;M&&(w={morphing:{srcDemTile:M.from,dstDemTile:M.to,phase:i.easeCubicInOut(M.phase)}});const C=tw(b.projMatrix,!function(i,r){const n=1<i.dem).forEach(r=>{i=Math.min(i,r.dem.tree.minimums[0])}),0===i?i:(i-30)*this._exaggeration}raycast(i,r,n){if(!this._visibleDemTiles)return null;const o=this._visibleDemTiles.filter(i=>i.dem).map(o=>{const s=o.tileID,a=Math.pow(2,s.overscaledZ),{x:l,y:c}=s.canonical,h=l/a,u=(l+1)/a,d=c/a,p=(c+1)/a;return{minx:h,miny:d,maxx:u,maxy:p,t:o.dem.tree.raycastRoot(h,d,u,p,i,r,n),tile:o}});for(const s of(o.sort((i,r)=>(null!==i.t?i.t:Number.MAX_VALUE)-(null!==r.t?r.t:Number.MAX_VALUE)),o)){if(null==s.t)break;const a=s.tile.dem.tree.raycast(s.minx,s.miny,s.maxx,s.maxy,i,r,n);if(null!=a)return a}return null}_createFBO(){const r=this.painter.context,n=r.gl,o=this.drapeBufferSize;r.activeTexture.set(n.TEXTURE0);const s=new i.Texture(r,{width:o[0],height:o[1],data:null},n.RGBA);s.bind(n.LINEAR,n.CLAMP_TO_EDGE);const a=r.createFramebuffer(o[0],o[1],!1);return a.colorAttachment.set(s.texture),a.depthAttachment=new eh(r,a.framebuffer),void 0===this._sharedDepthStencil?(this._sharedDepthStencil=r.createRenderbuffer(r.gl.DEPTH_STENCIL,o[0],o[1]),this._stencilRef=0,a.depthAttachment.set(this._sharedDepthStencil),r.clear({stencil:0})):a.depthAttachment.set(this._sharedDepthStencil),r.extTextureFilterAnisotropic&&!r.extTextureFilterAnisotropicForceOff&&n.texParameterf(n.TEXTURE_2D,r.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,r.extTextureFilterAnisotropicMax),{fb:a,tex:s,dirty:!1}}_initFBOPool(){for(;this.pool.length{const r=this._style._layers[i],n=r.isHidden(this.painter.transform.zoom),o=r.getCrossfadeParameters(),s=!!o&&1!==o.t,a=r.hasTransition();return"custom"!==r.type&&!n&&(s||a)})}_clearRasterFadeFromRenderCache(){let i=!1;for(const r in this._style._sourceCaches)if(this._style._sourceCaches[r]._source instanceof eg){i=!0;break}if(i)for(let n=0;nr.renderCachePool.length){const n=Object.values(r.proxyCachedFBO);r.proxyCachedFBO={};for(let o=0;o=0;c--){const h=a[c];if(r.getTileByID(h.key),void 0!==r.proxyCachedFBO[h.key]){const u=i[h.key],d=this.proxyToSource[h.key];let p=0;for(const f in d){const m=d[f],_=u[f];if(!_||_.length!==m.length||m.some((i,r)=>i!==_[r]||l[f]&&l[f].hasOwnProperty(i.key))){p=-1;break}++p}for(const g in r.proxyCachedFBO[h.key])r.renderCache[r.proxyCachedFBO[h.key][g]].dirty=p<0||p!==Object.values(u).length}}const y=[...this._drapedRenderBatches];for(const x of(y.sort((i,r)=>r.end-r.start-(i.end-i.start)),y))for(const v of a){if(r.proxyCachedFBO[v.key])continue;let b=r.renderCachePool.pop();void 0===b&&r.renderCache.length<50&&(b=r.renderCache.length,r.renderCache.push(this._createFBO())),void 0!==b&&(r.proxyCachedFBO[v.key]={},r.proxyCachedFBO[v.key][x.start]=b,r.renderCache[b].dirty=!0)}this._tilesDirty={}}_setupStencil(i,r,n,o){let s;if(!o||!this._sourceTilesOverlap[o.id])return void(this._overlapStencilType&&(this._overlapStencilType=!1));const a=this.painter.context,l=a.gl;if(r.length<=1)return void(this._overlapStencilType=!1);if(n.isTileClipped())s=r.length,this._overlapStencilMode.test={func:l.EQUAL,mask:255},this._overlapStencilType="Clip";else{if(!(r[0].overscaledZ>r[r.length-1].overscaledZ))return void(this._overlapStencilType=!1);s=1,this._overlapStencilMode.test={func:l.GREATER,mask:255},this._overlapStencilType="Mask"}this._stencilRef+s>255&&(a.clear({stencil:0}),this._stencilRef=0),this._stencilRef+=s,this._overlapStencilMode.ref=this._stencilRef,n.isTileClipped()&&this._renderTileClippingMasks(r,this._overlapStencilMode.ref)}clipOrMaskOverlapStencilType(){return"Clip"===this._overlapStencilType||"Mask"===this._overlapStencilType}stencilModeForRTTOverlap(r){return this.renderingToTexture&&this._overlapStencilType?("Clip"===this._overlapStencilType&&(this._overlapStencilMode.ref=this.painter._tileClippingMaskIDs[r.key]),this._overlapStencilMode):i.StencilMode.disabled}_renderTileClippingMasks(r,n){const o=this.painter,s=this.painter.context,a=s.gl;o._tileClippingMaskIDs={},s.setColorMode(i.ColorMode.disabled),s.setDepthMode(i.DepthMode.disabled);const l=o.useProgram("clippingMask");for(const c of r){const h=o._tileClippingMaskIDs[c.key]=--n;l.draw(s,a.TRIANGLES,i.DepthMode.disabled,new i.StencilMode({func:a.ALWAYS,mask:0},h,255,a.KEEP,a.KEEP,a.REPLACE),i.ColorMode.disabled,i.CullFaceMode.disabled,tM(c.projMatrix),"$clipping",o.tileExtentBuffer,o.quadTriangleIndexBuffer,o.tileExtentSegments)}}pointCoordinate(r){const n=this.painter.transform;if(r.x<0||r.x>n.width||r.y<0||r.y>n.height)return null;const o=[r.x,r.y,1,1];i.transformMat4$1(o,o,n.pixelMatrixInverse),i.scale$1(o,o,1/o[3]),o[0]/=n.worldSize,o[1]/=n.worldSize;const s=n._camera.position,a=i.mercatorZfromAltitude(1,n.center.lat),l=[s[0],s[1],s[2]/a,0],c=i.subtract([],o.slice(0,3),l);i.normalize(c,c);const h=this.raycast(l,c,this._exaggeration);return null!==h&&h?(i.scaleAndAdd(l,l,c,h),l[3]=l[2],l[2]*=a,l):null}drawDepth(){const r=this.painter,n=r.context,o=this.proxySourceCache,s=Math.ceil(r.width),a=Math.ceil(r.height);if(this._depthFBO&&(this._depthFBO.width!==s||this._depthFBO.height!==a)&&(this._depthFBO.destroy(),delete this._depthFBO,delete this._depthTexture),!this._depthFBO){const l=n.gl,c=n.createFramebuffer(s,a,!0);n.activeTexture.set(l.TEXTURE0);const h=new i.Texture(n,{width:s,height:a,data:null},l.RGBA);h.bind(l.NEAREST,l.CLAMP_TO_EDGE),c.colorAttachment.set(h.texture);const u=n.createRenderbuffer(n.gl.DEPTH_COMPONENT16,s,a);c.depthAttachment.set(u),this._depthFBO=c,this._depthTexture=h}n.bindFramebuffer.set(this._depthFBO.framebuffer),n.viewport.set([0,0,s,a]),function(r,n,o,s){if("globe"===r.transform.projection.name)return;const a=r.context,l=a.gl;a.clear({depth:1});const c=r.useProgram("terrainDepth"),h=new i.DepthMode(l.LESS,i.DepthMode.ReadWrite,r.depthRangeFor3D);for(const u of s){const d=o.getTile(u),p=tw(u.projMatrix,0);n.setupElevationDraw(d,c),c.draw(a,l.TRIANGLES,h,i.StencilMode.disabled,i.ColorMode.unblended,i.CullFaceMode.backCCW,p,"terrain_depth",n.gridBuffer,n.gridIndexBuffer,n.gridNoSkirtSegments)}}(r,this,o,this.proxyCoords)}_setupProxiedCoordsForOrtho(i,r,n){if(i.getSource() instanceof ex)return this._setupProxiedCoordsForImageSource(i,r,n);this._findCoveringTileCache[i.id]=this._findCoveringTileCache[i.id]||{};const o=this.proxiedCoords[i.id]=[],s=this.proxyCoords;for(let a=0;a(i.min.x=Math.min(i.min.x,r.x-c.x),i.min.y=Math.min(i.min.y,r.y-c.y),i.max.x=Math.max(i.max.x,r.x-c.x),i.max.y=Math.max(i.max.y,r.y-c.y),i),{min:new i.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE),max:new i.pointGeometry(-Number.MAX_VALUE,-Number.MAX_VALUE)}),u=(r,n)=>{const o=r.wrap+r.canonical.x/(1<l+h.max.x||s+ac+h.max.y};for(let d=0;di.key===n.tileID.key);if(a)return a}if(n.tileID.key!==r.key){let l,c,h;const u=r.canonical.z-n.tileID.canonical.z;s=i.create();const d=n.tileID.wrap-r.wrap<0?(c=(l=i.EXTENT>>u)*((n.tileID.canonical.x<=d){const p=r.canonical.z-d;n.getSource().reparseOverscaled?(c=Math.max(r.canonical.z+2,n.transform.tileZoom),l=new i.OverscaledTileID(c,r.wrap,d,r.canonical.x>>p,r.canonical.y>>p)):0!==p&&(c=d,l=new i.OverscaledTileID(c,r.wrap,d,r.canonical.x>>p,r.canonical.y>>p))}l.key!==r.key&&(u.push(l.key),o=n.getTile(l))}const f=i=>{u.forEach(r=>{s[r]=i}),u.length=0};for(c-=1;c>=h&&(!o||!o.hasData());c--){o&&f(o.tileID.key);const m=l.calculateScaledKey(c);if((o=n.getTileByID(m))&&o.hasData())break;const _=s[m];if(null===_)break;void 0===_?u.push(m):o=n.getTileByID(_)}return f(o?o.tileID.key:null),o&&o.hasData()?o:null}findDEMTileFor(i){return this.enabled?this._findTileCoveringTileID(i,this.sourceCache):null}prepareDrawTile(i){this.renderedToTile=!0}_clearRenderCacheForTile(i,r){let n=this._tilesDirty[i];n||(n=this._tilesDirty[i]={}),n[r.key]=!0}getWirefameBuffer(){if(!this.wireframeSegments){const r=function(r){let n,o,s;const a=new i.StructArrayLayout2ui4;for(o=1;o<129;o++){for(n=1;n<129;n++)s=131*o+n,a.emplaceBack(s,s+1),a.emplaceBack(s,s+131),a.emplaceBack(s+1,s+131),128===o&&a.emplaceBack(s+131,s+131+1);a.emplaceBack(s+1,s+1+131)}return a}();this.wireframeIndexBuffer=this.painter.context.createIndexBuffer(r),this.wireframeSegments=i.SegmentVector.simpleSegment(0,0,this.gridBuffer.length,r.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}}function tD(i){const r=[];for(let n=0;n_.indexOf(g)&&_.push(g);let y=s?s.defines():[];y=y.concat(l.map(i=>`#define ${i}`));const x=y.concat("\n#ifdef GL_ES\nprecision mediump float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif",td,t_.fragmentSource,tm.fragmentSource,o.fragmentSource).join("\n"),v=y.concat("\n#ifdef GL_ES\nprecision highp float;\n#else\n\n#if !defined(lowp)\n#define lowp\n#endif\n\n#if !defined(mediump)\n#define mediump\n#endif\n\n#if !defined(highp)\n#define highp\n#endif\n\n#endif",td,t_.vertexSource,tm.vertexSource,tf.vertexSource,o.vertexSource).join("\n"),b=c.createShader(c.FRAGMENT_SHADER);if(c.isContextLost())return void(this.failedToCreate=!0);c.shaderSource(b,x),c.compileShader(b),c.attachShader(this.program,b);const w=c.createShader(c.VERTEX_SHADER);if(c.isContextLost())return void(this.failedToCreate=!0);c.shaderSource(w,v),c.compileShader(w),c.attachShader(this.program,w),this.attributes={};const T={};this.numAttributes=d.length;for(let E=0;E>16,c>>16],u_pixel_coord_lower:[65535&l,65535&c]}}const tR=(r,n,o,s)=>{const a=n.style.light,l=a.properties.get("position"),c=[l.x,l.y,l.z],h=i.create$1();"viewport"===a.properties.get("anchor")&&(i.fromRotation(h,-n.transform.angle),i.transformMat3(c,c,h));const u=a.properties.get("color");return{u_matrix:r,u_lightpos:c,u_lightintensity:a.properties.get("intensity"),u_lightcolor:[u.r,u.g,u.b],u_vertical_gradient:+o,u_opacity:s}},tF=(r,n,o,s,a,l,c)=>i.extend(tR(r,n,o,s),tB(l,n,c),{u_height_factor:-Math.pow(2,a.overscaledZ)/c.tileSize/8}),tO=i=>({u_matrix:i}),tU=(r,n,o,s)=>i.extend(tO(r),tB(o,n,s)),tV=(i,r)=>({u_matrix:i,u_world:r}),tN=(r,n,o,s,a)=>i.extend(tU(r,n,o,s),{u_world:a}),tj=(r,n,o,s)=>{let a;const l=r.transform;return a="map"===s.paint.get("circle-pitch-alignment")?l.calculatePixelsToTileUnitsMatrix(o):new Float32Array([l.pixelsToGLUnits[0],0,0,l.pixelsToGLUnits[1]]),{u_camera_to_center_distance:l.cameraToCenterDistance,u_matrix:r.translatePosMatrix(n.projMatrix,o,s.paint.get("circle-translate"),s.paint.get("circle-translate-anchor")),u_device_pixel_ratio:i.exported.devicePixelRatio,u_extrude_scale:a}},tG=i=>{const r=[];return"map"===i.paint.get("circle-pitch-alignment")&&r.push("PITCH_WITH_MAP"),"map"===i.paint.get("circle-pitch-scale")&&r.push("SCALE_WITH_MAP"),r},tZ=(r,n,o)=>{const s=i.EXTENT/o.tileSize;return{u_matrix:r,u_camera_to_center_distance:n.cameraToCenterDistance,u_extrude_scale:[n.pixelsToGLUnits[0]/s,n.pixelsToGLUnits[1]/s]}},t$=(i,r,n=1)=>({u_matrix:i,u_color:r,u_overlay:0,u_overlay_scale:n}),tq=(i,r,n,o)=>({u_matrix:i,u_extrude_scale:S(r,1,n),u_intensity:o}),tX=(r,n,o,s,a,l)=>{const c=r.transform,h=c.calculatePixelsToTileUnitsMatrix(n),u={u_matrix:tK(r,n,o,a),u_pixels_to_tile_units:h,u_device_pixel_ratio:i.exported.devicePixelRatio,u_units_to_pixels:[1/c.pixelsToGLUnits[0],1/c.pixelsToGLUnits[1]],u_dash_image:0,u_gradient_image:1,u_image_height:l,u_texsize:[0,0],u_scale:[0,0,0],u_mix:0,u_alpha_discard_threshold:0};if(tY(o)){const d=tH(n,r.transform);u.u_texsize=n.lineAtlasTexture.size,u.u_scale=[d,s.fromScale,s.toScale],u.u_mix=s.t}return u},tW=(r,n,o,s,a)=>{const l=r.transform,c=tH(n,l);return{u_matrix:tK(r,n,o,a),u_texsize:n.imageAtlasTexture.size,u_pixels_to_tile_units:l.calculatePixelsToTileUnitsMatrix(n),u_device_pixel_ratio:i.exported.devicePixelRatio,u_image:0,u_scale:[c,s.fromScale,s.toScale],u_fade:s.t,u_units_to_pixels:[1/l.pixelsToGLUnits[0],1/l.pixelsToGLUnits[1]],u_alpha_discard_threshold:0}};function tH(i,r){return 1/S(i,1,r.tileZoom)}function tK(i,r,n,o){return i.translatePosMatrix(o||r.tileID.projMatrix,r,n.paint.get("line-translate"),n.paint.get("line-translate-anchor"))}function tY(i){const r=i.paint.get("line-dasharray").value;return r.value||"constant"!==r.kind}const tJ=(i,r,n,o,s,a)=>{var l,c;return{u_matrix:i,u_tl_parent:r,u_scale_parent:n,u_fade_t:o.mix,u_opacity:o.opacity*s.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:s.paint.get("raster-brightness-min"),u_brightness_high:s.paint.get("raster-brightness-max"),u_saturation_factor:(c=s.paint.get("raster-saturation"))>0?1-1/(1.001-c):-c,u_contrast_factor:(l=s.paint.get("raster-contrast"))>0?1/(1-l):1+l,u_spin_weights:function(i){i*=Math.PI/180;const r=Math.sin(i),n=Math.cos(i);return[(2*n+1)/3,(-Math.sqrt(3)*r-n+1)/3,(Math.sqrt(3)*r-n+1)/3]}(s.paint.get("raster-hue-rotate")),u_perspective_transform:a}},tQ=(i,r,n,o,s,a,l,c,h,u,d,p,f,m)=>{const _=s.transform;return{u_is_size_zoom_constant:+("constant"===i||"source"===i),u_is_size_feature_constant:+("constant"===i||"camera"===i),u_size_t:r?r.uSizeT:0,u_size:r?r.uSize:0,u_camera_to_center_distance:_.cameraToCenterDistance,u_pitch:_.pitch/360*2*Math.PI,u_rotate_symbol:+n,u_aspect_ratio:_.width/_.height,u_fade_change:s.options.fadeDuration?s.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:l,u_coord_matrix:c,u_is_text:+h,u_pitch_with_map:+o,u_texsize:u,u_tile_id:d,u_zoom_transition:p,u_inv_rot_matrix:f,u_merc_center:m,u_texture:0}},t0=(r,n,o,s,a,l,c,h,u,d,p,f,m,_,g)=>{const{cameraToCenterDistance:y,_pitch:x}=a.transform;return i.extend(tQ(r,n,o,s,a,l,c,h,u,d,f,m,_,g),{u_gamma_scale:s?y*Math.cos(a.terrain?0:x):1,u_device_pixel_ratio:i.exported.devicePixelRatio,u_is_halo:+p})},t1=(r,n,o,s,a,l,c,h,u,d,p,f,m,_)=>i.extend(t0(r,n,o,s,a,l,c,h,!0,u,!0,p,f,m,_),{u_texsize_icon:d,u_texture_icon:1}),t2=(i,r,n)=>({u_matrix:i,u_opacity:r,u_color:n}),t3=(r,n,o,s,a,l)=>i.extend(function(i,r,n,o){const s=n.imageManager.getPattern(i.from.toString()),a=n.imageManager.getPattern(i.to.toString()),{width:l,height:c}=n.imageManager.getPixelSize(),h=Math.pow(2,o.tileID.overscaledZ),u=o.tileSize*Math.pow(2,n.transform.tileZoom)/h,d=u*(o.tileID.canonical.x+o.tileID.wrap*h),p=u*o.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:s.tl,u_pattern_br_a:s.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[l,c],u_mix:r.t,u_pattern_size_a:s.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:r.fromScale,u_scale_b:r.toScale,u_tile_units_to_pixels:1/S(o,1,n.transform.tileZoom),u_pixel_coord_upper:[d>>16,p>>16],u_pixel_coord_lower:[65535&d,65535&p]}}(s,l,o,a),{u_matrix:r,u_opacity:n}),t5={fillExtrusion:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_lightpos:new i.Uniform3f(r,n.u_lightpos),u_lightintensity:new i.Uniform1f(r,n.u_lightintensity),u_lightcolor:new i.Uniform3f(r,n.u_lightcolor),u_vertical_gradient:new i.Uniform1f(r,n.u_vertical_gradient),u_opacity:new i.Uniform1f(r,n.u_opacity)}),fillExtrusionPattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_lightpos:new i.Uniform3f(r,n.u_lightpos),u_lightintensity:new i.Uniform1f(r,n.u_lightintensity),u_lightcolor:new i.Uniform3f(r,n.u_lightcolor),u_vertical_gradient:new i.Uniform1f(r,n.u_vertical_gradient),u_height_factor:new i.Uniform1f(r,n.u_height_factor),u_image:new i.Uniform1i(r,n.u_image),u_texsize:new i.Uniform2f(r,n.u_texsize),u_pixel_coord_upper:new i.Uniform2f(r,n.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(r,n.u_pixel_coord_lower),u_scale:new i.Uniform3f(r,n.u_scale),u_fade:new i.Uniform1f(r,n.u_fade),u_opacity:new i.Uniform1f(r,n.u_opacity)}),fill:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix)}),fillPattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_image:new i.Uniform1i(r,n.u_image),u_texsize:new i.Uniform2f(r,n.u_texsize),u_pixel_coord_upper:new i.Uniform2f(r,n.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(r,n.u_pixel_coord_lower),u_scale:new i.Uniform3f(r,n.u_scale),u_fade:new i.Uniform1f(r,n.u_fade)}),fillOutline:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_world:new i.Uniform2f(r,n.u_world)}),fillOutlinePattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_world:new i.Uniform2f(r,n.u_world),u_image:new i.Uniform1i(r,n.u_image),u_texsize:new i.Uniform2f(r,n.u_texsize),u_pixel_coord_upper:new i.Uniform2f(r,n.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(r,n.u_pixel_coord_lower),u_scale:new i.Uniform3f(r,n.u_scale),u_fade:new i.Uniform1f(r,n.u_fade)}),circle:(r,n)=>({u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_extrude_scale:new i.UniformMatrix2f(r,n.u_extrude_scale),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_matrix:new i.UniformMatrix4f(r,n.u_matrix)}),collisionBox:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_extrude_scale:new i.Uniform2f(r,n.u_extrude_scale)}),collisionCircle:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_inv_matrix:new i.UniformMatrix4f(r,n.u_inv_matrix),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_viewport_size:new i.Uniform2f(r,n.u_viewport_size)}),debug:(r,n)=>({u_color:new i.UniformColor(r,n.u_color),u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_overlay:new i.Uniform1i(r,n.u_overlay),u_overlay_scale:new i.Uniform1f(r,n.u_overlay_scale)}),clippingMask:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix)}),heatmap:(r,n)=>({u_extrude_scale:new i.Uniform1f(r,n.u_extrude_scale),u_intensity:new i.Uniform1f(r,n.u_intensity),u_matrix:new i.UniformMatrix4f(r,n.u_matrix)}),heatmapTexture:(r,n)=>({u_image:new i.Uniform1i(r,n.u_image),u_color_ramp:new i.Uniform1i(r,n.u_color_ramp),u_opacity:new i.Uniform1f(r,n.u_opacity)}),hillshade:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_image:new i.Uniform1i(r,n.u_image),u_latrange:new i.Uniform2f(r,n.u_latrange),u_light:new i.Uniform2f(r,n.u_light),u_shadow:new i.UniformColor(r,n.u_shadow),u_highlight:new i.UniformColor(r,n.u_highlight),u_accent:new i.UniformColor(r,n.u_accent)}),hillshadePrepare:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_image:new i.Uniform1i(r,n.u_image),u_dimension:new i.Uniform2f(r,n.u_dimension),u_zoom:new i.Uniform1f(r,n.u_zoom),u_unpack:new i.Uniform4f(r,n.u_unpack)}),line:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_pixels_to_tile_units:new i.UniformMatrix2f(r,n.u_pixels_to_tile_units),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(r,n.u_units_to_pixels),u_dash_image:new i.Uniform1i(r,n.u_dash_image),u_gradient_image:new i.Uniform1i(r,n.u_gradient_image),u_image_height:new i.Uniform1f(r,n.u_image_height),u_texsize:new i.Uniform2f(r,n.u_texsize),u_scale:new i.Uniform3f(r,n.u_scale),u_mix:new i.Uniform1f(r,n.u_mix),u_alpha_discard_threshold:new i.Uniform1f(r,n.u_alpha_discard_threshold)}),linePattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_texsize:new i.Uniform2f(r,n.u_texsize),u_pixels_to_tile_units:new i.UniformMatrix2f(r,n.u_pixels_to_tile_units),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_image:new i.Uniform1i(r,n.u_image),u_units_to_pixels:new i.Uniform2f(r,n.u_units_to_pixels),u_scale:new i.Uniform3f(r,n.u_scale),u_fade:new i.Uniform1f(r,n.u_fade),u_alpha_discard_threshold:new i.Uniform1f(r,n.u_alpha_discard_threshold)}),raster:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_tl_parent:new i.Uniform2f(r,n.u_tl_parent),u_scale_parent:new i.Uniform1f(r,n.u_scale_parent),u_fade_t:new i.Uniform1f(r,n.u_fade_t),u_opacity:new i.Uniform1f(r,n.u_opacity),u_image0:new i.Uniform1i(r,n.u_image0),u_image1:new i.Uniform1i(r,n.u_image1),u_brightness_low:new i.Uniform1f(r,n.u_brightness_low),u_brightness_high:new i.Uniform1f(r,n.u_brightness_high),u_saturation_factor:new i.Uniform1f(r,n.u_saturation_factor),u_contrast_factor:new i.Uniform1f(r,n.u_contrast_factor),u_spin_weights:new i.Uniform3f(r,n.u_spin_weights),u_perspective_transform:new i.Uniform2f(r,n.u_perspective_transform)}),symbolIcon:(r,n)=>({u_is_size_zoom_constant:new i.Uniform1i(r,n.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(r,n.u_is_size_feature_constant),u_size_t:new i.Uniform1f(r,n.u_size_t),u_size:new i.Uniform1f(r,n.u_size),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_pitch:new i.Uniform1f(r,n.u_pitch),u_rotate_symbol:new i.Uniform1i(r,n.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(r,n.u_aspect_ratio),u_fade_change:new i.Uniform1f(r,n.u_fade_change),u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(r,n.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(r,n.u_coord_matrix),u_is_text:new i.Uniform1i(r,n.u_is_text),u_pitch_with_map:new i.Uniform1i(r,n.u_pitch_with_map),u_texsize:new i.Uniform2f(r,n.u_texsize),u_tile_id:new i.Uniform3f(r,n.u_tile_id),u_zoom_transition:new i.Uniform1f(r,n.u_zoom_transition),u_inv_rot_matrix:new i.UniformMatrix4f(r,n.u_inv_rot_matrix),u_merc_center:new i.Uniform2f(r,n.u_merc_center),u_texture:new i.Uniform1i(r,n.u_texture)}),symbolSDF:(r,n)=>({u_is_size_zoom_constant:new i.Uniform1i(r,n.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(r,n.u_is_size_feature_constant),u_size_t:new i.Uniform1f(r,n.u_size_t),u_size:new i.Uniform1f(r,n.u_size),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_pitch:new i.Uniform1f(r,n.u_pitch),u_rotate_symbol:new i.Uniform1i(r,n.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(r,n.u_aspect_ratio),u_fade_change:new i.Uniform1f(r,n.u_fade_change),u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(r,n.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(r,n.u_coord_matrix),u_is_text:new i.Uniform1i(r,n.u_is_text),u_pitch_with_map:new i.Uniform1i(r,n.u_pitch_with_map),u_texsize:new i.Uniform2f(r,n.u_texsize),u_texture:new i.Uniform1i(r,n.u_texture),u_gamma_scale:new i.Uniform1f(r,n.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_tile_id:new i.Uniform3f(r,n.u_tile_id),u_zoom_transition:new i.Uniform1f(r,n.u_zoom_transition),u_inv_rot_matrix:new i.UniformMatrix4f(r,n.u_inv_rot_matrix),u_merc_center:new i.Uniform2f(r,n.u_merc_center),u_is_halo:new i.Uniform1i(r,n.u_is_halo)}),symbolTextAndIcon:(r,n)=>({u_is_size_zoom_constant:new i.Uniform1i(r,n.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(r,n.u_is_size_feature_constant),u_size_t:new i.Uniform1f(r,n.u_size_t),u_size:new i.Uniform1f(r,n.u_size),u_camera_to_center_distance:new i.Uniform1f(r,n.u_camera_to_center_distance),u_pitch:new i.Uniform1f(r,n.u_pitch),u_rotate_symbol:new i.Uniform1i(r,n.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(r,n.u_aspect_ratio),u_fade_change:new i.Uniform1f(r,n.u_fade_change),u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(r,n.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(r,n.u_coord_matrix),u_is_text:new i.Uniform1i(r,n.u_is_text),u_pitch_with_map:new i.Uniform1i(r,n.u_pitch_with_map),u_texsize:new i.Uniform2f(r,n.u_texsize),u_texsize_icon:new i.Uniform2f(r,n.u_texsize_icon),u_texture:new i.Uniform1i(r,n.u_texture),u_texture_icon:new i.Uniform1i(r,n.u_texture_icon),u_gamma_scale:new i.Uniform1f(r,n.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(r,n.u_device_pixel_ratio),u_is_halo:new i.Uniform1i(r,n.u_is_halo)}),background:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_opacity:new i.Uniform1f(r,n.u_opacity),u_color:new i.UniformColor(r,n.u_color)}),backgroundPattern:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_opacity:new i.Uniform1f(r,n.u_opacity),u_image:new i.Uniform1i(r,n.u_image),u_pattern_tl_a:new i.Uniform2f(r,n.u_pattern_tl_a),u_pattern_br_a:new i.Uniform2f(r,n.u_pattern_br_a),u_pattern_tl_b:new i.Uniform2f(r,n.u_pattern_tl_b),u_pattern_br_b:new i.Uniform2f(r,n.u_pattern_br_b),u_texsize:new i.Uniform2f(r,n.u_texsize),u_mix:new i.Uniform1f(r,n.u_mix),u_pattern_size_a:new i.Uniform2f(r,n.u_pattern_size_a),u_pattern_size_b:new i.Uniform2f(r,n.u_pattern_size_b),u_scale_a:new i.Uniform1f(r,n.u_scale_a),u_scale_b:new i.Uniform1f(r,n.u_scale_b),u_pixel_coord_upper:new i.Uniform2f(r,n.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(r,n.u_pixel_coord_lower),u_tile_units_to_pixels:new i.Uniform1f(r,n.u_tile_units_to_pixels)}),terrainRaster:tb,terrainDepth:tb,skybox:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_sun_direction:new i.Uniform3f(r,n.u_sun_direction),u_cubemap:new i.Uniform1i(r,n.u_cubemap),u_opacity:new i.Uniform1f(r,n.u_opacity),u_temporal_offset:new i.Uniform1f(r,n.u_temporal_offset)}),skyboxGradient:(r,n)=>({u_matrix:new i.UniformMatrix4f(r,n.u_matrix),u_color_ramp:new i.Uniform1i(r,n.u_color_ramp),u_center_direction:new i.Uniform3f(r,n.u_center_direction),u_radius:new i.Uniform1f(r,n.u_radius),u_opacity:new i.Uniform1f(r,n.u_opacity),u_temporal_offset:new i.Uniform1f(r,n.u_temporal_offset)}),skyboxCapture:(r,n)=>({u_matrix_3f:new i.UniformMatrix3f(r,n.u_matrix_3f),u_sun_direction:new i.Uniform3f(r,n.u_sun_direction),u_sun_intensity:new i.Uniform1f(r,n.u_sun_intensity),u_color_tint_r:new i.Uniform4f(r,n.u_color_tint_r),u_color_tint_m:new i.Uniform4f(r,n.u_color_tint_m),u_luminance:new i.Uniform1f(r,n.u_luminance)}),globeRaster:(r,n)=>({u_proj_matrix:new i.UniformMatrix4f(r,n.u_proj_matrix),u_globe_matrix:new i.UniformMatrix4f(r,n.u_globe_matrix),u_merc_matrix:new i.UniformMatrix4f(r,n.u_merc_matrix),u_zoom_transition:new i.Uniform1f(r,n.u_zoom_transition),u_merc_center:new i.Uniform2f(r,n.u_merc_center),u_image0:new i.Uniform1i(r,n.u_image0)}),globeAtmosphere:(r,n)=>({u_center:new i.Uniform2f(r,n.u_center),u_radius:new i.Uniform1f(r,n.u_radius),u_screen_size:new i.Uniform2f(r,n.u_screen_size),u_pixel_ratio:new i.Uniform1f(r,n.u_pixel_ratio),u_opacity:new i.Uniform1f(r,n.u_opacity),u_fadeout_range:new i.Uniform1f(r,n.u_fadeout_range),u_start_color:new i.Uniform3f(r,n.u_start_color),u_end_color:new i.Uniform3f(r,n.u_end_color)})};function t4(r,n,o,s,a,l,c){var h;const u=r.context,d=u.gl,p=r.useProgram("collisionBox"),f=[];let m=0,_=0;for(let g=0;g0){const E=i.create(),S=b;i.mul(E,v.placementInvProjMatrix,r.transform.glCoordMatrix),i.mul(E,E,v.placementViewportMatrix),f.push({circleArray:T,circleOffset:_,transform:S,invTransform:E}),m+=T.length/4,_=m}w&&(r.terrain&&r.terrain.setupElevationDraw(x,p),p.draw(u,d.LINES,i.DepthMode.disabled,i.StencilMode.disabled,r.colorModeForRenderPass(),i.CullFaceMode.disabled,tZ(b,r.transform,x),o.id,w.layoutVertexBuffer,w.indexBuffer,w.segments,null,r.transform.zoom,null,w.collisionVertexBuffer,w.collisionVertexBufferExt))}if(!c||!f.length)return;const I=r.useProgram("collisionCircle"),M=new i.StructArrayLayout2f1f2i16;M.resize(4*m),M._trim();let A=0;for(const C of f)for(let z=0;z[0,0,0];!function(r,n,o,s,a,l,c,h,u,d){const p=o.transform,f=s?r.textSizeData:r.iconSizeData,m=i.evaluateSizeForZoom(f,o.transform.zoom),_=[256/o.width*2+1,256/o.height*2+1],g=s?r.text.dynamicLayoutVertexArray:r.icon.dynamicLayoutVertexArray;g.clear();const y=r.lineVertexArray,x=s?r.text.placedSymbolArray:r.icon.placedSymbolArray,v=o.transform.width/o.transform.height;let b=!1;for(let w=0;w=-r[0]&&n<=r[0]&&o>=-r[1]&&o<=r[1]}(A,_)){eW(T.numGlyphs,g);continue}const C=eV(o.transform.cameraToCenterDistance,A[3]),z=i.evaluateSizeForFeature(f,m,T),k=c?z/C:z*C,P=eU(new i.pointGeometry(M[0],M[1]),a,M[2]);if(P.signedDistanceFromCamera<=0){eW(T.numGlyphs,g);continue}let D={};const L=c?null:u,B=eG(T,k,!1,h,n,a,l,r.glyphOffsetArray,y,g,P.point,E,D,v,L,p.projection,d);b=B.useVertical,L&&B.needsFlipping&&(D={}),(B.notEnoughRoom||b||B.needsFlipping&&eG(T,k,!0,h,n,a,l,r.glyphOffsetArray,y,g,P.point,E,D,v,L,p.projection,d).notEnoughRoom)&&eW(T.numGlyphs,g)}s?r.text.dynamicLayoutVertexBuffer.updateData(g):r.icon.dynamicLayoutVertexBuffer.updateData(g)}(L,P.projMatrix,r,a,Q,et,v,d,eo,P)}const es=r.translatePosMatrix(P.projMatrix,D,l,c),ea=b||a&&M||er?t6:Q,el=r.translatePosMatrix(et,D,l,c,!0),ec=F&&0!==o.paint.get(a?"text-halo-width":"icon-halo-width").constantOr(1),eh=y.createInversionMatrix(P.toUnwrapped());G=F?L.iconsInText?t1(O.kind,N,w,v,r,es,ea,el,Z,W,j,C,eh,I):t0(O.kind,N,w,v,r,es,ea,el,a,Z,!0,j,C,eh,I):tQ(O.kind,N,w,v,r,es,ea,el,a,Z,j,C,eh,I);const eu={program:V,buffers:B,uniformValues:G,atlasTexture:$,atlasTextureIcon:H,atlasInterpolation:q,atlasInterpolationIcon:X,isSDF:F,hasHalo:ec,tile:D,labelPlaneMatrixInv:ee};if(T&&L.canOverlap){E=!0;const ed=B.segments.get();for(const ep of ed)z.push({segments:new i.SegmentVector([ep]),sortKey:ep.sortKey,state:eu})}else z.push({segments:B.segments,sortKey:0,state:eu})}for(const ef of(E&&z.sort((i,r)=>i.sortKey-r.sortKey),z)){const em=ef.state;if(r.terrain&&r.terrain.setupElevationDraw(em.tile,em.program,{useDepthForOcclusion:!A,labelPlaneMatrixInv:em.labelPlaneMatrixInv}),m.activeTexture.set(_.TEXTURE0),em.atlasTexture.bind(em.atlasInterpolation,_.CLAMP_TO_EDGE),em.atlasTextureIcon&&(m.activeTexture.set(_.TEXTURE1),em.atlasTextureIcon&&em.atlasTextureIcon.bind(em.atlasInterpolationIcon,_.CLAMP_TO_EDGE)),em.isSDF){const e_=em.uniformValues;em.hasHalo&&(e_.u_is_halo=1,t9(em.buffers,ef.segments,o,r,em.program,S,p,f,e_)),e_.u_is_halo=0}t9(em.buffers,ef.segments,o,r,em.program,S,p,f,em.uniformValues)}}function t9(r,n,o,s,a,l,c,h,u){const d=s.context;a.draw(d,d.gl.TRIANGLES,l,c,h,i.CullFaceMode.disabled,u,o.id,r.layoutVertexBuffer,r.indexBuffer,n,o.paint,s.transform.zoom,r.programConfigurations.get(o.id),r.dynamicLayoutVertexBuffer,r.opacityVertexBuffer)}function t7(r,n,o,s,a,l,c){let h,u,d,p,f;const m=r.context.gl,_=o.paint.get("fill-pattern"),g=_&&_.constantOr(1),y=o.getCrossfadeParameters();for(const x of(c?(u=g&&!o.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",h=m.LINES):(u=g?"fillPattern":"fill",h=m.TRIANGLES),s)){const v=n.getTile(x);if(g&&!v.patternsLoaded())continue;const b=v.getBucket(o);if(!b)continue;r.prepareDrawTile(x);const w=b.programConfigurations.get(o.id),T=r.useProgram(u,w);g&&(r.context.activeTexture.set(m.TEXTURE0),v.imageAtlasTexture.bind(m.LINEAR,m.CLAMP_TO_EDGE),w.updatePaintBuffers(y));const E=_.constantOr(null);if(E&&v.imageAtlas){const S=v.imageAtlas,I=S.patternPositions[E.to.toString()],M=S.patternPositions[E.from.toString()];I&&M&&w.setConstantPatternPositions(I,M)}const A=r.translatePosMatrix(x.projMatrix,v,o.paint.get("fill-translate"),o.paint.get("fill-translate-anchor"));if(c){p=b.indexBuffer2,f=b.segments2;const C=r.terrain&&r.terrain.renderingToTexture?r.terrain.drapeBufferSize:[m.drawingBufferWidth,m.drawingBufferHeight];d="fillOutlinePattern"===u&&g?tN(A,r,y,v,C):tV(A,C)}else p=b.indexBuffer,f=b.segments,d=g?tU(A,r,y,v):tO(A);r.prepareDrawProgram(r.context,T,x.toUnwrapped()),T.draw(r.context,h,a,r.stencilModeForClipping(x),l,i.CullFaceMode.disabled,d,o.id,b.layoutVertexBuffer,p,f,o.paint,r.transform.zoom,w)}}function ie(r,n,o,s,a,l,c){const h=r.context,u=h.gl,d=o.paint.get("fill-extrusion-pattern"),p=d.constantOr(1),f=o.getCrossfadeParameters(),m=o.paint.get("fill-extrusion-opacity");for(const _ of s){const g=n.getTile(_),y=g.getBucket(o);if(!y)continue;const x=y.programConfigurations.get(o.id),v=r.useProgram(p?"fillExtrusionPattern":"fillExtrusion",x);if(r.terrain){const b=r.terrain;if(!y.enableTerrain)continue;if(b.setupElevationDraw(g,v,{useMeterToDem:!0}),function(r,n,o,s,a,l){let c,h,u;const d=[r=>{let n=r.canonical.x-1,o=r.wrap;return n<0&&(n=(1<{let n=r.canonical.x+1,o=r.wrap;return n===1<new i.OverscaledTileID(r.overscaledZ,r.wrap,r.canonical.z,r.canonical.x,(0===r.canonical.y?1<new i.OverscaledTileID(r.overscaledZ,r.wrap,r.canonical.z,r.canonical.x,r.canonical.y===(1<{let r,o,s;const l=n.getSource().maxzoom,c=i=>{const r=n.getTileByID(i);if(r&&r.hasData())return r.getBucket(a)};return(i.overscaledZ===i.canonical.z||i.overscaledZ>=l)&&(r=c(i.key)),i.overscaledZ>=l&&(o=c(i.calculateScaledKey(i.overscaledZ+1))),i.overscaledZ>l&&(s=c(i.calculateScaledKey(i.overscaledZ-1))),r||o||s},f=[0,0,0],m=(r,n)=>(f[0]=Math.min(r.min.y,n.min.y),f[1]=Math.max(r.max.y,n.max.y),f[2]=i.EXTENT-n.min.x>r.max.x?n.min.x-i.EXTENT:r.max.x,f),_=(r,n)=>(f[0]=Math.min(r.min.x,n.min.x),f[1]=Math.max(r.max.x,n.max.x),f[2]=i.EXTENT-n.min.y>r.max.y?n.min.y-i.EXTENT:r.max.y,f),g=[(i,r)=>m(i,r),(i,r)=>m(r,i),(i,r)=>_(i,r),(i,r)=>_(r,i)],y=new i.pointGeometry(0,0),x=(r,n,s,a,d)=>{const p=[[a?s:r,a?r:s,0],[a?s:n,a?n:s,0]],f=d<0?i.EXTENT+d:d,m=[a?f:(r+n)/2,a?(r+n)/2:f,0];return 0===s&&d<0||0!==s&&d>0?l.getForTilePoints(u,[m],!0,h):p.push(m),l.getForTilePoints(o,p,!0,c),Math.max(p[0][2],p[1][2],m[2])/l.exaggeration()};for(let v=0;v<4;v++){const b=s.borders[v];if(0===b.length&&(s.borderDone[v]=!0),s.borderDone[v])continue;const w=u=d[v](o),T=p(w);if(!T||!T.enableTerrain||!(h=l.findDEMTileFor(w))||!h.dem)continue;if(!c){const E=l.findDEMTileFor(o);if(!E||!E.dem)return;c=E}const S=(v<2?1:5)-v,I=T.borders[S];let M=0;for(let A=0;Ak[0]+3);)T.borderDone[S]||T.encodeCentroid(void 0,C,!1),M++;if(C&&Mk[1]-3)&&(D++,++M!==I.length);)C=T.featuresOnBorder[I[M]];if(C=T.featuresOnBorder[I[P]],z.intersectsCount()>1||C.intersectsCount()>1||1!==D){1!==D&&(M=P),s.encodeCentroid(void 0,z,!1),T.borderDone[S]||T.encodeCentroid(void 0,C,!1);continue}const L=g[v](z,C),B=v%2?i.EXTENT-1:0;y.x=x(L[0],Math.min(i.EXTENT-1,L[1]),B,v<2,L[2]),y.y=0,s.encodeCentroid(y,z,!1),T.borderDone[S]||T.encodeCentroid(y,C,!1)}else s.encodeCentroid(void 0,z,!1)}s.borderDone[v]=s.needsCentroidUpdate=!0,T.borderDone[S]||(T.borderDone[S]=T.needsCentroidUpdate=!0)}(s.needsCentroidUpdate||!s.centroidVertexBuffer&&0!==s.centroidVertexArray.length)&&s.uploadCentroid(r)}(h,n,_,y,o,b),!y.centroidVertexBuffer){const w=v.attributes.a_centroid_pos;void 0!==w&&u.vertexAttrib2f(w,0,0)}}p&&(r.context.activeTexture.set(u.TEXTURE0),g.imageAtlasTexture.bind(u.LINEAR,u.CLAMP_TO_EDGE),x.updatePaintBuffers(f));const T=d.constantOr(null);if(T&&g.imageAtlas){const E=g.imageAtlas,S=E.patternPositions[T.to.toString()],I=E.patternPositions[T.from.toString()];S&&I&&x.setConstantPatternPositions(S,I)}const M=r.translatePosMatrix(_.projMatrix,g,o.paint.get("fill-extrusion-translate"),o.paint.get("fill-extrusion-translate-anchor")),A=o.paint.get("fill-extrusion-vertical-gradient"),C=p?tF(M,r,A,m,_,f,g):tR(M,r,A,m);r.prepareDrawProgram(h,v,_.toUnwrapped()),v.draw(h,h.gl.TRIANGLES,a,l,c,i.CullFaceMode.backCCW,C,o.id,y.layoutVertexBuffer,y.indexBuffer,y.segments,o.paint,r.transform.zoom,x,r.terrain?y.centroidVertexBuffer:null)}}const it=new i.Color(1,0,0,1),ii=new i.Color(0,1,0,1),ir=new i.Color(0,0,1,1),io=new i.Color(1,0,1,1),is=new i.Color(0,1,1,1);function ia(i,r,n,o){ic(i,0,r+n/2,i.transform.width,n,o)}function il(i,r,n,o){ic(i,r-n/2,0,n,i.transform.height,o)}function ic(r,n,o,s,a,l){const c=r.context,h=c.gl;h.enable(h.SCISSOR_TEST),h.scissor(n*i.exported.devicePixelRatio,o*i.exported.devicePixelRatio,s*i.exported.devicePixelRatio,a*i.exported.devicePixelRatio),c.clear({color:l}),h.disable(h.SCISSOR_TEST)}const ih=i.createLayout([{name:"a_pos_3f",components:3,type:"Float32"}]),{members:iu}=ih;function id(i,r,n,o){i.emplaceBack(r,n,o)}class ip{constructor(r){this.vertexArray=new i.StructArrayLayout3f12,this.indices=new i.StructArrayLayout3ui6,id(this.vertexArray,-1,-1,1),id(this.vertexArray,1,-1,1),id(this.vertexArray,-1,1,1),id(this.vertexArray,1,1,1),id(this.vertexArray,-1,-1,-1),id(this.vertexArray,1,-1,-1),id(this.vertexArray,-1,1,-1),id(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=r.createVertexBuffer(this.vertexArray,iu),this.indexBuffer=r.createIndexBuffer(this.indices),this.segment=i.SegmentVector.simpleSegment(0,0,36,12)}}function im(r,n,o,s,a,l){const c=r.gl,h=n.paint.get("sky-atmosphere-color"),u=n.paint.get("sky-atmosphere-halo-color"),d=n.paint.get("sky-atmosphere-sun-intensity"),p={u_matrix_3f:i.fromMat4([],s),u_sun_direction:a,u_sun_intensity:d,u_color_tint_r:[h.r,h.g,h.b,h.a],u_color_tint_m:[u.r,u.g,u.b,u.a],u_luminance:5e-5};c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_CUBE_MAP_POSITIVE_X+l,n.skyboxTexture,0),o.draw(r,c.TRIANGLES,i.DepthMode.disabled,i.StencilMode.disabled,i.ColorMode.unblended,i.CullFaceMode.frontCW,p,"skyboxCapture",n.skyboxGeometry.vertexBuffer,n.skyboxGeometry.indexBuffer,n.skyboxGeometry.segment)}const i_={symbol:function(r,n,o,s,a){if("translucent"!==r.renderPass)return;const l=i.StencilMode.disabled,c=r.colorModeForRenderPass();o.layout.get("text-variable-anchor")&&function(r,n,o,s,a,l,c){const h=n.transform,u="map"===a,d="map"===l,p=h.projection.createTileTransform(h,h.worldSize);for(const f of r){const m=s.getTile(f),_=m.getBucket(o);if(!_||_.projection!==h.projection.name||!_.text||!_.text.segments.get().length)continue;const g=i.evaluateSizeForZoom(_.textSizeData,h.zoom),y=n.transform.calculatePixelsToTileUnitsMatrix(m),x=eF(f.projMatrix,m.tileID.canonical,d,u,n.transform,y),v="none"!==o.layout.get("icon-text-fit")&&_.hasIconData();if(g){const b=Math.pow(2,h.zoom-m.tileID.overscaledZ);(function(r,n,o,s,a,l,c,h,u,d,p,f){const m=r.text.placedSymbolArray,_=r.text.dynamicLayoutVertexArray,g=r.icon.dynamicLayoutVertexArray,y={},x=h.projMatrix,v=l.elevation,b=v?v.getAtTileOffsetFunc(h,f):i=>[0,0,0];_.clear();for(let w=0;w=0&&(y[T.associatedIconIndex]={shiftedAnchor:F,angle:O})}else eW(T.numGlyphs,_)}if(p){g.clear();const V=r.icon.placedSymbolArray;for(let N=0;Ni.sortKey-r.sortKey);const I={useDepthForOcclusion:"globe"!==r.transform.projection.name};for(const M of _){const{programConfiguration:A,program:C,layoutVertexBuffer:z,indexBuffer:k,uniformValues:P,tile:D}=M.state,L=M.segments;r.terrain&&r.terrain.setupElevationDraw(D,C,I),r.prepareDrawProgram(u,C,D.tileID.toUnwrapped()),C.draw(u,d.TRIANGLES,p,f,m,i.CullFaceMode.disabled,P,o.id,z,k,L,o.paint,r.transform.zoom,A)}},heatmap:function(r,n,o,s){if(0!==o.paint.get("heatmap-opacity")){if("offscreen"===r.renderPass){const a=r.context,l=a.gl,c=i.StencilMode.disabled,h=new i.ColorMode([l.ONE,l.ONE],i.Color.transparent,[!0,!0,!0,!0]);(function(i,r,n){const o=i.gl;i.activeTexture.set(o.TEXTURE1),i.viewport.set([0,0,r.width/4,r.height/4]);let s=n.heatmapFbo;if(s)o.bindTexture(o.TEXTURE_2D,s.colorAttachment.get()),i.bindFramebuffer.set(s.framebuffer);else{const a=o.createTexture();o.bindTexture(o.TEXTURE_2D,a),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),s=n.heatmapFbo=i.createFramebuffer(r.width/4,r.height/4,!1),function(i,r,n,o){const s=i.gl;s.texImage2D(s.TEXTURE_2D,0,s.RGBA,r.width/4,r.height/4,0,s.RGBA,i.extRenderToTextureHalfFloat?i.extTextureHalfFloat.HALF_FLOAT_OES:s.UNSIGNED_BYTE,null),o.colorAttachment.set(n)}(i,r,a,s)}})(a,r,o),a.clear({color:i.Color.transparent});for(let u=0;u{const r=[];tY(i)&&r.push("RENDER_LINE_DASH"),i.paint.get("line-gradient")&&r.push("RENDER_LINE_GRADIENT");const n=i.paint.get("line-pattern").constantOr(1),o=1!==i.paint.get("line-opacity").constantOr(1);return!n&&o&&r.push("RENDER_LINE_ALPHA_DISCARD"),r})(o);let w=b.includes("RENDER_LINE_ALPHA_DISCARD");for(const T of(r.terrain&&r.terrain.clipOrMaskOverlapStencilType()&&(w=!1),s)){const E=n.getTile(T);if(m&&!E.patternsLoaded())continue;const S=E.getBucket(o);if(!S)continue;r.prepareDrawTile(T);const I=S.programConfigurations.get(o.id),M=r.useProgram(y,I,b),A=f.constantOr(null);if(A&&E.imageAtlas){const C=E.imageAtlas,z=C.patternPositions[A.to.toString()],k=C.patternPositions[A.from.toString()];z&&k&&I.setConstantPatternPositions(z,k)}const P=u.constantOr(null),D=p.constantOr(null);if(!m&&P&&D&&E.lineAtlas){const L=E.lineAtlas,B=L.getDash(P.to,D),R=L.getDash(P.from,D);B&&R&&I.setConstantPatternPositions(B,R)}const F=r.terrain?T.projMatrix:null,O=m?tW(r,E,o,g,F):tX(r,E,o,g,F,S.lineClipsArray.length);if(_){const U=S.gradients[o.id];let V=U.texture;if(o.gradientVersion!==U.version){let N=256;if(o.stepInterpolant){const j=n.getSource().maxzoom,G=T.canonical.z===j?Math.ceil(1<{M.draw(x,v.TRIANGLES,c,n,h,i.CullFaceMode.disabled,O,o.id,S.layoutVertexBuffer,S.indexBuffer,S.segments,o.paint,r.transform.zoom,I,S.layoutVertexBuffer2)};if(w){const $=r.stencilModeForClipping(T).ref;0===$&&r.terrain&&x.clear({stencil:0});const q={func:v.EQUAL,mask:255};O.u_alpha_discard_threshold=.8,Z(new i.StencilMode(q,$,255,v.KEEP,v.KEEP,v.INVERT)),O.u_alpha_discard_threshold=0,Z(new i.StencilMode(q,$,255,v.KEEP,v.KEEP,v.KEEP))}else Z(r.stencilModeForClipping(T))}w&&(r.resetStencilClippingMasks(),r.terrain&&x.clear({stencil:0}))},fill:function(r,n,o,s){const a=o.paint.get("fill-color"),l=o.paint.get("fill-opacity");if(0===l.constantOr(1))return;const c=r.colorModeForRenderPass(),h=o.paint.get("fill-pattern"),u=r.opaquePassEnabledForLayer()&&!h.constantOr(1)&&1===a.constantOr(i.Color.transparent).a&&1===l.constantOr(0)?"opaque":"translucent";if(r.renderPass===u){const d=r.depthModeForSublayer(1,"opaque"===r.renderPass?i.DepthMode.ReadWrite:i.DepthMode.ReadOnly);t7(r,n,o,s,d,c,!1)}if("translucent"===r.renderPass&&o.paint.get("fill-antialias")){const p=r.depthModeForSublayer(o.getPaintProperty("fill-outline-color")?2:0,i.DepthMode.ReadOnly);t7(r,n,o,s,p,c,!0)}},"fill-extrusion":function(r,n,o,s){const a=o.paint.get("fill-extrusion-opacity");if(0!==a&&"translucent"===r.renderPass){const l=new i.DepthMode(r.context.gl.LEQUAL,i.DepthMode.ReadWrite,r.depthRangeFor3D);if(1!==a||o.paint.get("fill-extrusion-pattern").constantOr(1))ie(r,n,o,s,l,i.StencilMode.disabled,i.ColorMode.disabled),ie(r,n,o,s,l,r.stencilModeFor3D(),r.colorModeForRenderPass()),r.resetStencilClippingMasks();else{const c=r.colorModeForRenderPass();ie(r,n,o,s,l,i.StencilMode.disabled,c)}}},hillshade:function(r,n,o,s){if("offscreen"!==r.renderPass&&"translucent"!==r.renderPass)return;const a=r.context,l=r.depthModeForSublayer(0,i.DepthMode.ReadOnly),c=r.colorModeForRenderPass(),h=r.terrain&&r.terrain.renderingToTexture,[u,d]="translucent"!==r.renderPass||h?[{},s]:r.stencilConfigForOverlap(s);for(const p of d){const f=n.getTile(p);if(f.needsHillshadePrepare&&"offscreen"===r.renderPass)!function(r,n,o,s,a,l){const c=r.context,h=c.gl;if(!n.dem)return;const u=n.dem;if(c.activeTexture.set(h.TEXTURE1),tv(r,n,u),!n.demTexture)return;n.demTexture.bind(h.NEAREST,h.CLAMP_TO_EDGE);const d=u.dim;c.activeTexture.set(h.TEXTURE0);let p=n.fbo;if(!p){const f=new i.Texture(c,{width:d,height:d,data:null},h.RGBA);f.bind(h.LINEAR,h.CLAMP_TO_EDGE),(p=n.fbo=c.createFramebuffer(d,d,!0)).colorAttachment.set(f.texture)}c.bindFramebuffer.set(p.framebuffer),c.viewport.set([0,0,d,d]);const{tileBoundsBuffer:m,tileBoundsIndexBuffer:_,tileBoundsSegments:g}=r.getMercatorTileBoundsBuffers();r.useProgram("hillshadePrepare").draw(c,h.TRIANGLES,s,a,l,i.CullFaceMode.disabled,((r,n)=>{const o=n.stride,s=i.create();return i.ortho(s,0,i.EXTENT,-i.EXTENT,0,0,1),i.translate(s,s,[0,-i.EXTENT,0]),{u_matrix:s,u_image:1,u_dimension:[o,o],u_zoom:r.overscaledZ,u_unpack:n.unpackVector}})(n.tileID,u),o.id,m,_,g),n.needsHillshadePrepare=!1}(r,f,o,l,i.StencilMode.disabled,c);else if("translucent"===r.renderPass){const m=h&&r.terrain?r.terrain.stencilModeForRTTOverlap(p):u[p.overscaledZ];!function(r,n,o,s,a,l,c){const h=r.context,u=h.gl,d=o.fbo;if(!d)return;r.prepareDrawTile(n);const p=r.useProgram("hillshade");h.activeTexture.set(u.TEXTURE0),u.bindTexture(u.TEXTURE_2D,d.colorAttachment.get());const f=((r,n,o,s)=>{const a=o.paint.get("hillshade-shadow-color"),l=o.paint.get("hillshade-highlight-color"),c=o.paint.get("hillshade-accent-color");let h=o.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===o.paint.get("hillshade-illumination-anchor")&&(h-=r.transform.angle);const u=!r.options.moving;return{u_matrix:s||r.transform.calculateProjMatrix(n.tileID.toUnwrapped(),u),u_image:0,u_latrange:function(r,n){const o=Math.pow(2,n.canonical.z),s=n.canonical.y;return[new i.MercatorCoordinate(0,s/o).toLngLat().lat,new i.MercatorCoordinate(0,(s+1)/o).toLngLat().lat]}(0,n.tileID),u_light:[o.paint.get("hillshade-exaggeration"),h],u_shadow:a,u_highlight:l,u_accent:c}})(r,o,s,r.terrain?n.projMatrix:null);r.prepareDrawProgram(h,p,n.toUnwrapped());const{tileBoundsBuffer:m,tileBoundsIndexBuffer:_,tileBoundsSegments:g}=r.getTileBoundsBuffers(o);p.draw(h,u.TRIANGLES,a,l,c,i.CullFaceMode.disabled,f,s.id,m,_,g)}(r,p,f,o,l,m,c)}}a.viewport.set([0,0,r.width,r.height]),r.resetStencilClippingMasks()},raster:function(r,n,o,s,a,l){if("translucent"!==r.renderPass||0===o.paint.get("raster-opacity")||!s.length)return;const c=r.context,h=c.gl,u=n.getSource(),d=r.useProgram("raster"),p=r.colorModeForRenderPass(),f=r.terrain&&r.terrain.renderingToTexture,[m,_]=u instanceof ex||f?[{},s]:r.stencilConfigForOverlap(s),g=_[_.length-1].overscaledZ,y=!r.options.moving;for(const x of _){let v,b;const w=f?i.DepthMode.disabled:r.depthModeForSublayer(x.overscaledZ-g,1===o.paint.get("raster-opacity")?i.DepthMode.ReadWrite:i.DepthMode.ReadOnly,h.LESS),T=x.toUnwrapped(),E=n.getTile(x);if(f&&(!E||!E.hasData()))continue;const S=f?x.projMatrix:r.transform.calculateProjMatrix(T,y),I=r.terrain&&f?r.terrain.stencilModeForRTTOverlap(x):m[x.overscaledZ],M=l?0:o.paint.get("raster-fade-duration");E.registerFadeDuration(M);const A=n.findLoadedParent(x,0),C=tA(E,A,n,r.transform,M);r.terrain&&r.terrain.prepareDrawTile(x);const z="nearest"===o.paint.get("raster-resampling")?h.NEAREST:h.LINEAR;c.activeTexture.set(h.TEXTURE0),E.texture.bind(z,h.CLAMP_TO_EDGE),c.activeTexture.set(h.TEXTURE1),A?(A.texture.bind(z,h.CLAMP_TO_EDGE),v=Math.pow(2,A.tileID.overscaledZ-E.tileID.overscaledZ),b=[E.tileID.canonical.x*v%1,E.tileID.canonical.y*v%1]):E.texture.bind(z,h.CLAMP_TO_EDGE);const k=tJ(S,b||[0,0],v||1,C,o,u instanceof ex?u.perspectiveTransform:[0,0]);if(r.prepareDrawProgram(c,d,T),u instanceof ex)d.draw(c,h.TRIANGLES,w,i.StencilMode.disabled,p,i.CullFaceMode.disabled,k,o.id,u.boundsBuffer,r.quadTriangleIndexBuffer,u.boundsSegments);else{const{tileBoundsBuffer:P,tileBoundsIndexBuffer:D,tileBoundsSegments:L}=r.getTileBoundsBuffers(E);d.draw(c,h.TRIANGLES,w,I,p,i.CullFaceMode.disabled,k,o.id,P,D,L)}}r.resetStencilClippingMasks()},background:function(r,n,o,s){const a=o.paint.get("background-color"),l=o.paint.get("background-opacity");if(0===l)return;const c=r.context,h=c.gl,u=r.transform,d=u.tileSize,p=o.paint.get("background-pattern");if(r.isPatternMissing(p))return;const f=!p&&1===a.a&&1===l&&r.opaquePassEnabledForLayer()?"opaque":"translucent";if(r.renderPass!==f)return;const m=i.StencilMode.disabled,_=r.depthModeForSublayer(0,"opaque"===f?i.DepthMode.ReadWrite:i.DepthMode.ReadOnly),g=r.colorModeForRenderPass(),y=r.useProgram(p?"backgroundPattern":"background");let x,v=s;v||(v=Object.values(x=r.getBackgroundTiles()).map(i=>i.tileID)),p&&(c.activeTexture.set(h.TEXTURE0),r.imageManager.bind(r.context));const b=o.getCrossfadeParameters();for(const w of v){const T=w.toUnwrapped(),E=s?w.projMatrix:r.transform.calculateProjMatrix(T);r.prepareDrawTile(w);const S=n?n.getTile(w):x?x[w.key]:new i.Tile(w,d,u.zoom,r),I=p?t3(E,l,r,p,{tileID:w,tileSize:d},b):t2(E,l,a);r.prepareDrawProgram(c,y,T);const{tileBoundsBuffer:M,tileBoundsIndexBuffer:A,tileBoundsSegments:C}=r.getTileBoundsBuffers(S);y.draw(c,h.TRIANGLES,_,m,g,i.CullFaceMode.disabled,I,o.id,M,A,C)}},sky:function(r,n,o){const s=r.transform,a="mercator"===s.projection.name||"globe"===s.projection.name?1:i.smoothstep(7,8,s.zoom),l=o.paint.get("sky-opacity")*a;if(0===l)return;const c=r.context,h=o.paint.get("sky-type"),u=new i.DepthMode(c.gl.LEQUAL,i.DepthMode.ReadOnly,[0,1]),d=r.frameCounter/1e3%1;"atmosphere"===h?"offscreen"===r.renderPass?o.needsSkyboxCapture(r)&&(function(r,n,o,s){const a=r.context,l=a.gl;let c=n.skyboxFbo;if(!c){c=n.skyboxFbo=a.createFramebuffer(32,32,!1),n.skyboxGeometry=new ip(a),n.skyboxTexture=a.gl.createTexture(),l.bindTexture(l.TEXTURE_CUBE_MAP,n.skyboxTexture),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MIN_FILTER,l.LINEAR),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MAG_FILTER,l.LINEAR);for(let h=0;h<6;++h)l.texImage2D(l.TEXTURE_CUBE_MAP_POSITIVE_X+h,0,l.RGBA,32,32,0,l.RGBA,l.UNSIGNED_BYTE,null)}a.bindFramebuffer.set(c.framebuffer),a.viewport.set([0,0,32,32]);const u=n.getCenter(r,!0),d=r.useProgram("skyboxCapture"),p=new Float64Array(16);i.identity(p),i.rotateY(p,p,-(.5*Math.PI)),im(a,n,d,p,u,0),i.identity(p),i.rotateY(p,p,.5*Math.PI),im(a,n,d,p,u,1),i.identity(p),i.rotateX(p,p,-(.5*Math.PI)),im(a,n,d,p,u,2),i.identity(p),i.rotateX(p,p,.5*Math.PI),im(a,n,d,p,u,3),i.identity(p),im(a,n,d,p,u,4),i.identity(p),i.rotateY(p,p,Math.PI),im(a,n,d,p,u,5),a.viewport.set([0,0,r.width,r.height])}(r,o),o.markSkyboxValid(r)):"sky"===r.renderPass&&function(r,n,o,s,a){var l,c;const h=r.context,u=h.gl,d=r.transform,p=r.useProgram("skybox");h.activeTexture.set(u.TEXTURE0),u.bindTexture(u.TEXTURE_CUBE_MAP,n.skyboxTexture);const f=(l=d.skyboxMatrix,c=n.getCenter(r,!1),{u_matrix:l,u_sun_direction:c,u_cubemap:0,u_opacity:s,u_temporal_offset:a});r.prepareDrawProgram(h,p),p.draw(h,u.TRIANGLES,o,i.StencilMode.disabled,r.colorModeForRenderPass(),i.CullFaceMode.backCW,f,"skybox",n.skyboxGeometry.vertexBuffer,n.skyboxGeometry.indexBuffer,n.skyboxGeometry.segment)}(r,o,u,l,d):"gradient"===h&&"sky"===r.renderPass&&function(r,n,o,s,a){var l,c,h;const u=r.context,d=u.gl,p=r.transform,f=r.useProgram("skyboxGradient");n.skyboxGeometry||(n.skyboxGeometry=new ip(u)),u.activeTexture.set(d.TEXTURE0);let m=n.colorRampTexture;m||(m=n.colorRampTexture=new i.Texture(u,n.colorRamp,d.RGBA)),m.bind(d.LINEAR,d.CLAMP_TO_EDGE);const _=(l=p.skyboxMatrix,c=n.getCenter(r,!1),h=n.paint.get("sky-gradient-radius"),{u_matrix:l,u_color_ramp:0,u_center_direction:c,u_radius:i.degToRad(h),u_opacity:s,u_temporal_offset:a});r.prepareDrawProgram(u,f),f.draw(u,d.TRIANGLES,o,i.StencilMode.disabled,r.colorModeForRenderPass(),i.CullFaceMode.backCW,_,"skyboxGradient",n.skyboxGeometry.vertexBuffer,n.skyboxGeometry.indexBuffer,n.skyboxGeometry.segment)}(r,o,u,l,d)},debug:function(r,n,o){for(let s=0;s ${o.overscaledZ}`),function(i,r){i.initDebugOverlayCanvas();const n=i.debugOverlayCanvas,o=i.context.gl,s=i.debugOverlayCanvas.getContext("2d");s.clearRect(0,0,n.width,n.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(r,5,5),s.strokeText(r,5,5),i.debugOverlayTexture.update(n),i.debugOverlayTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE)}(r,`${w} ${x}kb`),c.draw(s,a.TRIANGLES,u,d,i.ColorMode.alphaBlended,i.CullFaceMode.disabled,t$(l,i.Color.transparent,b),f,r.debugBuffer,r.quadTriangleIndexBuffer,r.debugSegments)}(r,n,o[s])},custom:function(r,n,o){const s=r.context,a=o.implementation;if(r.transform.projection.unsupportedLayers&&r.transform.projection.unsupportedLayers.includes("custom"))i.warnOnce("Custom layers are not yet supported with non-mercator projections. Use mercator to enable custom layers.");else if("offscreen"===r.renderPass){const l=a.prerender;l&&(r.setCustomLayerDefaults(),s.setColorMode(r.colorModeForRenderPass()),l.call(a,s.gl,r.transform.customLayerMatrix()),s.setDirty(),r.setBaseState())}else if("translucent"===r.renderPass){r.setCustomLayerDefaults(),s.setColorMode(r.colorModeForRenderPass()),s.setStencilMode(i.StencilMode.disabled);const c="3d"===a.renderingMode?new i.DepthMode(r.context.gl.LEQUAL,i.DepthMode.ReadWrite,r.depthRangeFor3D):r.depthModeForSublayer(0,i.DepthMode.ReadOnly);s.setDepthMode(c),a.render(s.gl,r.transform.customLayerMatrix()),s.setDirty(),r.setBaseState(),s.bindFramebuffer.set(null)}}};class ig{constructor(r,n){this.context=new ed(r),this.transform=n,this._tileTextures={},this.frameCopies=[],this.loadTimeStamps=[],this.setup(),this.numSublayers=i.SourceCache.maxUnderzooming+i.SourceCache.maxOverzooming+1,this.depthEpsilon=1/65536,this.crossTileSymbolIndex=new to,this.gpuTimers={},this.frameCounter=0,this._backgroundTiles={}}updateTerrain(i,r){const n=!!i&&!!i.terrain&&this.transform.projection.supportsTerrain;if(!(n||this._terrain&&this._terrain.enabled))return;this._terrain||(this._terrain=new tP(this,i));const o=this._terrain;this.transform.elevation=n?o:null,o.update(i,this.transform,r)}_updateFog(i){const r=i.fog;if(!r||1>r.getOpacity(this.transform.pitch)||.03>r.properties.get("horizon-blend"))return void(this.transform.fogCullDistSq=null);const[n,o]=r.getFovAdjustedRange(this.transform._fov);if(n>o)return void(this.transform.fogCullDistSq=null);const s=n+.78*(o-n);this.transform.fogCullDistSq=s*s}get terrain(){return this.transform._terrainEnabled()&&this._terrain&&this._terrain.enabled?this._terrain:null}resize(r,n){if(this.width=r*i.exported.devicePixelRatio,this.height=n*i.exported.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const o of this.style.order)this.style._layers[o].resize()}setup(){const r=this.context,n=new i.StructArrayLayout2i4;n.emplaceBack(0,0),n.emplaceBack(i.EXTENT,0),n.emplaceBack(0,i.EXTENT),n.emplaceBack(i.EXTENT,i.EXTENT),this.tileExtentBuffer=r.createVertexBuffer(n,i.posAttributes.members),this.tileExtentSegments=i.SegmentVector.simpleSegment(0,0,4,2);const o=new i.StructArrayLayout2i4;o.emplaceBack(0,0),o.emplaceBack(i.EXTENT,0),o.emplaceBack(0,i.EXTENT),o.emplaceBack(i.EXTENT,i.EXTENT),this.debugBuffer=r.createVertexBuffer(o,i.posAttributes.members),this.debugSegments=i.SegmentVector.simpleSegment(0,0,4,5);const s=new i.StructArrayLayout2i4;s.emplaceBack(-1,-1),s.emplaceBack(1,-1),s.emplaceBack(-1,1),s.emplaceBack(1,1),this.viewportBuffer=r.createVertexBuffer(s,i.posAttributes.members),this.viewportSegments=i.SegmentVector.simpleSegment(0,0,4,2);const a=new i.StructArrayLayout4i8;a.emplaceBack(0,0,0,0),a.emplaceBack(i.EXTENT,0,i.EXTENT,0),a.emplaceBack(0,i.EXTENT,0,i.EXTENT),a.emplaceBack(i.EXTENT,i.EXTENT,i.EXTENT,i.EXTENT),this.mercatorBoundsBuffer=r.createVertexBuffer(a,i.boundsAttributes.members),this.mercatorBoundsSegments=i.SegmentVector.simpleSegment(0,0,4,2);const l=new i.StructArrayLayout3ui6;l.emplaceBack(0,1,2),l.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=r.createIndexBuffer(l);const c=new i.StructArrayLayout1ui2;for(const h of[0,1,3,2,0])c.emplaceBack(h);this.debugIndexBuffer=r.createIndexBuffer(c),this.emptyTexture=new i.Texture(r,{width:1,height:1,data:new Uint8Array([0,0,0,0])},r.gl.RGBA),this.identityMat=i.create();const u=this.context.gl;this.stencilClearMode=new i.StencilMode({func:u.ALWAYS,mask:0},0,255,u.ZERO,u.ZERO,u.ZERO),this.loadTimeStamps.push(i.window.performance.now())}getMercatorTileBoundsBuffers(){return{tileBoundsBuffer:this.mercatorBoundsBuffer,tileBoundsIndexBuffer:this.quadTriangleIndexBuffer,tileBoundsSegments:this.mercatorBoundsSegments}}getTileBoundsBuffers(i){return i._makeTileBoundsBuffers(this.context,this.transform.projection),i._tileBoundsBuffer?{tileBoundsBuffer:i._tileBoundsBuffer,tileBoundsIndexBuffer:i._tileBoundsIndexBuffer,tileBoundsSegments:i._tileBoundsSegments}:this.getMercatorTileBoundsBuffers()}clearStencil(){const r=this.context,n=r.gl;this.nextStencilID=1,this.currentStencilSource=void 0,this._tileClippingMaskIDs={},this.useProgram("clippingMask").draw(r,n.TRIANGLES,i.DepthMode.disabled,this.stencilClearMode,i.ColorMode.disabled,i.CullFaceMode.disabled,tM(this.identityMat),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}resetStencilClippingMasks(){this.terrain||(this.currentStencilSource=void 0,this._tileClippingMaskIDs={})}_renderTileClippingMasks(r,n,o){if(!n||this.currentStencilSource===n.id||!r.isTileClipped()||!o||0===o.length)return;if(this._tileClippingMaskIDs&&!this.terrain){let s=!1;for(const a of o)if(void 0===this._tileClippingMaskIDs[a.key]){s=!0;break}if(!s)return}this.currentStencilSource=n.id;const l=this.context,c=l.gl;this.nextStencilID+o.length>256&&this.clearStencil(),l.setColorMode(i.ColorMode.disabled),l.setDepthMode(i.DepthMode.disabled);const h=this.useProgram("clippingMask");for(const u of(this._tileClippingMaskIDs={},o)){const d=n.getTile(u),p=this._tileClippingMaskIDs[u.key]=this.nextStencilID++,{tileBoundsBuffer:f,tileBoundsIndexBuffer:m,tileBoundsSegments:_}=this.getTileBoundsBuffers(d);h.draw(l,c.TRIANGLES,i.DepthMode.disabled,new i.StencilMode({func:c.ALWAYS,mask:0},p,255,c.KEEP,c.KEEP,c.REPLACE),i.ColorMode.disabled,i.CullFaceMode.disabled,tM(u.projMatrix),"$clipping",f,m,_)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const r=this.nextStencilID++,n=this.context.gl;return new i.StencilMode({func:n.NOTEQUAL,mask:255},r,255,n.KEEP,n.KEEP,n.REPLACE)}stencilModeForClipping(r){if(this.terrain)return this.terrain.stencilModeForRTTOverlap(r);const n=this.context.gl;return new i.StencilMode({func:n.EQUAL,mask:255},this._tileClippingMaskIDs[r.key],0,n.KEEP,n.KEEP,n.REPLACE)}stencilConfigForOverlap(r){const n=this.context.gl,o=r.sort((i,r)=>r.overscaledZ-i.overscaledZ),s=o[o.length-1].overscaledZ,a=o[0].overscaledZ-s+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();const l={};for(let c=0;c=0;this.currentLayer--){const v=this.style._layers[o[this.currentLayer]],b=r._getLayerSourceCache(v);if(v.isSky())continue;const w=b?h[b.id]:void 0;this._renderTileClippingMasks(v,b,w),this.renderLayer(this,b,v,w)}if(this.renderPass="sky",(i.globeToMercatorTransition(this.transform.zoom)>0||"globe"!==this.transform.projection.name)&&this.transform.isHorizonVisible())for(this.currentLayer=0;this.currentLayer{const n=r._getLayerSourceCache(i);n&&!i.isHidden(this.transform.zoom)&&(!A||A.getSource().maxzoom0?r.pop():null}isPatternMissing(i){if(!i)return!1;if(!i.from||!i.to)return!0;const r=this.imageManager.getPattern(i.from.toString()),n=this.imageManager.getPattern(i.to.toString());return!r||!n}currentGlobalDefines(){const i=this.terrain&&this.terrain.renderingToTexture,r=this.style&&this.style.fog,n=[];return this.terrain&&!this.terrain.renderingToTexture&&n.push("TERRAIN"),r&&!i&&0!==r.getOpacity(this.transform.pitch)&&n.push("FOG"),i&&n.push("RENDER_TO_TEXTURE"),this._showOverdrawInspector&&n.push("OVERDRAW_INSPECTOR"),n}useProgram(i,r,n){this.cache=this.cache||{};const o=this.currentGlobalDefines().concat(n||[]),s=tL.cacheKey(i,o,r);return this.cache[s]||(this.cache[s]=new tL(this.context,i,tg[i],r,t5[i],o)),this.cache[s]}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 i=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(i.FUNC_ADD)}initDebugOverlayCanvas(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=i.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new i.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this._terrain&&this._terrain.destroy(),this.globeSharedBuffers&&this.globeSharedBuffers.destroy(),this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}prepareDrawTile(i){this.terrain&&this.terrain.prepareDrawTile(i)}prepareDrawProgram(i,r,n){if(this.terrain&&this.terrain.renderingToTexture)return;const o=this.style.fog;if(o){const s=o.getOpacity(this.transform.pitch);0!==s&&r.setFogUniformValues(i,((i,r,n,o)=>{const s=r.properties.get("color"),a=i.frameCounter/1e3%1,l=[s.r/s.a,s.g/s.a,s.b/s.a,o];return{u_fog_matrix:n?i.transform.calculateFogTileMatrix(n):i.identityMat,u_fog_range:r.getFovAdjustedRange(i.transform._fov),u_fog_color:l,u_fog_horizon_blend:r.properties.get("horizon-blend"),u_fog_temporal_offset:a}})(this,o,n,s))}}setTileLoadedFlag(i){this.tileLoaded=i}saveCanvasCopy(){this.frameCopies.push(this.canvasCopy()),this.tileLoaded=!1}canvasCopy(){const i=this.context.gl,r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.copyTexImage2D(i.TEXTURE_2D,0,i.RGBA,0,0,i.drawingBufferWidth,i.drawingBufferHeight,0),r}getCanvasCopiesAndTimestamps(){return{canvasCopies:this.frameCopies,timeStamps:this.loadTimeStamps}}averageElevationNeedsEasing(){if(!this.transform._elevation)return!1;const i=this.style&&this.style.fog;return!!i&&0!==i.getOpacity(this.transform.pitch)}getBackgroundTiles(){const r=this._backgroundTiles,n=this._backgroundTiles={},o=this.transform.coveringTiles({tileSize:512});for(const s of o)n[s.key]=r[s.key]||new i.Tile(s,512,this.transform.tileZoom,this);return n}clearBackgroundTiles(){this._backgroundTiles={}}}class iy{constructor(i=0,r=0,n=0,o=0){if(isNaN(i)||i<0||isNaN(r)||r<0||isNaN(n)||n<0||isNaN(o)||o<0)throw Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=i,this.bottom=r,this.left=n,this.right=o}interpolate(r,n,o){return null!=n.top&&null!=r.top&&(this.top=i.number(r.top,n.top,o)),null!=n.bottom&&null!=r.bottom&&(this.bottom=i.number(r.bottom,n.bottom,o)),null!=n.left&&null!=r.left&&(this.left=i.number(r.left,n.left,o)),null!=n.right&&null!=r.right&&(this.right=i.number(r.right,n.right,o)),this}getCenter(r,n){const o=i.clamp((this.left+r-this.right)/2,0,r),s=i.clamp((this.top+n-this.bottom)/2,0,n);return new i.pointGeometry(o,s)}equals(i){return this.top===i.top&&this.bottom===i.bottom&&this.left===i.left&&this.right===i.right}clone(){return new iy(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}function ix(r,n){const o=i.getColumn(r,3);i.fromQuat(r,n),i.setColumn(r,3,o)}function iv(r,n){i.setColumn(r,3,[n[0],n[1],n[2],1])}function ib(r,n){const o=i.identity$1([]);return i.rotateZ$1(o,o,-n),i.rotateX$1(o,o,-r),o}function iw(r,n){const o=[r[0],r[1],0],s=[n[0],n[1],0];if(i.length(o)>=1e-15){const a=i.normalize([],o);i.scale$2(s,a,i.dot(s,a)),n[0]=s[0],n[1]=s[1]}const l=i.cross([],n,r);if(1e-15>i.len(l))return null;const c=Math.atan2(-l[1],l[0]);return ib(Math.atan2(Math.sqrt(r[0]*r[0]+r[1]*r[1]),-r[2]),c)}class iT{constructor(i,r){this.position=i,this.orientation=r}get position(){return this._position}set position(r){this._position=this._renderWorldCopies?function(r){if(!r)return;const n=Array.isArray(r)?new i.MercatorCoordinate(r[0],r[1],r[2]):r;return n.x=i.wrap(n.x,0,1),n}(r):r}lookAtPoint(r,n){if(this.orientation=null,!this.position)return;const o=this._elevation?this._elevation.getAtPointOrZero(i.MercatorCoordinate.fromLngLat(r)):0,s=this.position,a=i.MercatorCoordinate.fromLngLat(r,o),l=[a.x-s.x,a.y-s.y,a.z-s.z];n||(n=[0,0,1]),n[2]=Math.abs(n[2]),this.orientation=iw(l,n)}setPitchBearing(r,n){this.orientation=ib(i.degToRad(r),i.degToRad(-n))}}class iE{constructor(r,n){this._transform=i.identity([]),this._orientation=i.identity$1([]),n&&(this._orientation=n,ix(this._transform,this._orientation)),r&&iv(this._transform,r)}get mercatorPosition(){const r=this.position;return new i.MercatorCoordinate(r[0],r[1],r[2])}get position(){const r=i.getColumn(this._transform,3);return[r[0],r[1],r[2]]}set position(i){iv(this._transform,i)}get orientation(){return this._orientation}set orientation(i){this._orientation=i,ix(this._transform,this._orientation)}getPitchBearing(){const i=this.forward(),r=this.right();return{bearing:Math.atan2(-r[1],r[0]),pitch:Math.atan2(Math.sqrt(i[0]*i[0]+i[1]*i[1]),-i[2])}}setPitchBearing(i,r){this._orientation=ib(i,r),ix(this._transform,this._orientation)}forward(){const r=i.getColumn(this._transform,2);return[-r[0],-r[1],-r[2]]}up(){const r=i.getColumn(this._transform,1);return[-r[0],-r[1],-r[2]]}right(){const r=i.getColumn(this._transform,0);return[r[0],r[1],r[2]]}getCameraToWorld(r,n){const o=new Float64Array(16);return i.invert(o,this.getWorldToCamera(r,n)),o}getWorldToCameraPosition(r,n,o){const s=this.position;i.scale$2(s,s,-r);const a=new Float64Array(16);return i.fromScaling(a,[o,o,o]),i.translate(a,a,s),a[10]*=n,a}getWorldToCamera(r,n){const o=new Float64Array(16),s=new Float64Array(4),a=this.position;return i.conjugate(s,this._orientation),i.scale$2(a,a,-r),i.fromQuat(o,s),i.translate(o,o,a),o[1]*=-1,o[5]*=-1,o[9]*=-1,o[13]*=-1,o[8]*=n,o[9]*=n,o[10]*=n,o[11]*=n,o}getCameraToClipPerspective(r,n,o,s){const a=new Float64Array(16);return i.perspective(a,r,n,o,s),a}getDistanceToElevation(r){const n=0===r?0:i.mercatorZfromAltitude(r,this.position[1]),o=this.forward();return(n-this.position[2])/o[2]}clone(){return new iE([...this.position],[...this.orientation])}}function iS(r,n){const o=iM(r),s=function(r,n,o,s,a){const l=new i.LngLat(o.lng-180*iA,o.lat),c=new i.LngLat(o.lng+180*iA,o.lat),h=r.project(l.lng,l.lat),u=r.project(c.lng,c.lat),d=-Math.atan2(u.y-h.y,u.x-h.x),p=i.MercatorCoordinate.fromLngLat(o);p.y=i.clamp(p.y,-.999975,.999975);const f=p.toLngLat(),m=r.project(f.lng,f.lat),_=i.MercatorCoordinate.fromLngLat(f);_.x+=iA;const g=_.toLngLat(),y=r.project(g.lng,g.lat),x=iz(y.x-m.x,y.y-m.y,d),v=i.MercatorCoordinate.fromLngLat(f);v.y+=iA;const b=v.toLngLat(),w=r.project(b.lng,b.lat),T=iz(w.x-m.x,w.y-m.y,d),E=Math.abs(x.x)/Math.abs(T.y),S=i.identity([]);i.rotateZ(S,S,-d*(1-(a?0:s)));const I=i.identity([]);return i.scale(I,I,[1,1-(1-E)*s,1]),I[4]=-T.x/T.y*s,i.rotateZ(I,I,d),i.multiply$1(I,S,I),I}(r.projection,0,r.center,o,n),a=iI(r);return i.scale(s,s,[a,a,1]),s}function iI(r){const n=r.projection,o=iM(r),s=iC(n,r.center),a=iC(n,i.LngLat.convert(n.center));return Math.pow(2,s*o+(1-o)*a)}function iM(r){const n=r.projection.range;if(!n)return 0;const o=Math.max(r.width,r.height),s=Math.log(o/1024)/Math.LN2;return i.smoothstep(n[0]+s,n[1]+s,r.zoom)}const iA=1/4e4;function iC(r,n){const o=i.clamp(n.lat,-i.MAX_MERCATOR_LATITUDE,i.MAX_MERCATOR_LATITUDE),s=new i.LngLat(n.lng-180*iA,o),a=new i.LngLat(n.lng+180*iA,o),l=r.project(s.lng,o),c=r.project(a.lng,o),h=i.MercatorCoordinate.fromLngLat(s),u=i.MercatorCoordinate.fromLngLat(a),d=c.x-l.x,p=c.y-l.y,f=u.x-h.x,m=u.y-h.y,_=Math.sqrt((f*f+m*m)/(d*d+p*p));return Math.log(_)/Math.LN2}function iz(i,r,n){const o=Math.cos(n),s=Math.sin(n);return{x:i*o-r*s,y:i*s+r*o}}class ik{constructor(r,n,o,s,a){this.tileSize=512,this._renderWorldCopies=void 0===a||a,this._minZoom=r||0,this._maxZoom=n||22,this._minPitch=null==o?0:o,this._maxPitch=null==s?60:s,this.setProjection(),this.setMaxBounds(),this.width=0,this.height=0,this._center=new i.LngLat(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 iy,this._projMatrixCache={},this._alignedProjMatrixCache={},this._fogTileMatrixCache={},this._distanceTileDataCache={},this._camera=new iE,this._centerAltitude=0,this._averageElevation=0,this.cameraElevationReference="ground",this._projectionScaler=1,this._horizonShift=.1}clone(){const i=new ik(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return i.setProjection(this.getProjection()),i._elevation=this._elevation,i._centerAltitude=this._centerAltitude,i.tileSize=this.tileSize,i.setMaxBounds(this.getMaxBounds()),i.width=this.width,i.height=this.height,i.cameraElevationReference=this.cameraElevationReference,i._center=this._center,i._setZoom(this.zoom),i._cameraZoom=this._cameraZoom,i.angle=this.angle,i._fov=this._fov,i._pitch=this._pitch,i._nearZ=this._nearZ,i._farZ=this._farZ,i._averageElevation=this._averageElevation,i._unmodified=this._unmodified,i._edgeInsets=this._edgeInsets.clone(),i._camera=this._camera.clone(),i._calcMatrices(),i.freezeTileCoverage=this.freezeTileCoverage,i}get elevation(){return this._elevation}set elevation(i){this._elevation!==i&&(this._elevation=i,i?this._updateCenterElevation()&&this._updateCameraOnTerrain():(this._cameraZoom=null,this._centerAltitude=0),this._calcMatrices())}updateElevation(i){this._terrainEnabled()&&null==this._cameraZoom&&this._updateCenterElevation()&&this._updateCameraOnTerrain(),i&&this._constrainCameraAltitude(),this._calcMatrices()}getProjection(){return i.pick(this.projection,["name","center","parallels"])}setProjection(r){null==r&&(r={name:"mercator"}),this.projectionOptions=r;const n=this.projection?this.getProjection():void 0;return this.projection=i.getProjection(r),!s(n,this.getProjection())&&(this._calcMatrices(),!0)}get minZoom(){return this._minZoom}set minZoom(i){this._minZoom!==i&&(this._minZoom=i,this.zoom=Math.max(this.zoom,i))}get maxZoom(){return this._maxZoom}set maxZoom(i){this._maxZoom!==i&&(this._maxZoom=i,this.zoom=Math.min(this.zoom,i))}get minPitch(){return this._minPitch}set minPitch(i){this._minPitch!==i&&(this._minPitch=i,this.pitch=Math.max(this.pitch,i))}get maxPitch(){return this._maxPitch}set maxPitch(i){this._maxPitch!==i&&(this._maxPitch=i,this.pitch=Math.min(this.pitch,i))}get renderWorldCopies(){return this._renderWorldCopies&&!0===this.projection.supportsWorldCopies}set renderWorldCopies(i){void 0===i?i=!0:null===i&&(i=!1),this._renderWorldCopies=i}get worldSize(){return this.tileSize*this.scale}get cameraWorldSize(){const i=Math.max(this._camera.getDistanceToElevation(this._averageElevation),Number.EPSILON);return this._worldSizeFromZoom(this._zoomFromMercatorZ(i))}get pixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.worldSize)}get cameraPixelsPerMeter(){return this.projection.pixelsPerMeter(this.center.lat,this.cameraWorldSize)}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new i.pointGeometry(this.width,this.height)}get bearing(){return i.wrap(this.rotation,-180,180)}set bearing(i){this.rotation=i}get rotation(){return-this.angle/Math.PI*180}set rotation(r){var n,o,s,a,l,c,h,u,d,p;const f=-r*Math.PI/180;this.angle!==f&&(this._unmodified=!1,this.angle=f,this._calcMatrices(),this.rotationMatrix=(n=new i.ARRAY_TYPE(4),i.ARRAY_TYPE!=Float32Array&&(n[1]=0,n[2]=0),n[0]=1,n[3]=1,n),o=this.rotationMatrix,s=this.rotationMatrix,a=this.angle,l=s[0],c=s[1],h=s[2],u=s[3],d=Math.sin(a),p=Math.cos(a),o[0]=l*p+h*d,o[1]=c*p+u*d,o[2]=-(l*d)+h*p,o[3]=-(c*d)+u*p)}get pitch(){return this._pitch/Math.PI*180}set pitch(r){const n=i.clamp(r,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==n&&(this._unmodified=!1,this._pitch=n,this._calcMatrices())}get fov(){return this._fov/Math.PI*180}set fov(i){i=Math.max(.01,Math.min(60,i)),this._fov!==i&&(this._unmodified=!1,this._fov=i/180*Math.PI,this._calcMatrices())}get averageElevation(){return this._averageElevation}set averageElevation(i){this._averageElevation=i,this._calcFogMatrices()}get zoom(){return this._zoom}set zoom(i){const r=Math.min(Math.max(i,this.minZoom),this.maxZoom);this._zoom!==r&&(this._unmodified=!1,this._setZoom(r),this._terrainEnabled()&&this._updateCameraOnTerrain(),this._constrain(),this._calcMatrices())}_setZoom(i){this._zoom=i,this.scale=this.zoomScale(i),this.tileZoom=Math.floor(i),this.zoomFraction=i-this.tileZoom}_updateCenterElevation(){if(!this._elevation)return!1;const i=this._elevation.getAtPointOrZero(this.locationCoordinate(this.center),-1);return -1===i?(this._cameraZoom=null,!1):(this._centerAltitude=i,!0)}_updateCameraOnTerrain(){this._cameraZoom=this._zoomFromMercatorZ((this.pixelsPerMeter*this._centerAltitude+this.cameraToCenterDistance)/this.worldSize)}sampleAverageElevation(){if(!this._elevation)return 0;const r=this._elevation,n=[[.5,.2],[.3,.5],[.5,.5],[.7,.5],[.5,.8]],o=this.horizonLineFromTop();let s=0,a=0;for(let l=0;lr.maxzoom&&(n=r.maxzoom);const l=this.locationCoordinate(this.center),c=1<{const n=1/4e4,o=new i.MercatorCoordinate(r.x+n,r.y,r.z),s=new i.MercatorCoordinate(r.x,r.y+n,r.z),a=r.toLngLat(),l=o.toLngLat(),c=s.toLngLat(),h=this.locationCoordinate(a),u=this.locationCoordinate(l),d=this.locationCoordinate(c),p=Math.hypot(u.x-h.x,u.y-h.y),f=Math.hypot(d.x-h.x,d.y-h.y);return Math.sqrt(p*f)*v/n},w=r=>({aabb:i.tileAABB(this,c,0,0,0,r,x,y,this.projection),zoom:0,x:0,y:0,minZ:x,maxZ:y,wrap:r,fullyVisible:!1}),T=[];let E=[];const S=n,I=r.reparseOverscaled?o:n,M=i=>i*i,A=M((f-this._centerAltitude)*p),C=i=>{if(!this._elevation||!i.tileID||!a)return;const r=this._elevation.getMinMaxForTile(i.tileID),n=i.aabb;r?(n.min[2]=r.min,n.max[2]=r.max,n.center[2]=(n.min[2]+n.max[2])/2):(i.shouldSplit=z(i),i.shouldSplit||(n.min[2]=n.max[2]=n.center[2]=this._centerAltitude))},z=r=>{if(r.zoom.85?1:u}const d=n*n+a*a+l;return d{if(r*M(.707)0;){const P=T.pop(),D=P.x,L=P.y;let B=P.fullyVisible;if(!B){const R=P.aabb.intersects(u);if(0===R)continue;B=2===R}if(P.zoom!==S&&z(P))for(let F=0;F<4;F++){const O=(D<<1)+F%2,U=(L<<1)+(F>>1),V={aabb:a?P.aabb.quadrant(F):i.tileAABB(this,c,P.zoom+1,O,U,P.wrap,P.minZ,P.maxZ,this.projection),zoom:P.zoom+1,x:O,y:U,wrap:P.wrap,fullyVisible:B,tileID:void 0,shouldSplit:void 0,minZ:P.minZ,maxZ:P.maxZ};s&&(V.tileID=new i.OverscaledTileID(P.zoom+1===S?I:P.zoom+1,P.wrap,P.zoom+1,O,U),C(V)),T.push(V)}else{const N=P.zoom===S?I:P.zoom;if(r.minzoom&&r.minzoom>N)continue;const j=h[0]-(.5+D+(P.wrap<{const o=[0,0,0,1],s=[i.EXTENT,i.EXTENT,0,1],a=this.calculateFogTileMatrix(n.tileID.toUnwrapped());i.transformMat4$1(o,o,a),i.transformMat4$1(s,s,a);const l=i.getAABBPointSquareDist(o,s);if(0===l)return!0;let c=!1;const h=this._elevation;if(h&&l>$&&0!==q){let u;const d=this.calculateProjMatrix(n.tileID.toUnwrapped());r.isTerrainDEM||(u=h.getMinMaxForTile(n.tileID)),u||(u={min:x,max:y});const p=i.furthestTileCorner(this.rotation),f=[p[0]*i.EXTENT,p[1]*i.EXTENT,u.max];i.transformMat4(f,f,d),c=(1-f[1])*this.height*.5i.distanceSq-r.distanceSq).map(i=>i.tileID)}resize(i,r){this.width=i,this.height=r,this.pixelsToGLUnits=[2/i,-2/r],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(i){return Math.pow(2,i)}scaleZoom(i){return Math.log(i)/Math.LN2}project(r){const n=i.clamp(r.lat,-i.MAX_MERCATOR_LATITUDE,i.MAX_MERCATOR_LATITUDE),o=this.projection.project(r.lng,n);return new i.pointGeometry(o.x*this.worldSize,o.y*this.worldSize)}unproject(i){return this.projection.unproject(i.x/this.worldSize,i.y/this.worldSize)}get point(){return this.project(this.center)}setLocationAtPoint(r,n){const o=this.pointCoordinate(n),s=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(r);this.setLocation(new i.MercatorCoordinate(a.x-(o.x-s.x),a.y-(o.y-s.y)))}setLocation(i){this.center=this.coordinateLocation(i),this.projection.wrap&&(this.center=this.center.wrap())}locationPoint(i){return this.projection.locationPoint(this,i)}locationPoint3D(i){return this._coordinatePoint(this.locationCoordinate(i),!0)}pointLocation(i){return this.coordinateLocation(this.pointCoordinate(i))}pointLocation3D(i){return this.coordinateLocation(this.pointCoordinate3D(i))}locationCoordinate(r,n){const o=n?i.mercatorZfromAltitude(n,r.lat):void 0,s=this.projection.project(r.lng,r.lat);return new i.MercatorCoordinate(s.x,s.y,o)}coordinateLocation(i){return this.projection.unproject(i.x,i.y)}pointRayIntersection(r,n){const o=null!=n?n:this._centerAltitude,s=[r.x,r.y,0,1],a=[r.x,r.y,1,1];i.transformMat4$1(s,s,this.pixelMatrixInverse),i.transformMat4$1(a,a,this.pixelMatrixInverse);const l=a[3];i.scale$1(s,s,1/s[3]),i.scale$1(a,a,1/l);const c=s[2],h=a[2];return{p0:s,p1:a,t:c===h?0:(o-c)/(h-c)}}screenPointToMercatorRay(r){const n=[r.x,r.y,0,1],o=[r.x,r.y,1,1];return i.transformMat4$1(n,n,this.pixelMatrixInverse),i.transformMat4$1(o,o,this.pixelMatrixInverse),i.scale$1(n,n,1/n[3]),i.scale$1(o,o,1/o[3]),n[2]=i.mercatorZfromAltitude(n[2],this._center.lat)*this.worldSize,o[2]=i.mercatorZfromAltitude(o[2],this._center.lat)*this.worldSize,i.scale$1(n,n,1/this.worldSize),i.scale$1(o,o,1/this.worldSize),new i.Ray([n[0],n[1],n[2]],i.normalize([],i.sub([],o,n)))}rayIntersectionCoordinate(r){const{p0:n,p1:o,t:s}=r,a=i.mercatorZfromAltitude(n[2],this._center.lat),l=i.mercatorZfromAltitude(o[2],this._center.lat);return new i.MercatorCoordinate(i.number(n[0],o[0],s)/this.worldSize,i.number(n[1],o[1],s)/this.worldSize,i.number(a,l,s))}pointCoordinate(i,r=this._centerAltitude){return this.projection.createTileTransform(this,this.worldSize).pointCoordinate(i.x,i.y,r)}pointCoordinate3D(r){if(!this.elevation)return this.pointCoordinate(r);const n=this.elevation;let o=this.elevation.pointCoordinate(r);if(o)return new i.MercatorCoordinate(o[0],o[1],o[2]);let s=0,a=this.horizonLineFromTop();if(r.y>a)return this.pointCoordinate(r);const l=.02*a,c=r.clone();for(let h=0;h<10&&a-s>l;h++){c.y=i.number(s,a,.66);const u=n.pointCoordinate(c);u?(a=c.y,o=u):s=c.y}return o?new i.MercatorCoordinate(o[0],o[1],o[2]):this.pointCoordinate(r)}isPointAboveHorizon(i){if(this.elevation)return!this.elevation.pointCoordinate(i);{const r=this.horizonLineFromTop();return i.y0?new i.pointGeometry(s[0]/s[3],s[1]/s[3]):new i.pointGeometry(Number.MAX_VALUE,Number.MAX_VALUE)}_getBounds(r,n){var o,s,a,l;const c=new i.pointGeometry(this._edgeInsets.left,this._edgeInsets.top),h=new i.pointGeometry(this.width-this._edgeInsets.right,this._edgeInsets.top),u=new i.pointGeometry(this.width-this._edgeInsets.right,this.height-this._edgeInsets.bottom),d=new i.pointGeometry(this._edgeInsets.left,this.height-this._edgeInsets.bottom);let p=this.pointCoordinate(c,r),f=this.pointCoordinate(h,r);const m=this.pointCoordinate(u,n),_=this.pointCoordinate(d,n);return p.y>1&&f.y>=0?p=new i.MercatorCoordinate((1-_.y)/(((o=p).y-_.y)/(o.x-_.x))+_.x,1):p.y<0&&f.y<=1&&(p=new i.MercatorCoordinate(-_.y/(((s=p).y-_.y)/(s.x-_.x))+_.x,0)),f.y>1&&p.y>=0?f=new i.MercatorCoordinate((1-m.y)/(((a=f).y-m.y)/(a.x-m.x))+m.x,1):f.y<0&&p.y<=1&&(f=new i.MercatorCoordinate(-m.y/(((l=f).y-m.y)/(l.x-m.x))+m.x,0)),new i.LngLatBounds().extend(this.coordinateLocation(p)).extend(this.coordinateLocation(f)).extend(this.coordinateLocation(_)).extend(this.coordinateLocation(m))}_getBounds3D(){const i=this.elevation;if(!i.visibleDemTiles.length)return this._getBounds(0,0);const r=i.visibleDemTiles.reduce((i,r)=>{if(r.dem){const n=r.dem.tree;i.min=Math.min(i.min,n.minimums[0]),i.max=Math.max(i.max,n.maximums[0])}return i},{min:Number.MAX_VALUE,max:0});return this._getBounds(r.min*i.exaggeration(),r.max*i.exaggeration())}getBounds(){return this._terrainEnabled()?this._getBounds3D():this._getBounds(0,0)}horizonLineFromTop(i=!0){const r=this.height/2/Math.tan(this._fov/2)/Math.tan(Math.max(this._pitch,.1))+this.centerOffset.y,n=this.height/2-r*(1-this._horizonShift);return i?Math.max(0,n):n}getMaxBounds(){return this.maxBounds}setMaxBounds(r){this.maxBounds=r,this.minLat=-i.MAX_MERCATOR_LATITUDE,this.maxLat=i.MAX_MERCATOR_LATITUDE,this.minLng=-180,this.maxLng=180,r&&(this.minLat=r.getSouth(),this.maxLat=r.getNorth(),this.minLng=r.getWest(),this.maxLng=r.getEast(),this.maxLngp&&(c=p-u),p-dm&&(l=m-h),m-f.5?w-1:w,T>.5?T-1:T,0]),this.alignedProjMatrix=E,c=i.create(),i.scale(c,c,[this.width/2,-this.height/2,1]),i.translate(c,c,[1,-1,0]),this.labelPlaneMatrix=c,c=i.create(),i.scale(c,c,[1,-1,1]),i.translate(c,c,[-1,-1,0]),i.scale(c,c,[2/this.width,2/this.height,1]),this.glCoordMatrix=c,this.pixelMatrix=i.multiply$1(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),this._calcFogMatrices(),this._distanceTileDataCache={},!(c=i.invert(new Float64Array(16),this.pixelMatrix)))throw Error("failed to invert matrix");this.pixelMatrixInverse=c,this._projMatrixCache={},this._alignedProjMatrixCache={},this._pixelsToTileUnitsCache={}}_calcFogMatrices(){this._fogTileMatrixCache={};const r=this.cameraWorldSize,n=this.cameraPixelsPerMeter,o=this._camera.position,s=1/this.height,a=[r,r,n];i.scale$2(a,a,s),i.scale$2(o,o,-1),i.multiply$2(o,o,a);const l=i.create();i.translate(l,l,o),i.scale(l,l,a),this.mercatorFogMatrix=l,this.worldToFogMatrix=this._camera.getWorldToCameraPosition(r,n,s)}_computeCameraPosition(i){const r=(i=i||this.pixelsPerMeter)/this.pixelsPerMeter,n=this._camera.forward(),o=this.point,s=this._mercatorZfromZoom(this._cameraZoom?this._cameraZoom:this._zoom)*r-i/this.worldSize*this._centerAltitude;return[o.x/this.worldSize-n[0]*s,o.y/this.worldSize-n[1]*s,i/this.worldSize*this._centerAltitude-n[2]*s]}_updateCameraState(){this.height&&(this._camera.setPitchBearing(this._pitch,this.angle),this._camera.position=this._computeCameraPosition())}_translateCameraConstrained(r){const n=this._maxCameraBoundsDistance()*Math.cos(this._pitch),o=r[2];let s=1;o>0&&(s=Math.min((n-this._camera.position[2])/o,1)),this._camera.position=i.scaleAndAdd([],this._camera.position,r,s),this._updateStateFromCamera()}_updateStateFromCamera(){const r=this._camera.position,n=this._camera.forward(),{pitch:o,bearing:s}=this._camera.getPitchBearing(),a=i.mercatorZfromAltitude(this._centerAltitude,this.center.lat)*this._projectionScaler,l=this._mercatorZfromZoom(this._maxZoom)*Math.cos(i.degToRad(this._maxPitch)),c=Math.max((r[2]-a)/Math.cos(o),l),h=this._zoomFromMercatorZ(c);i.scaleAndAdd(r,r,n,c),this._pitch=i.clamp(o,i.degToRad(this.minPitch),i.degToRad(this.maxPitch)),this.angle=i.wrap(s,-Math.PI,Math.PI),this._setZoom(i.clamp(h,this._minZoom,this._maxZoom)),this._terrainEnabled()&&this._updateCameraOnTerrain(),this._center=this.coordinateLocation(new i.MercatorCoordinate(r[0],r[1],r[2])),this._unmodified=!1,this._constrain(),this._calcMatrices()}_worldSizeFromZoom(i){return Math.pow(2,i)*this.tileSize}_mercatorZfromZoom(i){return this.cameraToCenterDistance/this._worldSizeFromZoom(i)}_minimumHeightOverTerrain(){const i=Math.min((null!=this._cameraZoom?this._cameraZoom:this._zoom)+2,this._maxZoom);return this._mercatorZfromZoom(i)}_zoomFromMercatorZ(i){return this.scaleZoom(this.cameraToCenterDistance/(i*this.tileSize))}_terrainEnabled(){return!(!this._elevation||!this.projection.supportsTerrain&&(i.warnOnce("Terrain is not yet supported with alternate projections. Use mercator to enable terrain."),1))}anyCornerOffEdge(r,n){const o=Math.min(r.x,n.x),s=Math.max(r.x,n.x),a=Math.min(r.y,n.y),l=Math.max(r.y,n.y);if(au||f.y>1)return!0}return!1}isHorizonVisible(){return this.pitch+i.radToDeg(this.fovAboveCenter)>88||this.anyCornerOffEdge(new i.pointGeometry(0,0),new i.pointGeometry(this.width,this.height))}zoomDeltaToMovement(r,n){const o=i.length(i.sub([],this._camera.position,r)),s=this._zoomFromMercatorZ(o)+n;return o-this._mercatorZfromZoom(s)}getCameraPoint(){const r=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new i.pointGeometry(0,r))}}function iP(i,r){let n=!1,o=null;const s=()=>{o=null,n&&(i(),o=setTimeout(s,r),n=!1)};return()=>(n=!0,o||s(),o)}class iD{constructor(r){this._hashName=r&&encodeURIComponent(r),i.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=iP(this._updateHashUnthrottled.bind(this),300)}addTo(r){return this._map=r,i.window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return i.window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this}getHashString(r){const n=this._map.getCenter(),o=Math.round(100*this._map.getZoom())/100,s=Math.ceil((o*Math.LN2+Math.log(512/360/.5))/Math.LN10),a=Math.pow(10,s),l=Math.round(n.lng*a)/a,c=Math.round(n.lat*a)/a,h=this._map.getBearing(),u=this._map.getPitch();let d="";if(d+=r?`/${l}/${c}/${o}`:`${o}/${c}/${l}`,(h||u)&&(d+="/"+Math.round(10*h)/10),u&&(d+=`/${Math.round(u)}`),this._hashName){const p=this._hashName;let f=!1;const m=i.window.location.hash.slice(1).split("&").map(i=>{const r=i.split("=")[0];return r===p?(f=!0,`${r}=${d}`):i}).filter(i=>i);return f||m.push(`${p}=${d}`),`#${m.join("&")}`}return`#${d}`}_getCurrentHash(){const r=i.window.location.hash.replace("#","");if(this._hashName){let n;return r.split("&").map(i=>i.split("=")).forEach(i=>{i[0]===this._hashName&&(n=i)}),(n&&n[1]||"").split("/")}return r.split("/")}_onHashChange(){const i=this._getCurrentHash();if(i.length>=3&&!i.some(i=>isNaN(i))){const r=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(i[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+i[2],+i[1]],zoom:+i[0],bearing:r,pitch:+(i[4]||0)}),!0}return!1}_updateHashUnthrottled(){const r=i.window.location.href.replace(/(#.+)?$/,this.getHashString());i.window.history.replaceState(i.window.history.state,null,r)}}const iL={linearity:.3,easing:i.bezier(0,0,.3,1)},iB=i.extend({deceleration:2500,maxSpeed:1400},iL),iR=i.extend({deceleration:20,maxSpeed:1400},iL),iF=i.extend({deceleration:1e3,maxSpeed:360},iL),iO=i.extend({deceleration:1e3,maxSpeed:90},iL);class iU{constructor(i){this._map=i,this.clear()}clear(){this._inertiaBuffer=[]}record(r){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:i.exported.now(),settings:r})}_drainInertiaBuffer(){const r=this._inertiaBuffer,n=i.exported.now();for(;r.length>0&&n-r[0].time>160;)r.shift()}_onMoveEnd(r){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const n={zoom:0,bearing:0,pitch:0,pan:new i.pointGeometry(0,0),pinchAround:void 0,around:void 0};for(const{settings:o}of this._inertiaBuffer)n.zoom+=o.zoomDelta||0,n.bearing+=o.bearingDelta||0,n.pitch+=o.pitchDelta||0,o.panDelta&&n.pan._add(o.panDelta),o.around&&(n.around=o.around),o.pinchAround&&(n.pinchAround=o.pinchAround);const s=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,a={};if(n.pan.mag()){const l=iN(n.pan.mag(),s,i.extend({},iB,r||{}));a.offset=n.pan.mult(l.amount/n.pan.mag()),a.center=this._map.transform.center,iV(a,l)}if(n.zoom){const c=iN(n.zoom,s,iR);a.zoom=this._map.transform.zoom+c.amount,iV(a,c)}if(n.bearing){const h=iN(n.bearing,s,iF);a.bearing=this._map.transform.bearing+i.clamp(h.amount,-179,179),iV(a,h)}if(n.pitch){const u=iN(n.pitch,s,iO);a.pitch=this._map.transform.pitch+u.amount,iV(a,u)}if(a.zoom||a.bearing){const d=void 0===n.pinchAround?n.around:n.pinchAround;a.around=d?this._map.unproject(d):this._map.getCenter()}return this.clear(),i.extend(a,{noMoveStart:!0})}}function iV(i,r){(!i.duration||i.durationn.unproject(i)),h=l.reduce((i,r,n,o)=>i.add(r.div(o.length)),new i.pointGeometry(0,0));super(r,{points:l,point:h,lngLats:c,lngLat:n.unproject(h),originalEvent:o}),this._defaultPrevented=!1}}class iZ extends i.Event{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(i,r,n){super(i,{originalEvent:n}),this._defaultPrevented=!1}}class i${constructor(i,r){this._map=i,this._clickTolerance=r.clickTolerance}reset(){delete this._mousedownPos}wheel(i){return this._firePreventable(new iZ(i.type,this._map,i))}mousedown(i,r){return this._mousedownPos=r,this._firePreventable(new ij(i.type,this._map,i))}mouseup(i){this._map.fire(new ij(i.type,this._map,i))}preclick(r){const n=i.extend({},r);n.type="preclick",this._map.fire(new ij(n.type,this._map,n))}click(i,r){this._mousedownPos&&this._mousedownPos.dist(r)>=this._clickTolerance||(this.preclick(i),this._map.fire(new ij(i.type,this._map,i)))}dblclick(i){return this._firePreventable(new ij(i.type,this._map,i))}mouseover(i){this._map.fire(new ij(i.type,this._map,i))}mouseout(i){this._map.fire(new ij(i.type,this._map,i))}touchstart(i){return this._firePreventable(new iG(i.type,this._map,i))}touchmove(i){this._map.fire(new iG(i.type,this._map,i))}touchend(i){this._map.fire(new iG(i.type,this._map,i))}touchcancel(i){this._map.fire(new iG(i.type,this._map,i))}_firePreventable(i){if(this._map.fire(i),i.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class iq{constructor(i){this._map=i}reset(){this._delayContextMenu=!1,delete this._contextMenuEvent}mousemove(i){this._map.fire(new ij(i.type,this._map,i))}mousedown(){this._delayContextMenu=!0}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new ij("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(i){this._delayContextMenu?this._contextMenuEvent=i:this._map.fire(new ij(i.type,this._map,i)),this._map.listens("contextmenu")&&i.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class iX{constructor(i,r){this._map=i,this._el=i.getCanvasContainer(),this._container=i.getContainer(),this._clickTolerance=r.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(i,r){this.isEnabled()&&i.shiftKey&&0===i.button&&(a.disableDrag(),this._startPos=this._lastPos=r,this._active=!0)}mousemoveWindow(i,r){if(!this._active||this._lastPos.equals(r)||!this._box&&r.dist(this._startPos){this._box&&(this._box.style.transform=`translate(${o}px,${l}px)`,this._box.style.width=s-o+"px",this._box.style.height=c-l+"px")})}mouseupWindow(r,n){if(!this._active||0!==r.button)return;const o=this._startPos;if(this.reset(),a.suppressClick(),o.x!==n.x||o.y!==n.y)return this._map.fire(new i.Event("boxzoomend",{originalEvent:r})),{cameraAnimation:i=>i.fitScreenCoordinates(o,n,this._map.getBearing(),{linear:!1})};this._fireEvent("boxzoomcancel",r)}keydown(i){this._active&&27===i.keyCode&&(this.reset(),this._fireEvent("boxzoomcancel",i))}blur(){this.reset()}reset(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(this._box.remove(),this._box=null),a.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(r,n){return this._map.fire(new i.Event(r,{originalEvent:n}))}}function iW(i,r){const n={};for(let o=0;othis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=r.timeStamp),o.length===this.numTouches&&(this.centroid=function(r){const n=new i.pointGeometry(0,0);for(const o of r)n._add(o);return n.div(r.length)}(n),this.touches=iW(o,n)))}touchmove(i,r,n){if(this.aborted||!this.centroid)return;const o=iW(n,r);for(const s in this.touches){const a=this.touches[s],l=o[s];(!l||l.dist(a)>30)&&(this.aborted=!0)}}touchend(i,r,n){if((!this.centroid||i.timeStamp-this.startTime>500)&&(this.aborted=!0),0===n.length){const o=!this.aborted&&this.centroid;if(this.reset(),o)return o}}}class iK{constructor(i){this.singleTap=new iH(i),this.numTaps=i.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(i,r,n){this.singleTap.touchstart(i,r,n)}touchmove(i,r,n){this.singleTap.touchmove(i,r,n)}touchend(i,r,n){const o=this.singleTap.touchend(i,r,n);if(o){const s=i.timeStamp-this.lastTime<500,a=!this.lastTap||30>this.lastTap.dist(o);if(s&&a||this.reset(),this.count++,this.lastTime=i.timeStamp,this.lastTap=o,this.count===this.numTaps)return this.reset(),o}}}class iY{constructor(){this._zoomIn=new iK({numTouches:1,numTaps:2}),this._zoomOut=new iK({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(i,r,n){this._zoomIn.touchstart(i,r,n),this._zoomOut.touchstart(i,r,n)}touchmove(i,r,n){this._zoomIn.touchmove(i,r,n),this._zoomOut.touchmove(i,r,n)}touchend(i,r,n){const o=this._zoomIn.touchend(i,r,n),s=this._zoomOut.touchend(i,r,n);return o?(this._active=!0,i.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:r=>r.easeTo({duration:300,zoom:r.getZoom()+1,around:r.unproject(o)},{originalEvent:i})}):s?(this._active=!0,i.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:r=>r.easeTo({duration:300,zoom:r.getZoom()-1,around:r.unproject(s)},{originalEvent:i})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}const iJ={0:1,2:2};class iQ{constructor(i){this.reset(),this._clickTolerance=i.clickTolerance||1}blur(){this.reset()}reset(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton}_correctButton(i,r){return!1}_move(i,r){return{}}mousedown(i,r){if(this._lastPoint)return;const n=a.mouseButton(i);this._correctButton(i,n)&&(this._lastPoint=r,this._eventButton=n)}mousemoveWindow(i,r){const n=this._lastPoint;if(n){if(i.preventDefault(),function(i,r){const n=iJ[r];return void 0===i.buttons||(i.buttons&n)!==n}(i,this._eventButton))this.reset();else if(this._moved||!(r.dist(n)0&&(this._active=!0);const s=iW(o,n),a=new i.pointGeometry(0,0),l=new i.pointGeometry(0,0);let c=0;for(const h in s){const u=s[h],d=this._touches[h];d&&(a._add(u),l._add(u.sub(d)),c++,s[h]=u)}if(this._touches=s,c{this._alertContainer.classList.remove("mapboxgl-touch-pan-blocker-show")},500)}}class i5{constructor(){this.reset()}reset(){this._active=!1,delete this._firstTwoTouches}_start(i){}_move(i,r,n){return{}}touchstart(i,r,n){this._firstTwoTouches||n.length<2||(this._firstTwoTouches=[n[0].identifier,n[1].identifier],this._start([r[0],r[1]]))}touchmove(i,r,n){if(!this._firstTwoTouches)return;i.preventDefault();const[o,s]=this._firstTwoTouches,a=i4(n,r,o),l=i4(n,r,s);if(!a||!l)return;const c=this._aroundCenter?null:a.add(l).div(2);return this._move([a,l],c,i)}touchend(i,r,n){if(!this._firstTwoTouches)return;const[o,s]=this._firstTwoTouches,l=i4(n,r,o),c=i4(n,r,s);l&&c||(this._active&&a.suppressClick(),this.reset())}touchcancel(){this.reset()}enable(i){this._enabled=!0,this._aroundCenter=!!i&&"center"===i.around}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}function i4(i,r,n){for(let o=0;oMath.abs(i6(this._distance,this._startDistance))))return this._active=!0,{zoomDelta:i6(this._distance,n),pinchAround:r}}}function i9(i,r){return 180*i.angleWith(r)/Math.PI}class i7 extends i5{reset(){super.reset(),delete this._minDiameter,delete this._startVector,delete this._vector}_start(i){this._startVector=this._vector=i[0].sub(i[1]),this._minDiameter=i[0].dist(i[1])}_move(i,r){const n=this._vector;if(this._vector=i[0].sub(i[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:i9(this._vector,n),pinchAround:r}}_isBelowThreshold(i){this._minDiameter=Math.min(this._minDiameter,i.mag());const r=25/(Math.PI*this._minDiameter)*360,n=i9(i,this._startVector);return Math.abs(n)Math.abs(i.x)}class rt extends i5{constructor(i){super(),this._map=i}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}_start(i){this._lastPoints=i,re(i[0].sub(i[1]))&&(this._valid=!1)}_move(i,r,n){const o=i[0].sub(this._lastPoints[0]),s=i[1].sub(this._lastPoints[1]);if(!(this._map._cooperativeGestures&&n.touches.length<3)&&(this._valid=this.gestureBeginsVertically(o,s,n.timeStamp),this._valid))return this._lastPoints=i,this._active=!0,{pitchDelta:-((o.y+s.y)/2*.5)}}gestureBeginsVertically(i,r,n){if(void 0!==this._valid)return this._valid;const o=i.mag()>=2,s=r.mag()>=2;if(!o&&!s)return;if(!o||!s)return void 0===this._firstMove&&(this._firstMove=n),n-this._firstMove<100&&void 0;const a=i.y>0==r.y>0;return re(i)&&re(r)&&a}}const ri={panStep:100,bearingStep:15,pitchStep:10};class rr{constructor(){this._panStep=ri.panStep,this._bearingStep=ri.bearingStep,this._pitchStep=ri.pitchStep,this._rotationDisabled=!1}blur(){this.reset()}reset(){this._active=!1}keydown(i){if(i.altKey||i.ctrlKey||i.metaKey)return;let r=0,n=0,o=0,s=0,a=0;switch(i.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:i.shiftKey?n=-1:(i.preventDefault(),s=-1);break;case 39:i.shiftKey?n=1:(i.preventDefault(),s=1);break;case 38:i.shiftKey?o=1:(i.preventDefault(),a=-1);break;case 40:i.shiftKey?o=-1:(i.preventDefault(),a=1);break;default:return}return this._rotationDisabled&&(n=0,o=0),{cameraAnimation:l=>{const c=l.getZoom();l.easeTo({duration:300,easeId:"keyboardHandler",easing:rn,zoom:r?Math.round(c)+r*(i.shiftKey?2:1):c,bearing:l.getBearing()+n*this._bearingStep,pitch:l.getPitch()+o*this._pitchStep,offset:[-s*this._panStep,-a*this._panStep],center:l.getCenter()},{originalEvent:i})}}}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 rn(i){return i*(2-i)}class ro{constructor(r,n){this._map=r,this._el=r.getCanvasContainer(),this._handler=n,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,i.bindAll(["_onTimeout","_addScrollZoomBlocker","_showBlockerAlert","_isFullscreen"],this)}setZoomRate(i){this._defaultZoomRate=i}setWheelZoomRate(i){this._wheelZoomRate=i}isEnabled(){return!!this._enabled}isActive(){return!!this._active||void 0!==this._finishTimeout}isZooming(){return!!this._zooming}enable(i){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!i&&"center"===i.around,this._map._cooperativeGestures&&this._addScrollZoomBlocker())}disable(){this.isEnabled()&&(this._enabled=!1,this._map._cooperativeGestures&&(clearTimeout(this._alertTimer),this._alertContainer.remove()))}wheel(r){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!(r.ctrlKey||r.metaKey||this.isZooming()||this._isFullscreen()))return void this._showBlockerAlert();"hidden"!==this._alertContainer.style.visibility&&(this._alertContainer.style.visibility="hidden",clearTimeout(this._alertTimer))}let n=r.deltaMode===i.window.WheelEvent.DOM_DELTA_LINE?40*r.deltaY:r.deltaY;const o=i.exported.now(),s=o-(this._lastWheelEventTime||0);this._lastWheelEventTime=o,0!==n&&n%4.000244140625==0?this._type="wheel":0!==n&&4>Math.abs(n)?this._type="trackpad":s>400?(this._type=null,this._lastValue=n,this._timeout=setTimeout(this._onTimeout,40,r)):this._type||(this._type=200>Math.abs(s*n)?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,n+=this._lastValue)),r.shiftKey&&n&&(n/=4),this._type&&(this._lastWheelEvent=r,this._delta-=n,this._active||this._start(r)),r.preventDefault()}_onTimeout(i){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(i)}_start(i){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 r=a.mousePos(this._el,i);this._aroundPoint=this._aroundCenter?this._map.transform.centerPoint:r,this._aroundCoord=this._map.transform.pointCoordinate3D(this._aroundPoint),this._targetZoom=void 0,this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const r=this._map.transform,n=()=>r._terrainEnabled()&&this._aroundCoord?r.computeZoomRelativeTo(this._aroundCoord):r.zoom;if(0!==this._delta){const o="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate;let s=2/(1+Math.exp(-Math.abs(this._delta*o)));this._delta<0&&0!==s&&(s=1/s);const a=n(),l=Math.pow(2,a),c="number"==typeof this._targetZoom?r.zoomScale(this._targetZoom):l;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(c*s))),"wheel"===this._type&&(this._startZoom=n(),this._easing=this._smoothOutEasing(200)),this._delta=0}const h="number"==typeof this._targetZoom?this._targetZoom:n(),u=this._startZoom,d=this._easing;let p,f=!1;if("wheel"===this._type&&u&&d){const m=Math.min((i.exported.now()-this._lastWheelEventTime)/200,1),_=d(m);p=i.number(u,h,_),m<1?this._frameId||(this._frameId=!0):f=!0}else p=h,f=!0;return this._active=!0,f&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!f,zoomDelta:p-n(),around:this._aroundPoint,aroundCoord:this._aroundCoord,originalEvent:this._lastWheelEvent}}_smoothOutEasing(r){let n=i.ease;if(this._prevEase){const o=this._prevEase,s=(i.exported.now()-o.start)/o.duration,a=o.easing(s+.01)-o.easing(s),l=.27/Math.sqrt(a*a+1e-4)*.01,c=Math.sqrt(.0729-l*l);n=i.bezier(l,c,.25,1)}return this._prevEase={start:i.exported.now(),duration:r,easing:n},n}blur(){this.reset()}reset(){this._active=!1}_addScrollZoomBlocker(){this._map&&!this._alertContainer&&(this._alertContainer=a.create("div","mapboxgl-scroll-zoom-blocker",this._map._container),this._alertContainer.textContent=/(Mac|iPad)/i.test(i.window.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`)}_isFullscreen(){return!!i.window.document.fullscreenElement}_showBlockerAlert(){"hidden"===this._alertContainer.style.visibility&&(this._alertContainer.style.visibility="visible"),this._alertContainer.classList.add("mapboxgl-scroll-zoom-blocker-show"),clearTimeout(this._alertTimer),this._alertTimer=setTimeout(()=>{this._alertContainer.classList.remove("mapboxgl-scroll-zoom-blocker-show")},200)}}class rs{constructor(i,r){this._clickZoom=i,this._tapZoom=r}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 ra{constructor(){this.reset()}reset(){this._active=!1}blur(){this.reset()}dblclick(i,r){return i.preventDefault(),{cameraAnimation(n){n.easeTo({duration:300,zoom:n.getZoom()+(i.shiftKey?-1:1),around:n.unproject(r)},{originalEvent:i})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class rl{constructor(){this._tap=new iK({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()}touchstart(i,r,n){this._swipePoint||(this._tapTime&&i.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?n.length>0&&(this._swipePoint=r[0],this._swipeTouch=n[0].identifier):this._tap.touchstart(i,r,n))}touchmove(i,r,n){if(this._tapTime){if(this._swipePoint){if(n[0].identifier!==this._swipeTouch)return;const o=r[0],s=o.y-this._swipePoint.y;return this._swipePoint=o,i.preventDefault(),this._active=!0,{zoomDelta:s/128}}}else this._tap.touchmove(i,r,n)}touchend(i,r,n){this._tapTime?this._swipePoint&&0===n.length&&this.reset():this._tap.touchend(i,r,n)&&(this._tapTime=i.timeStamp)}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class rc{constructor(i,r,n){this._el=i,this._mousePan=r,this._touchPan=n}enable(i){this._inertiaOptions=i||{},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 rh{constructor(i,r,n){this._pitchWithRotate=i.pitchWithRotate,this._mouseRotate=r,this._mousePitch=n}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 ru{constructor(i,r,n,o){this._el=i,this._touchZoom=r,this._touchRotate=n,this._tapDragZoom=o,this._rotationDisabled=!1,this._enabled=!0}enable(i){this._touchZoom.enable(i),this._rotationDisabled||this._touchRotate.enable(i),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 rd=i=>i.zoom||i.drag||i.pitch||i.rotate;class rp extends i.Event{}class rf{constructor(){this.constants=[1,1,.01],this.radius=0}setup(r,n){const o=i.sub([],n,r);this.radius=i.length(o[2]<0?i.div([],o,this.constants):[o[0],o[1],0])}projectRay(r){i.div(r,r,this.constants),i.normalize(r,r),i.mul$1(r,r,this.constants);const n=i.scale$2([],r,this.radius);if(n[2]>0){const o=i.scale$2([],[0,0,1],i.dot(n,[0,0,1])),s=i.scale$2([],i.normalize([],[n[0],n[1],0]),this.radius),a=i.add([],n,i.scale$2([],i.sub([],i.add([],s,o),n),2));n[0]=a[0],n[1]=a[1]}return n}}function rm(i){return i.panDelta&&i.panDelta.mag()||i.zoomDelta||i.bearingDelta||i.pitchDelta}class r_{constructor(r,n){this._map=r,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new iU(r),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._trackingEllipsoid=new rf,this._dragOrigin=null,this._eventsInProgress={},this._addDefaultHandlers(n),i.bindAll(["handleEvent","handleWindowEvent"],this);const o=this._el;for(const[s,a,l]of(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],[i.window.document,"mousemove",{capture:!0}],[i.window.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],[i.window,"blur",void 0]],this._listeners))s.addEventListener(a,s===i.window.document?this.handleWindowEvent:this.handleEvent,l)}destroy(){for(const[r,n,o]of this._listeners)r.removeEventListener(n,r===i.window.document?this.handleWindowEvent:this.handleEvent,o)}_addDefaultHandlers(i){const r=this._map,n=r.getCanvasContainer();this._add("mapEvent",new i$(r,i));const o=r.boxZoom=new iX(r,i);this._add("boxZoom",o);const s=new iY,a=new ra;r.doubleClickZoom=new rs(a,s),this._add("tapZoom",s),this._add("clickZoom",a);const l=new rl;this._add("tapDragZoom",l);const c=r.touchPitch=new rt(r);this._add("touchPitch",c);const h=new i1(i),u=new i2(i);r.dragRotate=new rh(i,h,u),this._add("mouseRotate",h,["mousePitch"]),this._add("mousePitch",u,["mouseRotate"]);const d=new i0(i),p=new i3(r,i);r.dragPan=new rc(n,d,p),this._add("mousePan",d),this._add("touchPan",p,["touchZoom","touchRotate"]);const f=new i7,m=new i8;r.touchZoomRotate=new ru(n,m,f,l),this._add("touchRotate",f,["touchPan","touchZoom"]),this._add("touchZoom",m,["touchPan","touchRotate"]),this._add("blockableMapEvent",new iq(r));const _=r.scrollZoom=new ro(r,this);this._add("scrollZoom",_,["mousePan"]);const g=r.keyboard=new rr;for(const y of(this._add("keyboard",g),["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"]))i.interactive&&i[y]&&r[y].enable(i[y])}_add(i,r,n){this._handlers.push({handlerName:i,handler:r,allowed:n}),this._handlersById[i]=r}stop(i){if(!this._updatingCamera){for(const{handler:r}of this._handlers)r.reset();this._inertia.clear(),this._fireEvents({},{},i),this._changes=[]}}isActive(){for(const{handler:i}of this._handlers)if(i.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return Boolean(rd(this._eventsInProgress))||this.isZooming()}_blockedByActive(i,r,n){for(const o in i)if(o!==n&&(!r||0>r.indexOf(o)))return!0;return!1}handleWindowEvent(i){this.handleEvent(i,`${i.type}Window`)}_getMapTouches(i){const r=[];for(const n of i)this._el.contains(n.target)&&r.push(n);return r}handleEvent(i,r){this._updatingCamera=!0;const n="renderFrame"===i.type,o=n?void 0:i,s={needsRenderFrame:!1},l={},c={},h=i.touches?this._getMapTouches(i.touches):void 0,u=h?a.touchPos(this._el,h):n?void 0:a.mousePos(this._el,i);for(const{handlerName:d,handler:p,allowed:f}of this._handlers){let m;p.isEnabled()&&(this._blockedByActive(c,f,d)?p.reset():p[r||i.type]&&(m=p[r||i.type](i,u,h),this.mergeHandlerResult(s,l,m,d,o),m&&m.needsRenderFrame&&this._triggerRenderFrame()),(m||p.isActive())&&(c[d]=p))}const _={};for(const g in this._previousActiveHandlers)c[g]||(_[g]=o);this._previousActiveHandlers=c,(Object.keys(_).length||rm(s))&&(this._changes.push([s,l,_]),this._triggerRenderFrame()),(Object.keys(c).length||rm(s))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:y}=s;y&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],y(this._map))}mergeHandlerResult(r,n,o,s,a){if(!o)return;i.extend(r,o);const l={handlerName:s,originalEvent:o.originalEvent||a};void 0!==o.zoomDelta&&(n.zoom=l),void 0!==o.panDelta&&(n.drag=l),void 0!==o.pitchDelta&&(n.pitch=l),void 0!==o.bearingDelta&&(n.rotate=l)}_applyChanges(){const r={},n={},o={};for(const[s,a,l]of this._changes)s.panDelta&&(r.panDelta=(r.panDelta||new i.pointGeometry(0,0))._add(s.panDelta)),s.zoomDelta&&(r.zoomDelta=(r.zoomDelta||0)+s.zoomDelta),s.bearingDelta&&(r.bearingDelta=(r.bearingDelta||0)+s.bearingDelta),s.pitchDelta&&(r.pitchDelta=(r.pitchDelta||0)+s.pitchDelta),void 0!==s.around&&(r.around=s.around),void 0!==s.aroundCoord&&(r.aroundCoord=s.aroundCoord),void 0!==s.pinchAround&&(r.pinchAround=s.pinchAround),s.noInertia&&(r.noInertia=s.noInertia),i.extend(n,a),i.extend(o,l);this._updateMapTransform(r,n,o),this._changes=[]}_updateMapTransform(r,n,o){const s=this._map,a=s.transform,l=i=>[i.x,i.y,i.z];if((i=>{const r=this._eventsInProgress.drag;return r&&!this._handlersById[r.handlerName].isActive()})()&&!rm(r)){const c=a.zoom;a.cameraElevationReference="sea",a.recenterOnTerrain(),a.cameraElevationReference="ground",c!==a.zoom&&this._map._update(!0)}if(!rm(r))return this._fireEvents(n,o,!0);let{panDelta:h,zoomDelta:u,bearingDelta:d,pitchDelta:p,around:f,aroundCoord:m,pinchAround:_}=r;void 0!==_&&(f=_),n.drag&&!this._eventsInProgress.drag&&f&&(this._dragOrigin=l(a.pointCoordinate3D(f)),this._trackingEllipsoid.setup(a._camera.position,this._dragOrigin)),a.cameraElevationReference="sea",s._stop(!0),f=f||s.transform.centerPoint,d&&(a.bearing+=d),p&&(a.pitch+=p),a._updateCameraState();const g=[0,0,0];if(h){const y=a.pointCoordinate(f),x=a.pointCoordinate(f.sub(h));y&&x&&(g[0]=x.x-y.x,g[1]=x.y-y.y)}const v=a.zoom,b=[0,0,0];if(u){const w=l(m||a.pointCoordinate3D(f)),T={dir:i.normalize([],i.sub([],w,a._camera.position))};if(T.dir[2]<0){const E=a.zoomDeltaToMovement(w,u);i.scale$2(b,T.dir,E)}}const S=i.add(g,g,b);a._translateCameraConstrained(S),u&&Math.abs(a.zoom-v)>1e-4&&a.recenterOnTerrain(),a.cameraElevationReference="ground",this._map._update(),r.noInertia||this._inertia.record(r),this._fireEvents(n,o,!0)}_fireEvents(r,n,o){let s;const a=rd(this._eventsInProgress),l=rd(r),c={};for(const h in r){const{originalEvent:u}=r[h];this._eventsInProgress[h]||(c[`${h}start`]=u),this._eventsInProgress[h]=r[h]}for(const d in!a&&l&&this._fireEvent("movestart",l.originalEvent),c)this._fireEvent(d,c[d]);for(const p in l&&this._fireEvent("move",l.originalEvent),r){const{originalEvent:f}=r[p];this._fireEvent(p,f)}const m={};for(const _ in this._eventsInProgress){const{handlerName:g,originalEvent:y}=this._eventsInProgress[_];this._handlersById[g].isActive()||(delete this._eventsInProgress[_],s=n[g]||y,m[`${_}end`]=s)}for(const x in m)this._fireEvent(x,m[x]);const v=rd(this._eventsInProgress);if(o&&(a||l)&&!v){var b,w;this._updatingCamera=!0;const T=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions);T?(0!==(b=T.bearing||this._map.getBearing())&&-this._bearingSnap{delete this._frameId,this.handleEvent(new rp("renderFrame",{timeStamp:i})),this._applyChanges()})}_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame())}}const rg="map.setFreeCameraOptions(...) and map.getFreeCameraOptions() are not yet supported for non-mercator projections.";class ry extends i.Evented{constructor(r,n){super(),this._moving=!1,this._zooming=!1,this.transform=r,this._bearingSnap=n.bearingSnap,i.bindAll(["_renderFrameCallback"],this)}getCenter(){return new i.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(i,r){return this.jumpTo({center:i},r)}panBy(r,n,o){return r=i.pointGeometry.convert(r).mult(-1),this.panTo(this.transform.center,i.extend({offset:r},n),o)}panTo(r,n,o){return this.easeTo(i.extend({center:r},n),o)}getZoom(){return this.transform.zoom}setZoom(i,r){return this.jumpTo({zoom:i},r),this}zoomTo(r,n,o){return this.easeTo(i.extend({zoom:r},n),o)}zoomIn(i,r){return this.zoomTo(this.getZoom()+1,i,r),this}zoomOut(i,r){return this.zoomTo(this.getZoom()-1,i,r),this}getBearing(){return this.transform.bearing}setBearing(i,r){return this.jumpTo({bearing:i},r),this}getPadding(){return this.transform.padding}setPadding(i,r){return this.jumpTo({padding:i},r),this}rotateTo(r,n,o){return this.easeTo(i.extend({bearing:r},n),o)}resetNorth(r,n){return this.rotateTo(0,i.extend({duration:1e3},r),n),this}resetNorthPitch(r,n){return this.easeTo(i.extend({bearing:0,pitch:0,duration:1e3},r),n),this}snapToNorth(i,r){return Math.abs(this.getBearing())y=>{if(T&&(a.zoom=i.number(l,d,y)),E&&(a.bearing=i.number(c,p,y)),S&&(a.pitch=i.number(h,f,y)),I&&(a.interpolatePadding(u,m,y),g=a.centerPoint.add(_)),o)a.setLocationAtPoint(o,s);else{const x=a.zoomScale(a.zoom-l),M=d>l?Math.min(2,w):Math.max(.5,w),A=Math.pow(M,1-y),C=a.unproject(v.add(b.mult(y*A)).mult(x));a.setLocationAtPoint(a.renderWorldCopies?C.wrap():C,g)}return r.preloadOnly||this._fireMoveEvents(n),a};if(r.preloadOnly){const A=this._emulate(M,r.duration,a);return this._preloadTiles(A),this}const C={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=T,this._rotating=E,this._pitching=S,this._padding=I,this._easeId=r.easeId,this._prepareEase(n,r.noMoveStart,C),this._ease(M(a),i=>{a.recenterOnTerrain(),this._afterEase(n,i)},r),this}_prepareEase(r,n,o={}){this._moving=!0,this.transform.cameraElevationReference="sea",n||o.moving||this.fire(new i.Event("movestart",r)),this._zooming&&!o.zooming&&this.fire(new i.Event("zoomstart",r)),this._rotating&&!o.rotating&&this.fire(new i.Event("rotatestart",r)),this._pitching&&!o.pitching&&this.fire(new i.Event("pitchstart",r))}_fireMoveEvents(r){this.fire(new i.Event("move",r)),this._zooming&&this.fire(new i.Event("zoom",r)),this._rotating&&this.fire(new i.Event("rotate",r)),this._pitching&&this.fire(new i.Event("pitch",r))}_afterEase(r,n){if(this._easeId&&n&&this._easeId===n)return;delete this._easeId,this.transform.cameraElevationReference="ground";const o=this._zooming,s=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,o&&this.fire(new i.Event("zoomend",r)),s&&this.fire(new i.Event("rotateend",r)),a&&this.fire(new i.Event("pitchend",r)),this.fire(new i.Event("moveend",r))}flyTo(r,n){if(!r.essential&&i.exported.prefersReducedMotion){const o=i.pick(r,["center","zoom","bearing","pitch","around"]);return this.jumpTo(o,n)}this.stop(),r=i.extend({offset:[0,0],speed:1.2,curve:1.42,easing:i.ease},r);const s=this.transform,a=this.getZoom(),l=this.getBearing(),c=this.getPitch(),h=this.getPadding(),u="zoom"in r?i.clamp(+r.zoom,s.minZoom,s.maxZoom):a,d="bearing"in r?this._normalizeBearing(r.bearing,l):l,p="pitch"in r?+r.pitch:c,f="padding"in r?r.padding:s.padding,m=s.zoomScale(u-a),_=i.pointGeometry.convert(r.offset);let g=s.centerPoint.add(_);const y=s.pointLocation(g),x=i.LngLat.convert(r.center||y);this._normalizeCenter(x);const v=s.project(y),b=s.project(x).sub(v);let w=r.curve;const T=Math.max(s.width,s.height),E=T/m,S=b.mag();if("minZoom"in r){const I=i.clamp(Math.min(r.minZoom,a,u),s.minZoom,s.maxZoom),M=T/s.zoomScale(I-a);w=Math.sqrt(M/S*2)}const A=w*w;function C(i){const r=(E*E-T*T+(i?-1:1)*A*A*S*S)/(2*(i?E:T)*A*S);return Math.log(Math.sqrt(r*r+1)-r)}function z(i){return(Math.exp(i)-Math.exp(-i))/2}function k(i){return(Math.exp(i)+Math.exp(-i))/2}const P=C(0);let D=function(i){return k(P)/k(P+w*i)},L=function(i){var r;return T*((k(P)*(z(r=P+w*i)/k(r))-z(P))/A)/S},B=(C(1)-P)/w;if(1e-6>Math.abs(S)||!isFinite(B)){if(1e-6>Math.abs(T-E))return this.easeTo(r,n);const R=Er.maxDuration&&(r.duration=0);const F=l!==d,O=p!==c,U=!s.isPaddingEqual(f),V=o=>s=>{const m=s*B,y=1/D(m);o.zoom=1===s?u:a+o.scaleZoom(y),F&&(o.bearing=i.number(l,d,s)),O&&(o.pitch=i.number(c,p,s)),U&&(o.interpolatePadding(h,f,s),g=o.centerPoint.add(_));const w=1===s?x:o.unproject(v.add(b.mult(L(m))).mult(y));return o.setLocationAtPoint(o.renderWorldCopies?w.wrap():w,g),o._updateCenterElevation(),r.preloadOnly||this._fireMoveEvents(n),o};if(r.preloadOnly){const N=this._emulate(V,r.duration,s);return this._preloadTiles(N),this}return this._zooming=!0,this._rotating=F,this._pitching=O,this._padding=U,this._prepareEase(n,!1),this._ease(V(s),()=>this._afterEase(n),r),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(i,r){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const n=this._onEaseEnd;delete this._onEaseEnd,n.call(this,r)}if(!i){const o=this.handlers;o&&o.stop(!1)}return this}_ease(r,n,o){!1===o.animate||0===o.duration?(r(1),n()):(this._easeStart=i.exported.now(),this._easeOptions=o,this._onEaseFrame=r,this._onEaseEnd=n,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_renderFrameCallback(){const r=Math.min((i.exported.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(r)),r<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()}_normalizeBearing(r,n){r=i.wrap(r,-180,180);const o=Math.abs(r-n);return Math.abs(r-360-n)180?-360:n<-180?360:0}_emulate(i,r,n){const o=Math.ceil(15*r/1e3),s=[],a=i(n.clone());for(let l=0;l<=o;l++){const c=a(l/o);s.push(c.clone())}return s}}class rx{constructor(r={}){this.options=r,i.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)}getDefaultPosition(){return"bottom-right"}onAdd(i){const r=this.options&&this.options.compact;return this._map=i,this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=a.create("button","mapboxgl-ctrl-attrib-button",this._container),a.create("span","mapboxgl-ctrl-icon",this._compactButton).setAttribute("aria-hidden",!0),this._compactButton.type="button",this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=a.create("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),r&&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===r&&(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}_setElementTitle(i,r){const n=this._map._getUIString(`AttributionControl.${r}`);i.setAttribute("aria-label",n),i.removeAttribute("title"),i.firstElementChild&&i.firstElementChild.setAttribute("title",n)}_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 r=this._editLink;r||(r=this._editLink=this._container.querySelector(".mapbox-improve-map"));const n=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||i.config.ACCESS_TOKEN}];if(r){const o=n.reduce((i,r,o)=>(r.value&&(i+=`${r.key}=${r.value}${oi.indexOf(a.attribution)&&i.push(a.attribution)}}i.sort((i,r)=>i.length-r.length),i=i.filter((r,n)=>{for(let o=n+1;o=0)return!1;return!0}),this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?i=[...this.options.customAttribution,...i]:i.unshift(this.options.customAttribution));const l=i.join(" | ");l!==this._attribHTML&&(this._attribHTML=l,i.length?(this._innerContainer.innerHTML=l,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 rv{constructor(){i.bindAll(["_updateLogo"],this),i.bindAll(["_updateCompact"],this)}onAdd(i){this._map=i,this._container=a.create("div","mapboxgl-ctrl");const r=a.create("a","mapboxgl-ctrl-logo");return r.target="_blank",r.rel="noopener nofollow",r.href="https://www.mapbox.com/",r.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),r.setAttribute("rel","noopener nofollow"),this._container.appendChild(r),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(i){i&&"metadata"!==i.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")}_logoRequired(){if(!this._map.style)return!0;const i=this._map.style._sourceCaches;if(0===Object.entries(i).length)return!0;for(const r in i){const n=i[r].getSource();if(n.hasOwnProperty("mapbox_logo")&&!n.mapbox_logo)return!1}return!0}_updateCompact(){const i=this._container.children;if(i.length){const r=i[0];this._map.getCanvasContainer().offsetWidth<250?r.classList.add("mapboxgl-compact"):r.classList.remove("mapboxgl-compact")}}}class rb{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(i){const r=++this._id;return this._queue.push({callback:i,id:r,cancelled:!1}),r}remove(i){const r=this._currentlyRunning,n=r?this._queue.concat(r):this._queue;for(const o of n)if(o.id===i)return void(o.cancelled=!0)}run(i=0){const r=this._currentlyRunning=this._queue;for(const n of(this._queue=[],r))if(!n.cancelled&&(n.callback(i),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}function rw(r,n,o){if(r=new i.LngLat(r.lng,r.lat),n){const s=new i.LngLat(r.lng-360,r.lat),a=new i.LngLat(r.lng+360,r.lat),l=360*Math.ceil(Math.abs(r.lng-o.center.lng)/360),c=o.locationPoint(r).distSqr(n),h=n.x<0||n.y<0||n.x>o.width||n.y>o.height;o.locationPoint(s).distSqr(n)180;){const u=o.locationPoint(r);if(u.x>=0&&u.y>=0&&u.x<=o.width&&u.y<=o.height)break;r.lng>o.center.lng?r.lng-=360:r.lng+=360}return r}const rT={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 rE extends i.Evented{constructor(r,n){if(super(),(r instanceof i.window.HTMLElement||n)&&(r=i.extend({element:r},n)),i.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress","_clearFadeTimer"],this),this._anchor=r&&r.anchor||"center",this._color=r&&r.color||"#3FB1CE",this._scale=r&&r.scale||1,this._draggable=r&&r.draggable||!1,this._clickTolerance=r&&r.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=r&&r.rotation||0,this._rotationAlignment=r&&r.rotationAlignment||"auto",this._pitchAlignment=r&&r.pitchAlignment&&"auto"!==r.pitchAlignment?r.pitchAlignment:this._rotationAlignment,this._updateMoving=()=>this._update(!0),r&&r.element)this._element=r.element,this._offset=i.pointGeometry.convert(r&&r.offset||[0,0]);else{this._defaultMarker=!0,this._element=a.create("div");const o=a.createSVG("svg",{display:"block",height:41*this._scale+"px",width:27*this._scale+"px",viewBox:"0 0 27 41"},this._element),s=a.createSVG("radialGradient",{id:"shadowGradient"},a.createSVG("defs",{},o));a.createSVG("stop",{offset:"10%","stop-opacity":.4},s),a.createSVG("stop",{offset:"100%","stop-opacity":.05},s),a.createSVG("ellipse",{cx:13.5,cy:34.8,rx:10.5,ry:5.25,fill:"url(#shadowGradient)"},o),a.createSVG("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"},o),a.createSVG("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"},o),a.createSVG("circle",{fill:"white",cx:13.5,cy:13.5,r:5.5},o),this._offset=i.pointGeometry.convert(r&&r.offset||[0,-14])}this._element.hasAttribute("aria-label")||this._element.setAttribute("aria-label","Map marker"),this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",i=>{i.preventDefault()}),this._element.addEventListener("mousedown",i=>{i.preventDefault()});const l=this._element.classList;for(const c in rT)l.remove(`mapboxgl-marker-anchor-${c}`);l.add(`mapboxgl-marker-anchor-${this._anchor}`),this._popup=null}addTo(i){return i===this._map||(this.remove(),this._map=i,i.getCanvasContainer().appendChild(this._element),i.on("move",this._updateMoving),i.on("moveend",this._update),i.on("remove",this._clearFadeTimer),i._addMarker(this),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick)),this}remove(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._updateMoving),this._map.off("moveend",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._map.off("remove",this._clearFadeTimer),this._map._removeMarker(this),delete this._map),this._clearFadeTimer(),this._element.remove(),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(r){return this._lngLat=i.LngLat.convert(r),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(!0),this}getElement(){return this._element}setPopup(i){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")),i){if(!("offset"in i.options)){const r=Math.sqrt(91.125);i.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[r,-1*(24.6+r)],"bottom-right":[-r,-1*(24.6+r)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=i,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(i){const r=i.code,n=i.charCode||i.keyCode;"Space"!==r&&"Enter"!==r&&32!==n&&13!==n||this.togglePopup()}_onMapClick(i){const r=i.originalEvent.target,n=this._element;this._popup&&(r===n||n.contains(r))&&this.togglePopup()}getPopup(){return this._popup}togglePopup(){const i=this._popup;return i&&(i.isOpen()?(i.remove(),this._element.setAttribute("aria-expanded","false")):(i.addTo(this._map),this._element.setAttribute("aria-expanded","true"))),this}_evaluateOpacity(){const i=this._pos?this._pos.sub(this._transformedOffset()):null;if(!this._withinScreenBounds(i))return void this._clearFadeTimer();const r=this._map.unproject(i);let n=!1;if(this._map.transform._terrainEnabled()&&this._map.getTerrain()){const o=this._map.getFreeCameraOptions();if(o.position){const s=o.position.toLngLat();n=s.distanceTo(r)<.9*s.distanceTo(this._lngLat)}}const a=(1-this._map._queryFogOpacity(r))*(n?.2:1);this._element.style.opacity=`${a}`,this._popup&&this._popup._setOpacity(`${a}`),this._fadeTimer=null}_clearFadeTimer(){this._fadeTimer&&(clearTimeout(this._fadeTimer),this._fadeTimer=null)}_withinScreenBounds(i){const r=this._map.transform;return!!i&&i.x>=0&&i.x=0&&i.y{this._element&&this._pos&&this._anchor&&(this._pos=this._pos.round(),this._updateDOM())}):this._pos=this._pos.round(),this._map._requestDomTask(()=>{this._map&&(this._element&&this._pos&&this._anchor&&this._updateDOM(),(this._map.getTerrain()||this._map.getFog())&&!this._fadeTimer&&(this._fadeTimer=setTimeout(this._evaluateOpacity.bind(this),60)))}))}_transformedOffset(){if(!this._defaultMarker)return this._offset;const i=this._map.transform,r=this._offset.mult(this._scale);return"map"===this._rotationAlignment&&r._rotate(i.angle),"map"===this._pitchAlignment&&(r.y*=Math.cos(i._pitch)),r}getOffset(){return this._offset}setOffset(r){return this._offset=i.pointGeometry.convert(r),this._update(),this}_onMove(r){if(!this._isDragging){const n=this._clickTolerance||this._map._clickTolerance;this._isDragging=r.point.dist(this._pointerdownPos)>=n}this._isDragging&&(this._pos=r.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none","pending"===this._state&&(this._state="active",this.fire(new i.Event("dragstart"))),this.fire(new i.Event("drag")))}_onUp(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),"active"===this._state&&this.fire(new i.Event("dragend")),this._state="inactive"}_addDragHandler(i){this._element.contains(i.originalEvent.target)&&(i.preventDefault(),this._positionDelta=i.point.sub(this._pos).add(this._transformedOffset()),this._pointerdownPos=i.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))}setDraggable(i){return this._draggable=!!i,this._map&&(i?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(i){return this._rotation=i||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(i){return this._rotationAlignment=i||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(i){return this._pitchAlignment=i&&"auto"!==i?i:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}}class rS{constructor(i){this.jumpTo(i)}getValue(r){if(r<=this._startTime)return this._start;if(r>=this._endTime)return this._end;const n=i.easeCubicInOut((r-this._startTime)/(this._endTime-this._startTime));return this._start*(1-n)+this._end*n}isEasing(i){return i>=this._startTime&&i<=this._endTime}jumpTo(i){this._startTime=-1/0,this._endTime=-1/0,this._start=i,this._end=i}easeTo(i,r,n){this._start=this.getValue(r),this._end=i,this._startTime=r,this._endTime=r+n}}const rI={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm","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"},{HTMLImageElement:rM,HTMLElement:rA,ImageBitmap:rC}=i.window,rz={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,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,optimizeForTerrain:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",localFontFamily:null,transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0};function rk(i){i.parentNode&&i.parentNode.removeChild(i)}const rP={showCompass:!0,showZoom:!0,visualizePitch:!1};class rD{constructor(r,n,o=!1){this._clickTolerance=10,this.element=n,this.mouseRotate=new i1({clickTolerance:r.dragRotate._mouseRotate._clickTolerance}),this.map=r,o&&(this.mousePitch=new i2({clickTolerance:r.dragRotate._mousePitch._clickTolerance})),i.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),n.addEventListener("mousedown",this.mousedown),n.addEventListener("touchstart",this.touchstart,{passive:!1}),n.addEventListener("touchmove",this.touchmove),n.addEventListener("touchend",this.touchend),n.addEventListener("touchcancel",this.reset)}down(i,r){this.mouseRotate.mousedown(i,r),this.mousePitch&&this.mousePitch.mousedown(i,r),a.disableDrag()}move(i,r){const n=this.map,o=this.mouseRotate.mousemoveWindow(i,r);if(o&&o.bearingDelta&&n.setBearing(n.getBearing()+o.bearingDelta),this.mousePitch){const s=this.mousePitch.mousemoveWindow(i,r);s&&s.pitchDelta&&n.setPitch(n.getPitch()+s.pitchDelta)}}off(){const i=this.element;i.removeEventListener("mousedown",this.mousedown),i.removeEventListener("touchstart",this.touchstart,{passive:!1}),i.removeEventListener("touchmove",this.touchmove),i.removeEventListener("touchend",this.touchend),i.removeEventListener("touchcancel",this.reset),this.offTemp()}offTemp(){a.enableDrag(),i.window.removeEventListener("mousemove",this.mousemove),i.window.removeEventListener("mouseup",this.mouseup)}mousedown(r){this.down(i.extend({},r,{ctrlKey:!0,preventDefault:()=>r.preventDefault()}),a.mousePos(this.element,r)),i.window.addEventListener("mousemove",this.mousemove),i.window.addEventListener("mouseup",this.mouseup)}mousemove(i){this.move(i,a.mousePos(this.element,i))}mouseup(i){this.mouseRotate.mouseupWindow(i),this.mousePitch&&this.mousePitch.mouseupWindow(i),this.offTemp()}touchstart(i){1!==i.targetTouches.length?this.reset():(this._startPos=this._lastPos=a.touchPos(this.element,i.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:()=>i.preventDefault()},this._startPos))}touchmove(i){1!==i.targetTouches.length?this.reset():(this._lastPos=a.touchPos(this.element,i.targetTouches)[0],this.move({preventDefault:()=>i.preventDefault()},this._lastPos))}touchend(i){0===i.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)5280?rZ(r,o,h/5280,i._getUIString("ScaleControl.Miles"),i):rZ(r,o,h,i._getUIString("ScaleControl.Feet"),i)}else n&&"nautical"===n.unit?rZ(r,o,c/1852,i._getUIString("ScaleControl.NauticalMiles"),i):c>=1e3?rZ(r,o,c/1e3,i._getUIString("ScaleControl.Kilometers"),i):rZ(r,o,c,i._getUIString("ScaleControl.Meters"),i)}function rZ(i,r,n,o,s){const a=function(i){const r=Math.pow(10,`${Math.floor(i)}`.length-1);let n=i/r;return r*(n=n>=10?10:n>=5?5:n>=3?3:n>=2?2:n>=1?1:function(i){const r=Math.pow(10,Math.ceil(-Math.log(i)/Math.LN10));return Math.round(i*r)/r}(n))}(n),l=a/n;s._requestDomTask(()=>{i.style.width=r*l+"px",i.innerHTML=`${a} ${o}`})}const r$={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"},rq={version:i.version,supported:r,setRTLTextPlugin:i.setRTLTextPlugin,getRTLTextPluginStatus:i.getRTLTextPluginStatus,Map:class extends ry{constructor(r){if(null!=(r=i.extend({},rz,r)).minZoom&&null!=r.maxZoom&&r.minZoom>r.maxZoom)throw Error("maxZoom must be greater than or equal to minZoom");if(null!=r.minPitch&&null!=r.maxPitch&&r.minPitch>r.maxPitch)throw Error("maxPitch must be greater than or equal to minPitch");if(null!=r.minPitch&&r.minPitch<0)throw Error("minPitch must be greater than or equal to 0");if(null!=r.maxPitch&&r.maxPitch>85)throw Error("maxPitch must be less than or equal to 85");if(super(new ik(r.minZoom,r.maxZoom,r.minPitch,r.maxPitch,r.renderWorldCopies),r),this._interactive=r.interactive,this._minTileCacheSize=r.minTileCacheSize,this._maxTileCacheSize=r.maxTileCacheSize,this._failIfMajorPerformanceCaveat=r.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=r.preserveDrawingBuffer,this._antialias=r.antialias,this._trackResize=r.trackResize,this._bearingSnap=r.bearingSnap,this._refreshExpiredTiles=r.refreshExpiredTiles,this._fadeDuration=r.fadeDuration,this._isInitialLoad=!0,this._crossSourceCollisions=r.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=r.collectResourceTiming,this._optimizeForTerrain=r.optimizeForTerrain,this._renderTaskQueue=new rb,this._domRenderTaskQueue=new rb,this._controls=[],this._markers=[],this._mapId=i.uniqueId(),this._locale=i.extend({},rI,r.locale),this._clickTolerance=r.clickTolerance,this._cooperativeGestures=r.cooperativeGestures,this._containerWidth=0,this._containerHeight=0,this._averageElevationLastSampledAt=-1/0,this._averageElevation=new rS(0),this._requestManager=new i.RequestManager(r.transformRequest,r.accessToken,r.testMode),this._silenceAuthErrors=!!r.testMode,"string"==typeof r.container){if(this._container=i.window.document.getElementById(r.container),!this._container)throw Error(`Container '${r.container}' not found.`)}else{if(!(r.container instanceof rA))throw Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=r.container}if(this._container.childNodes.length>0&&i.warnOnce("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."),r.maxBounds&&this.setMaxBounds(r.maxBounds),i.bindAll(["_onWindowOnline","_onWindowResize","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw Error("Failed to initialize WebGL.");this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),void 0!==i.window&&(i.window.addEventListener("online",this._onWindowOnline,!1),i.window.addEventListener("resize",this._onWindowResize,!1),i.window.addEventListener("orientationchange",this._onWindowResize,!1),i.window.addEventListener("webkitfullscreenchange",this._onWindowResize,!1)),this.handlers=new r_(this,r),this._localFontFamily=r.localFontFamily,this._localIdeographFontFamily=r.localIdeographFontFamily,r.style&&this.setStyle(r.style,{localFontFamily:this._localFontFamily,localIdeographFontFamily:this._localIdeographFontFamily}),r.projection&&this.setProjection(r.projection),this._hash=r.hash&&new iD("string"==typeof r.hash&&r.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:r.center,zoom:r.zoom,bearing:r.bearing,pitch:r.pitch}),r.bounds&&(this.resize(),this.fitBounds(r.bounds,i.extend({},r.fitBoundsOptions,{duration:0})))),this.resize(),r.attributionControl&&this.addControl(new rx({customAttribution:r.customAttribution})),this._logoControl=new rv,this.addControl(this._logoControl,r.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",r=>{this._update("style"===r.dataType),this.fire(new i.Event(`${r.dataType}data`,r))}),this.on("dataloading",r=>{this.fire(new i.Event(`${r.dataType}dataloading`,r))})}_getMapId(){return this._mapId}addControl(r,n){if(void 0===n&&(n=r.getDefaultPosition?r.getDefaultPosition():"top-right"),!r||!r.onAdd)return this.fire(new i.ErrorEvent(Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const o=r.onAdd(this);this._controls.push(r);const s=this._controlPositions[n];return -1!==n.indexOf("bottom")?s.insertBefore(o,s.firstChild):s.appendChild(o),this}removeControl(r){if(!r||!r.onRemove)return this.fire(new i.ErrorEvent(Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const n=this._controls.indexOf(r);return n>-1&&this._controls.splice(n,1),r.onRemove(this),this}hasControl(i){return this._controls.indexOf(i)>-1}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}resize(r){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 n=!this._moving;return n&&this.fire(new i.Event("movestart",r)).fire(new i.Event("move",r)),this.fire(new i.Event("resize",r)),n&&this.fire(new i.Event("moveend",r)),this}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()||null}setMaxBounds(r){return this.transform.setMaxBounds(i.LngLatBounds.convert(r)),this._update()}setMinZoom(r){if((r=null==r?-2:r)>=-2&&r<=this.transform.maxZoom)return this.transform.minZoom=r,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=r,this._update(),this.getZoom()>r?this.setZoom(r):this.fire(new i.Event("zoomstart")).fire(new i.Event("zoom")).fire(new i.Event("zoomend")),this;throw Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(r){if((r=null==r?0:r)<0)throw Error("minPitch must be greater than or equal to 0");if(r>=0&&r<=this.transform.maxPitch)return this.transform.minPitch=r,this._update(),this.getPitch()85)throw Error("maxPitch must be less than or equal to 85");if(r>=this.transform.minPitch)return this.transform.maxPitch=r,this._update(),this.getPitch()>r?this.setPitch(r):this.fire(new i.Event("pitchstart")).fire(new i.Event("pitch")).fire(new i.Event("pitchend")),this;throw Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(i){return this.transform.renderWorldCopies=i,this._update()}getProjection(){return this.transform.getProjection()}setProjection(i){return this._lazyInitEmptyStyle(),"string"==typeof i&&(i={name:i}),this._runtimeProjection=i,this.style.updateProjection(),this._transitionFromGlobe=!1,this}project(r){return this.transform.locationPoint3D(i.LngLat.convert(r))}unproject(r){return this.transform.pointLocation3D(i.pointGeometry.convert(r))}isMoving(){return this._moving||this.handlers&&this.handlers.isMoving()}isZooming(){return this._zooming||this.handlers&&this.handlers.isZooming()}isRotating(){return this._rotating||this.handlers&&this.handlers.isRotating()}_createDelegatedListener(i,r,n){if("mouseenter"===i||"mouseover"===i){let o=!1;const s=s=>{const a=r.filter(i=>this.getLayer(i)),l=a.length?this.queryRenderedFeatures(s.point,{layers:a}):[];l.length?o||(o=!0,n.call(this,new ij(i,this,s.originalEvent,{features:l}))):o=!1},a=()=>{o=!1};return{layers:new Set(r),listener:n,delegates:{mousemove:s,mouseout:a}}}if("mouseleave"===i||"mouseout"===i){let l=!1;const c=o=>{const s=r.filter(i=>this.getLayer(i));(s.length?this.queryRenderedFeatures(o.point,{layers:s}):[]).length?l=!0:l&&(l=!1,n.call(this,new ij(i,this,o.originalEvent)))},h=r=>{l&&(l=!1,n.call(this,new ij(i,this,r.originalEvent)))};return{layers:new Set(r),listener:n,delegates:{mousemove:c,mouseout:h}}}{const u=i=>{const o=r.filter(i=>this.getLayer(i)),s=o.length?this.queryRenderedFeatures(i.point,{layers:o}):[];s.length&&(i.features=s,n.call(this,i),delete i.features)};return{layers:new Set(r),listener:n,delegates:{[i]:u}}}}on(i,r,n){if(void 0===n)return super.on(i,r);Array.isArray(r)||(r=[r]);const o=this._createDelegatedListener(i,r,n);for(const s in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[i]=this._delegatedListeners[i]||[],this._delegatedListeners[i].push(o),o.delegates)this.on(s,o.delegates[s]);return this}once(i,r,n){if(void 0===n)return super.once(i,r);Array.isArray(r)||(r=[r]);const o=this._createDelegatedListener(i,r,n);for(const s in o.delegates)this.once(s,o.delegates[s]);return this}off(i,r,n){if(void 0===n)return super.off(i,r);r=new Set(Array.isArray(r)?r:[r]);const o=(i,r)=>{if(i.size!==r.size)return!1;for(const n of i)if(!r.has(n))return!1;return!0},s=this._delegatedListeners?this._delegatedListeners[i]:void 0;return s&&(i=>{for(let s=0;s{r?this.fire(new i.ErrorEvent(r)):o&&this._updateDiff(o,n)})}else"object"==typeof r&&this._updateDiff(r,n)}_updateDiff(r,n){try{this.style.setState(r)&&this._update(!0)}catch(o){i.warnOnce(`Unable to perform style diff: ${o.message||o.error||o}. Rebuilding the style from scratch.`),this._updateStyle(r,n)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():i.warnOnce("There is no style added to the map.")}addSource(i,r){return this._lazyInitEmptyStyle(),this.style.addSource(i,r),this._update(!0)}isSourceLoaded(r){const n=this.style&&this.style._getSourceCaches(r);if(0!==n.length)return n.every(i=>i.loaded());this.fire(new i.ErrorEvent(Error(`There is no source with ID '${r}'`)))}areTilesLoaded(){const i=this.style&&this.style._sourceCaches;for(const r in i){const n=i[r]._tiles;for(const o in n){const s=n[o];if("loaded"!==s.state&&"errored"!==s.state)return!1}}return!0}addSourceType(i,r,n){return this._lazyInitEmptyStyle(),this.style.addSourceType(i,r,n)}removeSource(i){return this.style.removeSource(i),this._updateTerrain(),this._update(!0)}getSource(i){return this.style.getSource(i)}addImage(r,n,{pixelRatio:o=1,sdf:s=!1,stretchX:a,stretchY:l,content:c}={}){if(this._lazyInitEmptyStyle(),n instanceof rM||rC&&n instanceof rC){const{width:h,height:u,data:d}=i.exported.getImageData(n);this.style.addImage(r,{data:new i.RGBAImage({width:h,height:u},d),pixelRatio:o,stretchX:a,stretchY:l,content:c,sdf:s,version:0})}else{if(void 0===n.width||void 0===n.height)return this.fire(new i.ErrorEvent(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`")));{const{width:p,height:f,data:m}=n;this.style.addImage(r,{data:new i.RGBAImage({width:p,height:f},new Uint8Array(m)),pixelRatio:o,stretchX:a,stretchY:l,content:c,sdf:s,version:0,userImage:n}),n.onAdd&&n.onAdd(this,r)}}}updateImage(r,n){const o=this.style.getImage(r);if(!o)return this.fire(new i.ErrorEvent(Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const s=n instanceof rM||rC&&n instanceof rC?i.exported.getImageData(n):n,{width:a,height:l,data:c}=s;return void 0===a||void 0===l?this.fire(new i.ErrorEvent(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`"))):a!==o.data.width||l!==o.data.height?this.fire(new i.ErrorEvent(Error("The width and height of the updated image must be that same as the previous version of the image"))):(o.data.replace(c,!(n instanceof rM||rC&&n instanceof rC)),void this.style.updateImage(r,o))}hasImage(r){return r?!!this.style.getImage(r):(this.fire(new i.ErrorEvent(Error("Missing required image id"))),!1)}removeImage(i){this.style.removeImage(i)}loadImage(r,n){i.getImage(this._requestManager.transformRequest(r,i.ResourceType.Image),(r,o)=>{n(r,o instanceof rM?i.exported.getImageData(o):o)})}listImages(){return this.style.listImages()}addLayer(i,r){return this._lazyInitEmptyStyle(),this.style.addLayer(i,r),this._update(!0)}moveLayer(i,r){return this.style.moveLayer(i,r),this._update(!0)}removeLayer(i){return this.style.removeLayer(i),this._update(!0)}getLayer(i){return this.style.getLayer(i)}setLayerZoomRange(i,r,n){return this.style.setLayerZoomRange(i,r,n),this._update(!0)}setFilter(i,r,n={}){return this.style.setFilter(i,r,n),this._update(!0)}getFilter(i){return this.style.getFilter(i)}setPaintProperty(i,r,n,o={}){return this.style.setPaintProperty(i,r,n,o),this._update(!0)}getPaintProperty(i,r){return this.style.getPaintProperty(i,r)}setLayoutProperty(i,r,n,o={}){return this.style.setLayoutProperty(i,r,n,o),this._update(!0)}getLayoutProperty(i,r){return this.style.getLayoutProperty(i,r)}setLight(i,r={}){return this._lazyInitEmptyStyle(),this.style.setLight(i,r),this._update(!0)}getLight(){return this.style.getLight()}setTerrain(i){return this._lazyInitEmptyStyle(),!i&&this.transform.projection.requiresDraping?this.style.setTerrainForDraping():this.style.setTerrain(i),this._averageElevationLastSampledAt=-1/0,this._update(!0)}_updateProjection(){"globe"===this.transform.projection.name&&this.transform.zoom>=i.GLOBE_ZOOM_THRESHOLD_MAX&&!this._transitionFromGlobe&&(this.setProjection({name:"mercator"}),this._transitionFromGlobe=!0)}getTerrain(){return this.style?this.style.getTerrain():null}setFog(i){return this._lazyInitEmptyStyle(),this.style.setFog(i),this._update(!0)}getFog(){return this.style?this.style.getFog():null}_queryFogOpacity(r){return this.style&&this.style.fog?this.style.fog.getOpacityAtLatLng(i.LngLat.convert(r),this.transform):0}setFeatureState(i,r){return this.style.setFeatureState(i,r),this._update()}removeFeatureState(i,r){return this.style.removeFeatureState(i,r),this._update()}getFeatureState(i){return this.style.getFeatureState(i)}_updateContainerDimensions(){if(!this._container)return;const r=this._container.getBoundingClientRect().width||400,n=this._container.getBoundingClientRect().height||300;let o,s=this._container;for(;s&&!o;){const a=i.window.getComputedStyle(s).transform;a&&"none"!==a&&(o=a.match(/matrix.*\((.+)\)/)[1].split(", ")),s=s.parentElement}o?(this._containerWidth=o[0]&&"0"!==o[0]?Math.abs(r/o[0]):r,this._containerHeight=o[3]&&"0"!==o[3]?Math.abs(n/o[3]):n):(this._containerWidth=r,this._containerHeight=n)}_detectMissingCSS(){"rgb(250, 128, 114)"!==i.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")&&i.warnOnce("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 i=this._container;i.classList.add("mapboxgl-map"),(this._missingCSSCanary=a.create("div","mapboxgl-canary",i)).style.visibility="hidden",this._detectMissingCSS();const r=this._canvasContainer=a.create("div","mapboxgl-canvas-container",i);this._interactive&&r.classList.add("mapboxgl-interactive"),this._canvas=a.create("canvas","mapboxgl-canvas",r),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map"),this._canvas.setAttribute("role","region"),this._updateContainerDimensions(),this._resizeCanvas(this._containerWidth,this._containerHeight);const n=this._controlContainer=a.create("div","mapboxgl-control-container",i),o=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(i=>{o[i]=a.create("div",`mapboxgl-ctrl-${i}`,n)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(r,n){const o=i.exported.devicePixelRatio||1;this._canvas.width=o*Math.ceil(r),this._canvas.height=o*Math.ceil(n),this._canvas.style.width=`${r}px`,this._canvas.style.height=`${n}px`}_addMarker(i){this._markers.push(i)}_removeMarker(i){const r=this._markers.indexOf(i);-1!==r&&this._markers.splice(r,1)}_setupPainter(){const n=i.extend({},r.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),o=this._canvas.getContext("webgl",n)||this._canvas.getContext("experimental-webgl",n);o?(i.storeAuthState(o,!0),this.painter=new ig(o,this.transform),this.on("data",i=>{"source"===i.dataType&&this.painter.setTileLoadedFlag(!0)}),i.exported$1.testSupport(o)):this.fire(new i.ErrorEvent(Error("Failed to initialize WebGL")))}_contextLost(r){r.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new i.Event("webglcontextlost",{originalEvent:r}))}_contextRestored(r){this._setupPainter(),this.resize(),this._update(),this.fire(new i.Event("webglcontextrestored",{originalEvent:r}))}_onMapScroll(i){if(i.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(i){return this.style&&(this._styleDirty=this._styleDirty||i,this._sourcesDirty=!0,this.triggerRepaint()),this}_requestRenderFrame(i){return this._update(),this._renderTaskQueue.add(i)}_cancelRenderFrame(i){this._renderTaskQueue.remove(i)}_requestDomTask(i){!this.loaded()||this.loaded()&&!this.isMoving()?i():this._domRenderTaskQueue.add(i)}_render(r){let n;const o=this.painter.context.extTimerQuery,s=i.exported.now();this.listens("gpu-timing-frame")&&(n=o.createQueryEXT(),o.beginQueryEXT(o.TIME_ELAPSED_EXT,n));let a=this._updateAverageElevation(s);if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(r),this._domRenderTaskQueue.run(r),this._removed)return;this._updateProjection();let l=!1;const c=this._isInitialLoad?0:this._fadeDuration;if(this.style&&this._styleDirty){this._styleDirty=!1;const h=this.transform.zoom,u=this.transform.pitch,d=i.exported.now();this.style.zoomHistory.update(h,d);const p=new i.EvaluationParameters(h,{now:d,fadeDuration:c,pitch:u,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),f=p.crossFadingFactor();1===f&&f===this._crossFadingFactor||(l=!0,this._crossFadingFactor=f),this.style.update(p)}if(this.style&&this.style.fog&&this.style.fog.hasTransition()&&(this.style._markersNeedUpdate=!0,this._sourcesDirty=!0),this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.painter._updateFog(this.style),this._updateTerrain(),this.style._updateSources(this.transform),this._forceMarkerUpdate()),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,c,this._crossSourceCollisions),this.style&&this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showTerrainWireframe:this.showTerrainWireframe,showOverdrawInspector:this._showOverdrawInspector,showQueryGeometry:!!this._showQueryGeometry,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:c,isInitialLoad:this._isInitialLoad,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer"),speedIndexTiming:this.speedIndexTiming}),this.fire(new i.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new i.Event("load"))),this.style&&(this.style.hasTransitions()||l)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),this.listens("gpu-timing-frame")){const m=i.exported.now()-s;o.endQueryEXT(o.TIME_ELAPSED_EXT,n),setTimeout(()=>{const r=o.getQueryObjectEXT(n,o.QUERY_RESULT_EXT)/1e6;o.deleteQueryEXT(n),this.fire(new i.Event("gpu-timing-frame",{cpuTime:m,gpuTime:r}))},50)}if(this.listens("gpu-timing-layer")){const _=this.painter.collectGpuTimers();setTimeout(()=>{const r=this.painter.queryGpuTimers(_);this.fire(new i.Event("gpu-timing-layer",{layerTimes:r}))},50)}const g=this._sourcesDirty||this._styleDirty||this._placementDirty||a;if(g||this._repaint)this.triggerRepaint();else{const y=!this.isMoving()&&this.loaded();if(y&&(a=this._updateAverageElevation(s,!0)),a)this.triggerRepaint();else if(this._triggerFrame(!1),y&&(this.fire(new i.Event("idle")),this._isInitialLoad=!1,this.speedIndexTiming)){const x=this._calculateSpeedIndex();this.fire(new i.Event("speedindexcompleted",{speedIndex:x})),this.speedIndexTiming=!1}}return!this._loaded||this._fullyLoaded||g||(this._fullyLoaded=!0,this._authenticate()),this}_forceMarkerUpdate(){for(const i of this._markers)i._update()}_updateAverageElevation(i,r=!1){const n=i=>(this.transform.averageElevation=i,this._update(!1),!0);if(!this.painter.averageElevationNeedsEasing())return 0!==this.transform.averageElevation&&n(0);if((r||i-this._averageElevationLastSampledAt>500)&&!this._averageElevation.isEasing(i)){const o=this.transform.averageElevation;let s=this.transform.sampleAverageElevation();isNaN(s)?s=0:this._averageElevationLastSampledAt=i;const a=Math.abs(o-s);if(a>1){if(this._isInitialLoad)return this._averageElevation.jumpTo(s),n(s);this._averageElevation.easeTo(s,i,300)}else if(a>1e-4)return this._averageElevation.jumpTo(s),n(s)}return!!this._averageElevation.isEasing(i)&&n(this._averageElevation.getValue(i))}_authenticate(){i.getMapSessionAPI(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,r=>{if(r&&(r.message===i.AUTH_ERR_MSG||401===r.status)){const n=this.painter.context.gl;i.storeAuthState(n,!1),this._logoControl instanceof rv&&this._logoControl._updateLogo(),n&&n.clear(n.DEPTH_BUFFER_BIT|n.COLOR_BUFFER_BIT|n.STENCIL_BUFFER_BIT),this._silenceAuthErrors||this.fire(new i.ErrorEvent(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/")))}}),i.postMapLoadEvent(this._getMapId(),this._requestManager._skuToken,this._requestManager._customAccessToken,()=>{})}_updateTerrain(){this.painter.updateTerrain(this.style,this.isMoving()||this.isRotating()||this.isZooming())}_calculateSpeedIndex(){const i=this.painter.canvasCopy(),r=this.painter.getCanvasCopiesAndTimestamps();r.timeStamps.push(performance.now());const n=this.painter.context.gl,o=n.createFramebuffer();function s(i){n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,i,0);const r=new Uint8Array(n.drawingBufferWidth*n.drawingBufferHeight*4);return n.readPixels(0,0,n.drawingBufferWidth,n.drawingBufferHeight,n.RGBA,n.UNSIGNED_BYTE,r),r}return n.bindFramebuffer(n.FRAMEBUFFER,o),this._canvasPixelComparison(s(i),r.canvasCopies.map(s),r.timeStamps)}_canvasPixelComparison(i,r,n){let o=n[1]-n[0];const s=i.length/4;for(let a=0;a{const r=!!this._renderNextFrame;this._frame=null,this._renderNextFrame=null,r&&this._render(i)}))}_preloadTiles(r){const n=this.style&&Object.values(this.style._sourceCaches)||[];return i.asyncAll(n,(i,n)=>i._preloadTiles(r,n),()=>{this.triggerRepaint()}),this}_onWindowOnline(){this._update()}_onWindowResize(i){this._trackResize&&this.resize({originalEvent:i})._update()}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(i){this._showTileBoundaries!==i&&(this._showTileBoundaries=i,this._update())}get showTerrainWireframe(){return!!this._showTerrainWireframe}set showTerrainWireframe(i){this._showTerrainWireframe!==i&&(this._showTerrainWireframe=i,this._update())}get speedIndexTiming(){return!!this._speedIndexTiming}set speedIndexTiming(i){this._speedIndexTiming!==i&&(this._speedIndexTiming=i,this._update())}get showPadding(){return!!this._showPadding}set showPadding(i){this._showPadding!==i&&(this._showPadding=i,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(i){this._showCollisionBoxes!==i&&(this._showCollisionBoxes=i,i?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(i){this._showOverdrawInspector!==i&&(this._showOverdrawInspector=i,this._update())}get repaint(){return!!this._repaint}set repaint(i){this._repaint!==i&&(this._repaint=i,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(i){this._vertices=i,this._update()}_setCacheLimits(r,n){i.setCacheLimits(r,n)}get version(){return i.version}},NavigationControl:class{constructor(r){this.options=i.extend({},rP,r),this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",i=>i.preventDefault()),this.options.showZoom&&(i.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",i=>this._map.zoomIn({},{originalEvent:i})),a.create("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden",!0),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",i=>this._map.zoomOut({},{originalEvent:i})),a.create("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden",!0)),this.options.showCompass&&(i.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",i=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:i}):this._map.resetNorth({},{originalEvent:i})}),this._compassIcon=a.create("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden",!0))}_updateZoomButtons(){const i=this._map.getZoom(),r=i===this._map.getMaxZoom(),n=i===this._map.getMinZoom();this._zoomInButton.disabled=r,this._zoomOutButton.disabled=n,this._zoomInButton.setAttribute("aria-disabled",r.toString()),this._zoomOutButton.setAttribute("aria-disabled",n.toString())}_rotateCompassArrow(){const i=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._map._requestDomTask(()=>{this._compassIcon&&(this._compassIcon.style.transform=i)})}onAdd(i){return this._map=i,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new rD(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){this._container.remove(),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(i,r){const n=a.create("button",i,this._container);return n.type="button",n.addEventListener("click",r),n}_setButtonTitle(i,r){const n=this._map._getUIString(`NavigationControl.${r}`);i.setAttribute("aria-label",n),i.firstElementChild&&i.firstElementChild.setAttribute("title",n)}},GeolocateControl:class extends i.Evented{constructor(r){super(),this.options=i.extend({},rL,r),i.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker","_updateMarkerRotation"],this),this._onDeviceOrientationListener=this._onDeviceOrientation.bind(this),this._updateMarkerRotationThrottled=iP(this._updateMarkerRotation,20)}onAdd(r){var n;return this._map=r,this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),n=this._setupUI,void 0!==rU?n(rU):void 0!==i.window.navigator.permissions?i.window.navigator.permissions.query({name:"geolocation"}).then(i=>{n(rU="denied"!==i.state)}):(rU=!!i.window.navigator.geolocation,n(rU)),this._container}onRemove(){void 0!==this._geolocationWatchID&&(i.window.navigator.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,rV=0,rN=!1}_isOutOfMapMaxBounds(i){const r=this._map.getMaxBounds(),n=i.coords;return r&&(n.longituder.getEast()||n.latituder.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(r){if(this._map){if(this._isOutOfMapMaxBounds(r))return this._setErrorState(),this.fire(new i.Event("outofmaxbounds",r)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=r,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(r),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(r),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("geolocate",r)),this._finish()}}_updateCamera(r){const n=new i.LngLat(r.coords.longitude,r.coords.latitude),o=r.coords.accuracy,s=this._map.getBearing(),a=i.extend({bearing:s},this.options.fitBoundsOptions);this._map.fitBounds(n.toBounds(o),a,{geolocateSource:!0})}_updateMarker(r){if(r){const n=new i.LngLat(r.coords.longitude,r.coords.latitude);this._accuracyCircleMarker.setLngLat(n).addTo(this._map),this._userLocationDotMarker.setLngLat(n).addTo(this._map),this._accuracy=r.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()}_updateCircleRadius(){const i=this._map._containerHeight/2,r=this._map.unproject([0,i]),n=this._map.unproject([100,i]),o=r.distanceTo(n)/100,s=Math.ceil(2*this._accuracy/o);this._circleElement.style.width=`${s}px`,this._circleElement.style.height=`${s}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}_updateMarkerRotation(){this._userLocationDotMarker&&"number"==typeof this._heading?(this._userLocationDotMarker.setRotation(this._heading),this._dotElement.classList.add("mapboxgl-user-location-show-heading")):(this._dotElement.classList.remove("mapboxgl-user-location-show-heading"),this._userLocationDotMarker.setRotation(0))}_onError(r){if(this._map){if(this.options.trackUserLocation){if(1===r.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 n=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.setAttribute("aria-label",n),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",n),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===r.code&&rN)return;this._setErrorState()}}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("error",r)),this._finish()}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0}_setupUI(r){if(this._container.addEventListener("contextmenu",i=>i.preventDefault()),this._geolocateButton=a.create("button","mapboxgl-ctrl-geolocate",this._container),a.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",!1===r){i.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");const n=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.setAttribute("aria-label",n),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",n)}else{const o=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.setAttribute("aria-label",o),this._geolocateButton.firstElementChild&&this._geolocateButton.firstElementChild.setAttribute("title",o)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=a.create("div","mapboxgl-user-location"),this._dotElement.appendChild(a.create("div","mapboxgl-user-location-dot")),this._dotElement.appendChild(a.create("div","mapboxgl-user-location-heading")),this._userLocationDotMarker=new rE({element:this._dotElement,rotationAlignment:"map",pitchAlignment:"map"}),this._circleElement=a.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new rE({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",r=>{r.geolocateSource||"ACTIVE_LOCK"!==this._watchState||r.originalEvent&&"resize"===r.originalEvent.type||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this.fire(new i.Event("trackuserlocationend")))})}_onDeviceOrientation(i){this._userLocationDotMarker&&(i.webkitCompassHeading?this._heading=i.webkitCompassHeading:!0===i.absolute&&(this._heading=-1*i.alpha),this._updateMarkerRotationThrottled())}trigger(){if(!this._setup)return i.warnOnce("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 i.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":rV--,rN=!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 i.Event("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 i.Event("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 r;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++rV>1?(r={maximumAge:6e5,timeout:0},rN=!0):(r=this.options.positionOptions,rN=!1),this._geolocationWatchID=i.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,r),this.options.showUserHeading&&this._addDeviceOrientationListener()}}else i.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_addDeviceOrientationListener(){const r=()=>{i.window.addEventListener("ondeviceorientationabsolute"in i.window?"deviceorientationabsolute":"deviceorientation",this._onDeviceOrientationListener)};void 0!==i.window.DeviceMotionEvent&&"function"==typeof i.window.DeviceMotionEvent.requestPermission?DeviceOrientationEvent.requestPermission().then(i=>{"granted"===i&&r()}).catch(console.error):r()}_clearWatch(){i.window.navigator.geolocation.clearWatch(this._geolocationWatchID),i.window.removeEventListener("deviceorientation",this._onDeviceOrientationListener),i.window.removeEventListener("deviceorientationabsolute",this._onDeviceOrientationListener),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:rx,ScaleControl:class{constructor(r){this.options=i.extend({},rj,r),i.bindAll(["_onMove","setUnit"],this)}getDefaultPosition(){return"bottom-left"}_onMove(){rG(this._map,this._container,this.options)}onAdd(i){return this._map=i,this._container=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",i.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){this._container.remove(),this._map.off("move",this._onMove),this._map=void 0}setUnit(i){this.options.unit=i,rG(this._map,this._container,this.options)}},FullscreenControl:class{constructor(r){this._fullscreen=!1,r&&r.container&&(r.container instanceof i.window.HTMLElement?this._container=r.container:i.warnOnce("Full screen control 'container' must be a DOM element.")),i.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in i.window.document?this._fullscreenchange="fullscreenchange":"onwebkitfullscreenchange"in i.window.document&&(this._fullscreenchange="webkitfullscreenchange")}onAdd(r){return this._map=r,this._container||(this._container=this._map.getContainer()),this._controlContainer=a.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",i.warnOnce("This device does not support fullscreen mode.")),this._controlContainer}onRemove(){this._controlContainer.remove(),this._map=null,i.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)}_checkFullscreenSupport(){return!(!i.window.document.fullscreenEnabled&&!i.window.document.webkitFullscreenEnabled)}_setupUI(){const r=this._fullscreenButton=a.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);a.create("span","mapboxgl-ctrl-icon",r).setAttribute("aria-hidden",!0),r.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),i.window.document.addEventListener(this._fullscreenchange,this._changeIcon)}_updateTitle(){const i=this._getTitle();this._fullscreenButton.setAttribute("aria-label",i),this._fullscreenButton.firstElementChild&&this._fullscreenButton.firstElementChild.setAttribute("title",i)}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_changeIcon(){(i.window.document.fullscreenElement||i.window.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()?i.window.document.exitFullscreen?i.window.document.exitFullscreen():i.window.document.webkitCancelFullScreen&&i.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()}},Popup:class extends i.Evented{constructor(r){super(),this.options=i.extend(Object.create(r$),r),i.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this),this._classList=new Set(r&&r.className?r.className.trim().split(/\s+/):[])}addTo(r){return this._map&&this.remove(),this._map=r,this.options.closeOnClick&&this._map.on("preclick",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new i.Event("open")),this}isOpen(){return!!this._map}remove(){return this._content&&this._content.remove(),this._container&&(this._container.remove(),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new i.Event("close")),this}getLngLat(){return this._lngLat}setLngLat(r){return this._lngLat=i.LngLat.convert(r),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this}getElement(){return this._container}setText(r){return this.setDOMContent(i.window.document.createTextNode(r))}setHTML(r){let n;const o=i.window.document.createDocumentFragment(),s=i.window.document.createElement("body");for(s.innerHTML=r;n=s.firstChild;)o.appendChild(n);return this.setDOMContent(o)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(i){return this.options.maxWidth=i,this._update(),this}setDOMContent(i){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=a.create("div","mapboxgl-popup-content",this._container);return this._content.appendChild(i),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(i){return this._classList.add(i),this._container&&this._updateClassList(),this}removeClassName(i){return this._classList.delete(i),this._container&&this._updateClassList(),this}setOffset(i){return this.options.offset=i,this._update(),this}toggleClassName(i){let r;return this._classList.delete(i)?r=!1:(this._classList.add(i),r=!0),this._container&&this._updateClassList(),r}_createCloseButton(){this.options.closeButton&&(this._closeButton=a.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.setAttribute("aria-hidden","true"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_onMouseUp(i){this._update(i.point)}_onMouseMove(i){this._update(i.point)}_onDrag(i){this._update(i.point)}_getAnchor(i){let r;if(this.options.anchor)return this.options.anchor;const n=this._pos,o=this._container.offsetWidth,s=this._container.offsetHeight;return r=n.y+i.bottom.ythis._map.transform.height-s?["bottom"]:[],n.xthis._map.transform.width-o/2&&r.push("right"),0===r.length?"bottom":r.join("-")}_updateClassList(){const i=[...this._classList];i.push("mapboxgl-popup"),this._anchor&&i.push(`mapboxgl-popup-anchor-${this._anchor}`),this._trackPointer&&i.push("mapboxgl-popup-track-pointer"),this._container.className=i.join(" ")}_update(r){if(this._map&&(this._lngLat||this._trackPointer)&&this._content){if(this._container||(this._container=a.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=a.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content)),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=rw(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||r){const n=this._pos=this._trackPointer&&r?r:this._map.project(this._lngLat),o=function(r){if(r||(r=new i.pointGeometry(0,0)),"number"==typeof r){const n=Math.round(Math.sqrt(.5*Math.pow(r,2)));return{center:new i.pointGeometry(0,0),top:new i.pointGeometry(0,r),"top-left":new i.pointGeometry(n,n),"top-right":new i.pointGeometry(-n,n),bottom:new i.pointGeometry(0,-r),"bottom-left":new i.pointGeometry(n,-n),"bottom-right":new i.pointGeometry(-n,-n),left:new i.pointGeometry(r,0),right:new i.pointGeometry(-r,0)}}if(r instanceof i.pointGeometry||Array.isArray(r)){const o=i.pointGeometry.convert(r);return{center:o,top:o,"top-left":o,"top-right":o,bottom:o,"bottom-left":o,"bottom-right":o,left:o,right:o}}return{center:i.pointGeometry.convert(r.center||[0,0]),top:i.pointGeometry.convert(r.top||[0,0]),"top-left":i.pointGeometry.convert(r["top-left"]||[0,0]),"top-right":i.pointGeometry.convert(r["top-right"]||[0,0]),bottom:i.pointGeometry.convert(r.bottom||[0,0]),"bottom-left":i.pointGeometry.convert(r["bottom-left"]||[0,0]),"bottom-right":i.pointGeometry.convert(r["bottom-right"]||[0,0]),left:i.pointGeometry.convert(r.left||[0,0]),right:i.pointGeometry.convert(r.right||[0,0])}}(this.options.offset),s=this._anchor=this._getAnchor(o),l=n.add(o[s]).round();this._map._requestDomTask(()=>{this._container&&s&&(this._container.style.transform=`${rT[s]} translate(${l.x}px,${l.y}px)`)})}this._updateClassList()}}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const i=this._container.querySelector("a[href], [tabindex]:not([tabindex='-1']), [contenteditable]:not([contenteditable='false']), button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled])");i&&i.focus()}_onClose(){this.remove()}_setOpacity(i){this._content&&(this._content.style.opacity=i),this._tip&&(this._tip.style.opacity=i)}},Marker:rE,Style:tu,LngLat:i.LngLat,LngLatBounds:i.LngLatBounds,Point:i.pointGeometry,MercatorCoordinate:i.MercatorCoordinate,FreeCameraOptions:iT,Evented:i.Evented,config:i.config,prewarm:function(){eI().acquire(eE)},clearPrewarmedResources:function(){const i=rF;i&&(i.isPreloaded()&&1===i.numActive()?(i.release(eE),rF=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()"))},get accessToken(){return i.config.ACCESS_TOKEN},set accessToken(t){i.config.ACCESS_TOKEN=t},get baseApiUrl(){return i.config.API_URL},set baseApiUrl(t){i.config.API_URL=t},get workerCount(){return eS.workerCount},set workerCount(e){eS.workerCount=e},get maxParallelImageRequests(){return i.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(t){i.config.MAX_PARALLEL_IMAGE_REQUESTS=t},clearStorage(r){i.clearTileCache(r)},workerUrl:"",workerClass:null,setNow:i.exported.setNow,restoreNow:i.exported.restoreNow};return rq}),n},i.exports=o()}}]); diff --git a/crates/swc_ecma_minifier/tests/full/feedback-mapbox/785-e1932cc99ac3bb67/output.js b/crates/swc_ecma_minifier/tests/full/feedback-mapbox/785-e1932cc99ac3bb67/output.js index 0c6503e90458..d992adec1c38 100644 --- a/crates/swc_ecma_minifier/tests/full/feedback-mapbox/785-e1932cc99ac3bb67/output.js +++ b/crates/swc_ecma_minifier/tests/full/feedback-mapbox/785-e1932cc99ac3bb67/output.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[785],{840:function(t,e,n){var r;!function(i,o,a,s){"use strict";var c,u=["","webkit","Moz","MS","ms","o"],l=o.createElement("div"),h=Math.round,p=Math.abs,f=Date.now;function d(t,e,n){return setTimeout(O(t,n),e)}function v(t,e,n){return!!Array.isArray(t)&&(g(t,n[e],n),!0)}function g(t,e,n){var r;if(t){if(t.forEach)t.forEach(e,n);else if(s!==t.length)for(r=0;r\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=i.console&&(i.console.warn||i.console.log);return o&&o.call(i.console,r,n),t.apply(this,arguments)}}c="function"!=typeof Object.assign?function(t){if(t===s||null===t)throw TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n-1}function T(t){return t.trim().split(/\s+/g)}function k(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;rk(i,a)&&r.push(t[o]),i[o]=a,o++}return n&&(r=e?r.sort(function(t,n){return t[e]>n[e]}):r.sort()),r}function C(t,e){for(var n,r,i=e[0].toUpperCase()+e.slice(1),o=0;o1&&!i.firstMultiple?i.firstMultiple=q(r):1===a&&(i.firstMultiple=!1),c=i.firstInput,l=(u=i.firstMultiple)?u.center:c.center,h=r.center=H(o),r.timeStamp=f(),r.deltaTime=r.timeStamp-c.timeStamp,r.angle=K(l,h),r.distance=X(l,h),d=i,g=(v=r).center,m=d.offsetDelta||{},b=d.prevDelta||{},y=d.prevInput||{},(1===v.eventType||4===y.eventType)&&(b=d.prevDelta={x:y.deltaX||0,y:y.deltaY||0},m=d.offsetDelta={x:g.x,y:g.y}),v.deltaX=b.x+(g.x-m.x),v.deltaY=b.y+(g.y-m.y),r.offsetDirection=Y(r.deltaX,r.deltaY),w=W(r.deltaTime,r.deltaX,r.deltaY),r.overallVelocityX=w.x,r.overallVelocityY=w.y,r.overallVelocity=p(w.x)>p(w.y)?w.x:w.y,r.scale=u?(O=u.pointers,X(o[0],o[1],B)/X(O[0],O[1],B)):1,r.rotation=u?(E=u.pointers,K(o[1],o[0],B)+K(E[1],E[0],B)):0,r.maxPointers=i.prevInput?r.pointers.length>i.prevInput.maxPointers?r.pointers.length:i.prevInput.maxPointers:r.pointers.length,function(t,e){var n,r,i,o,a=t.lastInterval||e,c=e.timeStamp-a.timeStamp;if(8!=e.eventType&&(c>25||s===a.velocity)){var u=e.deltaX-a.deltaX,l=e.deltaY-a.deltaY,h=W(c,u,l);r=h.x,i=h.y,n=p(h.x)>p(h.y)?h.x:h.y,o=Y(u,l),t.lastInterval=e}else n=a.velocity,r=a.velocityX,i=a.velocityY,o=a.direction;e.velocity=n,e.velocityX=r,e.velocityY=i,e.direction=o}(i,r),_=t.element,j(r.srcEvent.target,_)&&(_=r.srcEvent.target),r.target=_,t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function q(t){for(var e=[],n=0;n=p(e)?t<0?2:4:e<0?8:16}function X(t,e,n){n||(n=V);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function K(t,e,n){n||(n=V);var r=e[n[0]]-t[n[0]];return 180*Math.atan2(e[n[1]]-t[n[1]],r)/Math.PI}Z.prototype={handler:function(){},init:function(){this.evEl&&P(this.element,this.evEl,this.domHandler),this.evTarget&&P(this.target,this.evTarget,this.domHandler),this.evWin&&P(A(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&M(this.element,this.evEl,this.domHandler),this.evTarget&&M(this.target,this.evTarget,this.domHandler),this.evWin&&M(A(this.element),this.evWin,this.domHandler)}};var G={mousedown:1,mousemove:2,mouseup:4};function $(){this.evEl="mousedown",this.evWin="mousemove mouseup",this.pressed=!1,Z.apply(this,arguments)}w($,Z,{handler:function(t){var e=G[t.type];1&e&&0===t.button&&(this.pressed=!0),2&e&&1!==t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:F,srcEvent:t}))}});var J={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},Q={2:z,3:"pen",4:F,5:"kinect"},tt="pointerdown",te="pointermove pointerup pointercancel";function tn(){this.evEl=tt,this.evWin=te,Z.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}i.MSPointerEvent&&!i.PointerEvent&&(tt="MSPointerDown",te="MSPointerMove MSPointerUp MSPointerCancel"),w(tn,Z,{handler:function(t){var e=this.store,n=!1,r=J[t.type.toLowerCase().replace("ms","")],i=Q[t.pointerType]||t.pointerType,o=k(e,t.pointerId,"pointerId");1&r&&(0===t.button||i==z)?o<0&&(e.push(t),o=e.length-1):12&r&&(n=!0),!(o<0)&&(e[o]=t,this.callback(this.manager,r,{pointers:e,changedPointers:[t],pointerType:i,srcEvent:t}),n&&e.splice(o,1))}});var tr={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function ti(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,Z.apply(this,arguments)}function to(t,e){var n=x(t.touches),r=x(t.changedTouches);return 12&e&&(n=D(n.concat(r),"identifier",!0)),[n,r]}w(ti,Z,{handler:function(t){var e=tr[t.type];if(1===e&&(this.started=!0),this.started){var n=to.call(this,t,e);12&e&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:z,srcEvent:t})}}});var ta={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function ts(){this.evTarget="touchstart touchmove touchend touchcancel",this.targetIds={},Z.apply(this,arguments)}function tc(t,e){var n=x(t.touches),r=this.targetIds;if(3&e&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=x(t.changedTouches),s=[],c=this.target;if(o=n.filter(function(t){return j(t.target,c)}),1===e)for(i=0;i-1&&r.splice(t,1)},2500)}}function tp(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,r=0;r-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){var e=this,n=this.state;function r(n){e.manager.emit(n,t)}n<8&&r(e.options.event+tP(n)),r(e.options.event),t.additionalEvent&&r(t.additionalEvent),n>=8&&r(e.options.event+tP(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&i&e.direction},attrTest:function(t){return tS.prototype.attrTest.call(this,t)&&(2&this.state||!(2&this.state)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=tM(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),w(tk,tS,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[tb]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||2&this.state)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),w(tx,t_,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[tg]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distancee.time;if(this._input=t,r&&n&&(!(12&t.eventType)||i)){if(1&t.eventType)this.reset(),this._timer=d(function(){this.state=8,this.tryEmit()},e.time,this);else if(4&t.eventType)return 8}else this.reset();return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){8===this.state&&(t&&4&t.eventType?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=f(),this.manager.emit(this.options.event,this._input)))}}),w(tD,tS,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[tb]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||2&this.state)}}),w(tC,tS,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return tT.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return 30&n?e=t.overallVelocity:6&n?e=t.overallVelocityX:24&n&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&p(e)>this.options.velocity&&4&t.eventType},emit:function(t){var e=tM(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),w(tR,t_,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[tm]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance1)for(var n=1;nt.length)&&(e=t.length);for(var n=0,r=Array(e);nn?n:t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),s=new d(4),d!=Float32Array&&(s[0]=0,s[1]=0,s[2]=0,s[3]=0);const y=Math.log2||function(t){return Math.log(t)*Math.LOG2E};function w(t,e,n){var r=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],u=e[6],l=e[7],h=e[8],p=e[9],f=e[10],d=e[11],v=e[12],g=e[13],m=e[14],b=e[15],y=n[0],w=n[1],O=n[2],E=n[3];return t[0]=y*r+w*s+O*h+E*v,t[1]=y*i+w*c+O*p+E*g,t[2]=y*o+w*u+O*f+E*m,t[3]=y*a+w*l+O*d+E*b,y=n[4],w=n[5],O=n[6],E=n[7],t[4]=y*r+w*s+O*h+E*v,t[5]=y*i+w*c+O*p+E*g,t[6]=y*o+w*u+O*f+E*m,t[7]=y*a+w*l+O*d+E*b,y=n[8],w=n[9],O=n[10],E=n[11],t[8]=y*r+w*s+O*h+E*v,t[9]=y*i+w*c+O*p+E*g,t[10]=y*o+w*u+O*f+E*m,t[11]=y*a+w*l+O*d+E*b,y=n[12],w=n[13],O=n[14],E=n[15],t[12]=y*r+w*s+O*h+E*v,t[13]=y*i+w*c+O*p+E*g,t[14]=y*o+w*u+O*f+E*m,t[15]=y*a+w*l+O*d+E*b,t}function O(t,e,n){var r,i,o,a,s,c,u,l,h,p,f,d,v=n[0],g=n[1],m=n[2];return e===t?(t[12]=e[0]*v+e[4]*g+e[8]*m+e[12],t[13]=e[1]*v+e[5]*g+e[9]*m+e[13],t[14]=e[2]*v+e[6]*g+e[10]*m+e[14],t[15]=e[3]*v+e[7]*g+e[11]*m+e[15]):(r=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],u=e[6],l=e[7],h=e[8],p=e[9],f=e[10],d=e[11],t[0]=r,t[1]=i,t[2]=o,t[3]=a,t[4]=s,t[5]=c,t[6]=u,t[7]=l,t[8]=h,t[9]=p,t[10]=f,t[11]=d,t[12]=r*v+s*g+h*m+e[12],t[13]=i*v+c*g+p*m+e[13],t[14]=o*v+u*g+f*m+e[14],t[15]=a*v+l*g+d*m+e[15]),t}function E(t,e,n){var r=n[0],i=n[1],o=n[2];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]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*o,t[9]=e[9]*o,t[10]=e[10]*o,t[11]=e[11]*o,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function _(t,e){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],c=t[6],u=t[7],l=t[8],h=t[9],p=t[10],f=t[11],d=t[12],v=t[13],g=t[14],m=t[15],b=e[0],y=e[1],w=e[2],O=e[3],E=e[4],_=e[5],P=e[6],M=e[7],j=e[8],S=e[9],T=e[10],k=e[11],x=e[12],D=e[13],C=e[14],R=e[15];return Math.abs(n-b)<=1e-6*Math.max(1,Math.abs(n),Math.abs(b))&&Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(i-w)<=1e-6*Math.max(1,Math.abs(i),Math.abs(w))&&Math.abs(o-O)<=1e-6*Math.max(1,Math.abs(o),Math.abs(O))&&Math.abs(a-E)<=1e-6*Math.max(1,Math.abs(a),Math.abs(E))&&Math.abs(s-_)<=1e-6*Math.max(1,Math.abs(s),Math.abs(_))&&Math.abs(c-P)<=1e-6*Math.max(1,Math.abs(c),Math.abs(P))&&Math.abs(u-M)<=1e-6*Math.max(1,Math.abs(u),Math.abs(M))&&Math.abs(l-j)<=1e-6*Math.max(1,Math.abs(l),Math.abs(j))&&Math.abs(h-S)<=1e-6*Math.max(1,Math.abs(h),Math.abs(S))&&Math.abs(p-T)<=1e-6*Math.max(1,Math.abs(p),Math.abs(T))&&Math.abs(f-k)<=1e-6*Math.max(1,Math.abs(f),Math.abs(k))&&Math.abs(d-x)<=1e-6*Math.max(1,Math.abs(d),Math.abs(x))&&Math.abs(v-D)<=1e-6*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(g-C)<=1e-6*Math.max(1,Math.abs(g),Math.abs(C))&&Math.abs(m-R)<=1e-6*Math.max(1,Math.abs(m),Math.abs(R))}function P(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function M(t,e,n,r){var i=e[0],o=e[1];return t[0]=i+r*(n[0]-i),t[1]=o+r*(n[1]-o),t}function j(t,e){if(!t)throw Error(e||"@math.gl/web-mercator: assertion failed.")}c=new d(2),d!=Float32Array&&(c[0]=0,c[1]=0),u=new d(3),d!=Float32Array&&(u[0]=0,u[1]=0,u[2]=0);const S=Math.PI,T=S/4,k=S/180,x=180/S;function D(t){return Math.pow(2,t)}function C([t,e]){j(Number.isFinite(t)),j(Number.isFinite(e)&&e>=-90&&e<=90,"invalid latitude");const n=512*(S+Math.log(Math.tan(T+.5*(e*k))))/(2*S);return[512*(t*k+S)/(2*S),n]}function R([t,e]){const n=2*(Math.atan(Math.exp(e/512*(2*S)-S))-T);return[(t/512*(2*S)-S)*x,n*x]}function A(t){return 2*Math.atan(.5/t)*x}function I(t){return .5/Math.tan(.5*t*k)}function L(t,e,n=0){const[r,i,o]=t;if(j(Number.isFinite(r)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(o)){const a=g(e,[r,i,o,1]);return a}const s=g(e,[r,i,0,1]),c=g(e,[r,i,1,1]),u=s[2],l=c[2];return M([],s,c,u===l?0:((n||0)-u)/(l-u))}const N=Math.PI/180;function z(t,e,n){const{pixelUnprojectionMatrix:r}=t,i=g(r,[e,0,1,1]),o=g(r,[e,t.height,1,1]),a=n*t.distanceScales.unitsPerMeter[2],s=(a-i[2])/(o[2]-i[2]),c=M([],i,o,s),u=R(c);return u[2]=n,u}class F{constructor({width:t,height:e,latitude:n=0,longitude:r=0,zoom:i=0,pitch:o=0,bearing:a=0,altitude:s=null,fovy:c=null,position:u=null,nearZMultiplier:l=.02,farZMultiplier:h=1.01}={width:1,height:1}){t=t||1,e=e||1,null===c&&null===s?c=A(s=1.5):null===c?c=A(s):null===s&&(s=I(c));const p=D(i);s=Math.max(.75,s);const f=function({latitude:t,longitude:e,highPrecision:n=!1}){j(Number.isFinite(t)&&Number.isFinite(e));const r={},i=Math.cos(t*k),o=512/360,a=o/i,s=512/4003e4/i;if(r.unitsPerMeter=[s,s,s],r.metersPerUnit=[1/s,1/s,1/s],r.unitsPerDegree=[o,a,s],r.degreesPerUnit=[1/o,1/a,1/s],n){const c=k*Math.tan(t*k)/i,u=512/4003e4*c,l=u/a*s;r.unitsPerDegree2=[0,o*c/2,u],r.unitsPerMeter2=[l,0,l]}return r}({longitude:r,latitude:n}),d=C([r,n]);if(d[2]=0,u){var g,m,b;b=d,g=[],m=f.unitsPerMeter,g[0]=u[0]*m[0],g[1]=u[1]*m[1],g[2]=u[2]*m[2],b[0]=d[0]+g[0],b[1]=d[1]+g[1],b[2]=d[2]+g[2]}this.projectionMatrix=function({width:t,height:e,pitch:n,altitude:r,fovy:i,nearZMultiplier:o,farZMultiplier:a}){var s,c,u;const{fov:l,aspect:h,near:p,far:f}=function({width:t,height:e,fovy:n=A(1.5),altitude:r,pitch:i=0,nearZMultiplier:o=1,farZMultiplier:a=1}){void 0!==r&&(n=A(r));const s=.5*n*k,c=I(n),u=i*k,l=Math.sin(s)*c/Math.sin(Math.min(Math.max(Math.PI/2-u-s,.01),Math.PI-.01)),h=Math.sin(u)*l+c;return{fov:2*s,aspect:t/e,focalDistance:c,near:o,far:h*a}}({width:t,height:e,altitude:r,fovy:i,pitch:n,nearZMultiplier:o,farZMultiplier:a}),d=(s=[],u=1/Math.tan(l/2),s[0]=u/h,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=u,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[11]=-1,s[12]=0,s[13]=0,s[15]=0,null!=f&&f!==1/0?(c=1/(p-f),s[10]=(f+p)*c,s[14]=2*f*p*c):(s[10]=-1,s[14]=-2*p),s);return d}({width:t,height:e,pitch:o,fovy:c,nearZMultiplier:l,farZMultiplier:h}),this.viewMatrix=function({height:t,pitch:e,bearing:n,altitude:r,scale:i,center:o=null}){var a,s,c,u,l,h,p,f,d,g,m,b,y,w,_,P,M,j,S,T,x,D,C,R,A;const I=v();return O(I,I,[0,0,-r]),a=I,c=Math.sin(s=-e*k),u=Math.cos(s),l=I[4],h=I[5],p=I[6],f=I[7],d=I[8],g=I[9],m=I[10],b=I[11],I!==a&&(a[0]=I[0],a[1]=I[1],a[2]=I[2],a[3]=I[3],a[12]=I[12],a[13]=I[13],a[14]=I[14],a[15]=I[15]),a[4]=l*u+d*c,a[5]=h*u+g*c,a[6]=p*u+m*c,a[7]=f*u+b*c,a[8]=d*u-l*c,a[9]=g*u-h*c,a[10]=m*u-p*c,a[11]=b*u-f*c,y=I,_=Math.sin(w=n*k),P=Math.cos(w),M=I[0],j=I[1],S=I[2],T=I[3],x=I[4],D=I[5],C=I[6],R=I[7],I!==y&&(y[8]=I[8],y[9]=I[9],y[10]=I[10],y[11]=I[11],y[12]=I[12],y[13]=I[13],y[14]=I[14],y[15]=I[15]),y[0]=M*P+x*_,y[1]=j*P+D*_,y[2]=S*P+C*_,y[3]=T*P+R*_,y[4]=x*P-M*_,y[5]=D*P-j*_,y[6]=C*P-S*_,y[7]=R*P-T*_,E(I,I,[i/=t,i,i]),o&&O(I,I,((A=[])[0]=-o[0],A[1]=-o[1],A[2]=-o[2],A)),I}({height:e,scale:p,center:d,pitch:o,bearing:a,altitude:s}),this.width=t,this.height=e,this.scale=p,this.latitude=n,this.longitude=r,this.zoom=i,this.pitch=o,this.bearing=a,this.altitude=s,this.fovy=c,this.center=d,this.meterOffset=u||[0,0,0],this.distanceScales=f,this._initMatrices(),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),Object.freeze(this)}_initMatrices(){var t,e,n,r,i,o,a,s,c,u,l,h,p,f,d,g,m,b,y,_,P,M,j,S,T,k,x,D,C,R;const{width:A,height:I,projectionMatrix:L,viewMatrix:N}=this,z=v();w(z,z,L),w(z,z,N),this.viewProjectionMatrix=z;const F=v();E(F,F,[A/2,-I/2,1]),O(F,F,[1,-1,0]),w(F,F,z);const V=(t=v(),e=F[0],n=F[1],r=F[2],i=F[3],o=F[4],a=F[5],s=F[6],c=F[7],u=F[8],l=F[9],h=F[10],p=F[11],f=F[12],d=F[13],g=F[14],m=F[15],b=e*a-n*o,y=e*s-r*o,_=e*c-i*o,P=n*s-r*a,M=n*c-i*a,j=r*c-i*s,S=u*d-l*f,T=u*g-h*f,k=u*m-p*f,x=l*g-h*d,D=l*m-p*d,(R=b*(C=h*m-p*g)-y*D+_*x+P*k-M*T+j*S)?(R=1/R,t[0]=(a*C-s*D+c*x)*R,t[1]=(r*D-n*C-i*x)*R,t[2]=(d*j-g*M+m*P)*R,t[3]=(h*M-l*j-p*P)*R,t[4]=(s*k-o*C-c*T)*R,t[5]=(e*C-r*k+i*T)*R,t[6]=(g*_-f*j-m*y)*R,t[7]=(u*j-h*_+p*y)*R,t[8]=(o*D-a*k+c*S)*R,t[9]=(n*k-e*D-i*S)*R,t[10]=(f*M-d*_+m*b)*R,t[11]=(l*_-u*M-p*b)*R,t[12]=(a*T-o*x-s*S)*R,t[13]=(e*x-n*T+r*S)*R,t[14]=(d*y-f*P-g*b)*R,t[15]=(u*P-l*y+h*b)*R,t):null);if(!V)throw Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=F,this.pixelUnprojectionMatrix=V}equals(t){return t instanceof F&&t.width===this.width&&t.height===this.height&&_(t.projectionMatrix,this.projectionMatrix)&&_(t.viewMatrix,this.viewMatrix)}project(t,{topLeft:e=!0}={}){const n=this.projectPosition(t),r=function(t,e){const[n,r,i=0]=t;return j(Number.isFinite(n)&&Number.isFinite(r)&&Number.isFinite(i)),g(e,[n,r,i,1])}(n,this.pixelProjectionMatrix),[i,o]=r,a=e?o:this.height-o;return 2===t.length?[i,a]:[i,a,r[2]]}unproject(t,{topLeft:e=!0,targetZ:n}={}){const[r,i,o]=t,a=e?i:this.height-i,s=n&&n*this.distanceScales.unitsPerMeter[2],c=L([r,a,o],this.pixelUnprojectionMatrix,s),[u,l,h]=this.unprojectPosition(c);return Number.isFinite(o)?[u,l,h]:Number.isFinite(n)?[u,l,n]:[u,l]}projectPosition(t){const[e,n]=C(t),r=(t[2]||0)*this.distanceScales.unitsPerMeter[2];return[e,n,r]}unprojectPosition(t){const[e,n]=R(t),r=(t[2]||0)*this.distanceScales.metersPerUnit[2];return[e,n,r]}projectFlat(t){return C(t)}unprojectFlat(t){return R(t)}getMapCenterByLngLatPosition({lngLat:t,pos:e}){var n;const r=L(e,this.pixelUnprojectionMatrix),i=C(t),o=P([],i,((n=[])[0]=-r[0],n[1]=-r[1],n)),a=P([],this.center,o);return R(a)}getLocationAtPoint({lngLat:t,pos:e}){return this.getMapCenterByLngLatPosition({lngLat:t,pos:e})}fitBounds(t,e={}){const{width:n,height:r}=this,{longitude:i,latitude:o,zoom:a}=function({width:t,height:e,bounds:n,minExtent:r=0,maxZoom:i=24,padding:o=0,offset:a=[0,0]}){const[[s,c],[u,l]]=n;if(Number.isFinite(o)){const h=o;o={top:h,bottom:h,left:h,right:h}}else j(Number.isFinite(o.top)&&Number.isFinite(o.bottom)&&Number.isFinite(o.left)&&Number.isFinite(o.right));const p=C([s,b(l,-85.051129,85.051129)]),f=C([u,b(c,-85.051129,85.051129)]),d=[Math.max(Math.abs(f[0]-p[0]),r),Math.max(Math.abs(f[1]-p[1]),r)],v=[t-o.left-o.right-2*Math.abs(a[0]),e-o.top-o.bottom-2*Math.abs(a[1])];j(v[0]>0&&v[1]>0);const g=v[0]/d[0],m=v[1]/d[1],w=(o.right-o.left)/2/g,O=(o.bottom-o.top)/2/m,E=[(f[0]+p[0])/2+w,(f[1]+p[1])/2+O],_=R(E),P=Math.min(i,y(Math.abs(Math.min(g,m))));return j(Number.isFinite(P)),{longitude:_[0],latitude:_[1],zoom:P}}(Object.assign({width:n,height:r,bounds:t},e));return new F({width:n,height:r,longitude:i,latitude:o,zoom:a})}getBounds(t){const e=this.getBoundingRegion(t),n=Math.min(...e.map(t=>t[0])),r=Math.max(...e.map(t=>t[0])),i=Math.min(...e.map(t=>t[1])),o=Math.max(...e.map(t=>t[1]));return[[n,i],[r,o]]}getBoundingRegion(t={}){return function(t,e=0){let n,r;const{width:i,height:o,unproject:a}=t,s={targetZ:e},c=a([0,o],s),u=a([i,o],s),l=t.fovy?.5*t.fovy*N:Math.atan(.5/t.altitude),h=(90-t.pitch)*N;return l>h-.01?(n=z(t,0,e),r=z(t,i,e)):(n=a([0,0],s),r=a([i,0],s)),[c,u,r,n]}(this,t.z||0)}}const V=["longitude","latitude","zoom"],B={curve:1.414,speed:1.2};function Z(t,e,n){var r;n=Object.assign({},B,n);const i=n.curve,o=t.zoom,a=[t.longitude,t.latitude],s=D(o),c=e.zoom,u=[e.longitude,e.latitude],l=D(c-o),h=C(a),p=C(u),f=((r=[])[0]=p[0]-h[0],r[1]=p[1]-h[1],r),d=Math.max(t.width,t.height),v=d/l,g=Math.hypot(f[0],f[1])*s,m=Math.max(g,.01),b=i*i,y=(v*v-d*d+b*b*m*m)/(2*d*b*m),w=(v*v-d*d-b*b*m*m)/(2*v*b*m),O=Math.log(Math.sqrt(y*y+1)-y),E=Math.log(Math.sqrt(w*w+1)-w);return{startZoom:o,startCenterXY:h,uDelta:f,w0:d,u1:g,S:(E-O)/i,rho:i,rho2:b,r0:O,r1:E}}var U=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var n=-1;return t.some(function(t,r){return t[0]===e&&(n=r,!0)}),n}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var n=t(this.__entries__,e),r=this.__entries__[n];return r&&r[1]},e.prototype.set=function(e,n){var r=t(this.__entries__,e);~r?this.__entries__[r][1]=n:this.__entries__.push([e,n])},e.prototype.delete=function(e){var n=this.__entries__,r=t(n,e);~r&&n.splice(r,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var n=0,r=this.__entries__;n0},t.prototype.connect_=function(){q&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),X?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){q&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;Y.some(function(t){return!!~n.indexOf(t)})&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),G=function(t,e){for(var n=0,r=Object.keys(e);n0},t}(),ta="undefined"!=typeof WeakMap?new WeakMap:new U,ts=function t(e){if(!(this instanceof t))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var n=K.getInstance(),r=new to(e,n,this);ta.set(this,r)};["observe","unobserve","disconnect"].forEach(function(t){ts.prototype[t]=function(){var e;return(e=ta.get(this))[t].apply(e,arguments)}});var tc=void 0!==H.ResizeObserver?H.ResizeObserver:ts;function tu(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}function tl(t,e){for(var n=0;n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function tg(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1&&void 0!==arguments[1]?arguments[1]:"component";t.debug&&p.checkPropTypes(tw,t,"prop",e)}var t_=function(){function t(e){var n=this;if(tu(this,t),a(this,"props",tO),a(this,"width",0),a(this,"height",0),a(this,"_fireLoadEvent",function(){n.props.onLoad({type:"load",target:n._map})}),a(this,"_handleError",function(t){n.props.onError(t)}),!e.mapboxgl)throw Error("Mapbox not available");this.mapboxgl=e.mapboxgl,t.initialized||(t.initialized=!0,this._checkStyleSheet(this.mapboxgl.version)),this._initialize(e)}return th(t,[{key:"finalize",value:function(){return this._destroy(),this}},{key:"setProps",value:function(t){return this._update(this.props,t),this}},{key:"redraw",value:function(){var t=this._map;t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}},{key:"getMap",value:function(){return this._map}},{key:"_reuse",value:function(e){this._map=t.savedMap;var n=this._map.getContainer(),r=e.container;for(r.classList.add("mapboxgl-map");n.childNodes.length>0;)r.appendChild(n.childNodes[0]);this._map._container=r,t.savedMap=null,e.mapStyle&&this._map.setStyle(tb(e.mapStyle),{diff:!1}),this._map.isStyleLoaded()?this._fireLoadEvent():this._map.once("styledata",this._fireLoadEvent)}},{key:"_create",value:function(e){if(e.reuseMaps&&t.savedMap)this._reuse(e);else{if(e.gl){var n=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=n,e.gl}}var r={container:e.container,center:[0,0],zoom:8,pitch:0,bearing:0,maxZoom:24,style:tb(e.mapStyle),interactive:!1,trackResize:!1,attributionControl:e.attributionControl,preserveDrawingBuffer:e.preserveDrawingBuffer};e.transformRequest&&(r.transformRequest=e.transformRequest),this._map=new this.mapboxgl.Map(Object.assign({},r,e.mapOptions)),this._map.once("load",this._fireLoadEvent),this._map.on("error",this._handleError)}return this}},{key:"_destroy",value:function(){this._map&&(this.props.reuseMaps&&!t.savedMap?(t.savedMap=this._map,this._map.off("load",this._fireLoadEvent),this._map.off("error",this._handleError),this._map.off("styledata",this._fireLoadEvent)):this._map.remove(),this._map=null)}},{key:"_initialize",value:function(t){var e=this;t=Object.assign({},tO,t),tE(t,"Mapbox"),this.mapboxgl.accessToken=t.mapboxApiAccessToken||tO.mapboxApiAccessToken,this.mapboxgl.baseApiUrl=t.mapboxApiUrl,this._create(t);var n=t.container;Object.defineProperty(n,"offsetWidth",{configurable:!0,get:function(){return e.width}}),Object.defineProperty(n,"clientWidth",{configurable:!0,get:function(){return e.width}}),Object.defineProperty(n,"offsetHeight",{configurable:!0,get:function(){return e.height}}),Object.defineProperty(n,"clientHeight",{configurable:!0,get:function(){return e.height}});var r=this._map.getCanvas();r&&(r.style.outline="none"),this._updateMapViewport({},t),this._updateMapSize({},t),this.props=t}},{key:"_update",value:function(t,e){if(this._map){tE(e=Object.assign({},this.props,e),"Mapbox");var n=this._updateMapViewport(t,e),r=this._updateMapSize(t,e);this._updateMapStyle(t,e),!e.asyncRender&&(n||r)&&this.redraw(),this.props=e}}},{key:"_updateMapStyle",value:function(t,e){t.mapStyle!==e.mapStyle&&this._map.setStyle(tb(e.mapStyle),{diff:!e.preventStyleDiffing})}},{key:"_updateMapSize",value:function(t,e){var n=t.width!==e.width||t.height!==e.height;return n&&(this.width=e.width,this.height=e.height,this._map.resize()),n}},{key:"_updateMapViewport",value:function(t,e){var n=this._getViewState(t),r=this._getViewState(e),i=r.latitude!==n.latitude||r.longitude!==n.longitude||r.zoom!==n.zoom||r.pitch!==n.pitch||r.bearing!==n.bearing||r.altitude!==n.altitude;return i&&(this._map.jumpTo(this._viewStateToMapboxProps(r)),r.altitude!==n.altitude&&(this._map.transform.altitude=r.altitude)),i}},{key:"_getViewState",value:function(t){var e=t.viewState||t,n=e.longitude,r=e.latitude,i=e.zoom,o=e.pitch,a=e.bearing,s=e.altitude;return{longitude:n,latitude:r,zoom:i,pitch:void 0===o?0:o,bearing:void 0===a?0:a,altitude:void 0===s?1.5:s}}},{key:"_checkStyleSheet",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"0.47.0";if(void 0!==tp)try{var e=tp.createElement("div");if(e.className="mapboxgl-map",e.style.display="none",tp.body.appendChild(e),!("static"!==window.getComputedStyle(e).position)){var n=tp.createElement("link");n.setAttribute("rel","stylesheet"),n.setAttribute("type","text/css"),n.setAttribute("href","https://api.tiles.mapbox.com/mapbox-gl-js/v".concat(t,"/mapbox-gl.css")),tp.head.appendChild(n)}}catch(r){}}},{key:"_viewStateToMapboxProps",value:function(t){return{center:[t.longitude,t.latitude],zoom:t.zoom,bearing:t.bearing,pitch:t.pitch}}}]),t}();a(t_,"initialized",!1),a(t_,"propTypes",tw),a(t_,"defaultProps",tO),a(t_,"savedMap",null);var tP=n(6158),tM=n.n(tP);function tj(t){return Array.isArray(t)||ArrayBuffer.isView(t)}function tS(t,e,n){return Math.max(e,Math.min(n,t))}function tT(t,e,n){return tj(t)?t.map(function(t,r){return tT(t,e[r],n)}):n*e+(1-n)*t}function tk(t,e){if(!t)throw Error(e||"react-map-gl: assertion failed.")}function tx(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function tD(t){for(var e=1;e0,"`scale` must be a positive number");var i=this._state,o=i.startZoom,a=i.startZoomLngLat;Number.isFinite(o)||(o=this._viewportProps.zoom,a=this._unproject(n)||this._unproject(e)),tk(a,"`startZoomLngLat` prop is required for zoom behavior to calculate where to position the map.");var s=this._calculateNewZoom({scale:r,startZoom:o||0}),c=new F(Object.assign({},this._viewportProps,{zoom:s})).getMapCenterByLngLatPosition({lngLat:a,pos:e}),u=f(c,2),l=u[0],h=u[1];return this._getUpdatedMapState({zoom:s,longitude:l,latitude:h})}},{key:"zoomEnd",value:function(){return this._getUpdatedMapState({startZoomLngLat:null,startZoom:null})}},{key:"_getUpdatedMapState",value:function(e){return new t(Object.assign({},this._viewportProps,this._state,e))}},{key:"_applyConstraints",value:function(t){var e=t.maxZoom,n=t.minZoom,r=t.zoom;t.zoom=tS(r,n,e);var i=t.maxPitch,o=t.minPitch,a=t.pitch;return t.pitch=tS(a,o,i),Object.assign(t,function({width:t,height:e,longitude:n,latitude:r,zoom:i,pitch:o=0,bearing:a=0}){(n<-180||n>180)&&(n=m(n+180,360)-180),(a<-180||a>180)&&(a=m(a+180,360)-180);const s=y(e/512);if(i<=s)i=s,r=0;else{const c=e/2/Math.pow(2,i),u=R([0,c])[1];if(rl&&(r=l)}}return{width:t,height:e,longitude:n,latitude:r,zoom:i,pitch:o,bearing:a}}(t)),t}},{key:"_unproject",value:function(t){var e=new F(this._viewportProps);return t&&e.unproject(t)}},{key:"_calculateNewLngLat",value:function(t){var e=t.startPanLngLat,n=t.pos;return new F(this._viewportProps).getMapCenterByLngLatPosition({lngLat:e,pos:n})}},{key:"_calculateNewZoom",value:function(t){var e=t.scale,n=t.startZoom,r=this._viewportProps,i=r.maxZoom;return tS(n+Math.log2(e),r.minZoom,i)}},{key:"_calculateNewPitchAndBearing",value:function(t){var e=t.deltaScaleX,n=t.deltaScaleY,r=t.startBearing,i=t.startPitch;n=tS(n,-1,1);var o=this._viewportProps,a=o.minPitch,s=o.maxPitch,c=i;return n>0?c=i+n*(s-i):n<0&&(c=i-n*(a-i)),{pitch:c,bearing:r+180*e}}},{key:"_getRotationParams",value:function(t,e){var n=t[0]-e[0],r=t[1]-e[1],i=t[1],o=e[1],a=this._viewportProps,s=a.width,c=a.height,u=0;return r>0?Math.abs(c-o)>5&&(u=r/(o-c)*1.2):r<0&&o>5&&(u=1-i/o),{deltaScaleX:n/s,deltaScaleY:u=Math.min(1,Math.max(-1,u))}}}]),t}();function tI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function tL(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=c.current&&c.current.getMap();return n&&n.queryRenderedFeatures(t,e)}}},[]);var g=(0,h.useCallback)(function(t){var e=t.target;e===p.current&&e.scrollTo(0,0)},[]),m=v&&h.createElement(tz,{value:tZ(tZ({},d),{},{viewport:d.viewport||tq(tZ({map:v,props:t},a)),map:v,container:d.container||l.current})},h.createElement("div",{key:"map-overlays",className:"overlays",ref:p,style:tH,onScroll:g},t.children)),b=t.className,y=t.width,w=t.height,O=t.style,E=t.visibilityConstraints,_=Object.assign({position:"relative"},O,{width:y,height:w}),P=t.visible&&function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:tC;for(var n in e){var r,i=n.slice(0,3),o=(r=n.slice(3))[0].toLowerCase()+r.slice(1);if("min"===i&&t[o]e[n])return!1}return!0}(t.viewState||t,E),M=Object.assign({},tH,{visibility:P?"inherit":"hidden"});return h.createElement("div",{key:"map-container",ref:l,style:_},h.createElement("div",{key:"map-mapbox",ref:u,style:M,className:b}),m,!r&&!t.disableTokenWarning&&h.createElement(tX,null))});function tG(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}(this.propNames||[]);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(!function t(e,n){if(e===n)return!0;if(tj(e)&&tj(n)){if(e.length!==n.length)return!1;for(var r=0;r=Math.abs(e-n)}(t[i],e[i]))return!1}}catch(o){r.e(o)}finally{r.f()}return!0}},{key:"initializeProps",value:function(t,e){return{start:t,end:e}}},{key:"interpolateProps",value:function(t,e,n){tk(!1,"interpolateProps is not implemented")}},{key:"getDuration",value:function(t,e){return e.transitionDuration}}]),t}();function tJ(t){if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function tQ(t,e){return(tQ=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function t0(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&tQ(t,e)}function t1(t){return(t1="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)}function t2(t,e){if(e&&("object"===t1(e)||"function"==typeof e))return e;if(void 0!==e)throw TypeError("Derived constructors may only return object or undefined");return tJ(t)}function t4(t){return(t4=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var t3={longitude:1,bearing:1};function t5(t){return Number.isFinite(t)||Array.isArray(t)}function t8(t,e,n){return t in t3&&Math.abs(n-e)>180&&(n=n<0?n+360:n-360),n}function t6(t,e){if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(i=function(t,e){if(t){if("string"==typeof t)return t7(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t7(t,e)}}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function t7(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function ei(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n0&&void 0!==arguments[0]?arguments[0]:{};return tu(this,r),a(tJ(t=n.call(this)),"propNames",t9),t.props=Object.assign({},en,e),t}th(r,[{key:"initializeProps",value:function(t,e){var n,r={},i={},o=t6(et);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=t[a],c=e[a];tk(t5(s)&&t5(c),"".concat(a," must be supplied for transition")),r[a]=s,i[a]=t8(a,s,c)}}catch(u){o.e(u)}finally{o.f()}var l,h=t6(ee);try{for(h.s();!(l=h.n()).done;){var p=l.value,f=t[p]||0,d=e[p]||0;r[p]=f,i[p]=t8(p,f,d)}}catch(v){h.e(v)}finally{h.f()}return{start:r,end:i}}},{key:"interpolateProps",value:function(t,e,n){var r,i=function(t,e,n,r={}){var i,o,a,s;const c={},{startZoom:u,startCenterXY:l,uDelta:h,w0:p,u1:f,S:d,rho:v,rho2:g,r0:m}=Z(t,e,r);if(f<.01){for(const b of V){const w=t[b],O=e[b];c[b]=(i=w,o=O,(a=n)*o+(1-a)*i)}return c}const E=n*d,_=Math.cosh(m)/Math.cosh(m+v*E),M=p*((Math.cosh(m)*Math.tanh(m+v*E)-Math.sinh(m))/g)/f,j=u+y(1/_),S=((s=[])[0]=h[0]*M,s[1]=h[1]*M,s);P(S,S,l);const T=R(S);return c.longitude=T[0],c.latitude=T[1],c.zoom=j,c}(t,e,n,this.props),o=t6(ee);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=tT(t[a],e[a],n)}}catch(s){o.e(s)}finally{o.f()}return i}},{key:"getDuration",value:function(t,e){var n=e.transitionDuration;return"auto"===n&&(n=function(t,e,n={}){let r;n=Object.assign({},B,n);const{screenSpeed:i,speed:o,maxDuration:a}=n,{S:s,rho:c}=Z(t,e,n),u=1e3*s;return r=Number.isFinite(i)?u/(i/c):u/o,Number.isFinite(a)&&r>a?0:r}(t,e,this.props)),n}}])}(t$);var eo=["longitude","latitude","zoom","bearing","pitch"],ea=function(t){t0(r,t);var e,n=(e=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}(),function(){var t,n=t4(r);if(e){var i=t4(this).constructor;t=Reflect.construct(n,arguments,i)}else t=n.apply(this,arguments);return t2(this,t)});function r(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return tu(this,r),t=n.call(this),Array.isArray(e)&&(e={transitionProps:e}),t.propNames=e.transitionProps||eo,e.around&&(t.around=e.around),t}return th(r,[{key:"initializeProps",value:function(t,e){var n={},r={};if(this.around){n.around=this.around;var i=new F(t).unproject(this.around);Object.assign(r,e,{around:new F(e).project(i),aroundLngLat:i})}var o,a=er(this.propNames);try{for(a.s();!(o=a.n()).done;){var s=o.value,c=t[s],u=e[s];tk(t5(c)&&t5(u),"".concat(s," must be supplied for transition")),n[s]=c,r[s]=t8(s,c,u)}}catch(l){a.e(l)}finally{a.f()}return{start:n,end:r}}},{key:"interpolateProps",value:function(t,e,n){var r,i={},o=er(this.propNames);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=tT(t[a],e[a],n)}}catch(s){o.e(s)}finally{o.f()}if(e.around){var c=new F(Object.assign({},e,i)).getMapCenterByLngLatPosition({lngLat:e.aroundLngLat,pos:tT(t.around,e.around,n)}),u=f(c,2),l=u[0],h=u[1];i.longitude=l,i.latitude=h}return i}}]),r}(t$),es=function(){},ec={BREAK:1,SNAP_TO_END:2,IGNORE:3,UPDATE:4},eu={transitionDuration:0,transitionEasing:function(t){return t},transitionInterpolator:new ea,transitionInterruption:ec.BREAK,onTransitionStart:es,onTransitionInterrupt:es,onTransitionEnd:es},el=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};tu(this,t),a(this,"_animationFrame",null),a(this,"_onTransitionFrame",function(){e._animationFrame=requestAnimationFrame(e._onTransitionFrame),e._updateViewport()}),this.props=null,this.onViewportChange=n.onViewportChange||es,this.onStateChange=n.onStateChange||es,this.time=n.getTime||Date.now}return th(t,[{key:"getViewportInTransition",value:function(){return this._animationFrame?this.state.propsInTransition:null}},{key:"processViewportChange",value:function(t){var e=this.props;if(this.props=t,!e||this._shouldIgnoreViewportChange(e,t))return!1;if(this._isTransitionEnabled(t)){var n=Object.assign({},e),r=Object.assign({},t);if(this._isTransitionInProgress()&&(e.onTransitionInterrupt(),this.state.interruption===ec.SNAP_TO_END?Object.assign(n,this.state.endProps):Object.assign(n,this.state.propsInTransition),this.state.interruption===ec.UPDATE)){var i,o,a=this.time(),s=(a-this.state.startTime)/this.state.duration;r.transitionDuration=this.state.duration-(a-this.state.startTime),r.transitionEasing=(o=(i=this.state.easing)(s),function(t){return 1/(1-o)*(i(t*(1-s)+s)-o)}),r.transitionInterpolator=n.transitionInterpolator}return r.onTransitionStart(),this._triggerTransition(n,r),!0}return this._isTransitionInProgress()&&(e.onTransitionInterrupt(),this._endTransition()),!1}},{key:"_isTransitionInProgress",value:function(){return Boolean(this._animationFrame)}},{key:"_isTransitionEnabled",value:function(t){var e=t.transitionDuration,n=t.transitionInterpolator;return(e>0||"auto"===e)&&Boolean(n)}},{key:"_isUpdateDueToCurrentTransition",value:function(t){return!!this.state.propsInTransition&&this.state.interpolator.arePropsEqual(t,this.state.propsInTransition)}},{key:"_shouldIgnoreViewportChange",value:function(t,e){return!t||(this._isTransitionInProgress()?this.state.interruption===ec.IGNORE||this._isUpdateDueToCurrentTransition(e):!this._isTransitionEnabled(e)||e.transitionInterpolator.arePropsEqual(t,e))}},{key:"_triggerTransition",value:function(t,e){tk(this._isTransitionEnabled(e)),this._animationFrame&&cancelAnimationFrame(this._animationFrame);var n=e.transitionInterpolator,r=n.getDuration?n.getDuration(t,e):e.transitionDuration;if(0!==r){var i=e.transitionInterpolator.initializeProps(t,e),o={inTransition:!0,isZooming:t.zoom!==e.zoom,isPanning:t.longitude!==e.longitude||t.latitude!==e.latitude,isRotating:t.bearing!==e.bearing||t.pitch!==e.pitch};this.state={duration:r,easing:e.transitionEasing,interpolator:e.transitionInterpolator,interruption:e.transitionInterruption,startTime:this.time(),startProps:i.start,endProps:i.end,animation:null,propsInTransition:{}},this._onTransitionFrame(),this.onStateChange(o)}}},{key:"_endTransition",value:function(){this._animationFrame&&(cancelAnimationFrame(this._animationFrame),this._animationFrame=null),this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1})}},{key:"_updateViewport",value:function(){var t=this.time(),e=this.state,n=e.startTime,r=e.duration,i=e.easing,o=e.interpolator,a=e.startProps,s=e.endProps,c=!1,u=(t-n)/r;u>=1&&(u=1,c=!0),u=i(u);var l=o.interpolateProps(a,s,u),h=new tA(Object.assign({},this.props,l));this.state.propsInTransition=h.getViewportProps(),this.onViewportChange(this.state.propsInTransition,this.props),c&&(this._endTransition(),this.props.onTransitionEnd())}}]),t}();a(el,"defaultProps",eu);var eh=n(840),ep=n.n(eh);const ef={mousedown:1,mousemove:2,mouseup:4};!function(t){const e=t.prototype.handler;t.prototype.handler=function(t){const n=this.store;t.button>0&&"pointerdown"===t.type&&!function(t,e){for(let n=0;ne.pointerId===t.pointerId)&&n.push(t),e.call(this,t)}}(ep().PointerEventInput),ep().MouseInput.prototype.handler=function(t){let e=ef[t.type];1&e&&t.button>=0&&(this.pressed=!0),2&e&&0===t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:"mouse",srcEvent:t}))};const ed=ep().Manager;var ev=ep();const eg=ev?[[ev.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[ev.Rotate,{enable:!1}],[ev.Pinch,{enable:!1}],[ev.Swipe,{enable:!1}],[ev.Pan,{threshold:0,enable:!1}],[ev.Press,{enable:!1}],[ev.Tap,{event:"doubletap",taps:2,enable:!1}],[ev.Tap,{event:"anytap",enable:!1}],[ev.Tap,{enable:!1}]]:null,em={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},eb={doubletap:["tap"]},ey={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},ew={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},eO={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},eE={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},e_="undefined"!=typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():"",eP="undefined"!=typeof window?window:n.g;void 0!==n.g?n.g:window;let eM=!1;try{const ej={get passive(){return eM=!0,!0}};eP.addEventListener("test",ej,ej),eP.removeEventListener("test",ej,ej)}catch(eS){}const eT=-1!==e_.indexOf("firefox"),{WHEEL_EVENTS:ek}=ew,ex="wheel";class eD{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.events=ek.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach(e=>t.addEventListener(e,this.handleEvent,!!eM&&{passive:!1}))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===ex&&(this.options.enable=e)}handleEvent(t){if(!this.options.enable)return;let e=t.deltaY;eP.WheelEvent&&(eT&&t.deltaMode===eP.WheelEvent.DOM_DELTA_PIXEL&&(e/=eP.devicePixelRatio),t.deltaMode===eP.WheelEvent.DOM_DELTA_LINE&&(e*=40));const n={x:t.clientX,y:t.clientY};0!==e&&e%4.000244140625==0&&(e=Math.floor(e/4.000244140625)),t.shiftKey&&e&&(e*=.25),this._onWheel(t,-e,n)}_onWheel(t,e,n){this.callback({type:ex,center:n,delta:e,srcEvent:t,pointerType:"mouse",target:t.target})}}const{MOUSE_EVENTS:eC}=ew,eR="pointermove",eA="pointerover",eI="pointerout",eL="pointerleave";class eN{constructor(t,e,n={}){this.element=t,this.callback=e,this.pressed=!1,this.options=Object.assign({enable:!0},n),this.enableMoveEvent=this.options.enable,this.enableLeaveEvent=this.options.enable,this.enableOutEvent=this.options.enable,this.enableOverEvent=this.options.enable,this.events=eC.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach(e=>t.addEventListener(e,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===eR&&(this.enableMoveEvent=e),t===eA&&(this.enableOverEvent=e),t===eI&&(this.enableOutEvent=e),t===eL&&(this.enableLeaveEvent=e)}handleEvent(t){this.handleOverEvent(t),this.handleOutEvent(t),this.handleLeaveEvent(t),this.handleMoveEvent(t)}handleOverEvent(t){this.enableOverEvent&&"mouseover"===t.type&&this.callback({type:eA,srcEvent:t,pointerType:"mouse",target:t.target})}handleOutEvent(t){this.enableOutEvent&&"mouseout"===t.type&&this.callback({type:eI,srcEvent:t,pointerType:"mouse",target:t.target})}handleLeaveEvent(t){this.enableLeaveEvent&&"mouseleave"===t.type&&this.callback({type:eL,srcEvent:t,pointerType:"mouse",target:t.target})}handleMoveEvent(t){if(this.enableMoveEvent)switch(t.type){case"mousedown":t.button>=0&&(this.pressed=!0);break;case"mousemove":0===t.which&&(this.pressed=!1),this.pressed||this.callback({type:eR,srcEvent:t,pointerType:"mouse",target:t.target});break;case"mouseup":this.pressed=!1}}}const{KEY_EVENTS:ez}=ew,eF="keydown",eV="keyup";class eB{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=ez.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),t.tabIndex=n.tabIndex||0,t.style.outline="none",this.events.forEach(e=>t.addEventListener(e,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===eF&&(this.enableDownEvent=e),t===eV&&(this.enableUpEvent=e)}handleEvent(t){const e=t.target||t.srcElement;("INPUT"!==e.tagName||"text"!==e.type)&&"TEXTAREA"!==e.tagName&&(this.enableDownEvent&&"keydown"===t.type&&this.callback({type:eF,srcEvent:t,key:t.key,target:t.target}),this.enableUpEvent&&"keyup"===t.type&&this.callback({type:eV,srcEvent:t,key:t.key,target:t.target}))}}const eZ="contextmenu";class eU{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.handleEvent=this.handleEvent.bind(this),t.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(t,e){t===eZ&&(this.options.enable=e)}handleEvent(t){this.options.enable&&this.callback({type:eZ,center:{x:t.clientX,y:t.clientY},srcEvent:t,pointerType:"mouse",target:t.target})}}const eq={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4},eH={srcElement:"root",priority:0};class eW{constructor(t){this.eventManager=t,this.handlers=[],this.handlersByElement=new Map,this.handleEvent=this.handleEvent.bind(this),this._active=!1}isEmpty(){return!this._active}add(t,e,n,r=!1,i=!1){const{handlers:o,handlersByElement:a}=this;n&&("object"!=typeof n||n.addEventListener)&&(n={srcElement:n}),n=n?Object.assign({},eH,n):eH;let s=a.get(n.srcElement);s||(s=[],a.set(n.srcElement,s));const c={type:t,handler:e,srcElement:n.srcElement,priority:n.priority};r&&(c.once=!0),i&&(c.passive=!0),o.push(c),this._active=this._active||!c.passive;let u=s.length-1;for(;u>=0&&!(s[u].priority>=c.priority);)u--;s.splice(u+1,0,c)}remove(t,e){const{handlers:n,handlersByElement:r}=this;for(let i=n.length-1;i>=0;i--){const o=n[i];if(o.type===t&&o.handler===e){n.splice(i,1);const a=r.get(o.srcElement);a.splice(a.indexOf(o),1),0===a.length&&r.delete(o.srcElement)}}this._active=n.some(t=>!t.passive)}handleEvent(t){if(this.isEmpty())return;const e=this._normalizeEvent(t);let n=t.srcEvent.target;for(;n&&n!==e.rootElement;){if(this._emit(e,n),e.handled)return;n=n.parentNode}this._emit(e,"root")}_emit(t,e){const n=this.handlersByElement.get(e);if(n){let r=!1;const i=()=>{t.handled=!0},o=()=>{t.handled=!0,r=!0},a=[];for(let s=0;s{const e=this.manager.get(t);e&&em[t].forEach(t=>{e.recognizeWith(t)})}),e.recognizerOptions){const i=this.manager.get(r);if(i){const o=e.recognizerOptions[r];delete o.enable,i.set(o)}}for(const[a,s]of(this.wheelInput=new eD(t,this._onOtherEvent,{enable:!1}),this.moveInput=new eN(t,this._onOtherEvent,{enable:!1}),this.keyInput=new eB(t,this._onOtherEvent,{enable:!1,tabIndex:e.tabIndex}),this.contextmenuInput=new eU(t,this._onOtherEvent,{enable:!1}),this.events))s.isEmpty()||(this._toggleRecognizer(s.recognizerName,!0),this.manager.on(a,s.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(t,e,n){this._addEventHandler(t,e,n,!1)}once(t,e,n){this._addEventHandler(t,e,n,!0)}watch(t,e,n){this._addEventHandler(t,e,n,!1,!0)}off(t,e){this._removeEventHandler(t,e)}_toggleRecognizer(t,e){const{manager:n}=this;if(!n)return;const r=n.get(t);if(r&&r.options.enable!==e){r.set({enable:e});const i=eb[t];i&&!this.options.recognizers&&i.forEach(i=>{const o=n.get(i);e?(o.requireFailure(t),r.dropRequireFailure(i)):o.dropRequireFailure(t)})}this.wheelInput.enableEventType(t,e),this.moveInput.enableEventType(t,e),this.keyInput.enableEventType(t,e),this.contextmenuInput.enableEventType(t,e)}_addEventHandler(t,e,n,r,i){if("string"!=typeof t){for(const o in n=e,t)this._addEventHandler(o,t[o],n,r,i);return}const{manager:a,events:s}=this,c=eE[t]||t;let u=s.get(c);!u&&(u=new eW(this),s.set(c,u),u.recognizerName=eO[c]||c,a&&a.on(c,u.handleEvent)),u.add(t,e,n,r,i),u.isEmpty()||this._toggleRecognizer(u.recognizerName,!0)}_removeEventHandler(t,e){if("string"!=typeof t){for(const n in t)this._removeEventHandler(n,t[n]);return}const{events:r}=this,i=eE[t]||t,o=r.get(i);if(o&&(o.remove(t,e),o.isEmpty())){const{recognizerName:a}=o;let s=!1;for(const c of r.values())if(c.recognizerName===a&&!c.isEmpty()){s=!0;break}s||this._toggleRecognizer(a,!1)}}_onBasicInput(t){const{srcEvent:e}=t,n=ey[e.type];n&&this.manager.emit(n,t)}_onOtherEvent(t){this.manager.emit(t.type,t)}}function eK(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function eG(t){for(var e=1;e0),a=o&&!this.state.isHovering,s=!o&&this.state.isHovering;(r||a)&&(t.features=e,r&&r(t)),a&&e9.call(this,"onMouseEnter",t),s&&e9.call(this,"onMouseLeave",t),(a||s)&&this.setState({isHovering:o})}}function nr(t){var e=this.props,n=e.onClick,r=e.onNativeClick,i=e.onDblClick,o=e.doubleClickZoom,a=[],s=i||o;switch(t.type){case"anyclick":a.push(r),s||a.push(n);break;case"click":s&&a.push(n)}(a=a.filter(Boolean)).length&&((t=e6.call(this,t)).features=e7.call(this,t.point),a.forEach(function(e){return e(t)}))}var ni=(0,h.forwardRef)(function(t,e){var n,a,s=(0,h.useContext)(tN),c=(0,h.useMemo)(function(){return t.controller||new e1},[]),u=(0,h.useMemo)(function(){return new eX(null,{touchAction:t.touchAction,recognizerOptions:t.eventRecognizerOptions})},[]),l=(0,h.useRef)(null),p=(0,h.useRef)(null),f=(0,h.useRef)({width:0,height:0,state:{isHovering:!1,isDragging:!1}}).current;f.props=t,f.map=p.current&&p.current.getMap(),f.setState=function(e){f.state=e4(e4({},f.state),e),l.current.style.cursor=t.getCursor(f.state)};var d=!0,v=function(t,e,r){if(d){n=[t,e,r];return}var i=f.props,o=i.onViewStateChange,a=i.onViewportChange;Object.defineProperty(t,"position",{get:function(){return[0,0,tV(f.map,t)]}}),o&&o({viewState:t,interactionState:e,oldViewState:r}),a&&a(t,e,r)};(0,h.useImperativeHandle)(e,function(){return{getMap:p.current&&p.current.getMap,queryRenderedFeatures:p.current&&p.current.queryRenderedFeatures}},[]);var g=(0,h.useMemo)(function(){return e4(e4({},s),{},{eventManager:u,container:s.container||l.current})},[s,l.current]);g.onViewportChange=v,g.viewport=s.viewport||tq(f),f.viewport=g.viewport;var m=function(t){var e=t.isDragging,n=void 0!==e&&e;if(n!==f.state.isDragging&&f.setState({isDragging:n}),d){a=t;return}var r=f.props.onInteractionStateChange;r&&r(t)},b=function(){f.width&&f.height&&c.setOptions(e4(e4(e4({},f.props),f.props.viewState),{},{isInteractive:Boolean(f.props.onViewStateChange||f.props.onViewportChange),onViewportChange:v,onStateChange:m,eventManager:u,width:f.width,height:f.height}))},y=function(t){var e=t.width,n=t.height;f.width=e,f.height=n,b(),f.props.onResize({width:e,height:n})};(0,h.useEffect)(function(){return u.setElement(l.current),u.on({pointerdown:nt.bind(f),pointermove:nn.bind(f),pointerup:ne.bind(f),pointerleave:e9.bind(f,"onMouseOut"),click:nr.bind(f),anyclick:nr.bind(f),dblclick:e9.bind(f,"onDblClick"),wheel:e9.bind(f,"onWheel"),contextmenu:e9.bind(f,"onContextMenu")}),function(){u.destroy()}},[]),tF(function(){if(n){var t;v.apply(void 0,function(t){if(Array.isArray(t))return i(t)}(t=n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||o(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}a&&m(a)}),b();var w=t.width,O=t.height,E=t.style,_=t.getCursor,P=(0,h.useMemo)(function(){return e4(e4({position:"relative"},E),{},{width:w,height:O,cursor:_(f.state)})},[E,w,O,_,f.state]);return n&&f._child||(f._child=h.createElement(tz,{value:g},h.createElement("div",{key:"event-canvas",ref:l,style:P},h.createElement(tK,r({},t,{width:"100%",height:"100%",style:null,onResize:y,ref:p}))))),d=!1,f._child});ni.supported=tK.supported,ni.propTypes=e3,ni.defaultProps=e8;var no=ni;p.string.isRequired,p.string,p.oneOf(["fill","line","symbol","circle","fill-extrusion","raster","background","heatmap","hillshade","sky"]).isRequired,p.string,p.string,p.string;var na={captureScroll:!1,captureDrag:!0,captureClick:!0,captureDoubleClick:!0,capturePointerMove:!1},ns={captureScroll:p.bool,captureDrag:p.bool,captureClick:p.bool,captureDoubleClick:p.bool,capturePointerMove:p.bool};function nc(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,h.useContext)(tN),n=(0,h.useRef)(null),r=(0,h.useRef)({props:t,state:{},context:e,containerRef:n}).current;return r.props=t,r.context=e,(0,h.useEffect)(function(){return function(t){var e=t.containerRef.current,n=t.context.eventManager;if(e&&n){var r={wheel:function(e){var n=t.props;n.captureScroll&&e.stopPropagation(),n.onScroll&&n.onScroll(e,t)},panstart:function(e){var n=t.props;n.captureDrag&&e.stopPropagation(),n.onDragStart&&n.onDragStart(e,t)},anyclick:function(e){var n=t.props;n.captureClick&&e.stopPropagation(),n.onNativeClick&&n.onNativeClick(e,t)},click:function(e){var n=t.props;n.captureClick&&e.stopPropagation(),n.onClick&&n.onClick(e,t)},dblclick:function(e){var n=t.props;n.captureDoubleClick&&e.stopPropagation(),n.onDoubleClick&&n.onDoubleClick(e,t)},pointermove:function(e){var n=t.props;n.capturePointerMove&&e.stopPropagation(),n.onPointerMove&&n.onPointerMove(e,t)}};return n.watch(r,e),function(){n.off(r)}}}(r)},[e.eventManager]),r}function nu(t){var e=t.instance,n=nc(t),r=n.context,i=n.containerRef;return e._context=r,e._containerRef=i,e._render()}var nl=function(t){t0(i,t);var e,n=(e=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}(),function(){var t,n=t4(i);if(e){var r=t4(this).constructor;t=Reflect.construct(n,arguments,r)}else t=n.apply(this,arguments);return t2(this,t)});function i(){var t;tu(this,i);for(var e=arguments.length,r=Array(e),o=0;o2&&void 0!==arguments[2]?arguments[2]:"x";if(null===t)return e;var r="x"===n?t.offsetWidth:t.offsetHeight;return ny(e/100*r)/r*100};function nO(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}var nE=Object.assign({},nf,{className:p.string,longitude:p.number.isRequired,latitude:p.number.isRequired,style:p.object}),n_=Object.assign({},nd,{className:""});function nP(t){var e,n,r,i,o,s,c,u=(n=(e=f((0,h.useState)(null),2))[0],r=e[1],o=(i=f((0,h.useState)(null),2))[0],s=i[1],(c=nc(np(np({},t),{},{onDragStart:nm}))).callbacks=t,c.state.dragPos=n,c.state.setDragPos=r,c.state.dragOffset=o,c.state.setDragOffset=s,(0,h.useEffect)(function(){return function(t){var e=t.context.eventManager;if(e&&t.state.dragPos){var n={panmove:function(e){return function(t,e){var n=e.props,r=e.callbacks,i=e.state,o=e.context;t.stopPropagation();var a=nv(t);i.setDragPos(a);var s=i.dragOffset;if(r.onDrag&&s){var c=Object.assign({},t);c.lngLat=ng(a,s,n,o),r.onDrag(c)}}(e,t)},panend:function(e){return function(t,e){var n=e.props,r=e.callbacks,i=e.state,o=e.context;t.stopPropagation();var a=i.dragPos,s=i.dragOffset;if(i.setDragPos(null),i.setDragOffset(null),r.onDragEnd&&a&&s){var c=Object.assign({},t);c.lngLat=ng(a,s,n,o),r.onDragEnd(c)}}(e,t)},pancancel:function(e){var n;return n=t.state,void(e.stopPropagation(),n.setDragPos(null),n.setDragOffset(null))}};return e.watch(n),function(){e.off(n)}}}(c)},[c.context.eventManager,Boolean(n)]),c),l=u.state,p=u.containerRef,d=t.children,v=t.className,g=t.draggable,m=t.style,b=l.dragPos,y=function(t){var e=t.props,n=t.state,r=t.context,i=e.longitude,o=e.latitude,a=e.offsetLeft,s=e.offsetTop,c=n.dragPos,u=n.dragOffset,l=r.viewport,h=r.map;if(c&&u)return[c[0]+u[0],c[1]+u[1]];var p=tV(h,{longitude:i,latitude:o}),d=l.project([i,o,p]),v=f(d,2),g=v[0],m=v[1];return[g+=a,m+=s]}(u),w=f(y,2),O=w[0],E=w[1],_="translate(".concat(ny(O),"px, ").concat(ny(E),"px)"),P=g?b?"grabbing":"grab":"auto",M=(0,h.useMemo)(function(){var t=function(t){for(var e=1;e0){var g=p,m=v;for(p=0;p<=1;p+=.5)d=(f=n-p*a)+a,(v=Math.max(0,u-f)+Math.max(0,d-i+u))0){var E=h,_=O;for(h=0;h<=1;h+=b)w=(y=e-h*o)+o,(O=Math.max(0,u-y)+Math.max(0,w-r+u))<_&&(_=O,E=h);h=E}return nj.find(function(t){var e=nM[t];return e.x===h&&e.y===p})||s}({x:r,y:i,anchor:o,padding:s,width:S.width,height:S.height,selfWidth:e.clientWidth,selfHeight:e.clientHeight}):o),z=(c=M.current,l=(u=f(L,3))[0],p=u[1],d=u[2],v=t.offsetLeft,g=t.offsetTop,m=t.sortByDepth,y=nw(c,-(100*(b=nM[N]).x)),w=nw(c,-(100*b.y),"y"),O={position:"absolute",transform:"\n translate(".concat(y,"%, ").concat(w,"%)\n translate(").concat(ny(l+v),"px, ").concat(ny(p+g),"px)\n "),display:void 0,zIndex:void 0},m&&(d>1||d<-1||l<0||l>S.width||p<0||p>S.height?O.display="none":O.zIndex=Math.floor((1-d)/2*1e5)),O),F=(0,h.useCallback)(function(t){_.props.onClose();var e=_.context.eventManager;e&&e.once("click",function(t){return t.stopPropagation()},t.target)},[]);return h.createElement("div",{className:"mapboxgl-popup mapboxgl-popup-anchor-".concat(N," ").concat(k),style:z,ref:M},h.createElement("div",{key:"tip",className:"mapboxgl-popup-tip",style:{borderWidth:C}}),h.createElement("div",{key:"content",ref:E,className:"mapboxgl-popup-content"},R&&h.createElement("button",{key:"close-button",className:"mapboxgl-popup-close-button",type:"button",onClick:F},"\xd7"),A))}function nx(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}nk.propTypes=nS,nk.defaultProps=nT,h.memo(nk);var nD=Object.assign({},ns,{toggleLabel:p.string,className:p.string,style:p.object,compact:p.bool,customAttribution:p.oneOfType([p.string,p.arrayOf(p.string)])}),nC=Object.assign({},na,{className:"",toggleLabel:"Toggle Attribution"});function nR(t){var e=nc(t),n=e.context,r=e.containerRef,i=(0,h.useRef)(null),o=f((0,h.useState)(!1),2),s=o[0],c=o[1];(0,h.useEffect)(function(){var e,o,a,s,c,u;return n.map&&(o={customAttribution:t.customAttribution},a=n.map,s=r.current,c=i.current,(u=new(tM()).AttributionControl(o))._map=a,u._container=s,u._innerContainer=c,u._updateAttributions(),u._updateEditLink(),a.on("styledata",u._updateData),a.on("sourcedata",u._updateData),e=u),function(){return e&&void(e._map.off("styledata",e._updateData),e._map.off("sourcedata",e._updateData))}},[n.map]);var u=void 0===t.compact?n.viewport.width<=640:t.compact;(0,h.useEffect)(function(){!u&&s&&c(!1)},[u]);var l=(0,h.useCallback)(function(){return c(function(t){return!t})},[]),p=(0,h.useMemo)(function(){return function(t){for(var e=1;ea)return 1}return 0}(o.map.version,"1.6.0")>=0?2:1:2},[o.map]),n=o.viewport.bearing,r={transform:"rotate(".concat(-n,"deg)")},2===e?h.createElement("span",{className:"mapboxgl-ctrl-icon","aria-hidden":"true",style:r}):h.createElement("span",{className:"mapboxgl-ctrl-compass-arrow",style:r})))))}function nG(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}nK.propTypes=nH,nK.defaultProps=nW,h.memo(nK);var n$=Object.assign({},ns,{className:p.string,style:p.object,maxWidth:p.number,unit:p.oneOf(["imperial","metric","nautical"])}),nJ=Object.assign({},na,{className:"",maxWidth:100,unit:"metric"});function nQ(t){var e=nc(t),n=e.context,r=e.containerRef,i=f((0,h.useState)(null),2),o=i[0],s=i[1];(0,h.useEffect)(function(){if(n.map){var t=new(tM()).ScaleControl;t._map=n.map,t._container=r.current,s(t)}},[n.map]),o&&(o.options=t,o._onMove());var c=(0,h.useMemo)(function(){return function(t){for(var e=1;e\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=i.console&&(i.console.warn||i.console.log);return o&&o.call(i.console,r,n),t.apply(this,arguments)}}c="function"!=typeof Object.assign?function(t){if(t===s||null===t)throw TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n-1}function T(t){return t.trim().split(/\s+/g)}function k(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var r=0;rk(i,a)&&r.push(t[o]),i[o]=a,o++}return n&&(r=e?r.sort(function(t,n){return t[e]>n[e]}):r.sort()),r}function C(t,e){for(var n,r,i=e[0].toUpperCase()+e.slice(1),o=0;o1&&!i.firstMultiple?i.firstMultiple=q(r):1===a&&(i.firstMultiple=!1),c=i.firstInput,l=(u=i.firstMultiple)?u.center:c.center,h=r.center=H(o),r.timeStamp=f(),r.deltaTime=r.timeStamp-c.timeStamp,r.angle=K(l,h),r.distance=X(l,h),d=i,g=(v=r).center,m=d.offsetDelta||{},b=d.prevDelta||{},y=d.prevInput||{},(1===v.eventType||4===y.eventType)&&(b=d.prevDelta={x:y.deltaX||0,y:y.deltaY||0},m=d.offsetDelta={x:g.x,y:g.y}),v.deltaX=b.x+(g.x-m.x),v.deltaY=b.y+(g.y-m.y),r.offsetDirection=Y(r.deltaX,r.deltaY),w=W(r.deltaTime,r.deltaX,r.deltaY),r.overallVelocityX=w.x,r.overallVelocityY=w.y,r.overallVelocity=p(w.x)>p(w.y)?w.x:w.y,r.scale=u?(O=u.pointers,X(o[0],o[1],B)/X(O[0],O[1],B)):1,r.rotation=u?(E=u.pointers,K(o[1],o[0],B)+K(E[1],E[0],B)):0,r.maxPointers=i.prevInput?r.pointers.length>i.prevInput.maxPointers?r.pointers.length:i.prevInput.maxPointers:r.pointers.length,function(t,e){var n,r,i,o,a=t.lastInterval||e,c=e.timeStamp-a.timeStamp;if(8!=e.eventType&&(c>25||s===a.velocity)){var u=e.deltaX-a.deltaX,l=e.deltaY-a.deltaY,h=W(c,u,l);r=h.x,i=h.y,n=p(h.x)>p(h.y)?h.x:h.y,o=Y(u,l),t.lastInterval=e}else n=a.velocity,r=a.velocityX,i=a.velocityY,o=a.direction;e.velocity=n,e.velocityX=r,e.velocityY=i,e.direction=o}(i,r),_=t.element,j(r.srcEvent.target,_)&&(_=r.srcEvent.target),r.target=_,t.emit("hammer.input",n),t.recognize(n),t.session.prevInput=n}function q(t){for(var e=[],n=0;n=p(e)?t<0?2:4:e<0?8:16}function X(t,e,n){n||(n=V);var r=e[n[0]]-t[n[0]],i=e[n[1]]-t[n[1]];return Math.sqrt(r*r+i*i)}function K(t,e,n){n||(n=V);var r=e[n[0]]-t[n[0]];return 180*Math.atan2(e[n[1]]-t[n[1]],r)/Math.PI}Z.prototype={handler:function(){},init:function(){this.evEl&&P(this.element,this.evEl,this.domHandler),this.evTarget&&P(this.target,this.evTarget,this.domHandler),this.evWin&&P(A(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&M(this.element,this.evEl,this.domHandler),this.evTarget&&M(this.target,this.evTarget,this.domHandler),this.evWin&&M(A(this.element),this.evWin,this.domHandler)}};var G={mousedown:1,mousemove:2,mouseup:4};function $(){this.evEl="mousedown",this.evWin="mousemove mouseup",this.pressed=!1,Z.apply(this,arguments)}w($,Z,{handler:function(t){var e=G[t.type];1&e&&0===t.button&&(this.pressed=!0),2&e&&1!==t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:F,srcEvent:t}))}});var J={pointerdown:1,pointermove:2,pointerup:4,pointercancel:8,pointerout:8},Q={2:z,3:"pen",4:F,5:"kinect"},tt="pointerdown",te="pointermove pointerup pointercancel";function tn(){this.evEl=tt,this.evWin=te,Z.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}i.MSPointerEvent&&!i.PointerEvent&&(tt="MSPointerDown",te="MSPointerMove MSPointerUp MSPointerCancel"),w(tn,Z,{handler:function(t){var e=this.store,n=!1,r=J[t.type.toLowerCase().replace("ms","")],i=Q[t.pointerType]||t.pointerType,o=k(e,t.pointerId,"pointerId");1&r&&(0===t.button||i==z)?o<0&&(e.push(t),o=e.length-1):12&r&&(n=!0),!(o<0)&&(e[o]=t,this.callback(this.manager,r,{pointers:e,changedPointers:[t],pointerType:i,srcEvent:t}),n&&e.splice(o,1))}});var tr={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function ti(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,Z.apply(this,arguments)}function to(t,e){var n=x(t.touches),r=x(t.changedTouches);return 12&e&&(n=D(n.concat(r),"identifier",!0)),[n,r]}w(ti,Z,{handler:function(t){var e=tr[t.type];if(1===e&&(this.started=!0),this.started){var n=to.call(this,t,e);12&e&&n[0].length-n[1].length==0&&(this.started=!1),this.callback(this.manager,e,{pointers:n[0],changedPointers:n[1],pointerType:z,srcEvent:t})}}});var ta={touchstart:1,touchmove:2,touchend:4,touchcancel:8};function ts(){this.evTarget="touchstart touchmove touchend touchcancel",this.targetIds={},Z.apply(this,arguments)}function tc(t,e){var n=x(t.touches),r=this.targetIds;if(3&e&&1===n.length)return r[n[0].identifier]=!0,[n,n];var i,o,a=x(t.changedTouches),s=[],c=this.target;if(o=n.filter(function(t){return j(t.target,c)}),1===e)for(i=0;i-1&&r.splice(t,1)},2500)}}function tp(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,r=0;r-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){var e=this,n=this.state;function r(n){e.manager.emit(n,t)}n<8&&r(e.options.event+tP(n)),r(e.options.event),t.additionalEvent&&r(t.additionalEvent),n>=8&&r(e.options.event+tP(n))},tryEmit:function(t){if(this.canEmit())return this.emit(t);this.state=32},canEmit:function(){for(var t=0;te.threshold&&i&e.direction},attrTest:function(t){return tS.prototype.attrTest.call(this,t)&&(2&this.state||!(2&this.state)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=tM(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),w(tk,tS,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[tb]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||2&this.state)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),w(tx,t_,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[tg]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distancee.time;if(this._input=t,r&&n&&(!(12&t.eventType)||i)){if(1&t.eventType)this.reset(),this._timer=d(function(){this.state=8,this.tryEmit()},e.time,this);else if(4&t.eventType)return 8}else this.reset();return 32},reset:function(){clearTimeout(this._timer)},emit:function(t){8===this.state&&(t&&4&t.eventType?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=f(),this.manager.emit(this.options.event,this._input)))}}),w(tD,tS,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[tb]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||2&this.state)}}),w(tC,tS,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:30,pointers:1},getTouchAction:function(){return tT.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return 30&n?e=t.overallVelocity:6&n?e=t.overallVelocityX:24&n&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&p(e)>this.options.velocity&&4&t.eventType},emit:function(t){var e=tM(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),w(tR,t_,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[tm]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,r=t.distance1)for(var n=1;nt.length)&&(e=t.length);for(var n=0,r=Array(e);nn?n:t}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)}),s=new d(4),d!=Float32Array&&(s[0]=0,s[1]=0,s[2]=0,s[3]=0);const y=Math.log2||function(t){return Math.log(t)*Math.LOG2E};function w(t,e,n){var r=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],u=e[6],l=e[7],h=e[8],p=e[9],f=e[10],d=e[11],v=e[12],g=e[13],m=e[14],b=e[15],y=n[0],w=n[1],O=n[2],E=n[3];return t[0]=y*r+w*s+O*h+E*v,t[1]=y*i+w*c+O*p+E*g,t[2]=y*o+w*u+O*f+E*m,t[3]=y*a+w*l+O*d+E*b,y=n[4],w=n[5],O=n[6],E=n[7],t[4]=y*r+w*s+O*h+E*v,t[5]=y*i+w*c+O*p+E*g,t[6]=y*o+w*u+O*f+E*m,t[7]=y*a+w*l+O*d+E*b,y=n[8],w=n[9],O=n[10],E=n[11],t[8]=y*r+w*s+O*h+E*v,t[9]=y*i+w*c+O*p+E*g,t[10]=y*o+w*u+O*f+E*m,t[11]=y*a+w*l+O*d+E*b,y=n[12],w=n[13],O=n[14],E=n[15],t[12]=y*r+w*s+O*h+E*v,t[13]=y*i+w*c+O*p+E*g,t[14]=y*o+w*u+O*f+E*m,t[15]=y*a+w*l+O*d+E*b,t}function O(t,e,n){var r,i,o,a,s,c,u,l,h,p,f,d,v=n[0],g=n[1],m=n[2];return e===t?(t[12]=e[0]*v+e[4]*g+e[8]*m+e[12],t[13]=e[1]*v+e[5]*g+e[9]*m+e[13],t[14]=e[2]*v+e[6]*g+e[10]*m+e[14],t[15]=e[3]*v+e[7]*g+e[11]*m+e[15]):(r=e[0],i=e[1],o=e[2],a=e[3],s=e[4],c=e[5],u=e[6],l=e[7],h=e[8],p=e[9],f=e[10],d=e[11],t[0]=r,t[1]=i,t[2]=o,t[3]=a,t[4]=s,t[5]=c,t[6]=u,t[7]=l,t[8]=h,t[9]=p,t[10]=f,t[11]=d,t[12]=r*v+s*g+h*m+e[12],t[13]=i*v+c*g+p*m+e[13],t[14]=o*v+u*g+f*m+e[14],t[15]=a*v+l*g+d*m+e[15]),t}function E(t,e,n){var r=n[0],i=n[1],o=n[2];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]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*o,t[9]=e[9]*o,t[10]=e[10]*o,t[11]=e[11]*o,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function _(t,e){var n=t[0],r=t[1],i=t[2],o=t[3],a=t[4],s=t[5],c=t[6],u=t[7],l=t[8],h=t[9],p=t[10],f=t[11],d=t[12],v=t[13],g=t[14],m=t[15],b=e[0],y=e[1],w=e[2],O=e[3],E=e[4],_=e[5],P=e[6],M=e[7],j=e[8],S=e[9],T=e[10],k=e[11],x=e[12],D=e[13],C=e[14],R=e[15];return Math.abs(n-b)<=1e-6*Math.max(1,Math.abs(n),Math.abs(b))&&Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(i-w)<=1e-6*Math.max(1,Math.abs(i),Math.abs(w))&&Math.abs(o-O)<=1e-6*Math.max(1,Math.abs(o),Math.abs(O))&&Math.abs(a-E)<=1e-6*Math.max(1,Math.abs(a),Math.abs(E))&&Math.abs(s-_)<=1e-6*Math.max(1,Math.abs(s),Math.abs(_))&&Math.abs(c-P)<=1e-6*Math.max(1,Math.abs(c),Math.abs(P))&&Math.abs(u-M)<=1e-6*Math.max(1,Math.abs(u),Math.abs(M))&&Math.abs(l-j)<=1e-6*Math.max(1,Math.abs(l),Math.abs(j))&&Math.abs(h-S)<=1e-6*Math.max(1,Math.abs(h),Math.abs(S))&&Math.abs(p-T)<=1e-6*Math.max(1,Math.abs(p),Math.abs(T))&&Math.abs(f-k)<=1e-6*Math.max(1,Math.abs(f),Math.abs(k))&&Math.abs(d-x)<=1e-6*Math.max(1,Math.abs(d),Math.abs(x))&&Math.abs(v-D)<=1e-6*Math.max(1,Math.abs(v),Math.abs(D))&&Math.abs(g-C)<=1e-6*Math.max(1,Math.abs(g),Math.abs(C))&&Math.abs(m-R)<=1e-6*Math.max(1,Math.abs(m),Math.abs(R))}function P(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function M(t,e,n,r){var i=e[0],o=e[1];return t[0]=i+r*(n[0]-i),t[1]=o+r*(n[1]-o),t}function j(t,e){if(!t)throw Error(e||"@math.gl/web-mercator: assertion failed.")}c=new d(2),d!=Float32Array&&(c[0]=0,c[1]=0),u=new d(3),d!=Float32Array&&(u[0]=0,u[1]=0,u[2]=0);const S=Math.PI,T=S/4,k=S/180,x=180/S;function D(t){return Math.pow(2,t)}function C([t,e]){j(Number.isFinite(t)),j(Number.isFinite(e)&&e>=-90&&e<=90,"invalid latitude");const n=512*(S+Math.log(Math.tan(T+.5*(e*k))))/(2*S);return[512*(t*k+S)/(2*S),n]}function R([t,e]){const n=2*(Math.atan(Math.exp(e/512*(2*S)-S))-T);return[(t/512*(2*S)-S)*x,n*x]}function A(t){return 2*Math.atan(.5/t)*x}function I(t){return .5/Math.tan(.5*t*k)}function L(t,e,n=0){const[r,i,o]=t;if(j(Number.isFinite(r)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(o)){const a=g(e,[r,i,o,1]);return a}const s=g(e,[r,i,0,1]),c=g(e,[r,i,1,1]),u=s[2],l=c[2];return M([],s,c,u===l?0:((n||0)-u)/(l-u))}const N=Math.PI/180;function z(t,e,n){const{pixelUnprojectionMatrix:r}=t,i=g(r,[e,0,1,1]),o=g(r,[e,t.height,1,1]),a=n*t.distanceScales.unitsPerMeter[2],s=(a-i[2])/(o[2]-i[2]),c=M([],i,o,s),u=R(c);return u[2]=n,u}class F{constructor({width:t,height:e,latitude:n=0,longitude:r=0,zoom:i=0,pitch:o=0,bearing:a=0,altitude:s=null,fovy:c=null,position:u=null,nearZMultiplier:l=.02,farZMultiplier:h=1.01}={width:1,height:1}){t=t||1,e=e||1,null===c&&null===s?c=A(s=1.5):null===c?c=A(s):null===s&&(s=I(c));const p=D(i);s=Math.max(.75,s);const f=function({latitude:t,longitude:e,highPrecision:n=!1}){j(Number.isFinite(t)&&Number.isFinite(e));const r={},i=Math.cos(t*k),o=512/360,a=o/i,s=512/4003e4/i;if(r.unitsPerMeter=[s,s,s],r.metersPerUnit=[1/s,1/s,1/s],r.unitsPerDegree=[o,a,s],r.degreesPerUnit=[1/o,1/a,1/s],n){const c=k*Math.tan(t*k)/i,u=512/4003e4*c,l=u/a*s;r.unitsPerDegree2=[0,o*c/2,u],r.unitsPerMeter2=[l,0,l]}return r}({longitude:r,latitude:n}),d=C([r,n]);if(d[2]=0,u){var g,m,b;b=d,g=[],m=f.unitsPerMeter,g[0]=u[0]*m[0],g[1]=u[1]*m[1],g[2]=u[2]*m[2],b[0]=d[0]+g[0],b[1]=d[1]+g[1],b[2]=d[2]+g[2]}this.projectionMatrix=function({width:t,height:e,pitch:n,altitude:r,fovy:i,nearZMultiplier:o,farZMultiplier:a}){var s,c,u;const{fov:l,aspect:h,near:p,far:f}=function({width:t,height:e,fovy:n=A(1.5),altitude:r,pitch:i=0,nearZMultiplier:o=1,farZMultiplier:a=1}){void 0!==r&&(n=A(r));const s=.5*n*k,c=I(n),u=i*k,l=Math.sin(s)*c/Math.sin(Math.min(Math.max(Math.PI/2-u-s,.01),Math.PI-.01)),h=Math.sin(u)*l+c;return{fov:2*s,aspect:t/e,focalDistance:c,near:o,far:h*a}}({width:t,height:e,altitude:r,fovy:i,pitch:n,nearZMultiplier:o,farZMultiplier:a}),d=(s=[],u=1/Math.tan(l/2),s[0]=u/h,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=u,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[11]=-1,s[12]=0,s[13]=0,s[15]=0,null!=f&&f!==1/0?(c=1/(p-f),s[10]=(f+p)*c,s[14]=2*f*p*c):(s[10]=-1,s[14]=-2*p),s);return d}({width:t,height:e,pitch:o,fovy:c,nearZMultiplier:l,farZMultiplier:h}),this.viewMatrix=function({height:t,pitch:e,bearing:n,altitude:r,scale:i,center:o=null}){var a,s,c,u,l,h,p,f,d,g,m,b,y,w,_,P,M,j,S,T,x,D,C,R,A;const I=v();return O(I,I,[0,0,-r]),a=I,c=Math.sin(s=-e*k),u=Math.cos(s),l=I[4],h=I[5],p=I[6],f=I[7],d=I[8],g=I[9],m=I[10],b=I[11],I!==a&&(a[0]=I[0],a[1]=I[1],a[2]=I[2],a[3]=I[3],a[12]=I[12],a[13]=I[13],a[14]=I[14],a[15]=I[15]),a[4]=l*u+d*c,a[5]=h*u+g*c,a[6]=p*u+m*c,a[7]=f*u+b*c,a[8]=d*u-l*c,a[9]=g*u-h*c,a[10]=m*u-p*c,a[11]=b*u-f*c,y=I,_=Math.sin(w=n*k),P=Math.cos(w),M=I[0],j=I[1],S=I[2],T=I[3],x=I[4],D=I[5],C=I[6],R=I[7],I!==y&&(y[8]=I[8],y[9]=I[9],y[10]=I[10],y[11]=I[11],y[12]=I[12],y[13]=I[13],y[14]=I[14],y[15]=I[15]),y[0]=M*P+x*_,y[1]=j*P+D*_,y[2]=S*P+C*_,y[3]=T*P+R*_,y[4]=x*P-M*_,y[5]=D*P-j*_,y[6]=C*P-S*_,y[7]=R*P-T*_,E(I,I,[i/=t,i,i]),o&&O(I,I,((A=[])[0]=-o[0],A[1]=-o[1],A[2]=-o[2],A)),I}({height:e,scale:p,center:d,pitch:o,bearing:a,altitude:s}),this.width=t,this.height=e,this.scale=p,this.latitude=n,this.longitude=r,this.zoom=i,this.pitch=o,this.bearing=a,this.altitude=s,this.fovy=c,this.center=d,this.meterOffset=u||[0,0,0],this.distanceScales=f,this._initMatrices(),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),Object.freeze(this)}_initMatrices(){var t,e,n,r,i,o,a,s,c,u,l,h,p,f,d,g,m,b,y,_,P,M,j,S,T,k,x,D,C,R;const{width:A,height:I,projectionMatrix:L,viewMatrix:N}=this,z=v();w(z,z,L),w(z,z,N),this.viewProjectionMatrix=z;const F=v();E(F,F,[A/2,-I/2,1]),O(F,F,[1,-1,0]),w(F,F,z);const V=(t=v(),e=F[0],n=F[1],r=F[2],i=F[3],o=F[4],a=F[5],s=F[6],c=F[7],u=F[8],l=F[9],h=F[10],p=F[11],f=F[12],d=F[13],g=F[14],m=F[15],b=e*a-n*o,y=e*s-r*o,_=e*c-i*o,P=n*s-r*a,M=n*c-i*a,j=r*c-i*s,S=u*d-l*f,T=u*g-h*f,k=u*m-p*f,x=l*g-h*d,D=l*m-p*d,(R=b*(C=h*m-p*g)-y*D+_*x+P*k-M*T+j*S)?(R=1/R,t[0]=(a*C-s*D+c*x)*R,t[1]=(r*D-n*C-i*x)*R,t[2]=(d*j-g*M+m*P)*R,t[3]=(h*M-l*j-p*P)*R,t[4]=(s*k-o*C-c*T)*R,t[5]=(e*C-r*k+i*T)*R,t[6]=(g*_-f*j-m*y)*R,t[7]=(u*j-h*_+p*y)*R,t[8]=(o*D-a*k+c*S)*R,t[9]=(n*k-e*D-i*S)*R,t[10]=(f*M-d*_+m*b)*R,t[11]=(l*_-u*M-p*b)*R,t[12]=(a*T-o*x-s*S)*R,t[13]=(e*x-n*T+r*S)*R,t[14]=(d*y-f*P-g*b)*R,t[15]=(u*P-l*y+h*b)*R,t):null);if(!V)throw Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=F,this.pixelUnprojectionMatrix=V}equals(t){return t instanceof F&&t.width===this.width&&t.height===this.height&&_(t.projectionMatrix,this.projectionMatrix)&&_(t.viewMatrix,this.viewMatrix)}project(t,{topLeft:e=!0}={}){const n=this.projectPosition(t),r=function(t,e){const[n,r,i=0]=t;return j(Number.isFinite(n)&&Number.isFinite(r)&&Number.isFinite(i)),g(e,[n,r,i,1])}(n,this.pixelProjectionMatrix),[i,o]=r,a=e?o:this.height-o;return 2===t.length?[i,a]:[i,a,r[2]]}unproject(t,{topLeft:e=!0,targetZ:n}={}){const[r,i,o]=t,a=e?i:this.height-i,s=n&&n*this.distanceScales.unitsPerMeter[2],c=L([r,a,o],this.pixelUnprojectionMatrix,s),[u,l,h]=this.unprojectPosition(c);return Number.isFinite(o)?[u,l,h]:Number.isFinite(n)?[u,l,n]:[u,l]}projectPosition(t){const[e,n]=C(t),r=(t[2]||0)*this.distanceScales.unitsPerMeter[2];return[e,n,r]}unprojectPosition(t){const[e,n]=R(t),r=(t[2]||0)*this.distanceScales.metersPerUnit[2];return[e,n,r]}projectFlat(t){return C(t)}unprojectFlat(t){return R(t)}getMapCenterByLngLatPosition({lngLat:t,pos:e}){var n;const r=L(e,this.pixelUnprojectionMatrix),i=C(t),o=P([],i,((n=[])[0]=-r[0],n[1]=-r[1],n)),a=P([],this.center,o);return R(a)}getLocationAtPoint({lngLat:t,pos:e}){return this.getMapCenterByLngLatPosition({lngLat:t,pos:e})}fitBounds(t,e={}){const{width:n,height:r}=this,{longitude:i,latitude:o,zoom:a}=function({width:t,height:e,bounds:n,minExtent:r=0,maxZoom:i=24,padding:o=0,offset:a=[0,0]}){const[[s,c],[u,l]]=n;if(Number.isFinite(o)){const h=o;o={top:h,bottom:h,left:h,right:h}}else j(Number.isFinite(o.top)&&Number.isFinite(o.bottom)&&Number.isFinite(o.left)&&Number.isFinite(o.right));const p=C([s,b(l,-85.051129,85.051129)]),f=C([u,b(c,-85.051129,85.051129)]),d=[Math.max(Math.abs(f[0]-p[0]),r),Math.max(Math.abs(f[1]-p[1]),r)],v=[t-o.left-o.right-2*Math.abs(a[0]),e-o.top-o.bottom-2*Math.abs(a[1])];j(v[0]>0&&v[1]>0);const g=v[0]/d[0],m=v[1]/d[1],w=(o.right-o.left)/2/g,O=(o.bottom-o.top)/2/m,E=[(f[0]+p[0])/2+w,(f[1]+p[1])/2+O],_=R(E),P=Math.min(i,y(Math.abs(Math.min(g,m))));return j(Number.isFinite(P)),{longitude:_[0],latitude:_[1],zoom:P}}(Object.assign({width:n,height:r,bounds:t},e));return new F({width:n,height:r,longitude:i,latitude:o,zoom:a})}getBounds(t){const e=this.getBoundingRegion(t),n=Math.min(...e.map(t=>t[0])),r=Math.max(...e.map(t=>t[0])),i=Math.min(...e.map(t=>t[1])),o=Math.max(...e.map(t=>t[1]));return[[n,i],[r,o]]}getBoundingRegion(t={}){return function(t,e=0){let n,r;const{width:i,height:o,unproject:a}=t,s={targetZ:e},c=a([0,o],s),u=a([i,o],s),l=t.fovy?.5*t.fovy*N:Math.atan(.5/t.altitude),h=(90-t.pitch)*N;return l>h-.01?(n=z(t,0,e),r=z(t,i,e)):(n=a([0,0],s),r=a([i,0],s)),[c,u,r,n]}(this,t.z||0)}}const V=["longitude","latitude","zoom"],B={curve:1.414,speed:1.2};function Z(t,e,n){var r;n=Object.assign({},B,n);const i=n.curve,o=t.zoom,a=[t.longitude,t.latitude],s=D(o),c=e.zoom,u=[e.longitude,e.latitude],l=D(c-o),h=C(a),p=C(u),f=((r=[])[0]=p[0]-h[0],r[1]=p[1]-h[1],r),d=Math.max(t.width,t.height),v=d/l,g=Math.hypot(f[0],f[1])*s,m=Math.max(g,.01),b=i*i,y=(v*v-d*d+b*b*m*m)/(2*d*b*m),w=(v*v-d*d-b*b*m*m)/(2*v*b*m),O=Math.log(Math.sqrt(y*y+1)-y),E=Math.log(Math.sqrt(w*w+1)-w);return{startZoom:o,startCenterXY:h,uDelta:f,w0:d,u1:g,S:(E-O)/i,rho:i,rho2:b,r0:O,r1:E}}var U=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var n=-1;return t.some(function(t,r){return t[0]===e&&(n=r,!0)}),n}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var n=t(this.__entries__,e),r=this.__entries__[n];return r&&r[1]},e.prototype.set=function(e,n){var r=t(this.__entries__,e);~r?this.__entries__[r][1]=n:this.__entries__.push([e,n])},e.prototype.delete=function(e){var n=this.__entries__,r=t(n,e);~r&&n.splice(r,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var n=0,r=this.__entries__;n0},t.prototype.connect_=function(){q&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),X?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){q&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;Y.some(function(t){return!!~n.indexOf(t)})&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),G=function(t,e){for(var n=0,r=Object.keys(e);n0},t}(),ta="undefined"!=typeof WeakMap?new WeakMap:new U,ts=function t(e){if(!(this instanceof t))throw TypeError("Cannot call a class as a function.");if(!arguments.length)throw TypeError("1 argument required, but only 0 present.");var n=K.getInstance(),r=new to(e,n,this);ta.set(this,r)};["observe","unobserve","disconnect"].forEach(function(t){ts.prototype[t]=function(){var e;return(e=ta.get(this))[t].apply(e,arguments)}});var tc=void 0!==H.ResizeObserver?H.ResizeObserver:ts;function tu(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}function tl(t,e){for(var n=0;n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function tg(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1&&void 0!==arguments[1]?arguments[1]:"component";t.debug&&p.checkPropTypes(tw,t,"prop",e)}var t_=function(){function t(e){var n=this;if(tu(this,t),a(this,"props",tO),a(this,"width",0),a(this,"height",0),a(this,"_fireLoadEvent",function(){n.props.onLoad({type:"load",target:n._map})}),a(this,"_handleError",function(t){n.props.onError(t)}),!e.mapboxgl)throw Error("Mapbox not available");this.mapboxgl=e.mapboxgl,t.initialized||(t.initialized=!0,this._checkStyleSheet(this.mapboxgl.version)),this._initialize(e)}return th(t,[{key:"finalize",value:function(){return this._destroy(),this}},{key:"setProps",value:function(t){return this._update(this.props,t),this}},{key:"redraw",value:function(){var t=this._map;t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}},{key:"getMap",value:function(){return this._map}},{key:"_reuse",value:function(e){this._map=t.savedMap;var n=this._map.getContainer(),r=e.container;for(r.classList.add("mapboxgl-map");n.childNodes.length>0;)r.appendChild(n.childNodes[0]);this._map._container=r,t.savedMap=null,e.mapStyle&&this._map.setStyle(tb(e.mapStyle),{diff:!1}),this._map.isStyleLoaded()?this._fireLoadEvent():this._map.once("styledata",this._fireLoadEvent)}},{key:"_create",value:function(e){if(e.reuseMaps&&t.savedMap)this._reuse(e);else{if(e.gl){var n=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=n,e.gl}}var r={container:e.container,center:[0,0],zoom:8,pitch:0,bearing:0,maxZoom:24,style:tb(e.mapStyle),interactive:!1,trackResize:!1,attributionControl:e.attributionControl,preserveDrawingBuffer:e.preserveDrawingBuffer};e.transformRequest&&(r.transformRequest=e.transformRequest),this._map=new this.mapboxgl.Map(Object.assign({},r,e.mapOptions)),this._map.once("load",this._fireLoadEvent),this._map.on("error",this._handleError)}return this}},{key:"_destroy",value:function(){this._map&&(this.props.reuseMaps&&!t.savedMap?(t.savedMap=this._map,this._map.off("load",this._fireLoadEvent),this._map.off("error",this._handleError),this._map.off("styledata",this._fireLoadEvent)):this._map.remove(),this._map=null)}},{key:"_initialize",value:function(t){var e=this;t=Object.assign({},tO,t),tE(t,"Mapbox"),this.mapboxgl.accessToken=t.mapboxApiAccessToken||tO.mapboxApiAccessToken,this.mapboxgl.baseApiUrl=t.mapboxApiUrl,this._create(t);var n=t.container;Object.defineProperty(n,"offsetWidth",{configurable:!0,get:function(){return e.width}}),Object.defineProperty(n,"clientWidth",{configurable:!0,get:function(){return e.width}}),Object.defineProperty(n,"offsetHeight",{configurable:!0,get:function(){return e.height}}),Object.defineProperty(n,"clientHeight",{configurable:!0,get:function(){return e.height}});var r=this._map.getCanvas();r&&(r.style.outline="none"),this._updateMapViewport({},t),this._updateMapSize({},t),this.props=t}},{key:"_update",value:function(t,e){if(this._map){tE(e=Object.assign({},this.props,e),"Mapbox");var n=this._updateMapViewport(t,e),r=this._updateMapSize(t,e);this._updateMapStyle(t,e),!e.asyncRender&&(n||r)&&this.redraw(),this.props=e}}},{key:"_updateMapStyle",value:function(t,e){t.mapStyle!==e.mapStyle&&this._map.setStyle(tb(e.mapStyle),{diff:!e.preventStyleDiffing})}},{key:"_updateMapSize",value:function(t,e){var n=t.width!==e.width||t.height!==e.height;return n&&(this.width=e.width,this.height=e.height,this._map.resize()),n}},{key:"_updateMapViewport",value:function(t,e){var n=this._getViewState(t),r=this._getViewState(e),i=r.latitude!==n.latitude||r.longitude!==n.longitude||r.zoom!==n.zoom||r.pitch!==n.pitch||r.bearing!==n.bearing||r.altitude!==n.altitude;return i&&(this._map.jumpTo(this._viewStateToMapboxProps(r)),r.altitude!==n.altitude&&(this._map.transform.altitude=r.altitude)),i}},{key:"_getViewState",value:function(t){var e=t.viewState||t,n=e.longitude,r=e.latitude,i=e.zoom,o=e.pitch,a=e.bearing,s=e.altitude;return{longitude:n,latitude:r,zoom:i,pitch:void 0===o?0:o,bearing:void 0===a?0:a,altitude:void 0===s?1.5:s}}},{key:"_checkStyleSheet",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"0.47.0";if(void 0!==tp)try{var e=tp.createElement("div");if(e.className="mapboxgl-map",e.style.display="none",tp.body.appendChild(e),!("static"!==window.getComputedStyle(e).position)){var n=tp.createElement("link");n.setAttribute("rel","stylesheet"),n.setAttribute("type","text/css"),n.setAttribute("href","https://api.tiles.mapbox.com/mapbox-gl-js/v".concat(t,"/mapbox-gl.css")),tp.head.appendChild(n)}}catch(r){}}},{key:"_viewStateToMapboxProps",value:function(t){return{center:[t.longitude,t.latitude],zoom:t.zoom,bearing:t.bearing,pitch:t.pitch}}}]),t}();a(t_,"initialized",!1),a(t_,"propTypes",tw),a(t_,"defaultProps",tO),a(t_,"savedMap",null);var tP=n(6158),tM=n.n(tP);function tj(t){return Array.isArray(t)||ArrayBuffer.isView(t)}function tS(t,e,n){return Math.max(e,Math.min(n,t))}function tT(t,e,n){return tj(t)?t.map(function(t,r){return tT(t,e[r],n)}):n*e+(1-n)*t}function tk(t,e){if(!t)throw Error(e||"react-map-gl: assertion failed.")}function tx(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function tD(t){for(var e=1;e0,"`scale` must be a positive number");var i=this._state,o=i.startZoom,a=i.startZoomLngLat;Number.isFinite(o)||(o=this._viewportProps.zoom,a=this._unproject(n)||this._unproject(e)),tk(a,"`startZoomLngLat` prop is required for zoom behavior to calculate where to position the map.");var s=this._calculateNewZoom({scale:r,startZoom:o||0}),c=new F(Object.assign({},this._viewportProps,{zoom:s})).getMapCenterByLngLatPosition({lngLat:a,pos:e}),u=f(c,2),l=u[0],h=u[1];return this._getUpdatedMapState({zoom:s,longitude:l,latitude:h})}},{key:"zoomEnd",value:function(){return this._getUpdatedMapState({startZoomLngLat:null,startZoom:null})}},{key:"_getUpdatedMapState",value:function(e){return new t(Object.assign({},this._viewportProps,this._state,e))}},{key:"_applyConstraints",value:function(t){var e=t.maxZoom,n=t.minZoom,r=t.zoom;t.zoom=tS(r,n,e);var i=t.maxPitch,o=t.minPitch,a=t.pitch;return t.pitch=tS(a,o,i),Object.assign(t,function({width:t,height:e,longitude:n,latitude:r,zoom:i,pitch:o=0,bearing:a=0}){(n<-180||n>180)&&(n=m(n+180,360)-180),(a<-180||a>180)&&(a=m(a+180,360)-180);const s=y(e/512);if(i<=s)i=s,r=0;else{const c=e/2/Math.pow(2,i),u=R([0,c])[1];if(rl&&(r=l)}}return{width:t,height:e,longitude:n,latitude:r,zoom:i,pitch:o,bearing:a}}(t)),t}},{key:"_unproject",value:function(t){var e=new F(this._viewportProps);return t&&e.unproject(t)}},{key:"_calculateNewLngLat",value:function(t){var e=t.startPanLngLat,n=t.pos;return new F(this._viewportProps).getMapCenterByLngLatPosition({lngLat:e,pos:n})}},{key:"_calculateNewZoom",value:function(t){var e=t.scale,n=t.startZoom,r=this._viewportProps,i=r.maxZoom;return tS(n+Math.log2(e),r.minZoom,i)}},{key:"_calculateNewPitchAndBearing",value:function(t){var e=t.deltaScaleX,n=t.deltaScaleY,r=t.startBearing,i=t.startPitch;n=tS(n,-1,1);var o=this._viewportProps,a=o.minPitch,s=o.maxPitch,c=i;return n>0?c=i+n*(s-i):n<0&&(c=i-n*(a-i)),{pitch:c,bearing:r+180*e}}},{key:"_getRotationParams",value:function(t,e){var n=t[0]-e[0],r=t[1]-e[1],i=t[1],o=e[1],a=this._viewportProps,s=a.width,c=a.height,u=0;return r>0?Math.abs(c-o)>5&&(u=r/(o-c)*1.2):r<0&&o>5&&(u=1-i/o),{deltaScaleX:n/s,deltaScaleY:u=Math.min(1,Math.max(-1,u))}}}]),t}();function tI(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function tL(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},n=l.current&&l.current.getMap();return n&&n.queryRenderedFeatures(t,e)}}},[]);var b=(0,h.useCallback)(function(t){var e=t.target;e===v.current&&e.scrollTo(0,0)},[]),y=m&&h.createElement(tz,{value:tZ(tZ({},g),{},{viewport:g.viewport||tq(tZ({map:m,props:t},c)),map:m,container:g.container||d.current})},h.createElement("div",{key:"map-overlays",className:"overlays",ref:v,style:tH,onScroll:b},t.children)),w=t.className,O=t.width,E=t.height,_=t.style,P=t.visibilityConstraints,M=Object.assign({position:"relative"},_,{width:O,height:E}),j=t.visible&&function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:tC;for(var n in e){var r,i=n.slice(0,3),o=(r=n.slice(3))[0].toLowerCase()+r.slice(1);if("min"===i&&t[o]e[n])return!1}return!0}(t.viewState||t,P),S=Object.assign({},tH,{visibility:j?"inherit":"hidden"});return h.createElement("div",{key:"map-container",ref:d,style:M},h.createElement("div",{key:"map-mapbox",ref:p,style:S,className:w}),y,!i&&!t.disableTokenWarning&&h.createElement(tX,null))});function tG(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}(this.propNames||[]);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(!function t(e,n){if(e===n)return!0;if(tj(e)&&tj(n)){if(e.length!==n.length)return!1;for(var r=0;r=Math.abs(e-n)}(t[i],e[i]))return!1}}catch(o){r.e(o)}finally{r.f()}return!0}},{key:"initializeProps",value:function(t,e){return{start:t,end:e}}},{key:"interpolateProps",value:function(t,e,n){tk(!1,"interpolateProps is not implemented")}},{key:"getDuration",value:function(t,e){return e.transitionDuration}}]),t}();function tJ(t){if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function tQ(t,e){return(tQ=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function t0(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&tQ(t,e)}function t1(t){return(t1="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)}function t2(t,e){if(e&&("object"===t1(e)||"function"==typeof e))return e;if(void 0!==e)throw TypeError("Derived constructors may only return object or undefined");return tJ(t)}function t4(t){return(t4=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}var t3={longitude:1,bearing:1};function t5(t){return Number.isFinite(t)||Array.isArray(t)}function t8(t,e,n){return t in t3&&Math.abs(n-e)>180&&(n=n<0?n+360:n-360),n}function t6(t,e){if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(i=function(t,e){if(t){if("string"==typeof t)return t7(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t7(t,e)}}(t))||e&&t&&"number"==typeof t.length){i&&(t=i);var n=0,r=function(){};return{s:r,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function t7(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:r}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=t[Symbol.iterator]()},n:function(){var t=i.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}function ei(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n0&&void 0!==arguments[0]?arguments[0]:{};return tu(this,r),t=n.call(this),a(tJ(t),"propNames",t9),t.props=Object.assign({},en,e),t}th(r,[{key:"initializeProps",value:function(t,e){var n,r={},i={},o=t6(et);try{for(o.s();!(n=o.n()).done;){var a=n.value,s=t[a],c=e[a];tk(t5(s)&&t5(c),"".concat(a," must be supplied for transition")),r[a]=s,i[a]=t8(a,s,c)}}catch(u){o.e(u)}finally{o.f()}var l,h=t6(ee);try{for(h.s();!(l=h.n()).done;){var p=l.value,f=t[p]||0,d=e[p]||0;r[p]=f,i[p]=t8(p,f,d)}}catch(v){h.e(v)}finally{h.f()}return{start:r,end:i}}},{key:"interpolateProps",value:function(t,e,n){var r,i=function(t,e,n,r={}){var i,o,a,s;const c={},{startZoom:u,startCenterXY:l,uDelta:h,w0:p,u1:f,S:d,rho:v,rho2:g,r0:m}=Z(t,e,r);if(f<.01){for(const b of V){const w=t[b],O=e[b];c[b]=(i=w,o=O,(a=n)*o+(1-a)*i)}return c}const E=n*d,_=Math.cosh(m)/Math.cosh(m+v*E),M=p*((Math.cosh(m)*Math.tanh(m+v*E)-Math.sinh(m))/g)/f,j=u+y(1/_),S=((s=[])[0]=h[0]*M,s[1]=h[1]*M,s);P(S,S,l);const T=R(S);return c.longitude=T[0],c.latitude=T[1],c.zoom=j,c}(t,e,n,this.props),o=t6(ee);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=tT(t[a],e[a],n)}}catch(s){o.e(s)}finally{o.f()}return i}},{key:"getDuration",value:function(t,e){var n=e.transitionDuration;return"auto"===n&&(n=function(t,e,n={}){let r;n=Object.assign({},B,n);const{screenSpeed:i,speed:o,maxDuration:a}=n,{S:s,rho:c}=Z(t,e,n),u=1e3*s;return r=Number.isFinite(i)?u/(i/c):u/o,Number.isFinite(a)&&r>a?0:r}(t,e,this.props)),n}}])}(t$);var eo=["longitude","latitude","zoom","bearing","pitch"],ea=function(t){t0(r,t);var e,n=(e=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}(),function(){var t,n=t4(r);if(e){var i=t4(this).constructor;t=Reflect.construct(n,arguments,i)}else t=n.apply(this,arguments);return t2(this,t)});function r(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return tu(this,r),t=n.call(this),Array.isArray(e)&&(e={transitionProps:e}),t.propNames=e.transitionProps||eo,e.around&&(t.around=e.around),t}return th(r,[{key:"initializeProps",value:function(t,e){var n={},r={};if(this.around){n.around=this.around;var i=new F(t).unproject(this.around);Object.assign(r,e,{around:new F(e).project(i),aroundLngLat:i})}var o,a=er(this.propNames);try{for(a.s();!(o=a.n()).done;){var s=o.value,c=t[s],u=e[s];tk(t5(c)&&t5(u),"".concat(s," must be supplied for transition")),n[s]=c,r[s]=t8(s,c,u)}}catch(l){a.e(l)}finally{a.f()}return{start:n,end:r}}},{key:"interpolateProps",value:function(t,e,n){var r,i={},o=er(this.propNames);try{for(o.s();!(r=o.n()).done;){var a=r.value;i[a]=tT(t[a],e[a],n)}}catch(s){o.e(s)}finally{o.f()}if(e.around){var c=new F(Object.assign({},e,i)).getMapCenterByLngLatPosition({lngLat:e.aroundLngLat,pos:tT(t.around,e.around,n)}),u=f(c,2),l=u[0],h=u[1];i.longitude=l,i.latitude=h}return i}}]),r}(t$),es=function(){},ec={BREAK:1,SNAP_TO_END:2,IGNORE:3,UPDATE:4},eu={transitionDuration:0,transitionEasing:function(t){return t},transitionInterpolator:new ea,transitionInterruption:ec.BREAK,onTransitionStart:es,onTransitionInterrupt:es,onTransitionEnd:es},el=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};tu(this,t),a(this,"_animationFrame",null),a(this,"_onTransitionFrame",function(){e._animationFrame=requestAnimationFrame(e._onTransitionFrame),e._updateViewport()}),this.props=null,this.onViewportChange=n.onViewportChange||es,this.onStateChange=n.onStateChange||es,this.time=n.getTime||Date.now}return th(t,[{key:"getViewportInTransition",value:function(){return this._animationFrame?this.state.propsInTransition:null}},{key:"processViewportChange",value:function(t){var e=this.props;if(this.props=t,!e||this._shouldIgnoreViewportChange(e,t))return!1;if(this._isTransitionEnabled(t)){var n=Object.assign({},e),r=Object.assign({},t);if(this._isTransitionInProgress()&&(e.onTransitionInterrupt(),this.state.interruption===ec.SNAP_TO_END?Object.assign(n,this.state.endProps):Object.assign(n,this.state.propsInTransition),this.state.interruption===ec.UPDATE)){var i,o,a=this.time(),s=(a-this.state.startTime)/this.state.duration;r.transitionDuration=this.state.duration-(a-this.state.startTime),r.transitionEasing=(o=(i=this.state.easing)(s),function(t){return 1/(1-o)*(i(t*(1-s)+s)-o)}),r.transitionInterpolator=n.transitionInterpolator}return r.onTransitionStart(),this._triggerTransition(n,r),!0}return this._isTransitionInProgress()&&(e.onTransitionInterrupt(),this._endTransition()),!1}},{key:"_isTransitionInProgress",value:function(){return Boolean(this._animationFrame)}},{key:"_isTransitionEnabled",value:function(t){var e=t.transitionDuration,n=t.transitionInterpolator;return(e>0||"auto"===e)&&Boolean(n)}},{key:"_isUpdateDueToCurrentTransition",value:function(t){return!!this.state.propsInTransition&&this.state.interpolator.arePropsEqual(t,this.state.propsInTransition)}},{key:"_shouldIgnoreViewportChange",value:function(t,e){return!t||(this._isTransitionInProgress()?this.state.interruption===ec.IGNORE||this._isUpdateDueToCurrentTransition(e):!this._isTransitionEnabled(e)||e.transitionInterpolator.arePropsEqual(t,e))}},{key:"_triggerTransition",value:function(t,e){tk(this._isTransitionEnabled(e)),this._animationFrame&&cancelAnimationFrame(this._animationFrame);var n=e.transitionInterpolator,r=n.getDuration?n.getDuration(t,e):e.transitionDuration;if(0!==r){var i=e.transitionInterpolator.initializeProps(t,e),o={inTransition:!0,isZooming:t.zoom!==e.zoom,isPanning:t.longitude!==e.longitude||t.latitude!==e.latitude,isRotating:t.bearing!==e.bearing||t.pitch!==e.pitch};this.state={duration:r,easing:e.transitionEasing,interpolator:e.transitionInterpolator,interruption:e.transitionInterruption,startTime:this.time(),startProps:i.start,endProps:i.end,animation:null,propsInTransition:{}},this._onTransitionFrame(),this.onStateChange(o)}}},{key:"_endTransition",value:function(){this._animationFrame&&(cancelAnimationFrame(this._animationFrame),this._animationFrame=null),this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1})}},{key:"_updateViewport",value:function(){var t=this.time(),e=this.state,n=e.startTime,r=e.duration,i=e.easing,o=e.interpolator,a=e.startProps,s=e.endProps,c=!1,u=(t-n)/r;u>=1&&(u=1,c=!0),u=i(u);var l=o.interpolateProps(a,s,u),h=new tA(Object.assign({},this.props,l));this.state.propsInTransition=h.getViewportProps(),this.onViewportChange(this.state.propsInTransition,this.props),c&&(this._endTransition(),this.props.onTransitionEnd())}}]),t}();a(el,"defaultProps",eu);var eh=n(840),ep=n.n(eh);const ef={mousedown:1,mousemove:2,mouseup:4};!function(t){const e=t.prototype.handler;t.prototype.handler=function(t){const n=this.store;t.button>0&&"pointerdown"===t.type&&!function(t,e){for(let n=0;ne.pointerId===t.pointerId)&&n.push(t),e.call(this,t)}}(ep().PointerEventInput),ep().MouseInput.prototype.handler=function(t){let e=ef[t.type];1&e&&t.button>=0&&(this.pressed=!0),2&e&&0===t.which&&(e=4),this.pressed&&(4&e&&(this.pressed=!1),this.callback(this.manager,e,{pointers:[t],changedPointers:[t],pointerType:"mouse",srcEvent:t}))};const ed=ep().Manager;var ev=ep();const eg=ev?[[ev.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[ev.Rotate,{enable:!1}],[ev.Pinch,{enable:!1}],[ev.Swipe,{enable:!1}],[ev.Pan,{threshold:0,enable:!1}],[ev.Press,{enable:!1}],[ev.Tap,{event:"doubletap",taps:2,enable:!1}],[ev.Tap,{event:"anytap",enable:!1}],[ev.Tap,{enable:!1}]]:null,em={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},eb={doubletap:["tap"]},ey={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},ew={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},eO={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},eE={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},e_="undefined"!=typeof navigator&&navigator.userAgent?navigator.userAgent.toLowerCase():"",eP="undefined"!=typeof window?window:n.g;void 0!==n.g?n.g:window;let eM=!1;try{const ej={get passive(){return eM=!0,!0}};eP.addEventListener("test",ej,ej),eP.removeEventListener("test",ej,ej)}catch(eS){}const eT=-1!==e_.indexOf("firefox"),{WHEEL_EVENTS:ek}=ew,ex="wheel";class eD{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.events=ek.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach(e=>t.addEventListener(e,this.handleEvent,!!eM&&{passive:!1}))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===ex&&(this.options.enable=e)}handleEvent(t){if(!this.options.enable)return;let e=t.deltaY;eP.WheelEvent&&(eT&&t.deltaMode===eP.WheelEvent.DOM_DELTA_PIXEL&&(e/=eP.devicePixelRatio),t.deltaMode===eP.WheelEvent.DOM_DELTA_LINE&&(e*=40));const n={x:t.clientX,y:t.clientY};0!==e&&e%4.000244140625==0&&(e=Math.floor(e/4.000244140625)),t.shiftKey&&e&&(e*=.25),this._onWheel(t,-e,n)}_onWheel(t,e,n){this.callback({type:ex,center:n,delta:e,srcEvent:t,pointerType:"mouse",target:t.target})}}const{MOUSE_EVENTS:eC}=ew,eR="pointermove",eA="pointerover",eI="pointerout",eL="pointerleave";class eN{constructor(t,e,n={}){this.element=t,this.callback=e,this.pressed=!1,this.options=Object.assign({enable:!0},n),this.enableMoveEvent=this.options.enable,this.enableLeaveEvent=this.options.enable,this.enableOutEvent=this.options.enable,this.enableOverEvent=this.options.enable,this.events=eC.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),this.events.forEach(e=>t.addEventListener(e,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===eR&&(this.enableMoveEvent=e),t===eA&&(this.enableOverEvent=e),t===eI&&(this.enableOutEvent=e),t===eL&&(this.enableLeaveEvent=e)}handleEvent(t){this.handleOverEvent(t),this.handleOutEvent(t),this.handleLeaveEvent(t),this.handleMoveEvent(t)}handleOverEvent(t){this.enableOverEvent&&"mouseover"===t.type&&this.callback({type:eA,srcEvent:t,pointerType:"mouse",target:t.target})}handleOutEvent(t){this.enableOutEvent&&"mouseout"===t.type&&this.callback({type:eI,srcEvent:t,pointerType:"mouse",target:t.target})}handleLeaveEvent(t){this.enableLeaveEvent&&"mouseleave"===t.type&&this.callback({type:eL,srcEvent:t,pointerType:"mouse",target:t.target})}handleMoveEvent(t){if(this.enableMoveEvent)switch(t.type){case"mousedown":t.button>=0&&(this.pressed=!0);break;case"mousemove":0===t.which&&(this.pressed=!1),this.pressed||this.callback({type:eR,srcEvent:t,pointerType:"mouse",target:t.target});break;case"mouseup":this.pressed=!1}}}const{KEY_EVENTS:ez}=ew,eF="keydown",eV="keyup";class eB{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=ez.concat(n.events||[]),this.handleEvent=this.handleEvent.bind(this),t.tabIndex=n.tabIndex||0,t.style.outline="none",this.events.forEach(e=>t.addEventListener(e,this.handleEvent))}destroy(){this.events.forEach(t=>this.element.removeEventListener(t,this.handleEvent))}enableEventType(t,e){t===eF&&(this.enableDownEvent=e),t===eV&&(this.enableUpEvent=e)}handleEvent(t){const e=t.target||t.srcElement;("INPUT"!==e.tagName||"text"!==e.type)&&"TEXTAREA"!==e.tagName&&(this.enableDownEvent&&"keydown"===t.type&&this.callback({type:eF,srcEvent:t,key:t.key,target:t.target}),this.enableUpEvent&&"keyup"===t.type&&this.callback({type:eV,srcEvent:t,key:t.key,target:t.target}))}}const eZ="contextmenu";class eU{constructor(t,e,n={}){this.element=t,this.callback=e,this.options=Object.assign({enable:!0},n),this.handleEvent=this.handleEvent.bind(this),t.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(t,e){t===eZ&&(this.options.enable=e)}handleEvent(t){this.options.enable&&this.callback({type:eZ,center:{x:t.clientX,y:t.clientY},srcEvent:t,pointerType:"mouse",target:t.target})}}const eq={pointerdown:1,pointermove:2,pointerup:4,mousedown:1,mousemove:2,mouseup:4},eH={srcElement:"root",priority:0};class eW{constructor(t){this.eventManager=t,this.handlers=[],this.handlersByElement=new Map,this.handleEvent=this.handleEvent.bind(this),this._active=!1}isEmpty(){return!this._active}add(t,e,n,r=!1,i=!1){const{handlers:o,handlersByElement:a}=this;n&&("object"!=typeof n||n.addEventListener)&&(n={srcElement:n}),n=n?Object.assign({},eH,n):eH;let s=a.get(n.srcElement);s||(s=[],a.set(n.srcElement,s));const c={type:t,handler:e,srcElement:n.srcElement,priority:n.priority};r&&(c.once=!0),i&&(c.passive=!0),o.push(c),this._active=this._active||!c.passive;let u=s.length-1;for(;u>=0&&!(s[u].priority>=c.priority);)u--;s.splice(u+1,0,c)}remove(t,e){const{handlers:n,handlersByElement:r}=this;for(let i=n.length-1;i>=0;i--){const o=n[i];if(o.type===t&&o.handler===e){n.splice(i,1);const a=r.get(o.srcElement);a.splice(a.indexOf(o),1),0===a.length&&r.delete(o.srcElement)}}this._active=n.some(t=>!t.passive)}handleEvent(t){if(this.isEmpty())return;const e=this._normalizeEvent(t);let n=t.srcEvent.target;for(;n&&n!==e.rootElement;){if(this._emit(e,n),e.handled)return;n=n.parentNode}this._emit(e,"root")}_emit(t,e){const n=this.handlersByElement.get(e);if(n){let r=!1;const i=()=>{t.handled=!0},o=()=>{t.handled=!0,r=!0},a=[];for(let s=0;s{const e=this.manager.get(t);e&&em[t].forEach(t=>{e.recognizeWith(t)})}),e.recognizerOptions){const i=this.manager.get(r);if(i){const o=e.recognizerOptions[r];delete o.enable,i.set(o)}}for(const[a,s]of(this.wheelInput=new eD(t,this._onOtherEvent,{enable:!1}),this.moveInput=new eN(t,this._onOtherEvent,{enable:!1}),this.keyInput=new eB(t,this._onOtherEvent,{enable:!1,tabIndex:e.tabIndex}),this.contextmenuInput=new eU(t,this._onOtherEvent,{enable:!1}),this.events))s.isEmpty()||(this._toggleRecognizer(s.recognizerName,!0),this.manager.on(a,s.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(t,e,n){this._addEventHandler(t,e,n,!1)}once(t,e,n){this._addEventHandler(t,e,n,!0)}watch(t,e,n){this._addEventHandler(t,e,n,!1,!0)}off(t,e){this._removeEventHandler(t,e)}_toggleRecognizer(t,e){const{manager:n}=this;if(!n)return;const r=n.get(t);if(r&&r.options.enable!==e){r.set({enable:e});const i=eb[t];i&&!this.options.recognizers&&i.forEach(i=>{const o=n.get(i);e?(o.requireFailure(t),r.dropRequireFailure(i)):o.dropRequireFailure(t)})}this.wheelInput.enableEventType(t,e),this.moveInput.enableEventType(t,e),this.keyInput.enableEventType(t,e),this.contextmenuInput.enableEventType(t,e)}_addEventHandler(t,e,n,r,i){if("string"!=typeof t){for(const o in n=e,t)this._addEventHandler(o,t[o],n,r,i);return}const{manager:a,events:s}=this,c=eE[t]||t;let u=s.get(c);!u&&(u=new eW(this),s.set(c,u),u.recognizerName=eO[c]||c,a&&a.on(c,u.handleEvent)),u.add(t,e,n,r,i),u.isEmpty()||this._toggleRecognizer(u.recognizerName,!0)}_removeEventHandler(t,e){if("string"!=typeof t){for(const n in t)this._removeEventHandler(n,t[n]);return}const{events:r}=this,i=eE[t]||t,o=r.get(i);if(o&&(o.remove(t,e),o.isEmpty())){const{recognizerName:a}=o;let s=!1;for(const c of r.values())if(c.recognizerName===a&&!c.isEmpty()){s=!0;break}s||this._toggleRecognizer(a,!1)}}_onBasicInput(t){const{srcEvent:e}=t,n=ey[e.type];n&&this.manager.emit(n,t)}_onOtherEvent(t){this.manager.emit(t.type,t)}}function eK(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function eG(t){for(var e=1;e0),a=o&&!this.state.isHovering,s=!o&&this.state.isHovering;(r||a)&&(t.features=e,r&&r(t)),a&&e9.call(this,"onMouseEnter",t),s&&e9.call(this,"onMouseLeave",t),(a||s)&&this.setState({isHovering:o})}}function nr(t){var e=this.props,n=e.onClick,r=e.onNativeClick,i=e.onDblClick,o=e.doubleClickZoom,a=[],s=i||o;switch(t.type){case"anyclick":a.push(r),s||a.push(n);break;case"click":s&&a.push(n)}(a=a.filter(Boolean)).length&&((t=e6.call(this,t)).features=e7.call(this,t.point),a.forEach(function(e){return e(t)}))}var ni=(0,h.forwardRef)(function(t,e){var n,a,s=(0,h.useContext)(tN),c=(0,h.useMemo)(function(){return t.controller||new e1},[]),u=(0,h.useMemo)(function(){return new eX(null,{touchAction:t.touchAction,recognizerOptions:t.eventRecognizerOptions})},[]),l=(0,h.useRef)(null),p=(0,h.useRef)(null),f=(0,h.useRef)({width:0,height:0,state:{isHovering:!1,isDragging:!1}}).current;f.props=t,f.map=p.current&&p.current.getMap(),f.setState=function(e){f.state=e4(e4({},f.state),e),l.current.style.cursor=t.getCursor(f.state)};var d=!0,v=function(t,e,r){if(d){n=[t,e,r];return}var i=f.props,o=i.onViewStateChange,a=i.onViewportChange;Object.defineProperty(t,"position",{get:function(){return[0,0,tV(f.map,t)]}}),o&&o({viewState:t,interactionState:e,oldViewState:r}),a&&a(t,e,r)};(0,h.useImperativeHandle)(e,function(){return{getMap:p.current&&p.current.getMap,queryRenderedFeatures:p.current&&p.current.queryRenderedFeatures}},[]);var g=(0,h.useMemo)(function(){return e4(e4({},s),{},{eventManager:u,container:s.container||l.current})},[s,l.current]);g.onViewportChange=v,g.viewport=s.viewport||tq(f),f.viewport=g.viewport;var m=function(t){var e=t.isDragging,n=void 0!==e&&e;if(n!==f.state.isDragging&&f.setState({isDragging:n}),d){a=t;return}var r=f.props.onInteractionStateChange;r&&r(t)},b=function(){f.width&&f.height&&c.setOptions(e4(e4(e4({},f.props),f.props.viewState),{},{isInteractive:Boolean(f.props.onViewStateChange||f.props.onViewportChange),onViewportChange:v,onStateChange:m,eventManager:u,width:f.width,height:f.height}))},y=function(t){var e=t.width,n=t.height;f.width=e,f.height=n,b(),f.props.onResize({width:e,height:n})};(0,h.useEffect)(function(){return u.setElement(l.current),u.on({pointerdown:nt.bind(f),pointermove:nn.bind(f),pointerup:ne.bind(f),pointerleave:e9.bind(f,"onMouseOut"),click:nr.bind(f),anyclick:nr.bind(f),dblclick:e9.bind(f,"onDblClick"),wheel:e9.bind(f,"onWheel"),contextmenu:e9.bind(f,"onContextMenu")}),function(){u.destroy()}},[]),tF(function(){if(n){var t;v.apply(void 0,function(t){if(Array.isArray(t))return i(t)}(t=n)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||o(t)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())}a&&m(a)}),b();var w=t.width,O=t.height,E=t.style,_=t.getCursor,P=(0,h.useMemo)(function(){return e4(e4({position:"relative"},E),{},{width:w,height:O,cursor:_(f.state)})},[E,w,O,_,f.state]);return n&&f._child||(f._child=h.createElement(tz,{value:g},h.createElement("div",{key:"event-canvas",ref:l,style:P},h.createElement(tK,r({},t,{width:"100%",height:"100%",style:null,onResize:y,ref:p}))))),d=!1,f._child});ni.supported=tK.supported,ni.propTypes=e3,ni.defaultProps=e8;var no=ni;p.string.isRequired,p.string,p.oneOf(["fill","line","symbol","circle","fill-extrusion","raster","background","heatmap","hillshade","sky"]).isRequired,p.string,p.string,p.string;var na={captureScroll:!1,captureDrag:!0,captureClick:!0,captureDoubleClick:!0,capturePointerMove:!1},ns={captureScroll:p.bool,captureDrag:p.bool,captureClick:p.bool,captureDoubleClick:p.bool,capturePointerMove:p.bool};function nc(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=(0,h.useContext)(tN),n=(0,h.useRef)(null),r=(0,h.useRef)({props:t,state:{},context:e,containerRef:n}).current;return r.props=t,r.context=e,(0,h.useEffect)(function(){return function(t){var e=t.containerRef.current,n=t.context.eventManager;if(e&&n){var r={wheel:function(e){var n=t.props;n.captureScroll&&e.stopPropagation(),n.onScroll&&n.onScroll(e,t)},panstart:function(e){var n=t.props;n.captureDrag&&e.stopPropagation(),n.onDragStart&&n.onDragStart(e,t)},anyclick:function(e){var n=t.props;n.captureClick&&e.stopPropagation(),n.onNativeClick&&n.onNativeClick(e,t)},click:function(e){var n=t.props;n.captureClick&&e.stopPropagation(),n.onClick&&n.onClick(e,t)},dblclick:function(e){var n=t.props;n.captureDoubleClick&&e.stopPropagation(),n.onDoubleClick&&n.onDoubleClick(e,t)},pointermove:function(e){var n=t.props;n.capturePointerMove&&e.stopPropagation(),n.onPointerMove&&n.onPointerMove(e,t)}};return n.watch(r,e),function(){n.off(r)}}}(r)},[e.eventManager]),r}function nu(t){var e=t.instance,n=nc(t),r=n.context,i=n.containerRef;return e._context=r,e._containerRef=i,e._render()}var nl=function(t){t0(i,t);var e,n=(e=function(){if("undefined"==typeof Reflect||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}(),function(){var t,n=t4(i);if(e){var r=t4(this).constructor;t=Reflect.construct(n,arguments,r)}else t=n.apply(this,arguments);return t2(this,t)});function i(){var t;tu(this,i);for(var e=arguments.length,r=Array(e),o=0;o2&&void 0!==arguments[2]?arguments[2]:"x";if(null===t)return e;var r="x"===n?t.offsetWidth:t.offsetHeight;return ny(e/100*r)/r*100};function nO(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}var nE=Object.assign({},nf,{className:p.string,longitude:p.number.isRequired,latitude:p.number.isRequired,style:p.object}),n_=Object.assign({},nd,{className:""});function nP(t){var e,n,r,i,o,s,c,u,l,p=(e=(0,h.useState)(null),r=(n=f(e,2))[0],i=n[1],o=(0,h.useState)(null),c=(s=f(o,2))[0],u=s[1],(l=nc(np(np({},t),{},{onDragStart:nm}))).callbacks=t,l.state.dragPos=r,l.state.setDragPos=i,l.state.dragOffset=c,l.state.setDragOffset=u,(0,h.useEffect)(function(){return function(t){var e=t.context.eventManager;if(e&&t.state.dragPos){var n={panmove:function(e){return function(t,e){var n=e.props,r=e.callbacks,i=e.state,o=e.context;t.stopPropagation();var a=nv(t);i.setDragPos(a);var s=i.dragOffset;if(r.onDrag&&s){var c=Object.assign({},t);c.lngLat=ng(a,s,n,o),r.onDrag(c)}}(e,t)},panend:function(e){return function(t,e){var n=e.props,r=e.callbacks,i=e.state,o=e.context;t.stopPropagation();var a=i.dragPos,s=i.dragOffset;if(i.setDragPos(null),i.setDragOffset(null),r.onDragEnd&&a&&s){var c=Object.assign({},t);c.lngLat=ng(a,s,n,o),r.onDragEnd(c)}}(e,t)},pancancel:function(e){var n;return n=t.state,void(e.stopPropagation(),n.setDragPos(null),n.setDragOffset(null))}};return e.watch(n),function(){e.off(n)}}}(l)},[l.context.eventManager,Boolean(r)]),l),d=p.state,v=p.containerRef,g=t.children,m=t.className,b=t.draggable,y=t.style,w=d.dragPos,O=function(t){var e=t.props,n=t.state,r=t.context,i=e.longitude,o=e.latitude,a=e.offsetLeft,s=e.offsetTop,c=n.dragPos,u=n.dragOffset,l=r.viewport,h=r.map;if(c&&u)return[c[0]+u[0],c[1]+u[1]];var p=tV(h,{longitude:i,latitude:o}),d=l.project([i,o,p]),v=f(d,2),g=v[0],m=v[1];return[g+=a,m+=s]}(p),E=f(O,2),_=E[0],P=E[1],M="translate(".concat(ny(_),"px, ").concat(ny(P),"px)"),j=b?w?"grabbing":"grab":"auto",S=(0,h.useMemo)(function(){var t=function(t){for(var e=1;e0){var g=p,m=v;for(p=0;p<=1;p+=.5)d=(f=n-p*a)+a,(v=Math.max(0,u-f)+Math.max(0,d-i+u))0){var E=h,_=O;for(h=0;h<=1;h+=b)w=(y=e-h*o)+o,(O=Math.max(0,u-y)+Math.max(0,w-r+u))<_&&(_=O,E=h);h=E}return nj.find(function(t){var e=nM[t];return e.x===h&&e.y===p})||s}({x:r,y:i,anchor:o,padding:s,width:T.width,height:T.height,selfWidth:e.clientWidth,selfHeight:e.clientHeight}):o),F=(c=M.current,l=(u=f(N,3))[0],p=u[1],d=u[2],v=t.offsetLeft,g=t.offsetTop,m=t.sortByDepth,b=nM[z],y=nw(c,-(100*b.x)),w=nw(c,-(100*b.y),"y"),O={position:"absolute",transform:"\n translate(".concat(y,"%, ").concat(w,"%)\n translate(").concat(ny(l+v),"px, ").concat(ny(p+g),"px)\n "),display:void 0,zIndex:void 0},m&&(d>1||d<-1||l<0||l>T.width||p<0||p>T.height?O.display="none":O.zIndex=Math.floor((1-d)/2*1e5)),O),V=(0,h.useCallback)(function(t){_.props.onClose();var e=_.context.eventManager;e&&e.once("click",function(t){return t.stopPropagation()},t.target)},[]);return h.createElement("div",{className:"mapboxgl-popup mapboxgl-popup-anchor-".concat(z," ").concat(x),style:F,ref:M},h.createElement("div",{key:"tip",className:"mapboxgl-popup-tip",style:{borderWidth:R}}),h.createElement("div",{key:"content",ref:E,className:"mapboxgl-popup-content"},A&&h.createElement("button",{key:"close-button",className:"mapboxgl-popup-close-button",type:"button",onClick:V},"\xd7"),I))}function nx(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}nk.propTypes=nS,nk.defaultProps=nT,h.memo(nk);var nD=Object.assign({},ns,{toggleLabel:p.string,className:p.string,style:p.object,compact:p.bool,customAttribution:p.oneOfType([p.string,p.arrayOf(p.string)])}),nC=Object.assign({},na,{className:"",toggleLabel:"Toggle Attribution"});function nR(t){var e=nc(t),n=e.context,r=e.containerRef,i=(0,h.useRef)(null),o=(0,h.useState)(!1),s=f(o,2),c=s[0],u=s[1];(0,h.useEffect)(function(){var e,o,a,s,c,u;return n.map&&(o={customAttribution:t.customAttribution},a=n.map,s=r.current,c=i.current,(u=new(tM()).AttributionControl(o))._map=a,u._container=s,u._innerContainer=c,u._updateAttributions(),u._updateEditLink(),a.on("styledata",u._updateData),a.on("sourcedata",u._updateData),e=u),function(){return e&&void(e._map.off("styledata",e._updateData),e._map.off("sourcedata",e._updateData))}},[n.map]);var l=void 0===t.compact?n.viewport.width<=640:t.compact;(0,h.useEffect)(function(){!l&&c&&u(!1)},[l]);var p=(0,h.useCallback)(function(){return u(function(t){return!t})},[]),d=(0,h.useMemo)(function(){return function(t){for(var e=1;ea)return 1}return 0}(o.map.version,"1.6.0")>=0?2:1:2},[o.map]),n=o.viewport.bearing,r={transform:"rotate(".concat(-n,"deg)")},2===e?h.createElement("span",{className:"mapboxgl-ctrl-icon","aria-hidden":"true",style:r}):h.createElement("span",{className:"mapboxgl-ctrl-compass-arrow",style:r})))))}function nG(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}nK.propTypes=nH,nK.defaultProps=nW,h.memo(nK);var n$=Object.assign({},ns,{className:p.string,style:p.object,maxWidth:p.number,unit:p.oneOf(["imperial","metric","nautical"])}),nJ=Object.assign({},na,{className:"",maxWidth:100,unit:"metric"});function nQ(t){var e=nc(t),n=e.context,r=e.containerRef,i=(0,h.useState)(null),o=f(i,2),s=o[0],c=o[1];(0,h.useEffect)(function(){if(n.map){var t=new(tM()).ScaleControl;t._map=n.map,t._container=r.current,c(t)}},[n.map]),s&&(s.options=t,s._onMove());var u=(0,h.useMemo)(function(){return function(t){for(var e=1;et?n:t}function nm(n,t){return!rL(n,t)}function ny(n,t){return!rk(n,t)}function nC(n){this.b=new iR(n)}function nS(){this.b=(rJ(),uJ)}function nM(){this.b=(ik(),fn)}function nx(n,t){var e;nb(),e=o.b,n?function(n,t,e,r){var i=n.b[r];if(i)for(var o=0,u=i.length;o=t&&n.splice(0,t),n}function tC(n){return nY(n,15)?n:new n9(n)}function tS(){try{null.a()}catch(n){return n}}function tM(n){var t;return(t=new I).d=iZ+n,t.c=1,t}function tx(n,t){return nJ(n)?n.eQ(t):n===t}function tB(n,t){return n.l==t.l&&n.m==t.m&&n.h==t.h}function tA(n,t){return n.l!=t.l||n.m!=t.m||n.h!=t.h}function tN(n,t,e){return(iW=new x).l=n,iW.m=t,iW.h=e,iW}function tI(n,t){return nG(n)===nG(t)||null!=n&&tx(n,t)}function tE(n,t){throw new nf("Index: "+n+", Size: "+t)}function tR(n,t){if(!n)throw new z;this.f=t,tT(this,n)}function tO(n,t){if(!n)throw new z;this.f=t,tT(this,n)}function tD(n,t,e,r){e0.call(this,n,t,e),id(this,r)}function tk(n,t){e0.call(this,n,0,n.length),id(this,t)}function tL(n,t){e0.call(this,er(n),0,n.length),id(this,t)}function tU(n){nr.call(this,"String index out of range: "+n)}function tP(n,t){var e,r;return e=n.b,r=String.fromCharCode(t),e.b+=r,n}function tQ(n,t){rI(n.b,n.b,n.e,t.b,t.e),t3(n),n.c=-2}function tT(n,t){n.d=t,n.b=t.ab(),n.b<54&&(n.g=rh(eL(t)))}function tj(){tj=g,ua=[],uh=[],function(n,t,e){var r,i=0;for(var o in n)(r=n[o])&&(t[i]=o,e[i]=r,++i)}(new M,ua,uh)}function tF(){uI||(uI=!0,new j,new F,function(){if(ng(oD,iZ),u.bigdecimal.BigDecimal)var n=u.bigdecimal.BigDecimal;u.bigdecimal.BigDecimal=fw(function(){1==arguments.length&&null!=arguments[0]&&arguments[0].gC()==f$?this.__gwt_instance=arguments[0]:0==arguments.length&&(this.__gwt_instance=new nw,nl(this.__gwt_instance,this))});var t=u.bigdecimal.BigDecimal.prototype={};if(n)for(p in n)u.bigdecimal.BigDecimal[p]=n[p];u.bigdecimal.BigDecimal.ROUND_CEILING=2,u.bigdecimal.BigDecimal.ROUND_DOWN=1,u.bigdecimal.BigDecimal.ROUND_FLOOR=3,u.bigdecimal.BigDecimal.ROUND_HALF_DOWN=5,u.bigdecimal.BigDecimal.ROUND_HALF_EVEN=6,u.bigdecimal.BigDecimal.ROUND_HALF_UP=4,u.bigdecimal.BigDecimal.ROUND_UNNECESSARY=7,u.bigdecimal.BigDecimal.ROUND_UP=0,u.bigdecimal.BigDecimal.__init__=fw(function(n){var t=function(n){var t,e;if(iV(),(e=iP(n))==of)t=new nj(new nX(n[0].toString()));else if("BigInteger number"==e)t=new tR(new nX(n[0].toString()),n[1]);else if("BigInteger number MathContext"==e)t=new ta(new nX(n[0].toString()),n[1],new iR(n[2].toString()));else if("BigInteger MathContext"==e)t=new tn(new nX(n[0].toString()),new iR(n[1].toString()));else if(e==oR)t=new n8(er(n[0].toString()));else if("array number number"==e)t=new e0(er(n[0].toString()),n[1],n[2]);else if("array number number MathContext"==e)t=new tD(er(n[0].toString()),n[1],n[2],new iR(n[3].toString()));else if("array MathContext"==e)t=new tk(er(n[0].toString()),new iR(n[1].toString()));else if(e==oH)t=new eg(n[0]);else if(e==o$)t=new ex(n[0],new iR(n[1].toString()));else if(e==oK)t=new X(n[0].toString());else if("string MathContext"==e)t=new tL(n[0].toString(),new iR(n[1].toString()));else throw new nr("Unknown call signature for obj = new java.math.BigDecimal: "+e);return new nF(t)}(n);return nU(t)}),t.abs_va=fw(function(n){return nU(this.__gwt_instance.s(n))}),t.add_va=fw(function(n){return nU(this.__gwt_instance.t(n))}),t.byteValueExact=fw(function(){return this.__gwt_instance.u()}),t.compareTo=fw(function(n){return this.__gwt_instance.v(n.__gwt_instance)}),t.divide_va=fw(function(n){return nU(this.__gwt_instance.y(n))}),t.divideToIntegralValue_va=fw(function(n){return nU(this.__gwt_instance.x(n))}),t.doubleValue=fw(function(){return this.__gwt_instance.z()}),t.equals=fw(function(n){return this.__gwt_instance.eQ(n)}),t.floatValue=fw(function(){return this.__gwt_instance.A()}),t.hashCode=fw(function(){return this.__gwt_instance.hC()}),t.intValue=fw(function(){return this.__gwt_instance.B()}),t.intValueExact=fw(function(){return this.__gwt_instance.C()}),t.max=fw(function(n){return nU(this.__gwt_instance.F(n.__gwt_instance))}),t.min=fw(function(n){return nU(this.__gwt_instance.G(n.__gwt_instance))}),t.movePointLeft=fw(function(n){return nU(this.__gwt_instance.H(n))}),t.movePointRight=fw(function(n){return nU(this.__gwt_instance.I(n))}),t.multiply_va=fw(function(n){return nU(this.__gwt_instance.J(n))}),t.negate_va=fw(function(n){return nU(this.__gwt_instance.K(n))}),t.plus_va=fw(function(n){return nU(this.__gwt_instance.L(n))}),t.pow_va=fw(function(n){return nU(this.__gwt_instance.M(n))}),t.precision=fw(function(){return this.__gwt_instance.q()}),t.remainder_va=fw(function(n){return nU(this.__gwt_instance.N(n))}),t.round=fw(function(n){return nU(this.__gwt_instance.O(n.__gwt_instance))}),t.scale=fw(function(){return this.__gwt_instance.P()}),t.scaleByPowerOfTen=fw(function(n){return nU(this.__gwt_instance.Q(n))}),t.setScale_va=fw(function(n){return nU(this.__gwt_instance.R(n))}),t.shortValueExact=fw(function(){return this.__gwt_instance.S()}),t.signum=fw(function(){return this.__gwt_instance.r()}),t.stripTrailingZeros=fw(function(){return nU(this.__gwt_instance.T())}),t.subtract_va=fw(function(n){return nU(this.__gwt_instance.U(n))}),t.toBigInteger=fw(function(){return nU(this.__gwt_instance.V())}),t.toBigIntegerExact=fw(function(){return nU(this.__gwt_instance.W())}),t.toEngineeringString=fw(function(){return this.__gwt_instance.X()}),t.toPlainString=fw(function(){return this.__gwt_instance.Y()}),t.toString=fw(function(){return this.__gwt_instance.tS()}),t.ulp=fw(function(){return nU(this.__gwt_instance.Z())}),t.unscaledValue=fw(function(){return nU(this.__gwt_instance.$())}),t.divideAndRemainder_va=fw(function(n){return nP(this.__gwt_instance.w(n))}),t.longValue=fw(function(){return this.__gwt_instance.E()}),t.longValueExact=fw(function(){return this.__gwt_instance.D()}),u.bigdecimal.BigDecimal.valueOf_va=fw(function(n){var t=function(n){var t,e;if(iV(),(e=iP(n))==oH)t=function(n){if(!isFinite(n)||isNaN(n))throw new nd(op);return new X(iZ+n)}(n[0]);else if(e==oH)t=t6(re(n[0]));else if(e==oV)t=eH(re(n[0]),n[1]);else throw new nr("Unknown call signature for bd = java.math.BigDecimal.valueOf: "+e);return new nF(t)}(n);return nU(t)}),u.bigdecimal.BigDecimal.log=fw(function(n){iV(),typeof console!==oW&&console.log&&console.log(n)}),u.bigdecimal.BigDecimal.logObj=fw(function(n){iV(),typeof console!==oW&&console.log&&typeof JSON!==oW&&JSON.stringify&&console.log("object: "+JSON.stringify(n))}),u.bigdecimal.BigDecimal.ONE=fw(function(){var n=(iV(),new nF(uC));return nU(n)}),u.bigdecimal.BigDecimal.TEN=fw(function(){var n=(iV(),new nF(uS));return nU(n)}),u.bigdecimal.BigDecimal.ZERO=fw(function(){var n=(iV(),new nF(uM));return nU(n)}),nx(f$,u.bigdecimal.BigDecimal)}())}function tH(n,t,e){var r;return(r=new I).d=n+t,r.c=4,r.b=e,r}function t$(n,t,e,r,i){var o;return t2(n,t,e,o=function(n,t){var e=Array(t);if(3==n)for(var r=0;r0)for(var i=[null,0,!1][n],r=0;rn)throw new tU(e)}(n.length,t,r),et(n,t,r)}function tq(n,t){return im(),t=n.c.c)throw new J;return t=n.c,r=e=n.b++,i=t.c,(r<0||r>=i)&&tE(r,i),t.b[e]}function tJ(n,t){return!!nY(t,1)&&String(n)==t}function tK(){nr.call(this,"Add not supported on this collection")}function tW(){this.b=[],this.f={},this.d=!1,this.c=null,this.e=0}function tZ(n,t){r4(),this.f=n,this.e=1,this.b=t2(fx,{6:1},-1,[t])}function tX(n,t){var e;return e=n.c,n.c=t,!n.d&&(n.d=!0,++n.e),e}function tY(n,t){var e,r;return e=n.b,r=String.fromCharCode.apply(null,t),e.b+=r,n}function t1(n,t,e,r){var i,o;return null==t&&(t=oF),i=n.b,o=t.substr(e,r-e),i.b+=o,n}function t0(n,t,e,r){var i;return i=t$(fx,{6:1},-1,t,1),rI(i,n,t,e,r),i}function t2(n,t,e,r){return tj(),function(n,t,e){tj();for(var r=0,i=t.length;r0&&0==n.b[--n.e];);0==n.b[n.e++]&&(n.f=0)}function t6(n){return rL(n,o0)&&nm(n,o5)?ud[nE(n)]:new el(n,0)}function t5(n,t){return 0==t||0==n.f?n:t>0?rt(n,t):r5(n,-t)}function t9(n,t){return 0==t||0==n.f?n:t>0?r5(n,t):rt(n,-t)}function t7(n){var t;return 0==n.f?-1:((t=eC(n))<<5)+ed(n.b[t])}function t8(n){var t;return 0!=(t=nE(n))?ed(t):ed(nE(r2(n,32)))+32}function en(n,t){var e;return 0==(e=eT(n,t)).length?(new _).o(t):ty(e,1)}function et(n,t,e){return n=n.slice(t,e),String.fromCharCode.apply(null,n)}function ee(n,t,e,r){var i;return i=t$(fx,{6:1},-1,t+1,1),iv(i,n,t,e,r),i}function er(n){var t,e;return t=t$(f6,{6:1},-1,e=n.length,1),function(n,t,e,r){var i;for(i=0;it.e&&(c=t,t=e,e=c),e.e<63)?(b=t,l=e,(m=(w=b.e)+(_=l.e),y=b.f!=l.f?-1:1,2==m)?(S=iQ(tp(re(b.b[0]),ue),tp(re(l.b[0]),ue)),x=nE(S),0==(M=nE(rV(S,32)))?new tZ(y,x):new tb(y,2,t2(fx,{6:1},-1,[x,M]))):(g=b.b,d=l.b,v=t$(fx,{6:1},-1,m,1),eY(g,w,d,_,v),C=new tb(y,m,v),t3(C),C)):(f=(-2&t.e)<<4,a=t.fb(f),h=e.fb(f),i=ip(t,a.eb(f)),o=ip(e,h.eb(f)),s=n(a,h),r=n(i,o),u=n(ip(a,i),ip(o,h)),u=(u=iE(iE(u,s),r)).eb(f),iE(iE(s=s.eb(f<<1),u),r))}(n,t))}function es(n,t){var e;if(t.f<=0)throw new ni(oa);return(e=rK(n,t)).f<0?iE(e,t):e}function ea(n){var t;t=new n1,n.d&&te(t,new ne(n)),function(n,t){var e=n.f;for(var r in e)if(58==r.charCodeAt(0)){var i=new nO(n,r.substring(1));t.Kb(i)}}(n,t),function(n,t){var e=n.b;for(var r in e){var i=parseInt(r,10);if(r==i)for(var o=e[i],u=0,f=o.length;u0?1:0:(n.d||(n.d=eV(n.g)),n.d).r()}function eM(n){return n.b<54?new th(-n.g,n.f):new tO((n.d||(n.d=eV(n.g)),n.d).cb(),n.f)}function ex(n,t){if(!isFinite(n)||isNaN(n))throw new nd(op);iq(this,n.toPrecision(20)),id(this,t)}function eB(n,t){return isNaN(n)?isNaN(t)?0:1:isNaN(t)?-1:nt?1:0}function eA(n,t){return t<2||t>36||n<0||n>=t?0:n<10?48+n&65535:97+n-10&65535}function eN(n,t){var e,r,i;return t?((e=t[oI])||(e=new(r=t.gC(),i=eh(n.b,r),eo(i))(t),t[oI]=e),e):null}function eI(n){var t,e;return 32==(e=rW(n.h))?32==(t=rW(n.m))?rW(n.l)+32:t+20-10:e-12}function eE(n){return tN(4194303&n,~~n>>22&4194303,n<0?1048575:0)}function eR(){eR=g,ub=tN(4194303,4194303,524287),ul=tN(0,0,524288),ug=re(1),re(2),uw=re(0)}function eO(n,t){iv(n.b,n.b,n.e,t.b,t.e),n.e=n_(nv(n.e,t.e)+1,n.b.length),t3(n),n.c=-2}function eD(n,t){var e;e=~~t>>5,n.e+=e+(rW(n.b[n.e-1])-(31&t)>=0?0:1),rE(n.b,n.b,e,31&t),t3(n),n.c=-2}function ek(n,t){var e,r;e=~~t>>5,n.e>>r:0,t3(n))}function eL(n){var t;return t=n.e>1?t_(r$(re(n.b[1]),32),tp(re(n.b[0]),ue)):tp(re(n.b[0]),ue),iQ(re(n.f),t)}function eU(n,t,e){var r;for(r=e-1;r>=0&&n[r]==t[r];--r);return r<0?0:nm(tp(re(n[r]),ue),tp(re(t[r]),ue))?-1:1}function eP(n,t,e){var r,i,o;for(i=0,r=0;i>>31;0!=r&&(n[e]=r)}function eQ(n,t,e,r){if(iK=t,n)try{fw(iN)()}catch(i){n(t)}else fw(iN)()}function eT(n,t){var e,r,i;for(e=0,r=(i=t&&t.stack?t.stack.split("\n"):[]).length;e>5==n.e-1&&n.b[n.e-1]==1<<(31&t))for(e=0;r&&e=0&&t=0?new el(o0,2147483647):new el(o0,-2147483648)}function eV(n){return(r4(),n<0)?-1!=n?new rl(-1,-n):uE:n<=10?uO[eb(n)]:new rl(1,n)}function eq(n){var t,e,r;return t=~n.l+1&4194303,e=~n.m+(0==t?1:0)&4194303,r=~n.h+(0==t&&0==e?1:0)&1048575,tN(t,e,r)}function eG(n){var t,e,r;t=~n.l+1&4194303,e=~n.m+(0==t?1:0)&4194303,r=~n.h+(0==t&&0==e?1:0)&1048575,n.l=t,n.m=e,n.h=r}function ez(n){var t,e,r;for(r=0,e=t$(fO,{6:1},13,n.length,0),t=n.length;r=0;--r)if(n[r]!=i[r]){e=0!=n[r]&&rk(tp(re(n[r]),ue),tp(re(i[r]),ue));break}}return u=new tb(1,o+1,n),e&&tQ(u,t),t3(u),u}(o,e)}function eZ(n,t){var e;return n===t||!!nY(t,17)&&(e=tG(t,17),n.f==e.f&&n.e==e.e&&function(n,t){var e;for(e=n.e-1;e>=0&&n.b[e]==t[e];--e);return e<0}(n,e.b))}function eX(n){var t,e;return 0==n.f?0:(t=n.e<<5,e=n.b[n.e-1],n.f<0&&eC(n)==n.e-1&&(e=~~(e-1)),t-=rW(e))}function eY(n,t,e,r,i){im(),0!=t&&0!=r&&(1==t?i[r]=rw(i,e,r,n[0]):1==r?i[t]=rw(i,n,t,e[0]):function(n,t,e,r,i){var o,u,f,c;if(nG(n)===nG(t)&&r==i){ig(n,r,e);return}for(f=0;f2147483647))return eb(n);throw new ni("Underflow")}function e4(n,t){if(rJ(),n<0)throw new nu("Digits < 0");if(!t)throw new nc("null RoundingMode");this.b=n,this.c=t}function e3(n){return(r4(),nm(n,o0))?tA(n,o1)?new rb(-1,eq(n)):uE:ny(n,o6)?uO[nE(n)]:new rb(1,n)}function e6(n){var t;return nm(n,o0)&&(n=tN(4194303&~n.l,4194303&~n.m,1048575&~n.h)),64-(0!=(t=nE(r2(n,32)))?rW(t):rW(nE(n))+32)}function e5(n,t){var e,r,i;return e=n.l+t.l,r=n.m+t.m+(~~e>>22),i=n.h+t.h+(~~r>>22),tN(4194303&e,4194303&r,1048575&i)}function e9(n,t){var e,r,i;return e=n.l-t.l,r=n.m-t.m+(~~e>>22),i=n.h-t.h+(~~r>>22),tN(4194303&e,4194303&r,1048575&i)}function e7(n,t){var e;if(e=t-1,n.f>0){for(;!n.gb(e);)--e;return t-1-e}for(;n.gb(e);)--e;return t-1-nv(e,n.bb())}function e8(n,t){var e;return n===t||!!nY(t,16)&&(e=tG(t,16)).f==n.f&&(n.b<54?e.g==n.g:n.d.eQ(e.d))}function rn(n,t,e){var r,i,o,u;for(o=o0,r=t-1;r>=0;--r)u=e5(r$(o,32),tp(re(n[r]),ue)),i=r8(u,e),o=re(nE(r2(i,32)));return nE(o)}function rt(n,t){var e,r,i,o;return e=~~t>>5,t&=31,r=t$(fx,{6:1},-1,i=n.e+e+(0==t?0:1),1),rE(r,n.b,e,t),o=new tb(n.f,i,r),t3(o),o}function re(n){var t,e;return n>-129&&n<128?(t=n+128,null==uf&&(uf=t$(fj,{6:1},2,256,0)),(e=uf[t])||(e=uf[t]=eE(n)),e):eE(n)}function rr(n){var t,e,r;return(r4(),n>5,t=31&n,(r=t$(fx,{6:1},-1,e+1,1))[e]=1<iX&&n[n.length-1]>iX?n:n.replace(/^(\s*)/,iZ).replace(/\s*$/,iZ)}function ru(n){return n-=~~n>>1&1431655765,n=(~~(n=(~~n>>2&858993459)+(858993459&n))>>4)+n&252645135,n+=~~n>>8,63&(n+=~~n>>16)}function rf(n,t,e){if(null!=e&&(n.qI>0&&!n$(e,n.qI)||n.qI<0&&(e.tM==g||nK(e,1))))throw new V;return n[t]=e}function rc(n,t){return n.f>t.f?1:n.ft.e?n.f:n.e=0;--o)u=eW(u,u,r,i),(e.b[~~o>>5]&1<<(31&o))!=0&&(u=eW(u,t,r,i));return u}(f,r,t,e,o):function(n,t,e,r,i){var o,u,f,c,s,a,h;for(s=t$(cc,{6:1},17,8,0),a=n,rf(s,0,t),h=eW(t,t,r,i),u=1;u<=7;++u)rf(s,u,eW(s[u-1],h,r,i));for(u=e.ab()-1;u>=0;--u)if((e.b[~~u>>5]&1<<(31&u))!=0){for(c=1,o=u,f=u-3>0?u-3:0;f<=u-1;++f)(e.b[~~f>>5]&1<<(31&f))!=0&&(f>1],a,r,i),u=o}else a=eW(a,a,r,i);return a}(f,r,t,e,o),eW(u,(r4(),uR),e,o)}function rp(n,t){var e,r,i,o,u;for(e=0,r=n.length;e36)throw new nd("Radix out of range");if(0==n.length)throw new nd("Zero length BigInteger");(function(n,t,e){var r,i,o,u,f,c,s,a,h,b,l,g,w,d;for(s=l=t.length,45==t.charCodeAt(0)?(h=-1,b=1,--l):(h=1,b=0),u=(iO(),uV)[e],o=~~(l/u),0!=(d=l%u)&&++o,c=t$(fx,{6:1},-1,o,1),r=u$[e-2],f=0,g=b+(0==d?u:d),w=b;wr)return 1;if(e=0&&n[i]==t[i];--i);return i<0?0:nm(tp(re(n[i]),ue),tp(re(t[i]),ue))?-1:1}function ry(n,t){var e,r,i;for(r=t$(fx,{6:1},-1,i=n.e,1),n_(eC(n),eC(t)),e=0;e999999999)throw new ni(o_);return e=n.f*t,0==n.b&&-1!=n.g?e$(e):new tR((n.d||(n.d=eV(n.g)),n.d).db(t),e2(e))}function rM(n,t){return t<2||t>36?-1:n>=48&&n<48+(t<10?t:10)?n-48:n>=97&&n=65&&n=0;--n)fl[n]=e,e*=.5;for(n=24,t=1;n>=0;--n)fb[n]=t,t*=.5}function rB(){rB=g,uT=t2(f6,{6:1},-1,[48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122])}function rA(n){var t;return 0!=n.c?n.c:n.b<54?(t=it(n.g),n.c=nE(tp(t,o1)),n.c=33*n.c+nE(tp(r2(t,32),o1)),n.c=17*n.c+eb(n.f),n.c):(n.c=17*n.d.hC()+eb(n.f),n.c)}function rN(n,t,e,r){var i,o,u,f,c;return o=(c=n/t)>0?Math.floor(c):Math.ceil(c),u=n%t,f=eB(n*t,0),0!=u&&(i=eB((u<=0?0-u:u)*2,t<=0?0-t:t),o+=is(1&eb(o),f*(5+i),r)),new th(o,e)}function rI(n,t,e,r,i){var o,u;for(u=0,o=o0;ue;--i)n[i]|=~~t[i-e-1]>>>o,n[i-1]=t[i-e-1]<>5,n.e-=r,!rj(n.b,n.e,n.b,r,31&t)&&i<0){for(e=0;e>19,r=~~t.h>>19,0==e?0!=r||n.h>t.h||n.h==t.h&&n.m>t.m||n.h==t.h&&n.m==t.m&&n.l>t.l:!(0==r||n.h>19,r=~~t.h>>19,0==e?0!=r||n.h>t.h||n.h==t.h&&n.m>t.m||n.h==t.h&&n.m==t.m&&n.l>=t.l:!(0==r||n.h-140737488355328&&n<0x800000000000?0==n?0:((t=n<0)&&(n=-n),e=eb(nH(Math.log(n)/.6931471805599453)),(!t||n!=Math.pow(2,e))&&++e,e):e6(it(n))}function rQ(n,t){var e,r;return(e=n._(),r=t._(),0==e.r())?r:0==r.r()?e:(1==e.e||2==e.e&&e.b[1]>0)&&(1==r.e||2==r.e&&r.b[1]>0)?e3(rU(eL(e),eL(r))):function(n,t){var e,r,i;e=n.bb(),r=t.bb(),rD(n,e),rD(t,r),1==rc(n,t)&&(i=n,n=t,t=i);do{if(1==t.e||2==t.e&&t.b[1]>0){t=e3(rU(eL(n),eL(t)));break}if(t.e>1.2*n.e)0!=(t=rK(t,n)).r()&&rD(t,t.bb());else do tQ(t,n),rD(t,t.bb());while(rc(t,n)>=0)i=t,t=n,n=i}while(0!=i.f)return t.eb(e=r?eD(f,i):(rD(c,r-e0&&eD(f,i-r+e)),e+=i),0!=(i=e7(h,u))&&(eD(h,i),r>=e?eD(c,i):(rD(f,e-r0&&eD(c,i-e+r)),r+=i),s.r()==h.r()?e<=r?(rX(s,h),rX(f,c)):(rX(h,s),rX(c,f)):e<=r?(rZ(s,h),rZ(f,c)):(rZ(h,s),rZ(c,f)),0==h.r()||0==s.r())throw new ni(os);return ej(h,r)&&(f=c,h.r()!=s.r()&&(s=s.cb())),s.gb(u)&&(f=0>f.r()?f.cb():ip(t,f)),0>f.r()&&(f=iE(f,t)),f}(n,t);for(o=32*t.e,h=ev(t),b=ev(n),u=nv(b.e,h.e),c=new tb(1,1,t$(fx,{6:1},-1,u+1,1)),(s=new tb(1,1,t$(fx,{6:1},-1,u+1,1))).b[0]=1,e=0,(r=h.bb())>(i=b.bb())?(rD(h,r),rD(b,i),eD(c,i),e+=r-i):(rD(h,r),rD(b,i),eD(s,r),e+=i-r),c.f=1;b.r()>0;){for(;rc(h,b)>0;)tQ(h,b),a=h.bb(),rD(h,a),eO(c,s),eD(s,a),e+=a;for(;0>=rc(h,b)&&(tQ(b,h),0!=b.r());)a=b.bb(),rD(b,a),eO(s,c),eD(c,a),e+=a}if(!(1==h.e&&1==h.b[0]))throw new ni(os);return rc(c,t)>=0&&tQ(c,t),c=ip(t,c),f=rg(t),e>o&&(c=eW(c,(r4(),uR),t,f),e-=o),c=eW(c,rr(o-e),t,f)}(es(n._(),t),t)).f)throw new ni(os);return n.f<0?ip(t,e):e}function rj(n,t,e,r,i){var o,u,f;for(u=0,o=!0;u>>i|e[u+r+1]<>>i,++u}return o}function rF(n,t){var e;return(e=n.f+t.f,0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)?e$(e):n.b+t.b<54?new th(n.g*t.g,e2(e)):new tR(ec((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),e2(e))}function rH(n,t){var e;if(t<0)throw new ni("Negative exponent");if(0==t)return uR;if(1==t||n.eQ(uR)||n.eQ(uk))return n;if(!n.gb(0)){for(e=1;!n.gb(e);)++e;return ec(rr(e*t),n.fb(e).db(t))}return function(n,t){var e,r;for(im(),r4(),r=uR,e=n;t>1;t>>=1)(1&t)!=0&&(r=ec(r,e)),e=1==e.e?ec(e,e):new ri(ig(e.b,e.e,t$(fx,{6:1},-1,e.e<<1,1)));return ec(r,e)}(n,t)}function r$(n,t){var e,r,i;return(t&=63)<22?(e=n.l<>22-t,i=n.h<>22-t):t<44?(e=0,r=n.l<>44-t):(e=0,r=0,i=n.l<>>t,i=~~n.m>>t|e<<22-t,r=~~n.l>>t|n.m<<22-t):t<44?(o=0,i=~~e>>>t-22,r=~~n.m>>t-22|n.h<<44-t):(o=0,i=0,r=~~e>>>t-44),tN(4194303&r,4194303&i,1048575&o)}function rq(n){switch(ik(),n){case 2:return u6;case 1:return u5;case 3:return u9;case 5:return u7;case 6:return u8;case 4:return fn;case 7:return ft;case 0:return fe;default:throw new nu("Invalid rounding mode")}}function rG(n,t){var e,r,i;if(0==t)return(1&n.b[0])!=0;if(t<0)throw new ni(om);if((i=~~t>>5)>=n.e)return n.f<0;if(e=n.b[i],t=1<<(31&t),n.f<0){if(r=eC(n),i0||(t=1,e=1,n.b<54?(n.b>=1&&(e=n.g),t+=Math.log(e<=0?0-e:e)*Math.LOG10E):(t+=(n.b-1)*.3010299956639812,0!=i_((n.d||(n.d=eV(n.g)),n.d),iA(t)).r()&&++t),n.e=eb(t)),n.e}function rJ(){rJ=g,uq=new e4(34,(ik(),u8)),uG=new e4(7,u8),uz=new e4(16,u8),uJ=new e4(0,fn),uK=t2(f6,{6:1},-1,[112,114,101,99,105,115,105,111,110,61]),uW=t2(f6,{6:1},-1,[114,111,117,110,100,105,110,103,77,111,100,101,61])}function rK(n,t){var e,r,i,o;if(0==t.f)throw new ni(oc);return((o=n.e)!=(e=t.e)?o>e?1:-1:eU(n.b,t.b,o))==-1?n:(r=t$(fx,{6:1},-1,e,1),1==e?r[0]=rn(n.b,o,t.b[0]):r=iH(null,o-e+1,n.b,o,t.b,e),i=new tb(n.f,e,r),t3(i),i)}function rW(n){var t,e,r;return n<0?0:0==n?32:(e=16-(t=~~(r=-(~~n>>16))>>16&16),e+=t=~~(r=(n=~~n>>t)-256)>>16&8,n<<=t,e+=t=~~(r=n-4096)>>16&4,n<<=t,e+=t=~~(r=n-16384)>>16&2,n<<=t,e+2-(t=(r=~~n>>14)&~(~~r>>1)))}function rZ(n,t){if(0==n.f)iD(t.b,0,n.b,0,t.e);else{if(0==t.f)return;n.f==t.f?iv(n.b,n.b,n.e,t.b,t.e):rm(n.b,t.b,n.e,t.e)>0?rI(n.b,n.b,n.e,t.b,t.e):(io(n.b,n.b,n.e,t.b,t.e),n.f=-n.f)}n.e=nv(n.e,t.e)+1,t3(n),n.c=-2}function rX(n,t){var e;e=rc(n,t),0==n.f?(iD(t.b,0,n.b,0,t.e),n.f=-t.f):n.f!=t.f?(iv(n.b,n.b,n.e,t.b,t.e),n.f=e):rm(n.b,t.b,n.e,t.e)>0?rI(n.b,n.b,n.e,t.b,t.e):(io(n.b,n.b,n.e,t.b,t.e),n.f=-n.f),n.e=nv(n.e,t.e)+1,t3(n),n.c=-2}function rY(n,t,e){var r,i,o,u,f,c,s,a,h,b;if(e.f<=0)throw new ni(oa);return(r=n,(1==e.e&&1==e.b[0])|t.f>0&0==r.f)?uk:0==r.f&&0==t.f?uR:(t.f<0&&(r=rT(n,e),t=t.cb()),i=e.gb(0)?rd(r._(),t,e):(o=r._(),u=t,f=e.bb(),a=rd(o,u,c=e.fb(f)),h=function(n,t,e){var r,i,o,u,f;for(r4(),u=uR,i=ev(t),r=ev(n),n.gb(0)&&ek(i,e-1),ek(r,e),o=i.ab()-1;o>=0;--o)f=ev(u),ek(f,e),u=ec(u,f),(i.b[~~o>>5]&1<<(31&o))!=0&&(u=ec(u,r),ek(u,e));return ek(u,e),u}(o,u,f),s=function(n,t){var e,r,i,o;for(e=1,(r=new ri(t$(fx,{6:1},-1,1<>5]&1<<(31&o))!=0&&(r.b[~~e>>5]|=1<<(31&e));return r}(c,f),b=ec(ip(h,a),s),ek(b,f),b.f<0&&(b=iE(b,rr(f))),iE(a,ec(c,b))),r.f<0&&t.gb(0)&&(i=es(ec(ip(e,uR),i),e)),i)}function r1(n,t){var e,r,i,o,u,f,c;if(i=eC(n),(r=eC(t))>=n.e)return r4(),uk;for(u=t$(fx,{6:1},-1,f=n.e,1),(e=i>r?i:r)==r&&(u[e]=-t.b[e]&n.b[e],++e),o=n_(t.e,n.e);e=t.e)for(;e0?t:0):t>=0?n.b<54?new th(n.g,e2(t)):new tR((n.d||(n.d=eV(n.g)),n.d),e2(t)):-t>t,o=~~n.m>>t|e<<22-t,i=~~n.l>>t|n.m<<22-t):t<44?(u=r?1048575:0,o=~~e>>t-22,i=~~n.m>>t-22|e<<44-t):(u=r?1048575:0,o=r?4194303:0,i=~~e>>t-44),tN(4194303&i,4194303&o,1048575&u)}function r4(){var n;for(n=0,r4=g,uR=new tZ(1,1),uD=new tZ(1,10),uk=new tZ(0,0),uE=new tZ(-1,1),uO=t2(cc,{6:1},17,[uk,uR,new tZ(1,2),new tZ(1,3),new tZ(1,4),new tZ(1,5),new tZ(1,6),new tZ(1,7),new tZ(1,8),new tZ(1,9),uD]),uL=t$(cc,{6:1},17,32,0);n=t.e)return t;if(r>=n.e)return n;if(u=n_(n.e,t.e),o=t$(fx,{6:1},-1,u,1),r==i)o[i]=-(-n.b[i]|-t.b[i]),e=i;else{for(e=r;e>5,t&=31,r>=n.e)return n.f<0?(r4(),uE):(r4(),uk);if(i=t$(fx,{6:1},-1,(o=n.e-r)+1,1),rj(i,o,n.b,r,t),n.f<0){for(e=0;e0&&n.b[e]<<32-t!=0){for(e=0;e0?r=0)return n;return 0!=e?e>0?rR(n,t,e):rR(t,n,-e):nv(n.b,t.b)+1<54?new th(n.g+t.g,n.f):new tO(iE((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),n.f)}function r8(n,t){var e,r,i,o,u;return r=tp(re(t),ue),rL(n,o0)?(o=iU(n,r,!1),u=tt(n,r)):(e=rV(n,1),i=re(~~t>>>1),o=iU(e,i,!1),u=tt(e,i),u=e5(r$(u,1),tp(n,o2)),(1&t)!=0&&(rk(o,u)?ny(e9(o,u),r)?(u=e5(u,e9(r,o)),o=e9(o,o2)):(u=e5(u,e9(r$(r,1),o)),o=e9(o,o4)):u=e9(u,o))),t_(r$(u,32),tp(o,ue))}function it(n){var t,e,r,i,o;return isNaN(n)?(eR(),uw):n<-0x8000000000000000?(eR(),ul):n>=0x7fffffffffffffff?(eR(),ub):(i=!1,n<0&&(i=!0,n=-n),r=0,n>=17592186044416&&(r=eb(n/17592186044416),n-=17592186044416*r),e=0,n>=4194304&&(e=eb(n/4194304),n-=4194304*e),t=eb(n),o=tN(t,e,r),i&&eG(o),o)}function ie(n){var t,e,r,i,o;if(0==n.l&&0==n.m&&0==n.h)return i4;if(524288==n.h&&0==n.m&&0==n.l)return"-9223372036854775808";if(~~n.h>>19!=0)return i0+ie(eq(n));for(e=n,r=iZ;!(0==e.l&&0==e.m&&0==e.h);){if(i=re(1e9),e=iU(e,i,!0),t=iZ+nE(uu),!(0==e.l&&0==e.m&&0==e.h))for(o=9-t.length;o>0;--o)t=i4+t;r=t+r}return r}function ir(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d,_,v,m,y,C,S,M,x;if(0==(i=t.f))throw new ni(oc);return(r=t.e,e=t.b,1==r)?(l=e[0],(S=n.b,M=n.e,x=n.f,1==M)?(g=tp(re(S[0]),ue),w=tp(re(l),ue),d=iU(g,w,!1),v=tt(g,w),x!=i&&(d=eq(d)),x<0&&(v=eq(v)),t2(cc,{6:1},17,[e3(d),e3(v)])):(_=t$(fx,{6:1},-1,M,1),m=t2(fx,{6:1},-1,[ib(_,S,M,l)]),y=new tb(x==i?1:-1,M,_),C=new tb(x,1,m),t3(y),t3(C),t2(cc,{6:1},17,[y,C]))):(a=n.b,((h=n.e)!=r?h>r?1:-1:eU(a,e,h))<0)?t2(cc,{6:1},17,[uk,n]):(b=n.f,o=t$(fx,{6:1},-1,u=h-r+1,1),f=iH(o,u,a,h,e,r),c=new tb(b==i?1:-1,u,o),s=new tb(b,r,f),t3(c),t3(s),t2(cc,{6:1},17,[c,s]))}function ii(n){var t;if(0==n.f||0==n.b&&-1!=n.g)return n.d||(n.d=eV(n.g)),n.d;if(n.f<0)return ec((n.d||(n.d=eV(n.g)),n.d),iA(-n.f));if(n.f>(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)||n.f>(n.d||(n.d=eV(n.g)),n.d).bb()||0!=(t=ir((n.d||(n.d=eV(n.g)),n.d),iA(n.f)))[1].r())throw new ni(oy);return t[0]}function io(n,t,e,r,i){var o,u;if(o=o0,e36)throw new nd("radix "+t+" out of range");for(e=(r=n.length)>0&&45==n.charCodeAt(0)?1:0;e2147483647)throw new nd(od+n+iY);return i}function ic(n){var t,e;if(0==n.f)return r4(),uE;if(eZ(n,(r4(),uE)))return uk;if(e=t$(fx,{6:1},-1,n.e+1,1),n.f>0){if(-1!=n.b[n.e-1])for(t=0;-1==n.b[t];++t);else{for(t=0;t0?0==t?0:t<0?-1:1:0;break;case 3:r=(0==t?0:t<0?-1:1)<0?0==t?0:t<0?-1:1:0;break;case 4:(t<0?-t:t)>=5&&(r=0==t?0:t<0?-1:1);break;case 5:(t<0?-t:t)>5&&(r=0==t?0:t<0?-1:1);break;case 6:(t<0?-t:t)+n>5&&(r=0==t?0:t<0?-1:1)}return r}function ia(n,t){var e,r,i,o,u,f,c,s,a;if(s=0==n.f?1:n.f,u=~~t>>5,e=31&t,c=nv(u+1,n.e)+1,f=t$(fx,{6:1},-1,c,1),r=1<=n.e)f[u]=r;else if(i=eC(n),u>i)f[u]^=r;else if(u=0||0==s.f||1==s.e&&1==s.b[0])if(!(1==(a=rY(s,f,n)).e&&1==a.b[0]||a.eQ(u))){for(i=1;i=0;--f)a=t_(r$(s,32),tp(re(t[f]),ue)),rL(a,o0)?(c=iU(a,o,!1),s=tt(a,o)):(i=rV(a,1),u=re(~~r>>>1),c=iU(i,u,!1),s=tt(i,u),s=e5(r$(s,1),tp(a,o2)),(1&r)!=0&&(rk(c,s)?ny(e9(c,s),o)?(s=e5(s,e9(o,c)),c=e9(c,o2)):(s=e5(s,e9(r$(o,1),c)),c=e9(c,o4)):s=e9(s,c))),n[f]=nE(tp(c,ue));return nE(s)}function il(n,t){var e,r,i,o,u,f,c;if(f=nv(n.e,t.e),u=t$(fx,{6:1},-1,f,1),i=eC(n),e=r=eC(t),i==r)u[r]=-n.b[r]^-t.b[r];else{for(u[r]=-t.b[r],o=n_(t.e,i),++e;et.g?1:0:(r=n.f-t.f,(e=(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)-(t.e>0?t.e:nH((t.b-1)*.3010299956639812)+1))>r+1)?i:e0&&(u=ec(u,iA(r))),rc(o,u))}function id(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d;if(o=t.b,!((n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)-o<0||0==o||(r=n.q()-o)<=0)){if(n.b<54){c=n,s=t,a=r,w=it(um[a]),g=e9(it(c.f),re(a)),d=it(c.g),l=iU(d,w,!1),b=tt(d,w),tA(b,o0)&&(h=tB(e9(r$(nm(b,o0)?eq(b):b,1),w),o0)?0:nm(e9(r$(nm(b,o0)?eq(b):b,1),w),o0)?-1:1,l=e5(l,re(is(1&nE(l),(tB(b,o0)?0:nm(b,o0)?-1:1)*(5+h),s.c))),tf(rh(nm(l,o0)?eq(l):l))>=s.b&&(l=nV(l,o6),g=e9(g,o2))),c.f=e2(rh(g)),c.e=s.b,c.g=rh(l),c.b=e6(l),c.d=null;return}f=iA(r),i=ir((n.d||(n.d=eV(n.g)),n.d),f),u=n.f-r,0!=i[1].r()&&(e=rc(eK(i[1]._()),f),0!=(e=is(i[0].gb(0)?1:0,i[1].r()*(5+e),t.c))&&rf(i,0,iE(i[0],e3(re(e)))),new nj(i[0]).q()>o&&(rf(i,0,i_(i[0],(r4(),uD))),--u)),n.f=e2(u),n.e=o,tT(n,i[0])}}function ip(n,t){var e,r,i,o,u,f,c,s,a,h;if(u=n.f,0==(c=t.f))return n;if(0==u)return t.cb();if((o=n.e)+(f=t.e)==2)return e=tp(re(n.b[0]),ue),r=tp(re(t.b[0]),ue),u<0&&(e=eq(e)),c<0&&(r=eq(r)),e3(e9(e,r));if(-1==(i=o!=f?o>f?1:-1:eU(n.b,t.b,o)))h=-c,a=u==c?t0(t.b,f,n.b,o):ee(t.b,f,n.b,o);else if(h=u,u==c){if(0==i)return r4(),uk;a=t0(n.b,o,t.b,f)}else a=ee(n.b,o,t.b,f);return s=new tb(h,a.length,a),t3(s),s}function i_(n,t){var e,r,i,o,u,f,c,s,a;if(0==t.f)throw new ni(oc);return(i=t.f,1==t.e&&1==t.b[0])?t.f>0?n:n.cb():(s=n.f,(c=n.e)+(r=t.e)==2)?(a=nV(tp(re(n.b[0]),ue),tp(re(t.b[0]),ue)),s!=i&&(a=eq(a)),e3(a)):0==(e=c!=r?c>r?1:-1:eU(n.b,t.b,c))?s==i?uR:uE:-1==e?uk:(o=t$(fx,{6:1},-1,u=c-r+1,1),1==r?ib(o,n.b,c,t.b[0]):iH(o,u,n.b,c,t.b,r),f=new tb(s==i?1:-1,u,o),t3(f),f)}function iv(n,t,e,r,i){var o,u;if(o=e5(tp(re(t[0]),ue),tp(re(r[0]),ue)),n[0]=nE(o),o=r2(o,32),e>=i){for(u=1;u0){if(i0?u=tq(u,eb(i)):i<0&&(o=tq(o,eb(-i))),iS(o,u,e,r)}function iC(n,t){var e,r,i,o,u,f,c;if(r=eC(t),(i=eC(n))>=t.e)return t;if(u=t$(fx,{6:1},-1,f=t.e,1),rt.ab()?(c=eL(s),o=eL(t),i=tB(e9(r$(nm(c,o0)?eq(c):c,1),nm(o,o0)?eq(o):o),o0)?0:nm(e9(r$(nm(c,o0)?eq(c):c,1),nm(o,o0)?eq(o):o),o0)?-1:1,i=is(f.gb(0)?1:0,a*(5+i),r)):(i=rc(eK(s._()),t._()),i=is(f.gb(0)?1:0,a*(5+i),r)),0!=i){if(54>f.ab())return eH(e5(eL(f),re(i)),e);f=iE(f,e3(re(i)))}return new tR(f,e)}function iM(n){var t,e,r,i,o,u;return null!=n.i?n.i:n.b<32?(n.i=function(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d,_,v,m;if(iO(),(u=nm(n,o0))&&(n=eq(n)),tB(n,o0))switch(t){case 0:return i4;case 1:return i6;case 2:return i5;case 3:return i9;case 4:return i7;case 5:return i8;case 6:return on;default:return s=new W,t<0?s.b.b+=oe:s.b.b+=ot,b=s.b,l=-2147483648==t?"2147483648":iZ+-t,b.b+=l,s.b.b}c=t$(f6,{6:1},-1,19,1),e=18,h=n;do f=h,h=nV(h,o6),c[--e]=65535&nE(e5(o7,e9(f,iQ(h,o6))));while(tA(h,o0))if(r=e9(e9(e9(o9,re(e)),re(t)),o2),0==t)return u&&(c[--e]=45),tV(c,e,18-e);if(t>0&&rL(r,oY)){if(rL(r,o0)){for(o=17,i=e+nE(r);o>=i;--o)c[o+1]=c[o];return c[++i]=46,u&&(c[--e]=45),tV(c,e,18-e+1)}for(o=2;nm(re(o),e5(eq(r),o2));++o)c[--e]=48;return c[--e]=46,c[--e]=48,u&&(c[--e]=45),tV(c,e,18-e)}return(a=e+1,s=new Z,u&&(s.b.b+=i0),18-a>=1)?(tP(s,c[e]),s.b.b+=i2,g=s.b,w=tV(c,e+1,18-e-1),g.b+=w):(d=s.b,_=tV(c,e,18-e),d.b+=_),s.b.b+=ow,rk(r,o0)&&(s.b.b+=i1),v=s.b,m=iZ+ie(r),v.b+=m,s.b.b}(it(n.g),eb(n.f)),n.i):(i=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f)?i:(t=0>(n.d||(n.d=eV(n.g)),n.d).r()?2:1,e=i.length,r=-n.f+e-t,u=(o=new W).b,u.b+=i,n.f>0&&r>=-6?r>=0?ti(o,e-eb(n.f),i2):(ts(o.b,t-1,t-1,i3),ti(o,t+1,tV(up,0,-eb(r)-1))):(e-t>=1&&(ts(o.b,t,t,i2),++e),ts(o.b,e,e,ow),r>0&&ti(o,++e,i1),ti(o,++e,iZ+ie(it(r)))),n.i=o.b.b,n.i)}function ix(n,t){var e,r,i,o,u,f;if(i=eC(n),o=eC(t),i>=t.e)return n;if(r=o>i?o:i,0==(e=o>i?-t.b[r]&~n.b[r]:o0){i[o]=u;break}i[o]=u.substring(0,c.index),u=u.substring(c.index+c[0].length,u.length),r.lastIndex=0,f==u&&(i[o]=u.substring(0,1),u=u.substring(1)),f=u,o++}if(0==e&&n.length>0){for(var s=i.length;s>0&&i[s-1]==iZ;)--s;s1e6)throw new ni("power of ten too big");if(n<=2147483647)return uZ[1].db(t).eb(t);for(i=r=uZ[1].db(2147483647),e=it(n-2147483647),t=eb(n%2147483647);rk(e,ut);)i=ec(i,r),e=e9(e,ut);for(i=(i=ec(i,uZ[1].db(t))).eb(2147483647),e=it(n-2147483647);rk(e,ut);)i=i.eb(2147483647),e=e9(e,ut);return i.eb(t)}function iN(){var n,t,i;c&&rO("com.iriscouch.gwtapp.client.BigDecimalApp"),n4(new K),n6(new j),n3(new F),tF(new H),c&&rO("com.google.gwt.user.client.UserAgentAsserter"),t=r.userAgent.toLowerCase(),i=function(n){return 1e3*parseInt(n[1])+parseInt(n[2])},n=-1!=t.indexOf(oG)?oG:-1!=t.indexOf("webkit")||function(){if(-1!=t.indexOf("chromeframe"))return!0;if(typeof e.ActiveXObject!=oW)try{var n=new ActiveXObject("ChromeTab.ChromeFrame");if(n)return n.registerBhoIfNeeded(),!0}catch(r){}return!1}()?oJ:-1!=t.indexOf(oj)&&f.documentMode>=9?"ie9":-1!=t.indexOf(oj)&&f.documentMode>=8?"ie8":!function(){var n=/msie ([0-9]+)\.([0-9]+)/.exec(t);if(n&&3==n.length)return i(n)>=6e3}()?-1!=t.indexOf("gecko")?"gecko1_8":"unknown":"ie6",tJ(oJ,n)||u.alert("ERROR: Possible problem with your *.gwt.xml module file.\nThe compile time user.agent value (safari) does not match the runtime user.agent value ("+n+"). Expect more errors.\n"),c&&rO("com.google.gwt.user.client.DocumentModeAsserter"),function(){var n,t,e;for(e=0,t=f.compatMode,n=t2(fQ,{6:1},1,[ob]);e>5,this.b=t$(fx,{6:1},-1,this.e,1);c=2147483648&&(r-=4294967296),r));this.b[this.e-1]>>>=31&-n,t3(this)}}function iE(n,t){var e,r,i,o,u,f,c,s,a,h,b,l;if(u=n.f,c=t.f,0==u)return t;if(0==c)return n;if((o=n.e)+(f=t.e)==2)return(e=tp(re(n.b[0]),ue),r=tp(re(t.b[0]),ue),u==c)?(s=e5(e,r),l=nE(s),0==(b=nE(rV(s,32)))?new tZ(u,l):new tb(u,2,t2(fx,{6:1},-1,[l,b]))):e3(u<0?e9(r,e):e9(e,r));if(u==c)h=u,a=o>=f?ee(n.b,o,t.b,f):ee(t.b,f,n.b,o);else{if(0==(i=o!=f?o>f?1:-1:eU(n.b,t.b,o)))return r4(),uk;1==i?(h=u,a=t0(n.b,o,t.b,f)):(h=c,a=t0(t.b,f,n.b,o))}return s=new tb(h,a.length,a),t3(s),s}function iR(n){var t,e,r,i;if(rJ(),null==n)throw new nc("null string");if((t=er(n)).length<27||t.length>45)throw new nu(oO);for(r=0;rfs.length)throw new q;if(o=null,i=null,67==r[0]?(i=u6,o=fr):68==r[0]?(i=u5,o=fi):70==r[0]?(i=u9,o=fo):72==r[0]?e>6&&(68==r[5]?(i=u7,o=fu):69==r[5]?(i=u8,o=ff):85==r[5]&&(i=fn,o=fc)):85==r[0]&&(80==r[1]?(i=fe,o=fa):78==r[1]&&(i=ft,o=fs)),i&&e==o.length){for(t=1;tl||r+i>s)throw new G;if(((1&h.c)==0||(4&h.c)!=0)&&b!=c){if(a=tG(n,11),o=tG(e,11),nG(n)===nG(e)&&tr;)rf(o,f,a[--t]);else for(f=r+i;ra.r()&&(s=s.cb()),c=e2(e+(o>u?o:u)),s=(i=o-u)>0?(im(),i>19!=0&&(t=eq(t),c=!0),u=((b=(a=t).l)&b-1)!=0||((l=a.m)&l-1)!=0||((h=a.h)&h-1)!=0||0==h&&0==l&&0==b?-1:0==h&&0==l&&0!=b?ed(b):0==h&&0!=l&&0==b?ed(l)+22:0!=h&&0==l&&0==b?ed(h)+44:-1,o=!1,i=!1,r=!1,524288==n.h&&0==n.m&&0==n.l){if(i=!0,o=!0,-1!=u)return f=r2(n,u),c&&eG(f),e&&(uu=tN(0,0,0)),f;n=nq((eR(),ub)),r=!0,c=!c}else~~n.h>>19!=0&&(o=!0,n=eq(n),r=!0,c=!c);return -1!=u?(g=n,w=c,d=o,_=r2(g,u),w&&eG(_),e&&(v=g,u<=22?(m=v.l&(1<=0&&(!(!((w=(b=n).h-u.h)<0)&&(l=b.l-u.l,!((w+=~~(g=b.m-u.m+(~~l>>22))>>22)<0)&&(b.l=4194303&l,b.m=4194303&g,b.h=1048575&w,1)))||(c<22?f.l|=1<>>1,u.m=~~a>>>1|(1&h)<<21,u.l=~~s>>>1|(1&a)<<21,--c;return e&&eG(f),o&&(r?(uu=eq(n),i&&(uu=e9(uu,(eR(),ug)))):uu=tN(n.l,n.m,n.h)),f}(r?n:tN(n.l,n.m,n.h),t,c,o,i,e):(e&&(uu=o?eq(n):tN(n.l,n.m,n.h)),tN(0,0,0))}function iP(n){var t=[];for(var e in n){var r=typeof n[e];r!=oq?t[t.length]=r:n[e]instanceof Array?t[t.length]=oR:u&&u.bigdecimal&&u.bigdecimal.BigInteger&&n[e]instanceof u.bigdecimal.BigInteger?t[t.length]=of:u&&u.bigdecimal&&u.bigdecimal.BigDecimal&&n[e]instanceof u.bigdecimal.BigDecimal?t[t.length]=oi:u&&u.bigdecimal&&u.bigdecimal.RoundingMode&&n[e]instanceof u.bigdecimal.RoundingMode?t[t.length]=oC:u&&u.bigdecimal&&u.bigdecimal.MathContext&&n[e]instanceof u.bigdecimal.MathContext?t[t.length]=ov:t[t.length]=oq}return t.join(iX)}function iQ(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d,_,v,m,y,C,S,M,x,B,A,N,I;return e=8191&n.l,r=~~n.l>>13|(15&n.m)<<9,i=~~n.m>>4&8191,o=~~n.m>>17|(255&n.h)<<5,u=~~(1048320&n.h)>>8,f=8191&t.l,c=~~t.l>>13|(15&t.m)<<9,s=~~t.m>>4&8191,a=~~t.m>>17|(255&t.h)<<5,h=~~(1048320&t.h)>>8,x=e*f,B=r*f,A=i*f,N=o*f,I=u*f,0!=c&&(B+=e*c,A+=r*c,N+=i*c,I+=o*c),0!=s&&(A+=e*s,N+=r*s,I+=i*s),0!=a&&(N+=e*a,I+=r*a),0!=h&&(I+=e*h),b=(l=4194303&x)+(g=(511&B)<<13),w=(d=~~x>>22)+(_=~~B>>9)+(v=(262143&A)<<4)+(m=(31&N)<<17),y=(C=~~A>>18)+(S=~~N>>5)+(M=(4095&I)<<8),w+=~~b>>22,b&=4194303,y+=~~w>>22,tN(b,w&=4194303,y&=1048575)}function iT(n,t,e){var r,i,o,u,f,c,s,a;if(a=rh(e5(re(e.b),o4))+(t.e>0?t.e:nH((t.b-1)*.3010299956639812)+1)-(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1),c=i=n.f-t.f,o=1,f=uA.length-1,s=t2(cc,{6:1},17,[(n.d||(n.d=eV(n.g)),n.d)]),0==e.b||0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)return iL(n,t);if(a>0&&(rf(s,0,ec((n.d||(n.d=eV(n.g)),n.d),iA(a))),c+=a),u=(s=ir(s[0],(t.d||(t.d=eV(t.g)),t.d)))[0],0!=s[1].r())r=rc(eK(s[1]),(t.d||(t.d=eV(t.g)),t.d)),u=iE(ec(u,(r4(),uD)),e3(re(s[0].r()*(5+r)))),++c;else for(;!u.gb(0);)if(0==(s=ir(u,uA[o]))[1].r()&&c-o>=i)c-=o,o=0)return n;return 0==e?nv(n.b,t.b)+1<54?new th(n.g-t.g,n.f):new tO(ip((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),n.f):e>0?e0?t.e:nH((t.b-1)*.3010299956639812)+1)+o>(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)+1||0==n.b&&-1!=n.g)r4(),r=uk;else if(0==o)r=i_((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d));else if(o>0)u=iA(o),r=i_((n.d||(n.d=eV(n.g)),n.d),ec((t.d||(t.d=eV(t.g)),t.d),u)),r=ec(r,u);else{for(u=iA(-o),r=i_(ec((n.d||(n.d=eV(n.g)),n.d),u),(t.d||(t.d=eV(t.g)),t.d));!r.gb(0);)if(0==(f=ir(r,uA[e]))[1].r()&&c-e>=o)c-=e,e=0;){if(w[h]==c)s=-1;else if(_=e5(r$(tp(re(w[h]),ue),32),tp(re(w[h-1]),ue)),y=r8(_,c),s=nE(y),m=nE(r2(y,32)),0!=s){v=!1,++s;do{if(--s,v)break;l=iQ(tp(re(s),ue),tp(re(d[o-2]),ue)),C=e5(r$(re(m),32),tp(re(w[h-2]),ue)),g=e5(tp(re(m),ue),tp(re(c),ue)),32>rW(nE(rV(g,32)))?v=!0:m=nE(g)}while(rk(tv(l,oZ),tv(C,oZ)))}if(0!=s&&0!=function(n,t,e,r,i){var o,u,f;for(f=0,o=o0,u=o0;f0)rf(b,0,i_((n.d||(n.d=eV(n.g)),n.d),ec((t.d||(t.d=eV(t.g)),t.d),iA(o)))),h=o<(a-l+1>0?a-l+1:0)?o:a-l+1>0?a-l+1:0,rf(b,0,ec(b[0],iA(h)));else if(u=-o<(a-i>0?a-i:0)?-o:a-i>0?a-i:0,b=ir(ec((n.d||(n.d=eV(n.g)),n.d),iA(u)),(t.d||(t.d=eV(t.g)),t.d)),h+=u,u=-h,0!=b[1].r()&&u>0&&(0==(r=new nj(b[1]).q()+u-t.q())&&(rf(b,1,i_(ec(b[1],iA(u)),(t.d||(t.d=eV(t.g)),t.d))),r=np(b[1].r())),r>0))throw new ni(og);if(0==b[0].r())return e$(o);for(w=b[0],g=(c=new nj(b[0])).q(),f=1;!w.gb(0);)if(0==(b=ir(w,uA[f]))[1].r()&&(g-f>=a||h-f>=o))g-=f,h-=f,fa)throw new ni(og);return c.f=e2(h),tT(c,w),c}function iz(){var n;for(n=0,iz=g,u0=t2(fx,{6:1},-1,[0,0,1854,1233,927,747,627,543,480,431,393,361,335,314,295,279,265,253,242,232,223,216,181,169,158,150,145,140,136,132,127,123,119,114,110,105,101,96,92,87,83,78,73,69,64,59,54,49,44,38,32,26,1]),u4=t2(fx,{6:1},-1,[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021]),u2=t$(cc,{6:1},17,u4.length,0);n=0;--c)w=function(n){var t,e,r;return rL(n,o0)?(e=nV(n,un),r=tt(n,un)):(t=rV(n,1),e=nV(t,o8),r=tt(t,o8),r=e5(r$(r,1),tp(n,o2))),t_(r$(r,32),tp(e,ue))}(e5(r$(y,32),tp(re(M[c]),ue))),M[c]=nE(w),y=re(nE(r2(w,32)));d=nE(y),g=e;do v[--e]=48+d%10&65535;while(0!=(d=~~(d/10))&&0!=e)for(f=0,r=9-g+e;f0;++f)v[--e]=48;for(a=x-1;0==M[a];--a)if(0==a)break n;x=a+1}for(;48==v[e];)++e}if(h=C<0,o=_-e-t-1,0==t)return h&&(v[--e]=45),tV(v,e,_-e);if(t>0&&o>=-6){if(o>=0){for(s=e+o,a=_-1;a>=s;--a)v[a+1]=v[a];return v[++s]=46,h&&(v[--e]=45),tV(v,e,_-e+1)}for(a=2;a<-o+1;++a)v[--e]=48;return v[--e]=46,v[--e]=48,h&&(v[--e]=45),tV(v,e,_-e)}return(S=e+1,m=new Z,h&&(m.b.b+=i0),_-S>=1)?(tP(m,v[e]),m.b.b+=i2,I=m.b,E=tV(v,e+1,_-e-1),I.b+=E):(R=m.b,O=tV(v,e,_-e),R.b+=O),m.b.b+=ow,o>0&&(m.b.b+=i1),D=m.b,k=iZ+o,D.b+=k,m.b.b}c&&c({moduleName:"gwtapp",sessionId:s,subSystem:"startup",evtGroup:"moduleStartup",millis:new Date().getTime(),type:"moduleEvalStart"});var iK,iW,iZ="",iX=" ",iY='"',i1="+",i0="-",i2=".",i4="0",i3="0.",i6="0.0",i5="0.00",i9="0.000",i7="0.0000",i8="0.00000",on="0.000000",ot="0E",oe="0E+",or=":",oi="BigDecimal",oo="BigDecimal MathContext",ou="BigDecimal;",of="BigInteger",oc="BigInteger divide by zero",os="BigInteger not invertible.",oa="BigInteger: modulus not positive",oh="BigInteger;",ob="CSS1Compat",ol="Division by zero",og="Division impossible",ow="E",od='For input string: "',op="Infinite or NaN",o_="Invalid Operation",ov="MathContext",om="Negative bit address",oy="Rounding necessary",oC="RoundingMode",oS="RoundingMode;",oM="String",ox="[Lcom.iriscouch.gwtapp.client.",oB="[Ljava.lang.",oA="[Ljava.math.",oN="\\.",oI="__gwtex_wrap",oE="anonymous",oR="array",oO="bad string format",oD="bigdecimal",ok="com.google.gwt.core.client.",oL="com.google.gwt.core.client.impl.",oU="com.iriscouch.gwtapp.client.",oP="java.lang.",oQ="java.math.",oT="java.util.",oj="msie",oF="null",oH="number",o$="number MathContext",oV="number number",oq="object",oG="opera",oz="org.timepedia.exporter.client.",oJ="safari",oK="string",oW="undefined",oZ={l:0,m:0,h:524288},oX={l:0,m:4193280,h:1048575},oY={l:4194298,m:4194303,h:1048575},o1={l:4194303,m:4194303,h:1048575},o0={l:0,m:0,h:0},o2={l:1,m:0,h:0},o4={l:2,m:0,h:0},o3={l:5,m:0,h:0},o6={l:10,m:0,h:0},o5={l:11,m:0,h:0},o9={l:18,m:0,h:0},o7={l:48,m:0,h:0},o8={l:877824,m:119,h:0},un={l:1755648,m:238,h:0},ut={l:4194303,m:511,h:0},ue={l:4194303,m:1023,h:0},ur={l:0,m:1024,h:0};(iW=a.prototype={}).eQ=function(n){return this===n},iW.gC=function(){return fd},iW.hC=function(){return nz(this)},iW.tS=function(){return this.gC().d+"@"+function(n){var t,e;if(t=t$(f6,{6:1},-1,8,1),rB(),e=7,n>=0)for(;n>15;)t[e--]=uT[15&n],n>>=4;else for(;e>0;)t[e--]=uT[15&n],n>>=4;return t[e]=uT[15&n],et(t,e,8)}(this.hC())},iW.toString=function(){return this.tS()},iW.tM=g,iW.cM={},(iW=h.prototype=new a).gC=function(){return f_},iW.j=function(){return this.f},iW.tS=function(){var n,t;return n=this.gC().d,null!=(t=this.j())?n+": "+t:n},iW.cM={6:1,15:1},iW.f=null,(iW=b.prototype=new h).gC=function(){return fv},iW.cM={6:1,15:1},(iW=nr.prototype=l.prototype=new b).gC=function(){return fm},iW.cM={6:1,12:1,15:1},(iW=n9.prototype=(function(){}).prototype=new l).gC=function(){return fy},iW.j=function(){var n,t,e,r,i;return null==this.d&&(this.e=null==(e=this.c)?oF:tc(e)?null==(r=eo(e))?null:r.name:nY(e,1)?oM:(nJ(e)?e.gC():fC).d,this.b=tc(n=this.c)?null==(i=eo(n))?null:i.message:n+iZ,this.d="("+this.e+"): "+this.b+(tc(t=this.c)?function(n){var t=iZ;try{for(var e in n)if("name"!=e&&"message"!=e&&"toString"!=e)try{t+="\n "+e+": "+n[e]}catch(r){}}catch(i){}return t}(eo(t)):iZ)),this.d},iW.cM={6:1,12:1,15:1},iW.b=null,iW.c=null,iW.d=null,iW.e=null,(iW=w.prototype=new a).gC=function(){return fS};var ui=0,uo=0;(iW=d.prototype=(function(){}).prototype=new w).gC=function(){return fI},iW.b=null,iW.c=null,(iW=_.prototype=v.prototype=new a).k=function(){for(var n={},t=[],e=arguments.callee.caller.caller;e;){var r,i,o=this.n(e.toString());t.push(o);var u=or+o,f=n[u];if(f){for(r=0,i=f.length;r0?i:oE},iW.gC=function(){return fE},iW.o=function(n){return[]},(iW=m.prototype=new v).k=function(){return ty(this.o(tS()),this.p())},iW.gC=function(){return fD},iW.o=function(n){return eT(this,n)},iW.p=function(){return 2},(iW=y.prototype=(function(){}).prototype=new m).k=function(){return ep(this)},iW.n=function(n){var t,e;return 0==n.length||(0==(e=ro(n)).indexOf("at ")&&(e=tu(e,3)),-1==(t=e.indexOf("["))&&(t=e.indexOf("(")),-1==t)?oE:(-1!=(t=(e=ro(e.substr(0,t-0))).indexOf("."))&&(e=tu(e,t+1)),e.length>0?e:oE)},iW.gC=function(){return fk},iW.o=function(n){return en(this,n)},iW.p=function(){return 3},(iW=C.prototype=new a).gC=function(){return fL},(iW=S.prototype=(function(){}).prototype=new C).gC=function(){return fU},iW.b=iZ,(iW=M.prototype=(function(){}).prototype=new a).gC=function(){return this.aC},iW.aC=null,iW.qI=0;var uu=null,uf=null;(iW=x.prototype=(function(){}).prototype=new a).gC=function(){return fT},iW.cM={2:1},(iW=B.prototype=new a).gC=function(){return fF},iW.cM={6:1,10:1};var uc=null;(iW=el.prototype=th.prototype=tO.prototype=tL.prototype=X.prototype=ex.prototype=eg.prototype=tk.prototype=tD.prototype=e0.prototype=n8.prototype=tn.prototype=ta.prototype=tR.prototype=nj.prototype=A.prototype=new B).eQ=function(n){return e8(this,n)},iW.gC=function(){return fH},iW.hC=function(){return rA(this)},iW.q=function(){return rz(this)},iW.r=function(){return eS(this)},iW.tS=function(){return iM(this)},iW.cM={6:1,8:1,10:1,16:1},iW.b=0,iW.c=0,iW.d=null,iW.e=0,iW.f=0,iW.g=0,iW.i=null;var us,ua,uh,ub,ul,ug,uw,ud,up,u_,uv,um,uy,uC,uS,uM,ux,uB=null,uA=null,uN=null;(iW=nF.prototype=nw.prototype=(function(){}).prototype=new A).s=function(n){var t,e,r;if((e=iP(n))==iZ)t=0>eS(this)?eM(this):this;else if(e==ov)t=0>(r=eu(this,new iR(n[0].toString()))).r()?eM(r):r;else throw new nr("Unknown call signature for interim = super.abs: "+e);return new nF(t)},iW.t=function(n){var t,e;if((e=iP(n))==oi)t=r7(this,new X(n[0].toString()));else if(e==oo)t=function(n,t,e){var r,i,o,u,f;if(r=n.f-t.f,0==t.b&&-1!=t.g||0==n.b&&-1!=n.g||0==e.b)return eu(r7(n,t),e);if((n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)0?t.e:nH((t.b-1)*.3010299956639812)+1)<-r-1))return eu(r7(n,t),e);i=n,u=t}return e.b>=(i.e>0?i.e:nH((i.b-1)*.3010299956639812)+1)?eu(r7(n,t),e):((o=i.r())==u.r()?f=iE(r3((i.d||(i.d=eV(i.g)),i.d),10),e3(re(o))):(f=ip((i.d||(i.d=eV(i.g)),i.d),e3(re(o))),f=iE(r3(f,10),e3(re(9*o)))),i=new tO(f,i.f+1),eu(i,e))}(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.add: "+e);return new nF(t)},iW.u=function(){return~~(nE(ef(this,8))<<24)>>24},iW.v=function(n){return iw(this,n)},iW.w=function(n){var t,e,r,i;if((i=iP(n))==oi)e=em(this,new X(n[0].toString()));else if(i==oo)e=ey(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.divideAndRemainder: "+i);for(t=0,r=t$(fV,{6:1},3,e.length,0);t129?n*=1/0:n=ei(iM(this)),n},iW.gC=function(){return f$},iW.hC=function(){return rA(this)},iW.B=function(){return this.f<=-32||this.f>(this.e>0?this.e:nH((this.b-1)*.3010299956639812)+1)?0:nI(new n7(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eV(this.g)),this.d):this.f<0?ec((this.d||(this.d=eV(this.g)),this.d),iA(-this.f)):i_((this.d||(this.d=eV(this.g)),this.d),iA(this.f))))},iW.C=function(){return nE(ef(this,32))},iW.D=function(){return nE(ef(this,32))},iW.E=function(){return ei(iM(this))},iW.F=function(n){return new nF(iw(this,n)>=0?this:n)},iW.G=function(n){return new nF(0>=iw(this,n)?this:n)},iW.H=function(n){return new nF(r0(this,this.f+n))},iW.I=function(n){return new nF(r0(this,this.f-n))},iW.J=function(n){var t,e;if((e=iP(n))==oi)t=rF(this,new X(n[0].toString()));else if(e==oo)t=tm(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.multiply: "+e);return new nF(t)},iW.K=function(n){var t,e;if((e=iP(n))==iZ)t=eM(this);else if(e==ov)t=eM(eu(this,new iR(n[0].toString())));else throw new nr("Unknown call signature for interim = super.negate: "+e);return new nF(t)},iW.L=function(n){var t,e;if((e=iP(n))==iZ)t=this;else if(e==ov)t=eu(this,new iR(n[0].toString()));else throw new nr("Unknown call signature for interim = super.plus: "+e);return new nF(t)},iW.M=function(n){var t,e;if((e=iP(n))==oH)t=rS(this,n[0]);else if(e==o$)t=function(n,t,e){var r,i,o,u,f,c;if(o=t<0?-t:t,u=e.b,i=eb(tf(o))+1,f=e,0==t||0==n.b&&-1!=n.g&&t>0)return rS(n,t);if(o>999999999||0==u&&t<0||u>0&&i>u)throw new ni(o_);for(u>0&&(f=new e4(u+i+1,e.c)),r=eu(n,f),c=~~function(n){var t;if(n<0)return -2147483648;if(0==n)return 0;for(t=1073741824;(t&n)==0;t>>=1);return t}(o)>>1;c>0;)r=tm(r,r,f),(o&c)==c&&(r=tm(r,n,f)),c>>=1;return t<0&&(r=iT(uC,r,f)),id(r,e),r}(this,n[0],new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.pow: "+e);return new nF(t)},iW.q=function(){return rz(this)},iW.N=function(n){var t,e;if((e=iP(n))==oi)t=em(this,new X(n[0].toString()))[1];else if(e==oo)t=ey(this,new X(n[0].toString()),new iR(n[1].toString()))[1];else throw new nr("Unknown call signature for interim = super.remainder: "+e);return new nF(t)},iW.O=function(n){return new nF(eu(this,new iR(e_(n.b))))},iW.P=function(){return eb(this.f)},iW.Q=function(n){var t,e;return new nF((t=this,(e=t.f-n,t.b<54)?0==t.g?e$(e):new th(t.g,e2(e)):new tR((t.d||(t.d=eV(t.g)),t.d),e2(e))))},iW.R=function(n){var t,e;if((e=iP(n))==oH)t=r9(this,n[0],(ik(),ft));else if(e==oV)t=r9(this,n[0],rq(n[1]));else if("number RoundingMode"==e)t=r9(this,n[0],td(n[1].toString()));else throw new nr("Unknown call signature for interim = super.setScale: "+e);return new nF(t)},iW.S=function(){return~~(nE(ef(this,16))<<16)>>16},iW.r=function(){return eS(this)},iW.T=function(){return new nF(function(n){var t,e,r,i,o;if(t=1,e=uA.length-1,r=n.f,0==n.b&&-1!=n.g)return new X(i4);for(n.d||(n.d=eV(n.g)),o=n.d;!o.gb(0);)if(0==(i=ir(o,uA[t]))[1].r())r-=t,t0?i.e:nH((i.b-1)*.3010299956639812)+1)0?r.e:nH((r.b-1)*.3010299956639812)+1)?((s=eS(r))!=i.r()?c=iE(r3((r.d||(r.d=eV(r.g)),r.d),10),e3(re(s))):(c=ip((r.d||(r.d=eV(r.g)),r.d),e3(re(s))),c=iE(r3(c,10),e3(re(9*s)))),f=new tO(c,r.f+1),eu(f,o)):eu(ij(r,i),o);else throw new nr("Unknown call signature for interim = super.subtract: "+e);return new nF(t)},iW.V=function(){return new n7(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eV(this.g)),this.d):this.f<0?ec((this.d||(this.d=eV(this.g)),this.d),iA(-this.f)):i_((this.d||(this.d=eV(this.g)),this.d),iA(this.f)))},iW.W=function(){return new n7(ii(this))},iW.X=function(){return function(n){var t,e,r,i,o,u,f,c;if(u=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f)return u;if(t=0>(n.d||(n.d=eV(n.g)),n.d).r()?2:1,r=u.length,i=-n.f+r-t,c=new nZ(u),n.f>0&&i>=-6)i>=0?ti(c,r-eb(n.f),i2):(ts(c.b,t-1,t-1,i3),ti(c,t+1,tV(up,0,-eb(i)-1)));else{if(e=r-t,0!=(f=eb(i%3))&&(0==(n.d||(n.d=eV(n.g)),n.d).r()?i+=f=f<0?-f:3-f:(f=f<0?f+3:f,i-=f,t+=f),e<3))for(o=f-e;o>0;--o)ti(c,r++,i4);r-t>=1&&(ts(c.b,t,t,i2),++r),0!=i&&(ts(c.b,r,r,ow),i>0&&ti(c,++r,i1),ti(c,++r,iZ+ie(it(i))))}return c.b.b}(this)},iW.Y=function(){return function(n){var t,e,r,i;if(r=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f||0==n.b&&-1!=n.g&&n.f<0)return r;if(t=0>eS(n)?1:0,e=n.f,i=new Z(r.length+1+np(eb(n.f))),1==t&&(i.b.b+=i0),n.f>0){if((e-=r.length-t)>=0){for(i.b.b+=i3;e>up.length;e-=up.length)tY(i,up);tr(i,up,eb(e)),nL(i,tu(r,t))}else e=t-e,nL(i,to(r,t,eb(e))),i.b.b+=i2,nL(i,tu(r,eb(e)))}else{for(nL(i,tu(r,t));e<-up.length;e+=up.length)tY(i,up);tr(i,up,eb(-e))}return i.b.b}(this)},iW.tS=function(){return iM(this)},iW.Z=function(){return new nF(new th(1,this.f))},iW.$=function(){return new n7((this.d||(this.d=eV(this.g)),this.d))},iW.cM={3:1,6:1,8:1,10:1,16:1,24:1},(iW=H.prototype=(function(){}).prototype=new a).gC=function(){return fq};var uI=!1;(iW=rl.prototype=rb.prototype=tb.prototype=ri.prototype=tZ.prototype=r_.prototype=nX.prototype=iI.prototype=N.prototype=new B)._=function(){return this.f<0?new tb(1,this.e,this.b):this},iW.ab=function(){return eX(this)},iW.eQ=function(n){return eZ(this,n)},iW.gC=function(){return fG},iW.bb=function(){return t7(this)},iW.hC=function(){return eF(this)},iW.cb=function(){return 0==this.f?this:new tb(-this.f,this.e,this.b)},iW.db=function(n){return rH(this,n)},iW.eb=function(n){return t5(this,n)},iW.fb=function(n){return t9(this,n)},iW.r=function(){return this.f},iW.gb=function(n){return rG(this,n)},iW.tS=function(){return iJ(this,0)},iW.cM={6:1,8:1,10:1,17:1},iW.b=null,iW.c=-2,iW.d=0,iW.e=0,iW.f=0;var uE,uR,uO,uD,uk,uL=null;(iW=n7.prototype=nQ.prototype=nT.prototype=(function(){}).prototype=new N)._=function(){return new n7(this.f<0?new tb(1,this.e,this.b):this)},iW.hb=function(n){return new n7(iE(this,n))},iW.ib=function(n){return new n7(0==n.f||0==this.f?(r4(),uk):eZ(n,(r4(),uE))?this:eZ(this,uE)?n:this.f>0?n.f>0?function(n,t){var e,r,i,o;if(i=n_(n.e,t.e),(e=nv(eC(n),eC(t)))>=i)return r4(),uk;for(r=t$(fx,{6:1},-1,i,1);e0?r1(n,this):this.e>n.e?ix(this,n):ix(n,this))},iW.jb=function(n){return new n7(0==n.f?this:0==this.f?(r4(),uk):eZ(this,(r4(),uE))?new n7(ic(n)):eZ(n,uE)?uk:this.f>0?n.f>0?function(n,t){var e,r,i,o;for(i=t$(fx,{6:1},-1,n.e,1),r=n_(n.e,t.e),e=eC(n);e=n.e)return n;for(u=n_(n.e,t.e),o=t$(fx,{6:1},-1,u,1),e=i;e0?function(n,t){var e,r,i,o,u,f,c;if(i=eC(n),o=eC(t),i>=t.e)return n;if(c=nv(n.e,t.e),r=i,o>i){for(f=t$(fx,{6:1},-1,c,1),u=n_(n.e,o);r=t.e)return r4(),uk;if(u=t$(fx,{6:1},-1,f=t.e,1),e=i,i0)for(;e34028234663852886e22?1/0:t<-34028234663852886e22?-1/0:t},iW.qb=function(n){return new n7(rQ(this,n))},iW.gC=function(){return fz},iW.bb=function(){return t7(this)},iW.hC=function(){return eF(this)},iW.B=function(){return nI(this)},iW.rb=function(n){return function(n,t){var e,r;if(iz(),t<=0||1==n.e&&2==n.b[0])return!0;if(!rG(n,0))return!1;if(1==n.e&&(-1024&n.b[0])==0)return function(n,t){var e,r,i,o;for(r=0,e=n.length-1;r<=e;)if((o=n[i=r+(~~(e-r)>>1)])t))return i;e=i-1}return-r-1}(u4,n.b[0])>=0;for(r=1;r>1)?r:1+(~~(t-1)>>1))}(new n7(this.f<0?new tb(1,this.e,this.b):this),n)},iW.sb=function(){return ei(iJ(this,0))},iW.tb=function(n){return new n7(1==rc(this,n)?this:n)},iW.ub=function(n){return new n7(-1==rc(this,n)?this:n)},iW.vb=function(n){return new n7(es(this,n))},iW.wb=function(n){return new n7(rT(this,n))},iW.xb=function(n,t){return new n7(rY(this,n,t))},iW.yb=function(n){return new n7(ec(this,n))},iW.cb=function(){return new n7(0==this.f?this:new tb(-this.f,this.e,this.b))},iW.zb=function(){return new n7(function(n){if(n.f<0)throw new ni("start < 0: "+n);return function(n){var t,e,r,i,o,u,f,c;if(iz(),o=t$(fx,{6:1},-1,u4.length,1),r=t$(fN,{6:1},-1,1024,2),1==n.e&&n.b[0]>=0&&n.b[0]=u4[e];++e);return u2[e]}for(f=new tb(1,n.e,t$(fx,{6:1},-1,n.e+1,1)),iD(n.b,0,f.b,0,n.e),rG(n,0)?t4(f,2):f.b[0]|=1,i=f.ab(),t=2;i0?n.f>0?this.e>n.e?ry(this,n):ry(n,this):iC(this,n):n.f>0?iC(n,this):eC(n)>eC(this)?r6(n,this):r6(this,n))},iW.db=function(n){return new n7(rH(this,n))},iW.Cb=function(n){return new n7(rK(this,n))},iW.Db=function(n){return new n7(rG(this,n)?this:ia(this,n))},iW.eb=function(n){return new n7(t5(this,n))},iW.fb=function(n){return new n7(t9(this,n))},iW.r=function(){return this.f},iW.Eb=function(n){return new n7(ip(this,n))},iW.gb=function(n){return rG(this,n)},iW.Fb=function(n){var t,e;if((e=iP(n))==iZ)t=iJ(this,0);else if(e==oH)t=function(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d,_;if(iO(),g=n.f,s=n.e,u=n.b,0==g)return i4;if(1==s)return _=tp(re(u[0]),ue),g<0&&(_=eq(_)),function(n,t){var e,r,i;if(10==t||t<2||t>36)return iZ+ie(n);if(e=t$(f6,{6:1},-1,65,1),rB(),r=64,i=re(t),rL(n,o0)){for(;rL(n,i);)e[r--]=uT[nE(tt(n,i))],n=iU(n,i,!1);e[r]=uT[nE(n)]}else{for(;ny(n,eq(i));)e[r--]=uT[nE(eq(tt(n,i)))],n=iU(n,i,!1);e[r--]=uT[nE(eq(n))],e[r]=45}return et(e,r,65)}(_,t);if(10==t||t<2||t>36)return iJ(n,0);if(b=eb(eX(new n7(n.f<0?new tb(1,n.e,n.b):n))/(Math.log(t)/Math.log(2))+(g<0?1:0))+1,l=t$(f6,{6:1},-1,b,1),i=b,16!=t)for(w=t$(fx,{6:1},-1,s,1),iD(u,0,w,0,s),d=s,r=uV[t],e=u$[t-2];;){h=ib(w,w,d,e),a=i;do l[--i]=eA(h%t,t);while(0!=(h=~~(h/t))&&0!=i)for(f=0,o=r-a+i;f0;++f)l[--i]=48;for(f=d-1;f>0&&0==w[f];--f);if(1==(d=f+1)&&0==w[0])break}else for(f=0;f0;++c)h=~~u[f]>>(c<<2)&15,l[--i]=eA(h,16);for(;48==l[i];)++i;return -1==g&&(l[--i]=45),tV(l,i,b-i)}(this,n[0]);else throw new nr("Unknown call signature for result = super.toString: "+e);return t},iW.Gb=function(n){return new n7(0==n.f?this:0==this.f?n:eZ(n,(r4(),uE))?new n7(ic(this)):eZ(this,uE)?new n7(ic(n)):this.f>0?n.f>0?this.e>n.e?rC(this,n):rC(n,this):i$(this,n):n.f>0?i$(n,this):eC(n)>eC(this)?il(n,this):il(this,n))},iW.cM={4:1,6:1,8:1,10:1,17:1,24:1},(iW=F.prototype=(function(){}).prototype=new a).gC=function(){return fK};var uU=!1;(iW=nC.prototype=nS.prototype=(function(){}).prototype=new a).gC=function(){return fW},iW.Hb=function(){return this.b.b},iW.Ib=function(){return new nn(this.b.c)},iW.hC=function(){return nN(this.b)},iW.tS=function(){return e_(this.b)},iW.cM={24:1},iW.b=null,(iW=j.prototype=(function(){}).prototype=new a).gC=function(){return fZ};var uP=!1;(iW=nn.prototype=nM.prototype=(function(){}).prototype=new a).gC=function(){return fX},iW.Jb=function(){return this.b.b},iW.tS=function(){return this.b.b},iW.cM={5:1,24:1},iW.b=null,(iW=K.prototype=(function(){}).prototype=new a).gC=function(){return f1};var uQ=!1;(iW=ni.prototype=(function(){}).prototype=new l).gC=function(){return f0},iW.cM={6:1,12:1,15:1},(iW=no.prototype=V.prototype=(function(){}).prototype=new l).gC=function(){return f4},iW.cM={6:1,12:1,15:1},(iW=I.prototype=(function(){}).prototype=new a).gC=function(){return f5},iW.tS=function(){return((2&this.c)!=0?"interface ":(1&this.c)!=0?iZ:"class ")+this.d},iW.b=null,iW.c=0,iW.d=null,(iW=$.prototype=(function(){}).prototype=new l).gC=function(){return f9},iW.cM={6:1,12:1,15:1},(iW=E.prototype=new a).eQ=function(n){return this===n},iW.gC=function(){return fp},iW.hC=function(){return nz(this)},iW.tS=function(){return this.b},iW.cM={6:1,8:1,9:1},iW.b=null,iW.c=0,(iW=nu.prototype=q.prototype=R.prototype=new l).gC=function(){return f7},iW.cM={6:1,12:1,15:1},(iW=nf.prototype=G.prototype=O.prototype=new l).gC=function(){return f2},iW.cM={6:1,12:1,15:1},(iW=nc.prototype=z.prototype=(function(){}).prototype=new l).gC=function(){return f8},iW.cM={6:1,12:1,15:1},(iW=nd.prototype=(function(){}).prototype=new R).gC=function(){return cn},iW.cM={6:1,12:1,15:1},(iW=tl.prototype=(function(){}).prototype=new a).gC=function(){return fR},iW.tS=function(){return this.b+i2+this.d+"(Unknown Source"+(this.c>=0?or+this.c:iZ)+")"},iW.cM={6:1,13:1},iW.b=null,iW.c=0,iW.d=null,(iW=String.prototype).eQ=function(n){return tJ(this,n)},iW.gC=function(){return fP},iW.hC=function(){var n,t;return n0(),null!=(t=uF[n=or+this])?t:(null==(t=uj[n])&&(t=function(n){var t,e,r,i;for(t=0,i=(r=n.length)-4,e=0;et?n:t}function nm(n,t){return!rL(n,t)}function ny(n,t){return!rk(n,t)}function nC(n){this.b=new iR(n)}function nS(){this.b=(rJ(),uJ)}function nM(){this.b=(ik(),fn)}function nx(n,t){var e;nb(),e=o.b,n?function(n,t,e,r){var i=n.b[r];if(i)for(var o=0,u=i.length;o=t&&n.splice(0,t),n}function tC(n){return nY(n,15)?n:new n9(n)}function tS(){try{null.a()}catch(n){return n}}function tM(n){var t;return(t=new I).d=iZ+n,t.c=1,t}function tx(n,t){return nJ(n)?n.eQ(t):n===t}function tB(n,t){return n.l==t.l&&n.m==t.m&&n.h==t.h}function tA(n,t){return n.l!=t.l||n.m!=t.m||n.h!=t.h}function tN(n,t,e){return(iW=new x).l=n,iW.m=t,iW.h=e,iW}function tI(n,t){return nG(n)===nG(t)||null!=n&&tx(n,t)}function tE(n,t){throw new nf("Index: "+n+", Size: "+t)}function tR(n,t){if(!n)throw new z;this.f=t,tT(this,n)}function tO(n,t){if(!n)throw new z;this.f=t,tT(this,n)}function tD(n,t,e,r){e0.call(this,n,t,e),id(this,r)}function tk(n,t){e0.call(this,n,0,n.length),id(this,t)}function tL(n,t){e0.call(this,er(n),0,n.length),id(this,t)}function tU(n){nr.call(this,"String index out of range: "+n)}function tP(n,t){var e,r;return e=n.b,r=String.fromCharCode(t),e.b+=r,n}function tQ(n,t){rI(n.b,n.b,n.e,t.b,t.e),t3(n),n.c=-2}function tT(n,t){n.d=t,n.b=t.ab(),n.b<54&&(n.g=rh(eL(t)))}function tj(){tj=g,ua=[],uh=[],function(n,t,e){var r,i=0;for(var o in n)(r=n[o])&&(t[i]=o,e[i]=r,++i)}(new M,ua,uh)}function tF(){uI||(uI=!0,new j,new F,function(){if(ng(oD,iZ),u.bigdecimal.BigDecimal)var n=u.bigdecimal.BigDecimal;u.bigdecimal.BigDecimal=fw(function(){1==arguments.length&&null!=arguments[0]&&arguments[0].gC()==f$?this.__gwt_instance=arguments[0]:0==arguments.length&&(this.__gwt_instance=new nw,nl(this.__gwt_instance,this))});var t=u.bigdecimal.BigDecimal.prototype={};if(n)for(p in n)u.bigdecimal.BigDecimal[p]=n[p];u.bigdecimal.BigDecimal.ROUND_CEILING=2,u.bigdecimal.BigDecimal.ROUND_DOWN=1,u.bigdecimal.BigDecimal.ROUND_FLOOR=3,u.bigdecimal.BigDecimal.ROUND_HALF_DOWN=5,u.bigdecimal.BigDecimal.ROUND_HALF_EVEN=6,u.bigdecimal.BigDecimal.ROUND_HALF_UP=4,u.bigdecimal.BigDecimal.ROUND_UNNECESSARY=7,u.bigdecimal.BigDecimal.ROUND_UP=0,u.bigdecimal.BigDecimal.__init__=fw(function(n){var t=function(n){var t,e;if(iV(),(e=iP(n))==of)t=new nj(new nX(n[0].toString()));else if("BigInteger number"==e)t=new tR(new nX(n[0].toString()),n[1]);else if("BigInteger number MathContext"==e)t=new ta(new nX(n[0].toString()),n[1],new iR(n[2].toString()));else if("BigInteger MathContext"==e)t=new tn(new nX(n[0].toString()),new iR(n[1].toString()));else if(e==oR)t=new n8(er(n[0].toString()));else if("array number number"==e)t=new e0(er(n[0].toString()),n[1],n[2]);else if("array number number MathContext"==e)t=new tD(er(n[0].toString()),n[1],n[2],new iR(n[3].toString()));else if("array MathContext"==e)t=new tk(er(n[0].toString()),new iR(n[1].toString()));else if(e==oH)t=new eg(n[0]);else if(e==o$)t=new ex(n[0],new iR(n[1].toString()));else if(e==oK)t=new X(n[0].toString());else if("string MathContext"==e)t=new tL(n[0].toString(),new iR(n[1].toString()));else throw new nr("Unknown call signature for obj = new java.math.BigDecimal: "+e);return new nF(t)}(n);return nU(t)}),t.abs_va=fw(function(n){return nU(this.__gwt_instance.s(n))}),t.add_va=fw(function(n){return nU(this.__gwt_instance.t(n))}),t.byteValueExact=fw(function(){return this.__gwt_instance.u()}),t.compareTo=fw(function(n){return this.__gwt_instance.v(n.__gwt_instance)}),t.divide_va=fw(function(n){return nU(this.__gwt_instance.y(n))}),t.divideToIntegralValue_va=fw(function(n){return nU(this.__gwt_instance.x(n))}),t.doubleValue=fw(function(){return this.__gwt_instance.z()}),t.equals=fw(function(n){return this.__gwt_instance.eQ(n)}),t.floatValue=fw(function(){return this.__gwt_instance.A()}),t.hashCode=fw(function(){return this.__gwt_instance.hC()}),t.intValue=fw(function(){return this.__gwt_instance.B()}),t.intValueExact=fw(function(){return this.__gwt_instance.C()}),t.max=fw(function(n){return nU(this.__gwt_instance.F(n.__gwt_instance))}),t.min=fw(function(n){return nU(this.__gwt_instance.G(n.__gwt_instance))}),t.movePointLeft=fw(function(n){return nU(this.__gwt_instance.H(n))}),t.movePointRight=fw(function(n){return nU(this.__gwt_instance.I(n))}),t.multiply_va=fw(function(n){return nU(this.__gwt_instance.J(n))}),t.negate_va=fw(function(n){return nU(this.__gwt_instance.K(n))}),t.plus_va=fw(function(n){return nU(this.__gwt_instance.L(n))}),t.pow_va=fw(function(n){return nU(this.__gwt_instance.M(n))}),t.precision=fw(function(){return this.__gwt_instance.q()}),t.remainder_va=fw(function(n){return nU(this.__gwt_instance.N(n))}),t.round=fw(function(n){return nU(this.__gwt_instance.O(n.__gwt_instance))}),t.scale=fw(function(){return this.__gwt_instance.P()}),t.scaleByPowerOfTen=fw(function(n){return nU(this.__gwt_instance.Q(n))}),t.setScale_va=fw(function(n){return nU(this.__gwt_instance.R(n))}),t.shortValueExact=fw(function(){return this.__gwt_instance.S()}),t.signum=fw(function(){return this.__gwt_instance.r()}),t.stripTrailingZeros=fw(function(){return nU(this.__gwt_instance.T())}),t.subtract_va=fw(function(n){return nU(this.__gwt_instance.U(n))}),t.toBigInteger=fw(function(){return nU(this.__gwt_instance.V())}),t.toBigIntegerExact=fw(function(){return nU(this.__gwt_instance.W())}),t.toEngineeringString=fw(function(){return this.__gwt_instance.X()}),t.toPlainString=fw(function(){return this.__gwt_instance.Y()}),t.toString=fw(function(){return this.__gwt_instance.tS()}),t.ulp=fw(function(){return nU(this.__gwt_instance.Z())}),t.unscaledValue=fw(function(){return nU(this.__gwt_instance.$())}),t.divideAndRemainder_va=fw(function(n){return nP(this.__gwt_instance.w(n))}),t.longValue=fw(function(){return this.__gwt_instance.E()}),t.longValueExact=fw(function(){return this.__gwt_instance.D()}),u.bigdecimal.BigDecimal.valueOf_va=fw(function(n){var t=function(n){var t,e;if(iV(),(e=iP(n))==oH)t=function(n){if(!isFinite(n)||isNaN(n))throw new nd(op);return new X(iZ+n)}(n[0]);else if(e==oH)t=t6(re(n[0]));else if(e==oV)t=eH(re(n[0]),n[1]);else throw new nr("Unknown call signature for bd = java.math.BigDecimal.valueOf: "+e);return new nF(t)}(n);return nU(t)}),u.bigdecimal.BigDecimal.log=fw(function(n){iV(),typeof console!==oW&&console.log&&console.log(n)}),u.bigdecimal.BigDecimal.logObj=fw(function(n){iV(),typeof console!==oW&&console.log&&typeof JSON!==oW&&JSON.stringify&&console.log("object: "+JSON.stringify(n))}),u.bigdecimal.BigDecimal.ONE=fw(function(){var n=(iV(),new nF(uC));return nU(n)}),u.bigdecimal.BigDecimal.TEN=fw(function(){var n=(iV(),new nF(uS));return nU(n)}),u.bigdecimal.BigDecimal.ZERO=fw(function(){var n=(iV(),new nF(uM));return nU(n)}),nx(f$,u.bigdecimal.BigDecimal)}())}function tH(n,t,e){var r;return(r=new I).d=n+t,r.c=4,r.b=e,r}function t$(n,t,e,r,i){var o;return t2(n,t,e,o=function(n,t){var e=Array(t);if(3==n)for(var r=0;r0)for(var i=[null,0,!1][n],r=0;rn)throw new tU(e)}(n.length,t,r),et(n,t,r)}function tq(n,t){return im(),t=n.c.c)throw new J;return t=n.c,r=e=n.b++,i=t.c,(r<0||r>=i)&&tE(r,i),t.b[e]}function tJ(n,t){return!!nY(t,1)&&String(n)==t}function tK(){nr.call(this,"Add not supported on this collection")}function tW(){this.b=[],this.f={},this.d=!1,this.c=null,this.e=0}function tZ(n,t){r4(),this.f=n,this.e=1,this.b=t2(fx,{6:1},-1,[t])}function tX(n,t){var e;return e=n.c,n.c=t,!n.d&&(n.d=!0,++n.e),e}function tY(n,t){var e,r;return e=n.b,r=String.fromCharCode.apply(null,t),e.b+=r,n}function t1(n,t,e,r){var i,o;return null==t&&(t=oF),i=n.b,o=t.substr(e,r-e),i.b+=o,n}function t0(n,t,e,r){var i;return i=t$(fx,{6:1},-1,t,1),rI(i,n,t,e,r),i}function t2(n,t,e,r){return tj(),function(n,t,e){tj();for(var r=0,i=t.length;r0&&0==n.b[--n.e];);0==n.b[n.e++]&&(n.f=0)}function t6(n){return rL(n,o0)&&nm(n,o5)?ud[nE(n)]:new el(n,0)}function t5(n,t){return 0==t||0==n.f?n:t>0?rt(n,t):r5(n,-t)}function t9(n,t){return 0==t||0==n.f?n:t>0?r5(n,t):rt(n,-t)}function t7(n){var t;return 0==n.f?-1:((t=eC(n))<<5)+ed(n.b[t])}function t8(n){var t;return 0!=(t=nE(n))?ed(t):ed(nE(r2(n,32)))+32}function en(n,t){var e;return 0==(e=eT(n,t)).length?(new _).o(t):ty(e,1)}function et(n,t,e){return n=n.slice(t,e),String.fromCharCode.apply(null,n)}function ee(n,t,e,r){var i;return i=t$(fx,{6:1},-1,t+1,1),iv(i,n,t,e,r),i}function er(n){var t,e;return t=t$(f6,{6:1},-1,e=n.length,1),function(n,t,e,r){var i;for(i=0;it.e&&(c=t,t=e,e=c),e.e<63)?(b=t,l=e,(m=(w=b.e)+(_=l.e),y=b.f!=l.f?-1:1,2==m)?(S=iQ(tp(re(b.b[0]),ue),tp(re(l.b[0]),ue)),x=nE(S),0==(M=nE(rV(S,32)))?new tZ(y,x):new tb(y,2,t2(fx,{6:1},-1,[x,M]))):(g=b.b,d=l.b,v=t$(fx,{6:1},-1,m,1),eY(g,w,d,_,v),C=new tb(y,m,v),t3(C),C)):(f=(-2&t.e)<<4,a=t.fb(f),h=e.fb(f),i=ip(t,a.eb(f)),o=ip(e,h.eb(f)),s=n(a,h),r=n(i,o),u=n(ip(a,i),ip(o,h)),u=(u=iE(iE(u,s),r)).eb(f),s=s.eb(f<<1),iE(iE(s,u),r))}(n,t))}function es(n,t){var e;if(t.f<=0)throw new ni(oa);return(e=rK(n,t)).f<0?iE(e,t):e}function ea(n){var t;t=new n1,n.d&&te(t,new ne(n)),function(n,t){var e=n.f;for(var r in e)if(58==r.charCodeAt(0)){var i=new nO(n,r.substring(1));t.Kb(i)}}(n,t),function(n,t){var e=n.b;for(var r in e){var i=parseInt(r,10);if(r==i)for(var o=e[i],u=0,f=o.length;u0?1:0:(n.d||(n.d=eV(n.g)),n.d).r()}function eM(n){return n.b<54?new th(-n.g,n.f):new tO((n.d||(n.d=eV(n.g)),n.d).cb(),n.f)}function ex(n,t){if(!isFinite(n)||isNaN(n))throw new nd(op);iq(this,n.toPrecision(20)),id(this,t)}function eB(n,t){return isNaN(n)?isNaN(t)?0:1:isNaN(t)?-1:nt?1:0}function eA(n,t){return t<2||t>36||n<0||n>=t?0:n<10?48+n&65535:97+n-10&65535}function eN(n,t){var e,r,i;return t?((e=t[oI])||(e=new(r=t.gC(),i=eh(n.b,r),eo(i))(t),t[oI]=e),e):null}function eI(n){var t,e;return 32==(e=rW(n.h))?32==(t=rW(n.m))?rW(n.l)+32:t+20-10:e-12}function eE(n){return tN(4194303&n,~~n>>22&4194303,n<0?1048575:0)}function eR(){eR=g,ub=tN(4194303,4194303,524287),ul=tN(0,0,524288),ug=re(1),re(2),uw=re(0)}function eO(n,t){iv(n.b,n.b,n.e,t.b,t.e),n.e=n_(nv(n.e,t.e)+1,n.b.length),t3(n),n.c=-2}function eD(n,t){var e;e=~~t>>5,n.e+=e+(rW(n.b[n.e-1])-(31&t)>=0?0:1),rE(n.b,n.b,e,31&t),t3(n),n.c=-2}function ek(n,t){var e,r;e=~~t>>5,n.e>>r:0,t3(n))}function eL(n){var t;return t=n.e>1?t_(r$(re(n.b[1]),32),tp(re(n.b[0]),ue)):tp(re(n.b[0]),ue),iQ(re(n.f),t)}function eU(n,t,e){var r;for(r=e-1;r>=0&&n[r]==t[r];--r);return r<0?0:nm(tp(re(n[r]),ue),tp(re(t[r]),ue))?-1:1}function eP(n,t,e){var r,i,o;for(i=0,r=0;i>>31;0!=r&&(n[e]=r)}function eQ(n,t,e,r){if(iK=t,n)try{fw(iN)()}catch(i){n(t)}else fw(iN)()}function eT(n,t){var e,r,i;for(e=0,r=(i=t&&t.stack?t.stack.split("\n"):[]).length;e>5==n.e-1&&n.b[n.e-1]==1<<(31&t))for(e=0;r&&e=0&&t=0?new el(o0,2147483647):new el(o0,-2147483648)}function eV(n){return(r4(),n<0)?-1!=n?new rl(-1,-n):uE:n<=10?uO[eb(n)]:new rl(1,n)}function eq(n){var t,e,r;return t=~n.l+1&4194303,e=~n.m+(0==t?1:0)&4194303,r=~n.h+(0==t&&0==e?1:0)&1048575,tN(t,e,r)}function eG(n){var t,e,r;t=~n.l+1&4194303,e=~n.m+(0==t?1:0)&4194303,r=~n.h+(0==t&&0==e?1:0)&1048575,n.l=t,n.m=e,n.h=r}function ez(n){var t,e,r;for(r=0,e=t$(fO,{6:1},13,n.length,0),t=n.length;r=0;--r)if(n[r]!=i[r]){e=0!=n[r]&&rk(tp(re(n[r]),ue),tp(re(i[r]),ue));break}}return u=new tb(1,o+1,n),e&&tQ(u,t),t3(u),u}(o,e)}function eZ(n,t){var e;return n===t||!!nY(t,17)&&(e=tG(t,17),n.f==e.f&&n.e==e.e&&function(n,t){var e;for(e=n.e-1;e>=0&&n.b[e]==t[e];--e);return e<0}(n,e.b))}function eX(n){var t,e;return 0==n.f?0:(t=n.e<<5,e=n.b[n.e-1],n.f<0&&eC(n)==n.e-1&&(e=~~(e-1)),t-=rW(e))}function eY(n,t,e,r,i){im(),0!=t&&0!=r&&(1==t?i[r]=rw(i,e,r,n[0]):1==r?i[t]=rw(i,n,t,e[0]):function(n,t,e,r,i){var o,u,f,c;if(nG(n)===nG(t)&&r==i){ig(n,r,e);return}for(f=0;f2147483647))return eb(n);throw new ni("Underflow")}function e4(n,t){if(rJ(),n<0)throw new nu("Digits < 0");if(!t)throw new nc("null RoundingMode");this.b=n,this.c=t}function e3(n){return(r4(),nm(n,o0))?tA(n,o1)?new rb(-1,eq(n)):uE:ny(n,o6)?uO[nE(n)]:new rb(1,n)}function e6(n){var t;return nm(n,o0)&&(n=tN(4194303&~n.l,4194303&~n.m,1048575&~n.h)),64-(0!=(t=nE(r2(n,32)))?rW(t):rW(nE(n))+32)}function e5(n,t){var e,r,i;return e=n.l+t.l,r=n.m+t.m+(~~e>>22),i=n.h+t.h+(~~r>>22),tN(4194303&e,4194303&r,1048575&i)}function e9(n,t){var e,r,i;return e=n.l-t.l,r=n.m-t.m+(~~e>>22),i=n.h-t.h+(~~r>>22),tN(4194303&e,4194303&r,1048575&i)}function e7(n,t){var e;if(e=t-1,n.f>0){for(;!n.gb(e);)--e;return t-1-e}for(;n.gb(e);)--e;return t-1-nv(e,n.bb())}function e8(n,t){var e;return n===t||!!nY(t,16)&&(e=tG(t,16)).f==n.f&&(n.b<54?e.g==n.g:n.d.eQ(e.d))}function rn(n,t,e){var r,i,o,u;for(o=o0,r=t-1;r>=0;--r)u=e5(r$(o,32),tp(re(n[r]),ue)),i=r8(u,e),o=re(nE(r2(i,32)));return nE(o)}function rt(n,t){var e,r,i,o;return e=~~t>>5,t&=31,r=t$(fx,{6:1},-1,i=n.e+e+(0==t?0:1),1),rE(r,n.b,e,t),o=new tb(n.f,i,r),t3(o),o}function re(n){var t,e;return n>-129&&n<128?(t=n+128,null==uf&&(uf=t$(fj,{6:1},2,256,0)),(e=uf[t])||(e=uf[t]=eE(n)),e):eE(n)}function rr(n){var t,e,r;return(r4(),n>5,t=31&n,(r=t$(fx,{6:1},-1,e+1,1))[e]=1<iX&&n[n.length-1]>iX?n:n.replace(/^(\s*)/,iZ).replace(/\s*$/,iZ)}function ru(n){return n-=~~n>>1&1431655765,n=(~~(n=(~~n>>2&858993459)+(858993459&n))>>4)+n&252645135,n+=~~n>>8,63&(n+=~~n>>16)}function rf(n,t,e){if(null!=e&&(n.qI>0&&!n$(e,n.qI)||n.qI<0&&(e.tM==g||nK(e,1))))throw new V;return n[t]=e}function rc(n,t){return n.f>t.f?1:n.ft.e?n.f:n.e=0;--o)u=eW(u,u,r,i),(e.b[~~o>>5]&1<<(31&o))!=0&&(u=eW(u,t,r,i));return u}(f,r,t,e,o):function(n,t,e,r,i){var o,u,f,c,s,a,h;for(s=t$(cc,{6:1},17,8,0),a=n,rf(s,0,t),h=eW(t,t,r,i),u=1;u<=7;++u)rf(s,u,eW(s[u-1],h,r,i));for(u=e.ab()-1;u>=0;--u)if((e.b[~~u>>5]&1<<(31&u))!=0){for(c=1,o=u,f=u-3>0?u-3:0;f<=u-1;++f)(e.b[~~f>>5]&1<<(31&f))!=0&&(f>1],a,r,i),u=o}else a=eW(a,a,r,i);return a}(f,r,t,e,o),eW(u,(r4(),uR),e,o)}function rp(n,t){var e,r,i,o,u;for(e=0,r=n.length;e36)throw new nd("Radix out of range");if(0==n.length)throw new nd("Zero length BigInteger");(function(n,t,e){var r,i,o,u,f,c,s,a,h,b,l,g,w,d;for(s=l=t.length,45==t.charCodeAt(0)?(h=-1,b=1,--l):(h=1,b=0),u=(iO(),uV)[e],o=~~(l/u),0!=(d=l%u)&&++o,c=t$(fx,{6:1},-1,o,1),r=u$[e-2],f=0,g=b+(0==d?u:d),w=b;wr)return 1;if(e=0&&n[i]==t[i];--i);return i<0?0:nm(tp(re(n[i]),ue),tp(re(t[i]),ue))?-1:1}function ry(n,t){var e,r,i;for(r=t$(fx,{6:1},-1,i=n.e,1),n_(eC(n),eC(t)),e=0;e999999999)throw new ni(o_);return e=n.f*t,0==n.b&&-1!=n.g?e$(e):new tR((n.d||(n.d=eV(n.g)),n.d).db(t),e2(e))}function rM(n,t){return t<2||t>36?-1:n>=48&&n<48+(t<10?t:10)?n-48:n>=97&&n=65&&n=0;--n)fl[n]=e,e*=.5;for(n=24,t=1;n>=0;--n)fb[n]=t,t*=.5}function rB(){rB=g,uT=t2(f6,{6:1},-1,[48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122])}function rA(n){var t;return 0!=n.c?n.c:n.b<54?(t=it(n.g),n.c=nE(tp(t,o1)),n.c=33*n.c+nE(tp(r2(t,32),o1)),n.c=17*n.c+eb(n.f),n.c):(n.c=17*n.d.hC()+eb(n.f),n.c)}function rN(n,t,e,r){var i,o,u,f,c;return o=(c=n/t)>0?Math.floor(c):Math.ceil(c),u=n%t,f=eB(n*t,0),0!=u&&(i=eB((u<=0?0-u:u)*2,t<=0?0-t:t),o+=is(1&eb(o),f*(5+i),r)),new th(o,e)}function rI(n,t,e,r,i){var o,u;for(u=0,o=o0;ue;--i)n[i]|=~~t[i-e-1]>>>o,n[i-1]=t[i-e-1]<>5,n.e-=r,!rj(n.b,n.e,n.b,r,31&t)&&i<0){for(e=0;e>19,r=~~t.h>>19,0==e?0!=r||n.h>t.h||n.h==t.h&&n.m>t.m||n.h==t.h&&n.m==t.m&&n.l>t.l:!(0==r||n.h>19,r=~~t.h>>19,0==e?0!=r||n.h>t.h||n.h==t.h&&n.m>t.m||n.h==t.h&&n.m==t.m&&n.l>=t.l:!(0==r||n.h-140737488355328&&n<0x800000000000?0==n?0:((t=n<0)&&(n=-n),e=eb(nH(Math.log(n)/.6931471805599453)),(!t||n!=Math.pow(2,e))&&++e,e):e6(it(n))}function rQ(n,t){var e,r;return(e=n._(),r=t._(),0==e.r())?r:0==r.r()?e:(1==e.e||2==e.e&&e.b[1]>0)&&(1==r.e||2==r.e&&r.b[1]>0)?e3(rU(eL(e),eL(r))):function(n,t){var e,r,i;e=n.bb(),r=t.bb(),rD(n,e),rD(t,r),1==rc(n,t)&&(i=n,n=t,t=i);do{if(1==t.e||2==t.e&&t.b[1]>0){t=e3(rU(eL(n),eL(t)));break}if(t.e>1.2*n.e)0!=(t=rK(t,n)).r()&&rD(t,t.bb());else do tQ(t,n),rD(t,t.bb());while(rc(t,n)>=0)i=t,t=n,n=i}while(0!=i.f)return t.eb(e=r?eD(f,i):(rD(c,r-e0&&eD(f,i-r+e)),e+=i),0!=(i=e7(h,u))&&(eD(h,i),r>=e?eD(c,i):(rD(f,e-r0&&eD(c,i-e+r)),r+=i),s.r()==h.r()?e<=r?(rX(s,h),rX(f,c)):(rX(h,s),rX(c,f)):e<=r?(rZ(s,h),rZ(f,c)):(rZ(h,s),rZ(c,f)),0==h.r()||0==s.r())throw new ni(os);return ej(h,r)&&(f=c,h.r()!=s.r()&&(s=s.cb())),s.gb(u)&&(f=0>f.r()?f.cb():ip(t,f)),0>f.r()&&(f=iE(f,t)),f}(n,t);for(o=32*t.e,h=ev(t),b=ev(n),u=nv(b.e,h.e),c=new tb(1,1,t$(fx,{6:1},-1,u+1,1)),(s=new tb(1,1,t$(fx,{6:1},-1,u+1,1))).b[0]=1,e=0,r=h.bb(),i=b.bb(),r>i?(rD(h,r),rD(b,i),eD(c,i),e+=r-i):(rD(h,r),rD(b,i),eD(s,r),e+=i-r),c.f=1;b.r()>0;){for(;rc(h,b)>0;)tQ(h,b),a=h.bb(),rD(h,a),eO(c,s),eD(s,a),e+=a;for(;0>=rc(h,b)&&(tQ(b,h),0!=b.r());)a=b.bb(),rD(b,a),eO(s,c),eD(c,a),e+=a}if(!(1==h.e&&1==h.b[0]))throw new ni(os);return rc(c,t)>=0&&tQ(c,t),c=ip(t,c),f=rg(t),e>o&&(c=eW(c,(r4(),uR),t,f),e-=o),c=eW(c,rr(o-e),t,f)}(es(n._(),t),t)).f)throw new ni(os);return n.f<0?ip(t,e):e}function rj(n,t,e,r,i){var o,u,f;for(u=0,o=!0;u>>i|e[u+r+1]<>>i,++u}return o}function rF(n,t){var e;return(e=n.f+t.f,0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)?e$(e):n.b+t.b<54?new th(n.g*t.g,e2(e)):new tR(ec((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),e2(e))}function rH(n,t){var e;if(t<0)throw new ni("Negative exponent");if(0==t)return uR;if(1==t||n.eQ(uR)||n.eQ(uk))return n;if(!n.gb(0)){for(e=1;!n.gb(e);)++e;return ec(rr(e*t),n.fb(e).db(t))}return function(n,t){var e,r;for(im(),r4(),r=uR,e=n;t>1;t>>=1)(1&t)!=0&&(r=ec(r,e)),e=1==e.e?ec(e,e):new ri(ig(e.b,e.e,t$(fx,{6:1},-1,e.e<<1,1)));return ec(r,e)}(n,t)}function r$(n,t){var e,r,i;return(t&=63)<22?(e=n.l<>22-t,i=n.h<>22-t):t<44?(e=0,r=n.l<>44-t):(e=0,r=0,i=n.l<>>t,i=~~n.m>>t|e<<22-t,r=~~n.l>>t|n.m<<22-t):t<44?(o=0,i=~~e>>>t-22,r=~~n.m>>t-22|n.h<<44-t):(o=0,i=0,r=~~e>>>t-44),tN(4194303&r,4194303&i,1048575&o)}function rq(n){switch(ik(),n){case 2:return u6;case 1:return u5;case 3:return u9;case 5:return u7;case 6:return u8;case 4:return fn;case 7:return ft;case 0:return fe;default:throw new nu("Invalid rounding mode")}}function rG(n,t){var e,r,i;if(0==t)return(1&n.b[0])!=0;if(t<0)throw new ni(om);if((i=~~t>>5)>=n.e)return n.f<0;if(e=n.b[i],t=1<<(31&t),n.f<0){if(r=eC(n),i0||(t=1,e=1,n.b<54?(n.b>=1&&(e=n.g),t+=Math.log(e<=0?0-e:e)*Math.LOG10E):(t+=(n.b-1)*.3010299956639812,0!=i_((n.d||(n.d=eV(n.g)),n.d),iA(t)).r()&&++t),n.e=eb(t)),n.e}function rJ(){rJ=g,uq=new e4(34,(ik(),u8)),uG=new e4(7,u8),uz=new e4(16,u8),uJ=new e4(0,fn),uK=t2(f6,{6:1},-1,[112,114,101,99,105,115,105,111,110,61]),uW=t2(f6,{6:1},-1,[114,111,117,110,100,105,110,103,77,111,100,101,61])}function rK(n,t){var e,r,i,o;if(0==t.f)throw new ni(oc);return((o=n.e)!=(e=t.e)?o>e?1:-1:eU(n.b,t.b,o))==-1?n:(r=t$(fx,{6:1},-1,e,1),1==e?r[0]=rn(n.b,o,t.b[0]):r=iH(null,o-e+1,n.b,o,t.b,e),i=new tb(n.f,e,r),t3(i),i)}function rW(n){var t,e,r;return n<0?0:0==n?32:(e=16-(t=~~(r=-(~~n>>16))>>16&16),e+=t=~~(r=(n=~~n>>t)-256)>>16&8,n<<=t,e+=t=~~(r=n-4096)>>16&4,n<<=t,e+=t=~~(r=n-16384)>>16&2,n<<=t,e+2-(t=(r=~~n>>14)&~(~~r>>1)))}function rZ(n,t){if(0==n.f)iD(t.b,0,n.b,0,t.e);else{if(0==t.f)return;n.f==t.f?iv(n.b,n.b,n.e,t.b,t.e):rm(n.b,t.b,n.e,t.e)>0?rI(n.b,n.b,n.e,t.b,t.e):(io(n.b,n.b,n.e,t.b,t.e),n.f=-n.f)}n.e=nv(n.e,t.e)+1,t3(n),n.c=-2}function rX(n,t){var e;e=rc(n,t),0==n.f?(iD(t.b,0,n.b,0,t.e),n.f=-t.f):n.f!=t.f?(iv(n.b,n.b,n.e,t.b,t.e),n.f=e):rm(n.b,t.b,n.e,t.e)>0?rI(n.b,n.b,n.e,t.b,t.e):(io(n.b,n.b,n.e,t.b,t.e),n.f=-n.f),n.e=nv(n.e,t.e)+1,t3(n),n.c=-2}function rY(n,t,e){var r,i,o,u,f,c,s,a,h,b;if(e.f<=0)throw new ni(oa);return(r=n,(1==e.e&&1==e.b[0])|t.f>0&0==r.f)?uk:0==r.f&&0==t.f?uR:(t.f<0&&(r=rT(n,e),t=t.cb()),i=e.gb(0)?rd(r._(),t,e):(o=r._(),u=t,f=e.bb(),a=rd(o,u,c=e.fb(f)),h=function(n,t,e){var r,i,o,u,f;for(r4(),u=uR,i=ev(t),r=ev(n),n.gb(0)&&ek(i,e-1),ek(r,e),o=i.ab()-1;o>=0;--o)f=ev(u),ek(f,e),u=ec(u,f),(i.b[~~o>>5]&1<<(31&o))!=0&&(u=ec(u,r),ek(u,e));return ek(u,e),u}(o,u,f),s=function(n,t){var e,r,i,o;for(e=1,(r=new ri(t$(fx,{6:1},-1,1<>5]&1<<(31&o))!=0&&(r.b[~~e>>5]|=1<<(31&e));return r}(c,f),b=ec(ip(h,a),s),ek(b,f),b.f<0&&(b=iE(b,rr(f))),iE(a,ec(c,b))),r.f<0&&t.gb(0)&&(i=es(ec(ip(e,uR),i),e)),i)}function r1(n,t){var e,r,i,o,u,f,c;if(i=eC(n),(r=eC(t))>=n.e)return r4(),uk;for(f=n.e,u=t$(fx,{6:1},-1,f,1),(e=i>r?i:r)==r&&(u[e]=-t.b[e]&n.b[e],++e),o=n_(t.e,n.e);e=t.e)for(;e0?t:0):t>=0?n.b<54?new th(n.g,e2(t)):new tR((n.d||(n.d=eV(n.g)),n.d),e2(t)):-t>t,o=~~n.m>>t|e<<22-t,i=~~n.l>>t|n.m<<22-t):t<44?(u=r?1048575:0,o=~~e>>t-22,i=~~n.m>>t-22|e<<44-t):(u=r?1048575:0,o=r?4194303:0,i=~~e>>t-44),tN(4194303&i,4194303&o,1048575&u)}function r4(){var n;for(n=0,r4=g,uR=new tZ(1,1),uD=new tZ(1,10),uk=new tZ(0,0),uE=new tZ(-1,1),uO=t2(cc,{6:1},17,[uk,uR,new tZ(1,2),new tZ(1,3),new tZ(1,4),new tZ(1,5),new tZ(1,6),new tZ(1,7),new tZ(1,8),new tZ(1,9),uD]),uL=t$(cc,{6:1},17,32,0);n=t.e)return t;if(r>=n.e)return n;if(u=n_(n.e,t.e),o=t$(fx,{6:1},-1,u,1),r==i)o[i]=-(-n.b[i]|-t.b[i]),e=i;else{for(e=r;e>5,t&=31,r>=n.e)return n.f<0?(r4(),uE):(r4(),uk);if(i=t$(fx,{6:1},-1,(o=n.e-r)+1,1),rj(i,o,n.b,r,t),n.f<0){for(e=0;e0&&n.b[e]<<32-t!=0){for(e=0;e0?r=0)return n;return 0!=e?e>0?rR(n,t,e):rR(t,n,-e):nv(n.b,t.b)+1<54?new th(n.g+t.g,n.f):new tO(iE((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),n.f)}function r8(n,t){var e,r,i,o,u;return r=tp(re(t),ue),rL(n,o0)?(o=iU(n,r,!1),u=tt(n,r)):(e=rV(n,1),i=re(~~t>>>1),o=iU(e,i,!1),u=tt(e,i),u=e5(r$(u,1),tp(n,o2)),(1&t)!=0&&(rk(o,u)?ny(e9(o,u),r)?(u=e5(u,e9(r,o)),o=e9(o,o2)):(u=e5(u,e9(r$(r,1),o)),o=e9(o,o4)):u=e9(u,o))),t_(r$(u,32),tp(o,ue))}function it(n){var t,e,r,i,o;return isNaN(n)?(eR(),uw):n<-0x8000000000000000?(eR(),ul):n>=0x7fffffffffffffff?(eR(),ub):(i=!1,n<0&&(i=!0,n=-n),r=0,n>=17592186044416&&(r=eb(n/17592186044416),n-=17592186044416*r),e=0,n>=4194304&&(e=eb(n/4194304),n-=4194304*e),t=eb(n),o=tN(t,e,r),i&&eG(o),o)}function ie(n){var t,e,r,i,o;if(0==n.l&&0==n.m&&0==n.h)return i4;if(524288==n.h&&0==n.m&&0==n.l)return"-9223372036854775808";if(~~n.h>>19!=0)return i0+ie(eq(n));for(e=n,r=iZ;!(0==e.l&&0==e.m&&0==e.h);){if(i=re(1e9),e=iU(e,i,!0),t=iZ+nE(uu),!(0==e.l&&0==e.m&&0==e.h))for(o=9-t.length;o>0;--o)t=i4+t;r=t+r}return r}function ir(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d,_,v,m,y,C,S,M,x;if(0==(i=t.f))throw new ni(oc);return(r=t.e,e=t.b,1==r)?(l=e[0],(S=n.b,M=n.e,x=n.f,1==M)?(g=tp(re(S[0]),ue),w=tp(re(l),ue),d=iU(g,w,!1),v=tt(g,w),x!=i&&(d=eq(d)),x<0&&(v=eq(v)),t2(cc,{6:1},17,[e3(d),e3(v)])):(_=t$(fx,{6:1},-1,M,1),m=t2(fx,{6:1},-1,[ib(_,S,M,l)]),y=new tb(x==i?1:-1,M,_),C=new tb(x,1,m),t3(y),t3(C),t2(cc,{6:1},17,[y,C]))):(a=n.b,((h=n.e)!=r?h>r?1:-1:eU(a,e,h))<0)?t2(cc,{6:1},17,[uk,n]):(b=n.f,o=t$(fx,{6:1},-1,u=h-r+1,1),f=iH(o,u,a,h,e,r),c=new tb(b==i?1:-1,u,o),s=new tb(b,r,f),t3(c),t3(s),t2(cc,{6:1},17,[c,s]))}function ii(n){var t;if(0==n.f||0==n.b&&-1!=n.g)return n.d||(n.d=eV(n.g)),n.d;if(n.f<0)return ec((n.d||(n.d=eV(n.g)),n.d),iA(-n.f));if(n.f>(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)||n.f>(n.d||(n.d=eV(n.g)),n.d).bb()||0!=(t=ir((n.d||(n.d=eV(n.g)),n.d),iA(n.f)))[1].r())throw new ni(oy);return t[0]}function io(n,t,e,r,i){var o,u;if(o=o0,e36)throw new nd("radix "+t+" out of range");for(e=(r=n.length)>0&&45==n.charCodeAt(0)?1:0;e2147483647)throw new nd(od+n+iY);return i}function ic(n){var t,e;if(0==n.f)return r4(),uE;if(eZ(n,(r4(),uE)))return uk;if(e=t$(fx,{6:1},-1,n.e+1,1),n.f>0){if(-1!=n.b[n.e-1])for(t=0;-1==n.b[t];++t);else{for(t=0;t0?0==t?0:t<0?-1:1:0;break;case 3:r=(0==t?0:t<0?-1:1)<0?0==t?0:t<0?-1:1:0;break;case 4:(t<0?-t:t)>=5&&(r=0==t?0:t<0?-1:1);break;case 5:(t<0?-t:t)>5&&(r=0==t?0:t<0?-1:1);break;case 6:(t<0?-t:t)+n>5&&(r=0==t?0:t<0?-1:1)}return r}function ia(n,t){var e,r,i,o,u,f,c,s,a;if(s=0==n.f?1:n.f,u=~~t>>5,e=31&t,c=nv(u+1,n.e)+1,f=t$(fx,{6:1},-1,c,1),r=1<=n.e)f[u]=r;else if(i=eC(n),u>i)f[u]^=r;else if(u=0||0==s.f||1==s.e&&1==s.b[0])if(!(1==(a=rY(s,f,n)).e&&1==a.b[0]||a.eQ(u))){for(i=1;i=0;--f)a=t_(r$(s,32),tp(re(t[f]),ue)),rL(a,o0)?(c=iU(a,o,!1),s=tt(a,o)):(i=rV(a,1),u=re(~~r>>>1),c=iU(i,u,!1),s=tt(i,u),s=e5(r$(s,1),tp(a,o2)),(1&r)!=0&&(rk(c,s)?ny(e9(c,s),o)?(s=e5(s,e9(o,c)),c=e9(c,o2)):(s=e5(s,e9(r$(o,1),c)),c=e9(c,o4)):s=e9(s,c))),n[f]=nE(tp(c,ue));return nE(s)}function il(n,t){var e,r,i,o,u,f,c;if(f=nv(n.e,t.e),u=t$(fx,{6:1},-1,f,1),i=eC(n),e=r=eC(t),i==r)u[r]=-n.b[r]^-t.b[r];else{for(u[r]=-t.b[r],o=n_(t.e,i),++e;et.g?1:0:(r=n.f-t.f,(e=(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)-(t.e>0?t.e:nH((t.b-1)*.3010299956639812)+1))>r+1)?i:e0&&(u=ec(u,iA(r))),rc(o,u))}function id(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d;if(o=t.b,!((n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)-o<0||0==o||(r=n.q()-o)<=0)){if(n.b<54){c=n,s=t,a=r,w=it(um[a]),g=e9(it(c.f),re(a)),d=it(c.g),l=iU(d,w,!1),b=tt(d,w),tA(b,o0)&&(h=tB(e9(r$(nm(b,o0)?eq(b):b,1),w),o0)?0:nm(e9(r$(nm(b,o0)?eq(b):b,1),w),o0)?-1:1,l=e5(l,re(is(1&nE(l),(tB(b,o0)?0:nm(b,o0)?-1:1)*(5+h),s.c))),tf(rh(nm(l,o0)?eq(l):l))>=s.b&&(l=nV(l,o6),g=e9(g,o2))),c.f=e2(rh(g)),c.e=s.b,c.g=rh(l),c.b=e6(l),c.d=null;return}f=iA(r),i=ir((n.d||(n.d=eV(n.g)),n.d),f),u=n.f-r,0!=i[1].r()&&(e=rc(eK(i[1]._()),f),0!=(e=is(i[0].gb(0)?1:0,i[1].r()*(5+e),t.c))&&rf(i,0,iE(i[0],e3(re(e)))),new nj(i[0]).q()>o&&(rf(i,0,i_(i[0],(r4(),uD))),--u)),n.f=e2(u),n.e=o,tT(n,i[0])}}function ip(n,t){var e,r,i,o,u,f,c,s,a,h;if(u=n.f,0==(c=t.f))return n;if(0==u)return t.cb();if((o=n.e)+(f=t.e)==2)return e=tp(re(n.b[0]),ue),r=tp(re(t.b[0]),ue),u<0&&(e=eq(e)),c<0&&(r=eq(r)),e3(e9(e,r));if(-1==(i=o!=f?o>f?1:-1:eU(n.b,t.b,o)))h=-c,a=u==c?t0(t.b,f,n.b,o):ee(t.b,f,n.b,o);else if(h=u,u==c){if(0==i)return r4(),uk;a=t0(n.b,o,t.b,f)}else a=ee(n.b,o,t.b,f);return s=new tb(h,a.length,a),t3(s),s}function i_(n,t){var e,r,i,o,u,f,c,s,a;if(0==t.f)throw new ni(oc);return(i=t.f,1==t.e&&1==t.b[0])?t.f>0?n:n.cb():(s=n.f,(c=n.e)+(r=t.e)==2)?(a=nV(tp(re(n.b[0]),ue),tp(re(t.b[0]),ue)),s!=i&&(a=eq(a)),e3(a)):0==(e=c!=r?c>r?1:-1:eU(n.b,t.b,c))?s==i?uR:uE:-1==e?uk:(o=t$(fx,{6:1},-1,u=c-r+1,1),1==r?ib(o,n.b,c,t.b[0]):iH(o,u,n.b,c,t.b,r),f=new tb(s==i?1:-1,u,o),t3(f),f)}function iv(n,t,e,r,i){var o,u;if(o=e5(tp(re(t[0]),ue),tp(re(r[0]),ue)),n[0]=nE(o),o=r2(o,32),e>=i){for(u=1;u0){if(i0?u=tq(u,eb(i)):i<0&&(o=tq(o,eb(-i))),iS(o,u,e,r)}function iC(n,t){var e,r,i,o,u,f,c;if(r=eC(t),(i=eC(n))>=t.e)return t;if(f=t.e,u=t$(fx,{6:1},-1,f,1),rt.ab()?(c=eL(s),o=eL(t),i=tB(e9(r$(nm(c,o0)?eq(c):c,1),nm(o,o0)?eq(o):o),o0)?0:nm(e9(r$(nm(c,o0)?eq(c):c,1),nm(o,o0)?eq(o):o),o0)?-1:1,i=is(f.gb(0)?1:0,a*(5+i),r)):(i=rc(eK(s._()),t._()),i=is(f.gb(0)?1:0,a*(5+i),r)),0!=i){if(54>f.ab())return eH(e5(eL(f),re(i)),e);f=iE(f,e3(re(i)))}return new tR(f,e)}function iM(n){var t,e,r,i,o,u;return null!=n.i?n.i:n.b<32?(n.i=function(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d,_,v,m;if(iO(),(u=nm(n,o0))&&(n=eq(n)),tB(n,o0))switch(t){case 0:return i4;case 1:return i6;case 2:return i5;case 3:return i9;case 4:return i7;case 5:return i8;case 6:return on;default:return s=new W,t<0?s.b.b+=oe:s.b.b+=ot,b=s.b,l=-2147483648==t?"2147483648":iZ+-t,b.b+=l,s.b.b}c=t$(f6,{6:1},-1,19,1),e=18,h=n;do f=h,h=nV(h,o6),c[--e]=65535&nE(e5(o7,e9(f,iQ(h,o6))));while(tA(h,o0))if(r=e9(e9(e9(o9,re(e)),re(t)),o2),0==t)return u&&(c[--e]=45),tV(c,e,18-e);if(t>0&&rL(r,oY)){if(rL(r,o0)){for(o=17,i=e+nE(r);o>=i;--o)c[o+1]=c[o];return c[++i]=46,u&&(c[--e]=45),tV(c,e,18-e+1)}for(o=2;nm(re(o),e5(eq(r),o2));++o)c[--e]=48;return c[--e]=46,c[--e]=48,u&&(c[--e]=45),tV(c,e,18-e)}return(a=e+1,s=new Z,u&&(s.b.b+=i0),18-a>=1)?(tP(s,c[e]),s.b.b+=i2,g=s.b,w=tV(c,e+1,18-e-1),g.b+=w):(d=s.b,_=tV(c,e,18-e),d.b+=_),s.b.b+=ow,rk(r,o0)&&(s.b.b+=i1),v=s.b,m=iZ+ie(r),v.b+=m,s.b.b}(it(n.g),eb(n.f)),n.i):(i=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f)?i:(t=0>(n.d||(n.d=eV(n.g)),n.d).r()?2:1,e=i.length,r=-n.f+e-t,u=(o=new W).b,u.b+=i,n.f>0&&r>=-6?r>=0?ti(o,e-eb(n.f),i2):(ts(o.b,t-1,t-1,i3),ti(o,t+1,tV(up,0,-eb(r)-1))):(e-t>=1&&(ts(o.b,t,t,i2),++e),ts(o.b,e,e,ow),r>0&&ti(o,++e,i1),ti(o,++e,iZ+ie(it(r)))),n.i=o.b.b,n.i)}function ix(n,t){var e,r,i,o,u,f;if(i=eC(n),o=eC(t),i>=t.e)return n;if(r=o>i?o:i,0==(e=o>i?-t.b[r]&~n.b[r]:o0){i[o]=u;break}i[o]=u.substring(0,c.index),u=u.substring(c.index+c[0].length,u.length),r.lastIndex=0,f==u&&(i[o]=u.substring(0,1),u=u.substring(1)),f=u,o++}if(0==e&&n.length>0){for(var s=i.length;s>0&&i[s-1]==iZ;)--s;s1e6)throw new ni("power of ten too big");if(n<=2147483647)return uZ[1].db(t).eb(t);for(i=r=uZ[1].db(2147483647),e=it(n-2147483647),t=eb(n%2147483647);rk(e,ut);)i=ec(i,r),e=e9(e,ut);for(i=(i=ec(i,uZ[1].db(t))).eb(2147483647),e=it(n-2147483647);rk(e,ut);)i=i.eb(2147483647),e=e9(e,ut);return i.eb(t)}function iN(){var n,t,i;c&&rO("com.iriscouch.gwtapp.client.BigDecimalApp"),n4(new K),n6(new j),n3(new F),tF(new H),c&&rO("com.google.gwt.user.client.UserAgentAsserter"),t=r.userAgent.toLowerCase(),i=function(n){return 1e3*parseInt(n[1])+parseInt(n[2])},n=-1!=t.indexOf(oG)?oG:-1!=t.indexOf("webkit")||function(){if(-1!=t.indexOf("chromeframe"))return!0;if(typeof e.ActiveXObject!=oW)try{var n=new ActiveXObject("ChromeTab.ChromeFrame");if(n)return n.registerBhoIfNeeded(),!0}catch(r){}return!1}()?oJ:-1!=t.indexOf(oj)&&f.documentMode>=9?"ie9":-1!=t.indexOf(oj)&&f.documentMode>=8?"ie8":!function(){var n=/msie ([0-9]+)\.([0-9]+)/.exec(t);if(n&&3==n.length)return i(n)>=6e3}()?-1!=t.indexOf("gecko")?"gecko1_8":"unknown":"ie6",tJ(oJ,n)||u.alert("ERROR: Possible problem with your *.gwt.xml module file.\nThe compile time user.agent value (safari) does not match the runtime user.agent value ("+n+"). Expect more errors.\n"),c&&rO("com.google.gwt.user.client.DocumentModeAsserter"),function(){var n,t,e;for(e=0,t=f.compatMode,n=t2(fQ,{6:1},1,[ob]);e>5,this.b=t$(fx,{6:1},-1,this.e,1);c=2147483648&&(r-=4294967296),r));this.b[this.e-1]>>>=31&-n,t3(this)}}function iE(n,t){var e,r,i,o,u,f,c,s,a,h,b,l;if(u=n.f,c=t.f,0==u)return t;if(0==c)return n;if((o=n.e)+(f=t.e)==2)return(e=tp(re(n.b[0]),ue),r=tp(re(t.b[0]),ue),u==c)?(s=e5(e,r),l=nE(s),0==(b=nE(rV(s,32)))?new tZ(u,l):new tb(u,2,t2(fx,{6:1},-1,[l,b]))):e3(u<0?e9(r,e):e9(e,r));if(u==c)h=u,a=o>=f?ee(n.b,o,t.b,f):ee(t.b,f,n.b,o);else{if(0==(i=o!=f?o>f?1:-1:eU(n.b,t.b,o)))return r4(),uk;1==i?(h=u,a=t0(n.b,o,t.b,f)):(h=c,a=t0(t.b,f,n.b,o))}return s=new tb(h,a.length,a),t3(s),s}function iR(n){var t,e,r,i;if(rJ(),null==n)throw new nc("null string");if((t=er(n)).length<27||t.length>45)throw new nu(oO);for(r=0;rfs.length)throw new q;if(o=null,i=null,67==r[0]?(i=u6,o=fr):68==r[0]?(i=u5,o=fi):70==r[0]?(i=u9,o=fo):72==r[0]?e>6&&(68==r[5]?(i=u7,o=fu):69==r[5]?(i=u8,o=ff):85==r[5]&&(i=fn,o=fc)):85==r[0]&&(80==r[1]?(i=fe,o=fa):78==r[1]&&(i=ft,o=fs)),i&&e==o.length){for(t=1;tl||r+i>s)throw new G;if(((1&h.c)==0||(4&h.c)!=0)&&b!=c){if(a=tG(n,11),o=tG(e,11),nG(n)===nG(e)&&tr;)rf(o,f,a[--t]);else for(f=r+i;ra.r()&&(s=s.cb()),c=e2(e+(o>u?o:u)),s=(i=o-u)>0?(im(),i>19!=0&&(t=eq(t),c=!0),u=((b=(a=t).l)&b-1)!=0||((l=a.m)&l-1)!=0||((h=a.h)&h-1)!=0||0==h&&0==l&&0==b?-1:0==h&&0==l&&0!=b?ed(b):0==h&&0!=l&&0==b?ed(l)+22:0!=h&&0==l&&0==b?ed(h)+44:-1,o=!1,i=!1,r=!1,524288==n.h&&0==n.m&&0==n.l){if(i=!0,o=!0,-1!=u)return f=r2(n,u),c&&eG(f),e&&(uu=tN(0,0,0)),f;n=nq((eR(),ub)),r=!0,c=!c}else~~n.h>>19!=0&&(o=!0,n=eq(n),r=!0,c=!c);return -1!=u?(g=n,w=c,d=o,_=r2(g,u),w&&eG(_),e&&(v=g,u<=22?(m=v.l&(1<=0&&(!(!((w=(b=n).h-u.h)<0)&&(l=b.l-u.l,!((w+=~~(g=b.m-u.m+(~~l>>22))>>22)<0)&&(b.l=4194303&l,b.m=4194303&g,b.h=1048575&w,1)))||(c<22?f.l|=1<>>1,u.m=~~a>>>1|(1&h)<<21,u.l=~~s>>>1|(1&a)<<21,--c;return e&&eG(f),o&&(r?(uu=eq(n),i&&(uu=e9(uu,(eR(),ug)))):uu=tN(n.l,n.m,n.h)),f}(r?n:tN(n.l,n.m,n.h),t,c,o,i,e):(e&&(uu=o?eq(n):tN(n.l,n.m,n.h)),tN(0,0,0))}function iP(n){var t=[];for(var e in n){var r=typeof n[e];r!=oq?t[t.length]=r:n[e]instanceof Array?t[t.length]=oR:u&&u.bigdecimal&&u.bigdecimal.BigInteger&&n[e]instanceof u.bigdecimal.BigInteger?t[t.length]=of:u&&u.bigdecimal&&u.bigdecimal.BigDecimal&&n[e]instanceof u.bigdecimal.BigDecimal?t[t.length]=oi:u&&u.bigdecimal&&u.bigdecimal.RoundingMode&&n[e]instanceof u.bigdecimal.RoundingMode?t[t.length]=oC:u&&u.bigdecimal&&u.bigdecimal.MathContext&&n[e]instanceof u.bigdecimal.MathContext?t[t.length]=ov:t[t.length]=oq}return t.join(iX)}function iQ(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d,_,v,m,y,C,S,M,x,B,A,N,I;return e=8191&n.l,r=~~n.l>>13|(15&n.m)<<9,i=~~n.m>>4&8191,o=~~n.m>>17|(255&n.h)<<5,u=~~(1048320&n.h)>>8,f=8191&t.l,c=~~t.l>>13|(15&t.m)<<9,s=~~t.m>>4&8191,a=~~t.m>>17|(255&t.h)<<5,h=~~(1048320&t.h)>>8,x=e*f,B=r*f,A=i*f,N=o*f,I=u*f,0!=c&&(B+=e*c,A+=r*c,N+=i*c,I+=o*c),0!=s&&(A+=e*s,N+=r*s,I+=i*s),0!=a&&(N+=e*a,I+=r*a),0!=h&&(I+=e*h),b=(l=4194303&x)+(g=(511&B)<<13),w=(d=~~x>>22)+(_=~~B>>9)+(v=(262143&A)<<4)+(m=(31&N)<<17),y=(C=~~A>>18)+(S=~~N>>5)+(M=(4095&I)<<8),w+=~~b>>22,b&=4194303,y+=~~w>>22,tN(b,w&=4194303,y&=1048575)}function iT(n,t,e){var r,i,o,u,f,c,s,a;if(a=rh(e5(re(e.b),o4))+(t.e>0?t.e:nH((t.b-1)*.3010299956639812)+1)-(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1),c=i=n.f-t.f,o=1,f=uA.length-1,s=t2(cc,{6:1},17,[(n.d||(n.d=eV(n.g)),n.d)]),0==e.b||0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)return iL(n,t);if(a>0&&(rf(s,0,ec((n.d||(n.d=eV(n.g)),n.d),iA(a))),c+=a),u=(s=ir(s[0],(t.d||(t.d=eV(t.g)),t.d)))[0],0!=s[1].r())r=rc(eK(s[1]),(t.d||(t.d=eV(t.g)),t.d)),u=iE(ec(u,(r4(),uD)),e3(re(s[0].r()*(5+r)))),++c;else for(;!u.gb(0);)if(0==(s=ir(u,uA[o]))[1].r()&&c-o>=i)c-=o,o=0)return n;return 0==e?nv(n.b,t.b)+1<54?new th(n.g-t.g,n.f):new tO(ip((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d)),n.f):e>0?e0?t.e:nH((t.b-1)*.3010299956639812)+1)+o>(n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)+1||0==n.b&&-1!=n.g)r4(),r=uk;else if(0==o)r=i_((n.d||(n.d=eV(n.g)),n.d),(t.d||(t.d=eV(t.g)),t.d));else if(o>0)u=iA(o),r=i_((n.d||(n.d=eV(n.g)),n.d),ec((t.d||(t.d=eV(t.g)),t.d),u)),r=ec(r,u);else{for(u=iA(-o),r=i_(ec((n.d||(n.d=eV(n.g)),n.d),u),(t.d||(t.d=eV(t.g)),t.d));!r.gb(0);)if(0==(f=ir(r,uA[e]))[1].r()&&c-e>=o)c-=e,e=0;){if(w[h]==c)s=-1;else if(_=e5(r$(tp(re(w[h]),ue),32),tp(re(w[h-1]),ue)),y=r8(_,c),s=nE(y),m=nE(r2(y,32)),0!=s){v=!1,++s;do{if(--s,v)break;l=iQ(tp(re(s),ue),tp(re(d[o-2]),ue)),C=e5(r$(re(m),32),tp(re(w[h-2]),ue)),g=e5(tp(re(m),ue),tp(re(c),ue)),32>rW(nE(rV(g,32)))?v=!0:m=nE(g)}while(rk(tv(l,oZ),tv(C,oZ)))}if(0!=s&&0!=function(n,t,e,r,i){var o,u,f;for(f=0,o=o0,u=o0;f0)rf(b,0,i_((n.d||(n.d=eV(n.g)),n.d),ec((t.d||(t.d=eV(t.g)),t.d),iA(o)))),h=o<(a-l+1>0?a-l+1:0)?o:a-l+1>0?a-l+1:0,rf(b,0,ec(b[0],iA(h)));else if(u=-o<(a-i>0?a-i:0)?-o:a-i>0?a-i:0,b=ir(ec((n.d||(n.d=eV(n.g)),n.d),iA(u)),(t.d||(t.d=eV(t.g)),t.d)),h+=u,u=-h,0!=b[1].r()&&u>0&&(0==(r=new nj(b[1]).q()+u-t.q())&&(rf(b,1,i_(ec(b[1],iA(u)),(t.d||(t.d=eV(t.g)),t.d))),r=np(b[1].r())),r>0))throw new ni(og);if(0==b[0].r())return e$(o);for(w=b[0],g=(c=new nj(b[0])).q(),f=1;!w.gb(0);)if(0==(b=ir(w,uA[f]))[1].r()&&(g-f>=a||h-f>=o))g-=f,h-=f,fa)throw new ni(og);return c.f=e2(h),tT(c,w),c}function iz(){var n;for(n=0,iz=g,u0=t2(fx,{6:1},-1,[0,0,1854,1233,927,747,627,543,480,431,393,361,335,314,295,279,265,253,242,232,223,216,181,169,158,150,145,140,136,132,127,123,119,114,110,105,101,96,92,87,83,78,73,69,64,59,54,49,44,38,32,26,1]),u4=t2(fx,{6:1},-1,[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021]),u2=t$(cc,{6:1},17,u4.length,0);n=0;--c)w=function(n){var t,e,r;return rL(n,o0)?(e=nV(n,un),r=tt(n,un)):(t=rV(n,1),e=nV(t,o8),r=tt(t,o8),r=e5(r$(r,1),tp(n,o2))),t_(r$(r,32),tp(e,ue))}(e5(r$(y,32),tp(re(M[c]),ue))),M[c]=nE(w),y=re(nE(r2(w,32)));d=nE(y),g=e;do v[--e]=48+d%10&65535;while(0!=(d=~~(d/10))&&0!=e)for(f=0,r=9-g+e;f0;++f)v[--e]=48;for(a=x-1;0==M[a];--a)if(0==a)break n;x=a+1}for(;48==v[e];)++e}if(h=C<0,o=_-e-t-1,0==t)return h&&(v[--e]=45),tV(v,e,_-e);if(t>0&&o>=-6){if(o>=0){for(s=e+o,a=_-1;a>=s;--a)v[a+1]=v[a];return v[++s]=46,h&&(v[--e]=45),tV(v,e,_-e+1)}for(a=2;a<-o+1;++a)v[--e]=48;return v[--e]=46,v[--e]=48,h&&(v[--e]=45),tV(v,e,_-e)}return(S=e+1,m=new Z,h&&(m.b.b+=i0),_-S>=1)?(tP(m,v[e]),m.b.b+=i2,I=m.b,E=tV(v,e+1,_-e-1),I.b+=E):(R=m.b,O=tV(v,e,_-e),R.b+=O),m.b.b+=ow,o>0&&(m.b.b+=i1),D=m.b,k=iZ+o,D.b+=k,m.b.b}c&&c({moduleName:"gwtapp",sessionId:s,subSystem:"startup",evtGroup:"moduleStartup",millis:new Date().getTime(),type:"moduleEvalStart"});var iK,iW,iZ="",iX=" ",iY='"',i1="+",i0="-",i2=".",i4="0",i3="0.",i6="0.0",i5="0.00",i9="0.000",i7="0.0000",i8="0.00000",on="0.000000",ot="0E",oe="0E+",or=":",oi="BigDecimal",oo="BigDecimal MathContext",ou="BigDecimal;",of="BigInteger",oc="BigInteger divide by zero",os="BigInteger not invertible.",oa="BigInteger: modulus not positive",oh="BigInteger;",ob="CSS1Compat",ol="Division by zero",og="Division impossible",ow="E",od='For input string: "',op="Infinite or NaN",o_="Invalid Operation",ov="MathContext",om="Negative bit address",oy="Rounding necessary",oC="RoundingMode",oS="RoundingMode;",oM="String",ox="[Lcom.iriscouch.gwtapp.client.",oB="[Ljava.lang.",oA="[Ljava.math.",oN="\\.",oI="__gwtex_wrap",oE="anonymous",oR="array",oO="bad string format",oD="bigdecimal",ok="com.google.gwt.core.client.",oL="com.google.gwt.core.client.impl.",oU="com.iriscouch.gwtapp.client.",oP="java.lang.",oQ="java.math.",oT="java.util.",oj="msie",oF="null",oH="number",o$="number MathContext",oV="number number",oq="object",oG="opera",oz="org.timepedia.exporter.client.",oJ="safari",oK="string",oW="undefined",oZ={l:0,m:0,h:524288},oX={l:0,m:4193280,h:1048575},oY={l:4194298,m:4194303,h:1048575},o1={l:4194303,m:4194303,h:1048575},o0={l:0,m:0,h:0},o2={l:1,m:0,h:0},o4={l:2,m:0,h:0},o3={l:5,m:0,h:0},o6={l:10,m:0,h:0},o5={l:11,m:0,h:0},o9={l:18,m:0,h:0},o7={l:48,m:0,h:0},o8={l:877824,m:119,h:0},un={l:1755648,m:238,h:0},ut={l:4194303,m:511,h:0},ue={l:4194303,m:1023,h:0},ur={l:0,m:1024,h:0};(iW=a.prototype={}).eQ=function(n){return this===n},iW.gC=function(){return fd},iW.hC=function(){return nz(this)},iW.tS=function(){return this.gC().d+"@"+function(n){var t,e;if(t=t$(f6,{6:1},-1,8,1),rB(),e=7,n>=0)for(;n>15;)t[e--]=uT[15&n],n>>=4;else for(;e>0;)t[e--]=uT[15&n],n>>=4;return t[e]=uT[15&n],et(t,e,8)}(this.hC())},iW.toString=function(){return this.tS()},iW.tM=g,iW.cM={},(iW=h.prototype=new a).gC=function(){return f_},iW.j=function(){return this.f},iW.tS=function(){var n,t;return n=this.gC().d,null!=(t=this.j())?n+": "+t:n},iW.cM={6:1,15:1},iW.f=null,(iW=b.prototype=new h).gC=function(){return fv},iW.cM={6:1,15:1},(iW=nr.prototype=l.prototype=new b).gC=function(){return fm},iW.cM={6:1,12:1,15:1},(iW=n9.prototype=(function(){}).prototype=new l).gC=function(){return fy},iW.j=function(){var n,t,e,r,i;return null==this.d&&(this.e=null==(e=this.c)?oF:tc(e)?null==(r=eo(e))?null:r.name:nY(e,1)?oM:(nJ(e)?e.gC():fC).d,this.b=tc(n=this.c)?null==(i=eo(n))?null:i.message:n+iZ,this.d="("+this.e+"): "+this.b+(tc(t=this.c)?function(n){var t=iZ;try{for(var e in n)if("name"!=e&&"message"!=e&&"toString"!=e)try{t+="\n "+e+": "+n[e]}catch(r){}}catch(i){}return t}(eo(t)):iZ)),this.d},iW.cM={6:1,12:1,15:1},iW.b=null,iW.c=null,iW.d=null,iW.e=null,(iW=w.prototype=new a).gC=function(){return fS};var ui=0,uo=0;(iW=d.prototype=(function(){}).prototype=new w).gC=function(){return fI},iW.b=null,iW.c=null,(iW=_.prototype=v.prototype=new a).k=function(){for(var n={},t=[],e=arguments.callee.caller.caller;e;){var r,i,o=this.n(e.toString());t.push(o);var u=or+o,f=n[u];if(f){for(r=0,i=f.length;r0?i:oE},iW.gC=function(){return fE},iW.o=function(n){return[]},(iW=m.prototype=new v).k=function(){return ty(this.o(tS()),this.p())},iW.gC=function(){return fD},iW.o=function(n){return eT(this,n)},iW.p=function(){return 2},(iW=y.prototype=(function(){}).prototype=new m).k=function(){return ep(this)},iW.n=function(n){var t,e;return 0==n.length||(0==(e=ro(n)).indexOf("at ")&&(e=tu(e,3)),-1==(t=e.indexOf("["))&&(t=e.indexOf("(")),-1==t)?oE:(-1!=(t=(e=ro(e.substr(0,t-0))).indexOf("."))&&(e=tu(e,t+1)),e.length>0?e:oE)},iW.gC=function(){return fk},iW.o=function(n){return en(this,n)},iW.p=function(){return 3},(iW=C.prototype=new a).gC=function(){return fL},(iW=S.prototype=(function(){}).prototype=new C).gC=function(){return fU},iW.b=iZ,(iW=M.prototype=(function(){}).prototype=new a).gC=function(){return this.aC},iW.aC=null,iW.qI=0;var uu=null,uf=null;(iW=x.prototype=(function(){}).prototype=new a).gC=function(){return fT},iW.cM={2:1},(iW=B.prototype=new a).gC=function(){return fF},iW.cM={6:1,10:1};var uc=null;(iW=el.prototype=th.prototype=tO.prototype=tL.prototype=X.prototype=ex.prototype=eg.prototype=tk.prototype=tD.prototype=e0.prototype=n8.prototype=tn.prototype=ta.prototype=tR.prototype=nj.prototype=A.prototype=new B).eQ=function(n){return e8(this,n)},iW.gC=function(){return fH},iW.hC=function(){return rA(this)},iW.q=function(){return rz(this)},iW.r=function(){return eS(this)},iW.tS=function(){return iM(this)},iW.cM={6:1,8:1,10:1,16:1},iW.b=0,iW.c=0,iW.d=null,iW.e=0,iW.f=0,iW.g=0,iW.i=null;var us,ua,uh,ub,ul,ug,uw,ud,up,u_,uv,um,uy,uC,uS,uM,ux,uB=null,uA=null,uN=null;(iW=nF.prototype=nw.prototype=(function(){}).prototype=new A).s=function(n){var t,e,r;if((e=iP(n))==iZ)t=0>eS(this)?eM(this):this;else if(e==ov)t=0>(r=eu(this,new iR(n[0].toString()))).r()?eM(r):r;else throw new nr("Unknown call signature for interim = super.abs: "+e);return new nF(t)},iW.t=function(n){var t,e;if((e=iP(n))==oi)t=r7(this,new X(n[0].toString()));else if(e==oo)t=function(n,t,e){var r,i,o,u,f;if(r=n.f-t.f,0==t.b&&-1!=t.g||0==n.b&&-1!=n.g||0==e.b)return eu(r7(n,t),e);if((n.e>0?n.e:nH((n.b-1)*.3010299956639812)+1)0?t.e:nH((t.b-1)*.3010299956639812)+1)<-r-1))return eu(r7(n,t),e);i=n,u=t}return e.b>=(i.e>0?i.e:nH((i.b-1)*.3010299956639812)+1)?eu(r7(n,t),e):((o=i.r())==u.r()?f=iE(r3((i.d||(i.d=eV(i.g)),i.d),10),e3(re(o))):(f=ip((i.d||(i.d=eV(i.g)),i.d),e3(re(o))),f=iE(r3(f,10),e3(re(9*o)))),i=new tO(f,i.f+1),eu(i,e))}(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.add: "+e);return new nF(t)},iW.u=function(){return~~(nE(ef(this,8))<<24)>>24},iW.v=function(n){return iw(this,n)},iW.w=function(n){var t,e,r,i;if((i=iP(n))==oi)e=em(this,new X(n[0].toString()));else if(i==oo)e=ey(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.divideAndRemainder: "+i);for(t=0,r=t$(fV,{6:1},3,e.length,0);t129?n*=1/0:n=ei(iM(this)),n},iW.gC=function(){return f$},iW.hC=function(){return rA(this)},iW.B=function(){return this.f<=-32||this.f>(this.e>0?this.e:nH((this.b-1)*.3010299956639812)+1)?0:nI(new n7(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eV(this.g)),this.d):this.f<0?ec((this.d||(this.d=eV(this.g)),this.d),iA(-this.f)):i_((this.d||(this.d=eV(this.g)),this.d),iA(this.f))))},iW.C=function(){return nE(ef(this,32))},iW.D=function(){return nE(ef(this,32))},iW.E=function(){return ei(iM(this))},iW.F=function(n){return new nF(iw(this,n)>=0?this:n)},iW.G=function(n){return new nF(0>=iw(this,n)?this:n)},iW.H=function(n){return new nF(r0(this,this.f+n))},iW.I=function(n){return new nF(r0(this,this.f-n))},iW.J=function(n){var t,e;if((e=iP(n))==oi)t=rF(this,new X(n[0].toString()));else if(e==oo)t=tm(this,new X(n[0].toString()),new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.multiply: "+e);return new nF(t)},iW.K=function(n){var t,e;if((e=iP(n))==iZ)t=eM(this);else if(e==ov)t=eM(eu(this,new iR(n[0].toString())));else throw new nr("Unknown call signature for interim = super.negate: "+e);return new nF(t)},iW.L=function(n){var t,e;if((e=iP(n))==iZ)t=this;else if(e==ov)t=eu(this,new iR(n[0].toString()));else throw new nr("Unknown call signature for interim = super.plus: "+e);return new nF(t)},iW.M=function(n){var t,e;if((e=iP(n))==oH)t=rS(this,n[0]);else if(e==o$)t=function(n,t,e){var r,i,o,u,f,c;if(o=t<0?-t:t,u=e.b,i=eb(tf(o))+1,f=e,0==t||0==n.b&&-1!=n.g&&t>0)return rS(n,t);if(o>999999999||0==u&&t<0||u>0&&i>u)throw new ni(o_);for(u>0&&(f=new e4(u+i+1,e.c)),r=eu(n,f),c=~~function(n){var t;if(n<0)return -2147483648;if(0==n)return 0;for(t=1073741824;(t&n)==0;t>>=1);return t}(o)>>1;c>0;)r=tm(r,r,f),(o&c)==c&&(r=tm(r,n,f)),c>>=1;return t<0&&(r=iT(uC,r,f)),id(r,e),r}(this,n[0],new iR(n[1].toString()));else throw new nr("Unknown call signature for interim = super.pow: "+e);return new nF(t)},iW.q=function(){return rz(this)},iW.N=function(n){var t,e;if((e=iP(n))==oi)t=em(this,new X(n[0].toString()))[1];else if(e==oo)t=ey(this,new X(n[0].toString()),new iR(n[1].toString()))[1];else throw new nr("Unknown call signature for interim = super.remainder: "+e);return new nF(t)},iW.O=function(n){return new nF(eu(this,new iR(e_(n.b))))},iW.P=function(){return eb(this.f)},iW.Q=function(n){var t,e;return new nF((t=this,(e=t.f-n,t.b<54)?0==t.g?e$(e):new th(t.g,e2(e)):new tR((t.d||(t.d=eV(t.g)),t.d),e2(e))))},iW.R=function(n){var t,e;if((e=iP(n))==oH)t=r9(this,n[0],(ik(),ft));else if(e==oV)t=r9(this,n[0],rq(n[1]));else if("number RoundingMode"==e)t=r9(this,n[0],td(n[1].toString()));else throw new nr("Unknown call signature for interim = super.setScale: "+e);return new nF(t)},iW.S=function(){return~~(nE(ef(this,16))<<16)>>16},iW.r=function(){return eS(this)},iW.T=function(){return new nF(function(n){var t,e,r,i,o;if(t=1,e=uA.length-1,r=n.f,0==n.b&&-1!=n.g)return new X(i4);for(n.d||(n.d=eV(n.g)),o=n.d;!o.gb(0);)if(0==(i=ir(o,uA[t]))[1].r())r-=t,t0?i.e:nH((i.b-1)*.3010299956639812)+1)0?r.e:nH((r.b-1)*.3010299956639812)+1)?((s=eS(r))!=i.r()?c=iE(r3((r.d||(r.d=eV(r.g)),r.d),10),e3(re(s))):(c=ip((r.d||(r.d=eV(r.g)),r.d),e3(re(s))),c=iE(r3(c,10),e3(re(9*s)))),f=new tO(c,r.f+1),eu(f,o)):eu(ij(r,i),o);else throw new nr("Unknown call signature for interim = super.subtract: "+e);return new nF(t)},iW.V=function(){return new n7(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eV(this.g)),this.d):this.f<0?ec((this.d||(this.d=eV(this.g)),this.d),iA(-this.f)):i_((this.d||(this.d=eV(this.g)),this.d),iA(this.f)))},iW.W=function(){return new n7(ii(this))},iW.X=function(){return function(n){var t,e,r,i,o,u,f,c;if(u=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f)return u;if(t=0>(n.d||(n.d=eV(n.g)),n.d).r()?2:1,r=u.length,i=-n.f+r-t,c=new nZ(u),n.f>0&&i>=-6)i>=0?ti(c,r-eb(n.f),i2):(ts(c.b,t-1,t-1,i3),ti(c,t+1,tV(up,0,-eb(i)-1)));else{if(e=r-t,0!=(f=eb(i%3))&&(0==(n.d||(n.d=eV(n.g)),n.d).r()?i+=f=f<0?-f:3-f:(f=f<0?f+3:f,i-=f,t+=f),e<3))for(o=f-e;o>0;--o)ti(c,r++,i4);r-t>=1&&(ts(c.b,t,t,i2),++r),0!=i&&(ts(c.b,r,r,ow),i>0&&ti(c,++r,i1),ti(c,++r,iZ+ie(it(i))))}return c.b.b}(this)},iW.Y=function(){return function(n){var t,e,r,i;if(r=iJ((n.d||(n.d=eV(n.g)),n.d),0),0==n.f||0==n.b&&-1!=n.g&&n.f<0)return r;if(t=0>eS(n)?1:0,e=n.f,i=new Z(r.length+1+np(eb(n.f))),1==t&&(i.b.b+=i0),n.f>0){if((e-=r.length-t)>=0){for(i.b.b+=i3;e>up.length;e-=up.length)tY(i,up);tr(i,up,eb(e)),nL(i,tu(r,t))}else e=t-e,nL(i,to(r,t,eb(e))),i.b.b+=i2,nL(i,tu(r,eb(e)))}else{for(nL(i,tu(r,t));e<-up.length;e+=up.length)tY(i,up);tr(i,up,eb(-e))}return i.b.b}(this)},iW.tS=function(){return iM(this)},iW.Z=function(){return new nF(new th(1,this.f))},iW.$=function(){return new n7((this.d||(this.d=eV(this.g)),this.d))},iW.cM={3:1,6:1,8:1,10:1,16:1,24:1},(iW=H.prototype=(function(){}).prototype=new a).gC=function(){return fq};var uI=!1;(iW=rl.prototype=rb.prototype=tb.prototype=ri.prototype=tZ.prototype=r_.prototype=nX.prototype=iI.prototype=N.prototype=new B)._=function(){return this.f<0?new tb(1,this.e,this.b):this},iW.ab=function(){return eX(this)},iW.eQ=function(n){return eZ(this,n)},iW.gC=function(){return fG},iW.bb=function(){return t7(this)},iW.hC=function(){return eF(this)},iW.cb=function(){return 0==this.f?this:new tb(-this.f,this.e,this.b)},iW.db=function(n){return rH(this,n)},iW.eb=function(n){return t5(this,n)},iW.fb=function(n){return t9(this,n)},iW.r=function(){return this.f},iW.gb=function(n){return rG(this,n)},iW.tS=function(){return iJ(this,0)},iW.cM={6:1,8:1,10:1,17:1},iW.b=null,iW.c=-2,iW.d=0,iW.e=0,iW.f=0;var uE,uR,uO,uD,uk,uL=null;(iW=n7.prototype=nQ.prototype=nT.prototype=(function(){}).prototype=new N)._=function(){return new n7(this.f<0?new tb(1,this.e,this.b):this)},iW.hb=function(n){return new n7(iE(this,n))},iW.ib=function(n){return new n7(0==n.f||0==this.f?(r4(),uk):eZ(n,(r4(),uE))?this:eZ(this,uE)?n:this.f>0?n.f>0?function(n,t){var e,r,i,o;if(i=n_(n.e,t.e),(e=nv(eC(n),eC(t)))>=i)return r4(),uk;for(r=t$(fx,{6:1},-1,i,1);e0?r1(n,this):this.e>n.e?ix(this,n):ix(n,this))},iW.jb=function(n){return new n7(0==n.f?this:0==this.f?(r4(),uk):eZ(this,(r4(),uE))?new n7(ic(n)):eZ(n,uE)?uk:this.f>0?n.f>0?function(n,t){var e,r,i,o;for(i=t$(fx,{6:1},-1,n.e,1),r=n_(n.e,t.e),e=eC(n);e=n.e)return n;for(u=n_(n.e,t.e),o=t$(fx,{6:1},-1,u,1),e=i;e0?function(n,t){var e,r,i,o,u,f,c;if(i=eC(n),o=eC(t),i>=t.e)return n;if(c=nv(n.e,t.e),r=i,o>i){for(f=t$(fx,{6:1},-1,c,1),u=n_(n.e,o);r=t.e)return r4(),uk;if(f=t.e,u=t$(fx,{6:1},-1,f,1),e=i,i0)for(;e34028234663852886e22?1/0:t<-34028234663852886e22?-1/0:t},iW.qb=function(n){return new n7(rQ(this,n))},iW.gC=function(){return fz},iW.bb=function(){return t7(this)},iW.hC=function(){return eF(this)},iW.B=function(){return nI(this)},iW.rb=function(n){return function(n,t){var e,r;if(iz(),t<=0||1==n.e&&2==n.b[0])return!0;if(!rG(n,0))return!1;if(1==n.e&&(-1024&n.b[0])==0)return function(n,t){var e,r,i,o;for(r=0,e=n.length-1;r<=e;)if((o=n[i=r+(~~(e-r)>>1)])t))return i;e=i-1}return-r-1}(u4,n.b[0])>=0;for(r=1;r>1)?r:1+(~~(t-1)>>1))}(new n7(this.f<0?new tb(1,this.e,this.b):this),n)},iW.sb=function(){return ei(iJ(this,0))},iW.tb=function(n){return new n7(1==rc(this,n)?this:n)},iW.ub=function(n){return new n7(-1==rc(this,n)?this:n)},iW.vb=function(n){return new n7(es(this,n))},iW.wb=function(n){return new n7(rT(this,n))},iW.xb=function(n,t){return new n7(rY(this,n,t))},iW.yb=function(n){return new n7(ec(this,n))},iW.cb=function(){return new n7(0==this.f?this:new tb(-this.f,this.e,this.b))},iW.zb=function(){return new n7(function(n){if(n.f<0)throw new ni("start < 0: "+n);return function(n){var t,e,r,i,o,u,f,c;if(iz(),o=t$(fx,{6:1},-1,u4.length,1),r=t$(fN,{6:1},-1,1024,2),1==n.e&&n.b[0]>=0&&n.b[0]=u4[e];++e);return u2[e]}for(f=new tb(1,n.e,t$(fx,{6:1},-1,n.e+1,1)),iD(n.b,0,f.b,0,n.e),rG(n,0)?t4(f,2):f.b[0]|=1,i=f.ab(),t=2;i0?n.f>0?this.e>n.e?ry(this,n):ry(n,this):iC(this,n):n.f>0?iC(n,this):eC(n)>eC(this)?r6(n,this):r6(this,n))},iW.db=function(n){return new n7(rH(this,n))},iW.Cb=function(n){return new n7(rK(this,n))},iW.Db=function(n){return new n7(rG(this,n)?this:ia(this,n))},iW.eb=function(n){return new n7(t5(this,n))},iW.fb=function(n){return new n7(t9(this,n))},iW.r=function(){return this.f},iW.Eb=function(n){return new n7(ip(this,n))},iW.gb=function(n){return rG(this,n)},iW.Fb=function(n){var t,e;if((e=iP(n))==iZ)t=iJ(this,0);else if(e==oH)t=function(n,t){var e,r,i,o,u,f,c,s,a,h,b,l,g,w,d,_;if(iO(),g=n.f,s=n.e,u=n.b,0==g)return i4;if(1==s)return _=tp(re(u[0]),ue),g<0&&(_=eq(_)),function(n,t){var e,r,i;if(10==t||t<2||t>36)return iZ+ie(n);if(e=t$(f6,{6:1},-1,65,1),rB(),r=64,i=re(t),rL(n,o0)){for(;rL(n,i);)e[r--]=uT[nE(tt(n,i))],n=iU(n,i,!1);e[r]=uT[nE(n)]}else{for(;ny(n,eq(i));)e[r--]=uT[nE(eq(tt(n,i)))],n=iU(n,i,!1);e[r--]=uT[nE(eq(n))],e[r]=45}return et(e,r,65)}(_,t);if(10==t||t<2||t>36)return iJ(n,0);if(b=eb(eX(new n7(n.f<0?new tb(1,n.e,n.b):n))/(Math.log(t)/Math.log(2))+(g<0?1:0))+1,l=t$(f6,{6:1},-1,b,1),i=b,16!=t)for(w=t$(fx,{6:1},-1,s,1),iD(u,0,w,0,s),d=s,r=uV[t],e=u$[t-2];;){h=ib(w,w,d,e),a=i;do l[--i]=eA(h%t,t);while(0!=(h=~~(h/t))&&0!=i)for(f=0,o=r-a+i;f0;++f)l[--i]=48;for(f=d-1;f>0&&0==w[f];--f);if(1==(d=f+1)&&0==w[0])break}else for(f=0;f0;++c)h=~~u[f]>>(c<<2)&15,l[--i]=eA(h,16);for(;48==l[i];)++i;return -1==g&&(l[--i]=45),tV(l,i,b-i)}(this,n[0]);else throw new nr("Unknown call signature for result = super.toString: "+e);return t},iW.Gb=function(n){return new n7(0==n.f?this:0==this.f?n:eZ(n,(r4(),uE))?new n7(ic(this)):eZ(this,uE)?new n7(ic(n)):this.f>0?n.f>0?this.e>n.e?rC(this,n):rC(n,this):i$(this,n):n.f>0?i$(n,this):eC(n)>eC(this)?il(n,this):il(this,n))},iW.cM={4:1,6:1,8:1,10:1,17:1,24:1},(iW=F.prototype=(function(){}).prototype=new a).gC=function(){return fK};var uU=!1;(iW=nC.prototype=nS.prototype=(function(){}).prototype=new a).gC=function(){return fW},iW.Hb=function(){return this.b.b},iW.Ib=function(){return new nn(this.b.c)},iW.hC=function(){return nN(this.b)},iW.tS=function(){return e_(this.b)},iW.cM={24:1},iW.b=null,(iW=j.prototype=(function(){}).prototype=new a).gC=function(){return fZ};var uP=!1;(iW=nn.prototype=nM.prototype=(function(){}).prototype=new a).gC=function(){return fX},iW.Jb=function(){return this.b.b},iW.tS=function(){return this.b.b},iW.cM={5:1,24:1},iW.b=null,(iW=K.prototype=(function(){}).prototype=new a).gC=function(){return f1};var uQ=!1;(iW=ni.prototype=(function(){}).prototype=new l).gC=function(){return f0},iW.cM={6:1,12:1,15:1},(iW=no.prototype=V.prototype=(function(){}).prototype=new l).gC=function(){return f4},iW.cM={6:1,12:1,15:1},(iW=I.prototype=(function(){}).prototype=new a).gC=function(){return f5},iW.tS=function(){return((2&this.c)!=0?"interface ":(1&this.c)!=0?iZ:"class ")+this.d},iW.b=null,iW.c=0,iW.d=null,(iW=$.prototype=(function(){}).prototype=new l).gC=function(){return f9},iW.cM={6:1,12:1,15:1},(iW=E.prototype=new a).eQ=function(n){return this===n},iW.gC=function(){return fp},iW.hC=function(){return nz(this)},iW.tS=function(){return this.b},iW.cM={6:1,8:1,9:1},iW.b=null,iW.c=0,(iW=nu.prototype=q.prototype=R.prototype=new l).gC=function(){return f7},iW.cM={6:1,12:1,15:1},(iW=nf.prototype=G.prototype=O.prototype=new l).gC=function(){return f2},iW.cM={6:1,12:1,15:1},(iW=nc.prototype=z.prototype=(function(){}).prototype=new l).gC=function(){return f8},iW.cM={6:1,12:1,15:1},(iW=nd.prototype=(function(){}).prototype=new R).gC=function(){return cn},iW.cM={6:1,12:1,15:1},(iW=tl.prototype=(function(){}).prototype=new a).gC=function(){return fR},iW.tS=function(){return this.b+i2+this.d+"(Unknown Source"+(this.c>=0?or+this.c:iZ)+")"},iW.cM={6:1,13:1},iW.b=null,iW.c=0,iW.d=null,(iW=String.prototype).eQ=function(n){return tJ(this,n)},iW.gC=function(){return fP},iW.hC=function(){var n,t;return n0(),null!=(t=uF[n=or+this])?t:(null==(t=uj[n])&&(t=function(n){var t,e,r,i;for(t=0,i=(r=n.length)-4,e=0;e (wh = window.innerHeight || win.height()) && ww - wh > 50, initial_orientation_is_default = portrait_map[window.orientation], (initial_orientation_is_landscape && initial_orientation_is_default || !initial_orientation_is_landscape && !initial_orientation_is_default) && (portrait_map = { + $.support.orientation && (ww = window.innerWidth || win.width(), wh = window.innerHeight || win.height(), initial_orientation_is_landscape = ww > wh && ww - wh > 50, initial_orientation_is_default = portrait_map[window.orientation], (initial_orientation_is_landscape && initial_orientation_is_default || !initial_orientation_is_landscape && !initial_orientation_is_default) && (portrait_map = { "-90": !0, 90: !0 })), $.event.special.orientationchange = $.extend({}, $.event.special.orientationchange, { diff --git a/crates/swc_ecma_minifier/tests/projects/output/react-17.0.1.js b/crates/swc_ecma_minifier/tests/projects/output/react-17.0.1.js index 1b91c2a2edb3..673750a2e8b1 100644 --- a/crates/swc_ecma_minifier/tests/projects/output/react-17.0.1.js +++ b/crates/swc_ecma_minifier/tests/projects/output/react-17.0.1.js @@ -294,7 +294,7 @@ return; } var subtreeCount = 0, nextNamePrefix = "" === nameSoFar ? "." : nameSoFar + ":"; - if (Array.isArray(children)) for(var i = 0; i < children.length; i++)nextName = nextNamePrefix + getElementKey(child = children[i], i), subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback); + if (Array.isArray(children)) for(var i = 0; i < children.length; i++)child = children[i], nextName = nextNamePrefix + getElementKey(child, i), subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback); else { var iteratorFn = getIteratorFn(children); if ("function" == typeof iteratorFn) { diff --git a/crates/swc_ecma_minifier/tests/projects/output/react-dom-17.0.2.js b/crates/swc_ecma_minifier/tests/projects/output/react-dom-17.0.2.js index 102a567d3dda..2857e8460150 100644 --- a/crates/swc_ecma_minifier/tests/projects/output/react-dom-17.0.2.js +++ b/crates/swc_ecma_minifier/tests/projects/output/react-dom-17.0.2.js @@ -2805,7 +2805,7 @@ } catch (err) { return !1; } - }(element);)element = getActiveElement((win = element.contentWindow).document); + }(element);)win = element.contentWindow, element = getActiveElement(win.document); return element; } function hasSelectionCapabilities(elem) { @@ -4967,7 +4967,7 @@ var container = 8 === nodeType ? rootContainerInstance.parentNode : rootContainerInstance; namespace = getChildNamespace(container.namespaceURI || null, type = container.tagName); } - var ancestorInfo = updatedAncestorInfo(null, type.toLowerCase()); + var validatedTag = type.toLowerCase(), ancestorInfo = updatedAncestorInfo(null, validatedTag); return { namespace: namespace, ancestorInfo: ancestorInfo @@ -6394,16 +6394,16 @@ else showFallback = !0, workInProgress.flags &= -65; if (pushSuspenseContext(workInProgress, suspenseContext &= 1), null === current) { void 0 !== nextProps.fallback && tryToClaimNextHydratableInstance(workInProgress); - var fiber, suspenseContext1, current1, workInProgress1, renderLanes1, workInProgress2, primaryChildren, renderLanes2, primaryChildFragment, nextPrimaryChildren = nextProps.children, nextFallbackChildren = nextProps.fallback; + var fiber, suspenseContext1, current1, workInProgress1, renderLanes1, workInProgress2, primaryChildren, renderLanes2, mode, primaryChildFragment, nextPrimaryChildren = nextProps.children, nextFallbackChildren = nextProps.fallback; if (showFallback) { var fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes); return workInProgress.child.memoizedState = mountSuspenseOffscreenState(renderLanes), workInProgress.memoizedState = SUSPENDED_MARKER, fallbackFragment; } if ("number" != typeof nextProps.unstable_expectedLoadTime) { - return workInProgress2 = workInProgress, primaryChildren = nextPrimaryChildren, renderLanes2 = renderLanes, (primaryChildFragment = createFiberFromOffscreen({ + return workInProgress2 = workInProgress, primaryChildren = nextPrimaryChildren, renderLanes2 = renderLanes, mode = workInProgress2.mode, (primaryChildFragment = createFiberFromOffscreen({ mode: "visible", children: primaryChildren - }, workInProgress2.mode, renderLanes2, null)).return = workInProgress2, workInProgress2.child = primaryChildFragment, primaryChildFragment; + }, mode, renderLanes2, null)).return = workInProgress2, workInProgress2.child = primaryChildFragment, primaryChildFragment; } var _fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes); return workInProgress.child.memoizedState = mountSuspenseOffscreenState(renderLanes), workInProgress.memoizedState = SUSPENDED_MARKER, workInProgress.lanes = 33554432, markSpawnedWork(33554432), _fallbackFragment; @@ -6588,7 +6588,8 @@ return null !== last ? (last.nextEffect = current, returnFiber.lastEffect = current) : returnFiber.firstEffect = returnFiber.lastEffect = current, current.nextEffect = null, current.flags = 8, newWorkInProgress.flags |= 2, newWorkInProgress; }(current, workInProgress, createFiberFromTypeAndProps(workInProgress.type, workInProgress.key, workInProgress.pendingProps, workInProgress._debugOwner || null, workInProgress.mode, workInProgress.lanes)); if (null !== current) { - if (current.memoizedProps !== workInProgress.pendingProps || hasContextChanged() || workInProgress.type !== current.type) didReceiveUpdate = !0; + var oldProps = current.memoizedProps, newProps = workInProgress.pendingProps; + if (oldProps !== newProps || hasContextChanged() || workInProgress.type !== current.type) didReceiveUpdate = !0; else { if (a = renderLanes, (a & updateLanes) != 0) didReceiveUpdate = (16384 & current.flags) != 0; else { @@ -6600,7 +6601,8 @@ pushHostContext(workInProgress); break; case 1: - isContextProvider(workInProgress.type) && pushContextProvider(workInProgress); + var Component = workInProgress.type; + isContextProvider(Component) && pushContextProvider(workInProgress); break; case 4: pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo); @@ -6610,22 +6612,23 @@ pushProvider(workInProgress, newValue); break; case 12: - a1 = renderLanes, (a1 & workInProgress.childLanes) != 0 && (workInProgress.flags |= 4); - var a, a1, stateNode = workInProgress.stateNode; + a1 = renderLanes, b = workInProgress.childLanes, (a1 & b) != 0 && (workInProgress.flags |= 4); + var a, a1, b, stateNode = workInProgress.stateNode; stateNode.effectDuration = 0, stateNode.passiveEffectDuration = 0; break; case 13: if (null !== workInProgress.memoizedState) { - if (a2 = renderLanes, (a2 & workInProgress.child.childLanes) != 0) return updateSuspenseComponent(current, workInProgress, renderLanes); + var a2, primaryChildLanes = workInProgress.child.childLanes; + if (a2 = renderLanes, (a2 & primaryChildLanes) != 0) return updateSuspenseComponent(current, workInProgress, renderLanes); pushSuspenseContext(workInProgress, 1 & suspenseStackCursor.current); - var a2, child = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); + var child = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes); if (null !== child) return child.sibling; return null; } pushSuspenseContext(workInProgress, 1 & suspenseStackCursor.current); break; case 19: - var a3, didSuspendBefore = (64 & current.flags) != 0, _hasChildWork = (a3 = renderLanes, (a3 & workInProgress.childLanes) != 0); + var a3, b1, didSuspendBefore = (64 & current.flags) != 0, _hasChildWork = (a3 = renderLanes, b1 = workInProgress.childLanes, (a3 & b1) != 0); if (didSuspendBefore) { if (_hasChildWork) return updateSuspenseListComponent(current, workInProgress, renderLanes); workInProgress.flags |= 64; @@ -6799,9 +6802,9 @@ return reconcileChildren(current, workInProgress, newProps.children, renderLanes), workInProgress.child; }(current, workInProgress, renderLanes); case 9: - return current1 = current, workInProgress1 = workInProgress, renderLanes1 = renderLanes, void 0 === (context = workInProgress1.type)._context ? context === context.Consumer || hasWarnedAboutUsingContextAsConsumer || (hasWarnedAboutUsingContextAsConsumer = !0, error("Rendering directly is not supported and will be removed in a future major release. Did you mean to render instead?")) : context = context._context, "function" != typeof (render = (newProps = workInProgress1.pendingProps).children) && error("A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."), prepareToReadContext(workInProgress1, renderLanes1), newValue1 = readContext(context, newProps.unstable_observedBits), ReactCurrentOwner$1.current = workInProgress1, isRendering = !0, newChildren = render(newValue1), isRendering = !1, workInProgress1.flags |= 1, reconcileChildren(current1, workInProgress1, newChildren, renderLanes1), workInProgress1.child; + return current1 = current, workInProgress1 = workInProgress, renderLanes1 = renderLanes, void 0 === (context = workInProgress1.type)._context ? context === context.Consumer || hasWarnedAboutUsingContextAsConsumer || (hasWarnedAboutUsingContextAsConsumer = !0, error("Rendering directly is not supported and will be removed in a future major release. Did you mean to render instead?")) : context = context._context, "function" != typeof (render = (newProps1 = workInProgress1.pendingProps).children) && error("A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it."), prepareToReadContext(workInProgress1, renderLanes1), newValue1 = readContext(context, newProps1.unstable_observedBits), ReactCurrentOwner$1.current = workInProgress1, isRendering = !0, newChildren = render(newValue1), isRendering = !1, workInProgress1.flags |= 1, reconcileChildren(current1, workInProgress1, newChildren, renderLanes1), workInProgress1.child; case 14: - var _type2 = workInProgress.type, _resolvedProps3 = resolveDefaultProps(_type2, workInProgress.pendingProps); + var _type2 = workInProgress.type, _unresolvedProps3 = workInProgress.pendingProps, _resolvedProps3 = resolveDefaultProps(_type2, _unresolvedProps3); if (workInProgress.type !== workInProgress.elementType) { var outerPropTypes = _type2.propTypes; outerPropTypes && checkPropTypes(outerPropTypes, _resolvedProps3, "prop", getComponentName(_type2)); @@ -6810,7 +6813,7 @@ case 15: return updateSimpleMemoComponent(current, workInProgress, workInProgress.type, workInProgress.pendingProps, updateLanes, renderLanes); case 17: - var current1, workInProgress1, renderLanes1, newChildren, context, newProps, render, newValue1, current2, workInProgress2, renderLanes2, type1, nextProps, prevProps, nextChildren, current3, workInProgress3, current4, workInProgress4, renderLanes3, nextChildren1, current5, workInProgress5, renderLanes4, nextChildren2, current6, workInProgress6, renderLanes5, nextChildren3, current7, workInProgress7, renderLanes6, stateNode1, nextChildren4, _current, workInProgress8, Component, nextProps1, renderLanes7, hasContext, _Component3 = workInProgress.type, _unresolvedProps4 = workInProgress.pendingProps, _resolvedProps4 = workInProgress.elementType === _Component3 ? _unresolvedProps4 : resolveDefaultProps(_Component3, _unresolvedProps4); + var current1, workInProgress1, renderLanes1, newChildren, context, newProps1, render, newValue1, current2, workInProgress2, renderLanes2, type1, nextProps, prevProps, nextChildren, current3, workInProgress3, current4, workInProgress4, renderLanes3, nextChildren1, current5, workInProgress5, renderLanes4, nextChildren2, current6, workInProgress6, renderLanes5, nextChildren3, current7, workInProgress7, renderLanes6, stateNode1, nextChildren4, _current, workInProgress8, Component1, nextProps1, renderLanes7, hasContext, _Component3 = workInProgress.type, _unresolvedProps4 = workInProgress.pendingProps, _resolvedProps4 = workInProgress.elementType === _Component3 ? _unresolvedProps4 : resolveDefaultProps(_Component3, _unresolvedProps4); return _current = current, workInProgress8 = workInProgress, null !== _current && (_current.alternate = null, workInProgress8.alternate = null, workInProgress8.flags |= 2), workInProgress8.tag = 1, isContextProvider(_Component3) ? (hasContext = !0, pushContextProvider(workInProgress8)) : hasContext = !1, prepareToReadContext(workInProgress8, renderLanes), constructClassInstance(workInProgress8, _Component3, _resolvedProps4), mountClassInstance(workInProgress8, _Component3, _resolvedProps4, renderLanes), finishClassComponent(null, workInProgress8, _Component3, !0, hasContext, renderLanes); case 19: return updateSuspenseListComponent(current, workInProgress, renderLanes); @@ -6842,7 +6845,7 @@ } } function completeWork(current, workInProgress, renderLanes) { - var newProps = workInProgress.pendingProps; + var portalInstance, newProps = workInProgress.pendingProps; switch(workInProgress.tag){ case 2: case 16: @@ -6856,8 +6859,8 @@ case 14: return null; case 1: - case 17: - return isContextProvider(workInProgress.type) && popContext(workInProgress), null; + var Component = workInProgress.type; + return isContextProvider(Component) && popContext(workInProgress), null; case 3: popHostContainer(workInProgress), popTopLevelContextObject(workInProgress), resetWorkInProgressVersions(); var fiberRoot = workInProgress.stateNode; @@ -6957,7 +6960,7 @@ } return serialized || null; }(nextProp); - expectedStyle !== (serverValue = domElement.getAttribute("style")) && warnForPropDifference(propKey, serverValue, expectedStyle); + serverValue = domElement.getAttribute("style"), expectedStyle !== serverValue && warnForPropDifference(propKey, serverValue, expectedStyle); } } else if (isCustomComponentTag) extraAttributeNames.delete(propKey.toLowerCase()), serverValue = getValueForAttribute(domElement, propKey, nextProp), nextProp !== serverValue && warnForPropDifference(propKey, serverValue, nextProp); else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) { @@ -7141,9 +7144,12 @@ var nextDidTimeout = null !== nextState, prevDidTimeout = !1; return null === current ? void 0 !== workInProgress.memoizedProps.fallback && popHydrationState(workInProgress) : prevDidTimeout = null !== current.memoizedState, nextDidTimeout && !prevDidTimeout && (2 & workInProgress.mode) != 0 && (null === current && !0 !== workInProgress.memoizedProps.unstable_avoidThisFallback || (1 & suspenseStackCursor.current) != 0 ? 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3) : ((0 === workInProgressRootExitStatus || 3 === workInProgressRootExitStatus) && (workInProgressRootExitStatus = 4), null !== workInProgressRoot && (includesNonIdleWork(workInProgressRootSkippedLanes) || includesNonIdleWork(workInProgressRootUpdatedLanes)) && markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes))), (nextDidTimeout || prevDidTimeout) && (workInProgress.flags |= 4), null; case 4: - return popHostContainer(workInProgress), updateHostContainer(workInProgress), null === current && listenToAllSupportedEvents(workInProgress.stateNode.containerInfo), null; + return popHostContainer(workInProgress), updateHostContainer(workInProgress), null === current && (portalInstance = workInProgress.stateNode.containerInfo, listenToAllSupportedEvents(portalInstance)), null; case 10: return popProvider(workInProgress), null; + case 17: + var _Component = workInProgress.type; + return isContextProvider(_Component) && popContext(workInProgress), null; case 19: popSuspenseContext(workInProgress); var renderState = workInProgress.memoizedState; @@ -8198,7 +8204,7 @@ if (null === finishedWork) return null; if (root.finishedWork = null, root.finishedLanes = 0, !(finishedWork !== root.current)) throw Error("Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue."); root.callbackNode = null; - var remainingLanes = (a = finishedWork.lanes) | finishedWork.childLanes; + var remainingLanes = (a = finishedWork.lanes, b = finishedWork.childLanes, a | b); if (!function(root, remainingLanes) { var noLongerPendingLanes = root.pendingLanes & ~remainingLanes; root.pendingLanes = remainingLanes, root.suspendedLanes = 0, root.pingedLanes = 0, root.expiredLanes &= remainingLanes, root.mutableReadLanes &= remainingLanes, root.entangledLanes &= remainingLanes; @@ -8207,7 +8213,7 @@ entanglements[index] = 0, eventTimes[index] = -1, expirationTimes[index] = -1, lanes &= ~lane; } }(root, remainingLanes), null !== rootsWithPendingDiscreteUpdates && !((24 & remainingLanes) != 0) && rootsWithPendingDiscreteUpdates.has(root) && rootsWithPendingDiscreteUpdates.delete(root), root === workInProgressRoot && (workInProgressRoot = null, workInProgress = null, workInProgressRootRenderLanes = 0), finishedWork.flags > 1 ? null !== finishedWork.lastEffect ? (finishedWork.lastEffect.nextEffect = finishedWork, firstEffect = finishedWork.firstEffect) : firstEffect = finishedWork : firstEffect = finishedWork.firstEffect, null !== firstEffect) { - var input, selection, a, containerInfo, focusedElem, containerInfo1, prevExecutionContext = executionContext; + var input, selection, a, b, containerInfo, focusedElem, containerInfo1, prevExecutionContext = executionContext; executionContext |= 32; var prevInteractions = pushInteractions(root); ReactCurrentOwner$2.current = null, root.containerInfo, eventsEnabled = _enabled, selectionInformation = { @@ -8395,16 +8401,21 @@ commitPlacement(nextEffect), nextEffect.flags &= -3; break; case 6: - commitPlacement(nextEffect), nextEffect.flags &= -3, commitWork(nextEffect.alternate, nextEffect); + commitPlacement(nextEffect), nextEffect.flags &= -3; + var _current = nextEffect.alternate; + commitWork(_current, nextEffect); break; case 1024: nextEffect.flags &= -1025; break; case 1028: - nextEffect.flags &= -1025, commitWork(nextEffect.alternate, nextEffect); + nextEffect.flags &= -1025; + var _current2 = nextEffect.alternate; + commitWork(_current2, nextEffect); break; case 4: - commitWork(nextEffect.alternate, nextEffect); + var _current3 = nextEffect.alternate; + commitWork(_current3, nextEffect); break; case 8: !function(finishedRoot, current, renderPriorityLevel) { @@ -8420,105 +8431,109 @@ for(; null !== nextEffect;){ setCurrentFiber(nextEffect); var flags = nextEffect.flags; - 36 & flags && function(finishedRoot, current, finishedWork, committedLanes) { - switch(finishedWork.tag){ - case 0: - case 11: - case 15: - case 22: - (function(tag, finishedWork) { - var updateQueue = finishedWork.updateQueue, lastEffect = null !== updateQueue ? updateQueue.lastEffect : null; - if (null !== lastEffect) { - var firstEffect = lastEffect.next, effect = firstEffect; - do { - if ((effect.tag & tag) === tag) { - var create = effect.create; - effect.destroy = create(); - var destroy = effect.destroy; - if (void 0 !== destroy && "function" != typeof destroy) { - var addendum = void 0; - error("An effect function must not return anything besides a function, which is used for clean-up.%s", null === destroy ? " You returned null. If your effect does not require clean up, return undefined (or nothing)." : "function" == typeof destroy.then ? "\n\nIt looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\n\nuseEffect(() => {\n async function fetchData() {\n // You can await here\n const response = await MyAPI.getData(someId);\n // ...\n }\n fetchData();\n}, [someId]); // Or [] if effect doesn't need props or state\n\nLearn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching" : " You returned: " + destroy); + if (36 & flags) { + var current = nextEffect.alternate; + !function(finishedRoot, current, finishedWork, committedLanes) { + switch(finishedWork.tag){ + case 0: + case 11: + case 15: + case 22: + !function(tag, finishedWork) { + var updateQueue = finishedWork.updateQueue, lastEffect = null !== updateQueue ? updateQueue.lastEffect : null; + if (null !== lastEffect) { + var firstEffect = lastEffect.next, effect = firstEffect; + do { + if ((effect.tag & tag) === tag) { + var create = effect.create; + effect.destroy = create(); + var destroy = effect.destroy; + if (void 0 !== destroy && "function" != typeof destroy) { + var addendum = void 0; + error("An effect function must not return anything besides a function, which is used for clean-up.%s", null === destroy ? " You returned null. If your effect does not require clean up, return undefined (or nothing)." : "function" == typeof destroy.then ? "\n\nIt looks like you wrote useEffect(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\n\nuseEffect(() => {\n async function fetchData() {\n // You can await here\n const response = await MyAPI.getData(someId);\n // ...\n }\n fetchData();\n}, [someId]); // Or [] if effect doesn't need props or state\n\nLearn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching" : " You returned: " + destroy); + } } - } - effect = effect.next; - }while (effect !== firstEffect) - } - })(3, finishedWork), function(finishedWork) { - var updateQueue = finishedWork.updateQueue, lastEffect = null !== updateQueue ? updateQueue.lastEffect : null; - if (null !== lastEffect) { - var firstEffect = lastEffect.next, effect = firstEffect; - do { - var fiber, effect1, _effect = effect, next = _effect.next, tag = _effect.tag; - (4 & tag) != 0 && (1 & tag) != 0 && (enqueuePendingPassiveHookEffectUnmount(finishedWork, effect), fiber = finishedWork, effect1 = effect, pendingPassiveHookEffectsMount.push(effect1, fiber), rootDoesHavePassiveEffects || (rootDoesHavePassiveEffects = !0, scheduleCallback(97, function() { - return flushPassiveEffects(), null; - }))), effect = next; - }while (effect !== firstEffect) + effect = effect.next; + }while (effect !== firstEffect) + } + }(3, finishedWork), function(finishedWork) { + var updateQueue = finishedWork.updateQueue, lastEffect = null !== updateQueue ? updateQueue.lastEffect : null; + if (null !== lastEffect) { + var firstEffect = lastEffect.next, effect = firstEffect; + do { + var fiber, effect1, _effect = effect, next = _effect.next, tag = _effect.tag; + (4 & tag) != 0 && (1 & tag) != 0 && (enqueuePendingPassiveHookEffectUnmount(finishedWork, effect), fiber = finishedWork, effect1 = effect, pendingPassiveHookEffectsMount.push(effect1, fiber), rootDoesHavePassiveEffects || (rootDoesHavePassiveEffects = !0, scheduleCallback(97, function() { + return flushPassiveEffects(), null; + }))), effect = next; + }while (effect !== firstEffect) + } + }(finishedWork); + return; + case 1: + var instance = finishedWork.stateNode; + if (4 & finishedWork.flags) { + if (null === current) finishedWork.type !== finishedWork.elementType || didWarnAboutReassigningProps || (instance.props !== finishedWork.memoizedProps && error("Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", getComponentName(finishedWork.type) || "instance"), instance.state !== finishedWork.memoizedState && error("Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", getComponentName(finishedWork.type) || "instance")), instance.componentDidMount(); + else { + var prevProps = finishedWork.elementType === finishedWork.type ? current.memoizedProps : resolveDefaultProps(finishedWork.type, current.memoizedProps), prevState = current.memoizedState; + finishedWork.type !== finishedWork.elementType || didWarnAboutReassigningProps || (instance.props !== finishedWork.memoizedProps && error("Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", getComponentName(finishedWork.type) || "instance"), instance.state !== finishedWork.memoizedState && error("Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", getComponentName(finishedWork.type) || "instance")), instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate); + } } - }(finishedWork); - return; - case 1: - var instance = finishedWork.stateNode; - if (4 & finishedWork.flags) { - if (null === current) finishedWork.type !== finishedWork.elementType || didWarnAboutReassigningProps || (instance.props !== finishedWork.memoizedProps && error("Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", getComponentName(finishedWork.type) || "instance"), instance.state !== finishedWork.memoizedState && error("Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", getComponentName(finishedWork.type) || "instance")), instance.componentDidMount(); - else { - var prevProps = finishedWork.elementType === finishedWork.type ? current.memoizedProps : resolveDefaultProps(finishedWork.type, current.memoizedProps), prevState = current.memoizedState; - finishedWork.type !== finishedWork.elementType || didWarnAboutReassigningProps || (instance.props !== finishedWork.memoizedProps && error("Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", getComponentName(finishedWork.type) || "instance"), instance.state !== finishedWork.memoizedState && error("Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", getComponentName(finishedWork.type) || "instance")), instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate); + var updateQueue = finishedWork.updateQueue; + null !== updateQueue && (finishedWork.type !== finishedWork.elementType || didWarnAboutReassigningProps || (instance.props !== finishedWork.memoizedProps && error("Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", getComponentName(finishedWork.type) || "instance"), instance.state !== finishedWork.memoizedState && error("Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", getComponentName(finishedWork.type) || "instance")), commitUpdateQueue(finishedWork, updateQueue, instance)); + return; + case 3: + var _updateQueue = finishedWork.updateQueue; + if (null !== _updateQueue) { + var _instance = null; + if (null !== finishedWork.child) switch(finishedWork.child.tag){ + case 5: + case 1: + _instance = finishedWork.child.stateNode; + } + commitUpdateQueue(finishedWork, _updateQueue, _instance); } - } - var updateQueue = finishedWork.updateQueue; - null !== updateQueue && (finishedWork.type !== finishedWork.elementType || didWarnAboutReassigningProps || (instance.props !== finishedWork.memoizedProps && error("Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.", getComponentName(finishedWork.type) || "instance"), instance.state !== finishedWork.memoizedState && error("Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.", getComponentName(finishedWork.type) || "instance")), commitUpdateQueue(finishedWork, updateQueue, instance)); - return; - case 3: - var _updateQueue = finishedWork.updateQueue; - if (null !== _updateQueue) { - var _instance = null; - if (null !== finishedWork.child) switch(finishedWork.child.tag){ - case 5: - case 1: - _instance = finishedWork.child.stateNode; + return; + case 5: + var _instance2 = finishedWork.stateNode; + if (null === current && 4 & finishedWork.flags) { + var domElement, type, type1 = finishedWork.type; + shouldAutoFocusHostComponent(type1, finishedWork.memoizedProps) && _instance2.focus(); } - commitUpdateQueue(finishedWork, _updateQueue, _instance); - } - return; - case 5: - var _instance2 = finishedWork.stateNode; - if (null === current && 4 & finishedWork.flags) { - var domElement, type, type1 = finishedWork.type; - shouldAutoFocusHostComponent(type1, finishedWork.memoizedProps) && _instance2.focus(); - } - return; - case 6: - case 4: - case 19: - case 17: - case 20: - case 21: - case 23: - case 24: - return; - case 12: - var _finishedWork$memoize2 = finishedWork.memoizedProps, onRender = (_finishedWork$memoize2.onCommit, _finishedWork$memoize2.onRender); - finishedWork.stateNode.effectDuration; - var commitTime1 = commitTime; - "function" == typeof onRender && onRender(finishedWork.memoizedProps.id, null === current ? "mount" : "update", finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, commitTime1, finishedRoot.memoizedInteractions); - return; - case 13: - (function(finishedRoot, finishedWork) { - if (null === finishedWork.memoizedState) { - var current = finishedWork.alternate; - if (null !== current) { - var prevState = current.memoizedState; - if (null !== prevState) { - var suspenseInstance = prevState.dehydrated; - null !== suspenseInstance && retryIfBlockedOn(suspenseInstance); + return; + case 6: + case 4: + case 19: + case 17: + case 20: + case 21: + case 23: + case 24: + return; + case 12: + var _finishedWork$memoize2 = finishedWork.memoizedProps, onRender = (_finishedWork$memoize2.onCommit, _finishedWork$memoize2.onRender); + finishedWork.stateNode.effectDuration; + var commitTime1 = commitTime; + "function" == typeof onRender && onRender(finishedWork.memoizedProps.id, null === current ? "mount" : "update", finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, commitTime1, finishedRoot.memoizedInteractions); + return; + case 13: + !function(finishedRoot, finishedWork) { + if (null === finishedWork.memoizedState) { + var current = finishedWork.alternate; + if (null !== current) { + var prevState = current.memoizedState; + if (null !== prevState) { + var suspenseInstance = prevState.dehydrated; + null !== suspenseInstance && retryIfBlockedOn(suspenseInstance); + } } } - } - })(finishedRoot, finishedWork); - return; - } - throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue."); - }(root, nextEffect.alternate, nextEffect), 128 & flags && function(finishedWork) { + }(finishedRoot, finishedWork); + return; + } + throw Error("This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue."); + }(root, current, nextEffect); + } + 128 & flags && function(finishedWork) { var ref = finishedWork.ref; if (null !== ref) { var instanceToUse, instance = finishedWork.stateNode; @@ -8923,7 +8938,7 @@ return !!(prototype && prototype.isReactComponent); } function createWorkInProgress(current, pendingProps) { - var workInProgress = current.alternate; + var type, workInProgress = current.alternate; null === workInProgress ? ((workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode)).elementType = current.elementType, workInProgress.type = current.type, workInProgress.stateNode = current.stateNode, workInProgress._debugID = current._debugID, workInProgress._debugSource = current._debugSource, workInProgress._debugOwner = current._debugOwner, workInProgress._debugHookTypes = current._debugHookTypes, workInProgress.alternate = current, current.alternate = workInProgress) : (workInProgress.pendingProps = pendingProps, workInProgress.type = current.type, workInProgress.flags = 0, workInProgress.nextEffect = null, workInProgress.firstEffect = null, workInProgress.lastEffect = null, workInProgress.actualDuration = 0, workInProgress.actualStartTime = -1), workInProgress.childLanes = current.childLanes, workInProgress.lanes = current.lanes, workInProgress.child = current.child, workInProgress.memoizedProps = current.memoizedProps, workInProgress.memoizedState = current.memoizedState, workInProgress.updateQueue = current.updateQueue; var currentDependencies = current.dependencies; switch(workInProgress.dependencies = null === currentDependencies ? null : { @@ -8933,9 +8948,11 @@ case 2: case 0: case 15: - case 1: workInProgress.type = resolveFunctionForHotReloading(current.type); break; + case 1: + workInProgress.type = (type = current.type, resolveFunctionForHotReloading(type)); + break; case 11: workInProgress.type = resolveForwardRefForHotReloading(current.type); } diff --git a/crates/swc_ecma_minifier/tests/projects/output/underscore-1.5.2.js b/crates/swc_ecma_minifier/tests/projects/output/underscore-1.5.2.js index 7e3412ab8ae8..e7d939ece724 100644 --- a/crates/swc_ecma_minifier/tests/projects/output/underscore-1.5.2.js +++ b/crates/swc_ecma_minifier/tests/projects/output/underscore-1.5.2.js @@ -147,7 +147,8 @@ return function(obj, value, context) { var result = {}, iterator = null == value ? _.identity : lookupIterator(value); return each(obj, function(value, index) { - behavior(result, iterator.call(context, value, index, obj), value); + var key = iterator.call(context, value, index, obj); + behavior(result, key, value); }), result; }; }; @@ -506,8 +507,9 @@ "\u2029": "u2029" }, escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g; _.template = function(text, data, settings) { + settings = _.defaults({}, settings, _.templateSettings); var render, matcher = RegExp([ - ((settings = _.defaults({}, settings, _.templateSettings)).escape || noMatch).source, + (settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source ].join("|") + "|$", "g"), index = 0, source = "__p+='"; diff --git a/crates/swc_ecma_minifier/tests/projects/output/yui-3.12.0.js b/crates/swc_ecma_minifier/tests/projects/output/yui-3.12.0.js index 516bc52724e8..55b8ab458c2a 100644 --- a/crates/swc_ecma_minifier/tests/projects/output/yui-3.12.0.js +++ b/crates/swc_ecma_minifier/tests/projects/output/yui-3.12.0.js @@ -1454,7 +1454,7 @@ var YUI = function() { if (o.skinnable = !0, (overrides = this.skin.overrides) && overrides[i]) for(j = 0; j < overrides[i].length; j++)skinname = this._addSkin(overrides[i][j], i, name), sup.push(skinname); skinname = this._addSkin(this.skin.defaultSkin, i, name), sup.push(skinname); } - if (s.lang && s.lang.length) for(j = 0, langs = yArray(s.lang); j < langs.length; j++)lang = langs[j], packName = this.getLangPackName(lang, name), supName = this.getLangPackName(lang, i), (smod = this.moduleInfo[packName]) || (smod = this._addLangPack(lang, o, packName)), supName in (flatSup = flatSup || yArray.hash(smod.supersedes)) || smod.supersedes.push(supName), o.lang = o.lang || [], lang in (flatLang = flatLang || yArray.hash(o.lang)) || o.lang.push(lang), packName = this.getLangPackName("", name), supName = this.getLangPackName("", i), (smod = this.moduleInfo[packName]) || (smod = this._addLangPack(lang, o, packName)), supName in flatSup || smod.supersedes.push(supName); + if (s.lang && s.lang.length) for(j = 0, langs = yArray(s.lang); j < langs.length; j++)lang = langs[j], packName = this.getLangPackName(lang, name), supName = this.getLangPackName(lang, i), (smod = this.moduleInfo[packName]) || (smod = this._addLangPack(lang, o, packName)), flatSup = flatSup || yArray.hash(smod.supersedes), supName in flatSup || smod.supersedes.push(supName), o.lang = o.lang || [], flatLang = flatLang || yArray.hash(o.lang), lang in flatLang || o.lang.push(lang), packName = this.getLangPackName("", name), supName = this.getLangPackName("", i), (smod = this.moduleInfo[packName]) || (smod = this._addLangPack(lang, o, packName)), supName in flatSup || smod.supersedes.push(supName); l++; } o.supersedes = yArray.dedupe(sup), this.allowRollup && (o.rollup = l < 4 ? l : Math.min(l - 1, 4));