diff --git a/crates/swc/tests/tsc-references/controlFlowOptionalChain.2.minified.js b/crates/swc/tests/tsc-references/controlFlowOptionalChain.2.minified.js index 5676729bde4f..7c29525d3d7b 100644 --- a/crates/swc/tests/tsc-references/controlFlowOptionalChain.2.minified.js +++ b/crates/swc/tests/tsc-references/controlFlowOptionalChain.2.minified.js @@ -4,7 +4,7 @@ import "@swc/helpers/_/_type_of"; function someFunction(someOptionalObject) { (null == someOptionalObject ? void 0 : someOptionalObject.someProperty) !== lastSomeProperty && (console.log(someOptionalObject), console.log(someOptionalObject.someProperty), lastSomeProperty = null == someOptionalObject ? void 0 : someOptionalObject.someProperty); } -null === (_o = o) || void 0 === _o || _o[a = 1], a.toString(), null === (_o1 = o) || void 0 === _o1 || _o1.x[b = 1], b.toString(), null === (_o2 = o) || void 0 === _o2 || _o2(c = 1), c.toString(), null === (_o3 = o) || void 0 === _o3 || _o3.x(d = 1), d.toString(), null === (_f = f) || void 0 === _f || _f(x), x, f, f(x), x, f, f(x), (null === (_o21 = o2) || void 0 === _o21 ? void 0 : _o21.f(x)) ? (x, o2.f, null === (_o23 = o2) || void 0 === _o23 || _o23.f, null === (_o24 = o2) || void 0 === _o24 || _o24.f(x)) : (x, o2, null === (_o25 = o2) || void 0 === _o25 || _o25.f, o2.f), x, o2, null === (_o22 = o2) || void 0 === _o22 || _o22.f, o2.f, (null === (_o31 = o3) || void 0 === _o31 ? void 0 : _o31.x) === 1 ? (o3, o3.x, null === (_o33 = o3) || void 0 === _o33 || _o33.x) : (o3, null === (_o34 = o3) || void 0 === _o34 || _o34.x, o3.x), o3, null === (_o32 = o3) || void 0 === _o32 || _o32.x, o3.x, (null === (_o4_x = o4.x) || void 0 === _o4_x ? void 0 : _o4_x.y) ? (o4.x, o4.x.y, null === (_o4_x2 = o4.x) || void 0 === _o4_x2 || _o4_x2.y) : (o4.x, null === (_o4_x3 = o4.x) || void 0 === _o4_x3 || _o4_x3.y, o4.x.y), o4.x, null === (_o4_x1 = o4.x) || void 0 === _o4_x1 || _o4_x1.y, o4.x.y, (null === (_o5_x = o5.x) || void 0 === _o5_x ? void 0 : null === (_o5_x_y_z = _o5_x.y.z) || void 0 === _o5_x_y_z ? void 0 : _o5_x_y_z.w) ? (o5.x, o5.x.y, o5.x.y.z, o5.x.y.z.w, null === (_o5_x_y_z2 = o5.x.y.z) || void 0 === _o5_x_y_z2 || _o5_x_y_z2.w, null === (_o5_x4 = o5.x) || void 0 === _o5_x4 || _o5_x4.y.z.w, null === (_o5_x5 = o5.x) || void 0 === _o5_x5 || null === (_o5_x_y_z3 = _o5_x5.y.z) || void 0 === _o5_x_y_z3 || _o5_x_y_z3.w) : (o5.x, null === (_o5_x6 = o5.x) || void 0 === _o5_x6 || _o5_x6.y, null === (_o5_x7 = o5.x) || void 0 === _o5_x7 || _o5_x7.y.z, null === (_o5_x8 = o5.x) || void 0 === _o5_x8 || null === (_o5_x_y_z4 = _o5_x8.y.z) || void 0 === _o5_x_y_z4 || _o5_x_y_z4.w, o5.x.y, o5.x.y.z.w), o5.x, null === (_o5_x1 = o5.x) || void 0 === _o5_x1 || _o5_x1.y, null === (_o5_x2 = o5.x) || void 0 === _o5_x2 || _o5_x2.y.z, null === (_o5_x3 = o5.x) || void 0 === _o5_x3 || null === (_o5_x_y_z1 = _o5_x3.y.z) || void 0 === _o5_x_y_z1 || _o5_x_y_z1.w, o5.x.y, o5.x.y.z.w, (null === (_o6 = o6) || void 0 === _o6 ? void 0 : _o6.f()) ? (o6, o6.f) : (o6, null === (_o62 = o6) || void 0 === _o62 || _o62.f, o6.f), o6, null === (_o61 = o6) || void 0 === _o61 || _o61.f, o6.f, someFunction({ +null === (_o = o) || void 0 === _o || _o[a = 1], a.toString(), null === (_o1 = o) || void 0 === _o1 || _o1.x[b = 1], b.toString(), null === (_o2 = o) || void 0 === _o2 || _o2(c = 1), c.toString(), null === (_o3 = o) || void 0 === _o3 || _o3.x(d = 1), d.toString(), null === (_f = f) || void 0 === _f || _f(x), x, f, f(x), x, f, f(x), (null === (_o21 = o2) || void 0 === _o21 ? void 0 : _o21.f(x)) ? (x, o2.f, null === (_o23 = o2) || void 0 === _o23 || _o23.f, null === (_o24 = o2) || void 0 === _o24 || _o24.f(x)) : (x, o2, null === (_o25 = o2) || void 0 === _o25 || _o25.f, o2.f), x, o2, null === (_o22 = o2) || void 0 === _o22 || _o22.f, o2.f, (null === (_o31 = o3) || void 0 === _o31 ? void 0 : _o31.x) === 1 ? (o3, o3.x, null === (_o33 = o3) || void 0 === _o33 || _o33.x) : (o3, null === (_o34 = o3) || void 0 === _o34 || _o34.x, o3.x), o3, null === (_o32 = o3) || void 0 === _o32 || _o32.x, o3.x, (null === (_o4_x = o4.x) || void 0 === _o4_x ? void 0 : _o4_x.y) ? (o4.x, o4.x.y, null === (_o4_x2 = o4.x) || void 0 === _o4_x2 || _o4_x2.y) : (o4.x, null === (_o4_x3 = o4.x) || void 0 === _o4_x3 || _o4_x3.y, o4.x.y), o4.x, null === (_o4_x1 = o4.x) || void 0 === _o4_x1 || _o4_x1.y, o4.x.y, (null === (_o5_x = o5.x) || void 0 === _o5_x ? void 0 : null === (_o5_x_y_z = _o5_x.y.z) || void 0 === _o5_x_y_z ? void 0 : _o5_x_y_z.w) ? (o5.x, o5.x.y, o5.x.y.z, o5.x.y.z.w, null === (_o5_x_y_z2 = o5.x.y.z) || void 0 === _o5_x_y_z2 || _o5_x_y_z2.w, null === (_o5_x4 = o5.x) || void 0 === _o5_x4 || _o5_x4.y.z.w, null === (_o5_x5 = o5.x) || void 0 === _o5_x5 || null === (_o5_x_y_z3 = _o5_x5.y.z) || void 0 === _o5_x_y_z3 || _o5_x_y_z3.w) : (o5.x, null === (_o5_x6 = o5.x) || void 0 === _o5_x6 || _o5_x6.y, null === (_o5_x7 = o5.x) || void 0 === _o5_x7 || _o5_x7.y.z, null === (_o5_x8 = o5.x) || void 0 === _o5_x8 || null === (_o5_x_y_z4 = _o5_x8.y.z) || void 0 === _o5_x_y_z4 || _o5_x_y_z4.w, o5.x.y, o5.x.y.z.w), o5.x, null === (_o5_x1 = o5.x) || void 0 === _o5_x1 || _o5_x1.y, null === (_o5_x2 = o5.x) || void 0 === _o5_x2 || _o5_x2.y.z, null === (_o5_x3 = o5.x) || void 0 === _o5_x3 || null === (_o5_x_y_z1 = _o5_x3.y.z) || void 0 === _o5_x_y_z1 || _o5_x_y_z1.w, o5.x.y, o5.x.y.z.w, (null === (_o6 = o6) || void 0 === _o6 ? void 0 : _o6.f()) ? o6 : (o6, null === (_o62 = o6) || void 0 === _o62 || _o62.f), o6.f, o6, null === (_o61 = o6) || void 0 === _o61 || _o61.f, o6.f, someFunction({ someProperty: 42 }), someFunction(void 0); for(var _o, _o1, _o2, _o3, _f, _o21, _o22, _o31, _o32, _o4_x, _o4_x1, _o5_x_y_z, _o5_x, _o5_x1, _o5_x2, _o5_x_y_z1, _o5_x3, _o6, _o61, _arr_i, a, b, c, d, _o23, _o24, _o25, _o33, _o34, _o4_x2, _o4_x3, _o5_x_y_z2, _o5_x4, _o5_x_y_z3, _o5_x5, _o5_x6, _o5_x7, _o5_x_y_z4, _o5_x8, _o62, lastSomeProperty, _arr_i1, i = 0; (null === (_arr_i = arr[i]) || void 0 === _arr_i ? void 0 : _arr_i.tag) === "left";)i += 1, (null === (_arr_i1 = arr[i]) || void 0 === _arr_i1 ? void 0 : _arr_i1.tag) === "right" && console.log("I should ALSO be reachable"); diff --git a/crates/swc_ecma_minifier/src/compress/optimize/conditionals.rs b/crates/swc_ecma_minifier/src/compress/optimize/conditionals.rs index 69f4aa7ff87e..328d8708cc3e 100644 --- a/crates/swc_ecma_minifier/src/compress/optimize/conditionals.rs +++ b/crates/swc_ecma_minifier/src/compress/optimize/conditionals.rs @@ -616,6 +616,87 @@ impl Optimizer<'_> { })) } + (Expr::Seq(left), Expr::Seq(right)) => { + let left_len = left.exprs.len(); + let right_len = right.exprs.len(); + let min_len = left_len.min(right_len); + + let mut idx = 0; + + while idx < min_len + && left.exprs[left_len - idx - 1] + .eq_ignore_span(&right.exprs[right_len - idx - 1]) + && !matches!( + &*left.exprs[left_len - idx - 1], + Expr::Yield(..) | Expr::Fn(..) + ) + { + idx += 1; + } + + if idx == 0 { + None + } else if idx == left_len { + self.changed = true; + report_change!("conditionals: Reducing similar seq expr in cons"); + + let mut alt = right.exprs.take(); + + alt.truncate(alt.len() - idx); + + let mut seq = vec![Box::new(Expr::Bin(BinExpr { + span: DUMMY_SP, + left: test.take(), + op: op!("||"), + right: Expr::from_exprs(alt), + }))]; + seq.append(&mut left.exprs); + + Some(Expr::Seq(SeqExpr { + span: DUMMY_SP, + exprs: seq, + })) + } else if idx == right_len { + self.changed = true; + report_change!("conditionals: Reducing similar seq expr in alt"); + + let mut cons = left.exprs.take(); + + cons.truncate(cons.len() - idx); + + let mut seq = vec![Box::new(Expr::Bin(BinExpr { + span: DUMMY_SP, + left: test.take(), + op: op!("&&"), + right: Expr::from_exprs(cons), + }))]; + seq.append(&mut right.exprs); + + Some(Expr::Seq(SeqExpr { + span: DUMMY_SP, + exprs: seq, + })) + } else { + self.changed = true; + report_change!("conditionals: Reducing similar seq expr"); + let _ = left.exprs.split_off(left_len - idx); + let mut common = right.exprs.split_off(right_len - idx); + + let mut seq = vec![Box::new(Expr::Cond(CondExpr { + span: DUMMY_SP, + test: test.take(), + cons: Box::new(Expr::Seq(left.take())), + alt: Box::new(Expr::Seq(right.take())), + }))]; + seq.append(&mut common); + + Some(Expr::Seq(SeqExpr { + span: DUMMY_SP, + exprs: seq, + })) + } + } + _ => None, } } diff --git a/crates/swc_ecma_minifier/tests/benches-full/d3.js b/crates/swc_ecma_minifier/tests/benches-full/d3.js index 7c8c96dfe63a..e152f7c68b7c 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/d3.js +++ b/crates/swc_ecma_minifier/tests/benches-full/d3.js @@ -4208,7 +4208,7 @@ (parent[i + 1 & 3] || parent[i + 2 & 3] || parent[i + 3 & 3]) && (retainer = parent, j = i); } for(; node.data !== d;)if (previous = node, !(node = node.next)) return this; - return ((next = node.next) && delete node.next, previous) ? (next ? previous.next = next : delete previous.next, this) : parent ? (next ? parent[i] = next : delete parent[i], (node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length && (retainer ? retainer[j] = node : this._root = node), this) : (this._root = next, this); + return ((next = node.next) && delete node.next, previous) ? next ? previous.next = next : delete previous.next : parent ? (next ? parent[i] = next : delete parent[i], (node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length && (retainer ? retainer[j] = node : this._root = node)) : this._root = next, this; }, treeProto.removeAll = function(data) { for(var i = 0, n = data.length; i < n; ++i)this.remove(data[i]); return this; @@ -10067,11 +10067,11 @@ return values; }, exports1.interval = function(callback, delay, time) { var t = new Timer, total = delay; - return null == delay ? (t.restart(callback, delay, time), t) : (t._restart = t.restart, t.restart = function(callback, delay, time) { + return null == delay || (t._restart = t.restart, t.restart = function(callback, delay, time) { delay = +delay, time = null == time ? now() : +time, t._restart(function tick(elapsed) { elapsed += total, t._restart(tick, total += delay, time), callback(elapsed); }, delay, time); - }, t.restart(callback, delay, time), t); + }), t.restart(callback, delay, time), t; }, exports1.isoFormat = formatIso, exports1.isoParse = parseIso, exports1.json = function(input, init) { return fetch(input, init).then(responseJson); }, exports1.lab = lab, exports1.lch = function(l, c, h, opacity) { diff --git a/crates/swc_ecma_minifier/tests/benches-full/echarts.js b/crates/swc_ecma_minifier/tests/benches-full/echarts.js index f53b950591fd..a9d0bae48229 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/echarts.js +++ b/crates/swc_ecma_minifier/tests/benches-full/echarts.js @@ -1059,7 +1059,7 @@ } }, Transformable.prototype.getGlobalScale = function(out) { var m = this.transform; - return (out = out || [], m) ? (out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]), out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]), m[0] < 0 && (out[0] = -out[0]), m[3] < 0 && (out[1] = -out[1]), out) : (out[0] = 1, out[1] = 1, out); + return (out = out || [], m) ? (out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]), out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]), m[0] < 0 && (out[0] = -out[0]), m[3] < 0 && (out[1] = -out[1])) : (out[0] = 1, out[1] = 1), out; }, Transformable.prototype.transformCoordToLocal = function(x, y) { var v2 = [ x, @@ -4327,12 +4327,12 @@ firstCmpt ] : [], result; } - return 'none' === indexOption || !1 === indexOption ? (assert(opt.enableNone, '`"none"` or `false` is not a valid value on index option.'), result.models = [], result) : ('all' === indexOption && (assert(opt.enableAll, '`"all"` is not a valid value on index option.'), indexOption = idOption = nameOption = null), result.models = ecModel.queryComponents({ + return 'none' === indexOption || !1 === indexOption ? (assert(opt.enableNone, '`"none"` or `false` is not a valid value on index option.'), result.models = []) : ('all' === indexOption && (assert(opt.enableAll, '`"all"` is not a valid value on index option.'), indexOption = idOption = nameOption = null), result.models = ecModel.queryComponents({ mainType: mainType, index: indexOption, id: idOption, name: nameOption - }), result); + })), result; } function setAttribute(dom, key, value) { dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value; @@ -36753,19 +36753,16 @@ ], xLeft += sizePlusGap), showPrevBtn && (prevBtnPosition = [ xLeft, 0 - ], xLeft += sizePlusGap), showNextBtn && (nextBtnPosition = [ - xRight - controlSize, - 0 - ], xRight -= sizePlusGap)) : (showPlayBtn && (playPosition = [ + ], xLeft += sizePlusGap)) : (showPlayBtn && (playPosition = [ xRight - controlSize, 0 ], xRight -= sizePlusGap), showPrevBtn && (prevBtnPosition = [ 0, 0 - ], xLeft += sizePlusGap), showNextBtn && (nextBtnPosition = [ + ], xLeft += sizePlusGap)), showNextBtn && (nextBtnPosition = [ xRight - controlSize, 0 - ], xRight -= sizePlusGap)); + ], xRight -= sizePlusGap); var axisExtent = [ xLeft, xRight diff --git a/crates/swc_ecma_minifier/tests/benches-full/moment.js b/crates/swc_ecma_minifier/tests/benches-full/moment.js index 0b5f86641b1a..bb0190437a45 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/moment.js +++ b/crates/swc_ecma_minifier/tests/benches-full/moment.js @@ -1522,7 +1522,7 @@ return out; } function listWeekdaysImpl(localeSorted, format, index, field) { - 'boolean' == typeof localeSorted ? (isNumber(format) && (index = format, format = void 0), format = format || '') : (index = format = localeSorted, localeSorted = !1, isNumber(format) && (index = format, format = void 0), format = format || ''); + 'boolean' == typeof localeSorted || (index = format = localeSorted, localeSorted = !1), isNumber(format) && (index = format, format = void 0), format = format || ''; var i, locale = getLocale(), shift = localeSorted ? locale._week.dow : 0, out = []; if (null != index) return get$1(format, (index + shift) % 7, field, 'day'); for(i = 0; i < 7; i++)out[i] = get$1(format, (i + shift) % 7, field, 'day'); diff --git a/crates/swc_ecma_minifier/tests/benches-full/terser.js b/crates/swc_ecma_minifier/tests/benches-full/terser.js index a825276cfc6e..5c392fe7de8f 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/terser.js +++ b/crates/swc_ecma_minifier/tests/benches-full/terser.js @@ -7235,7 +7235,7 @@ var fixed = def.fixed; if (!fixed && "=" != node.operator && !node.logical) return finish_walk(); var eq = "=" == node.operator, value = eq ? node.right : node; - return is_modified(compressor, tw, node, value, 0) ? finish_walk() : (def.references.push(sym), node.logical || (eq || (def.chained = !0), def.fixed = eq ? function() { + return is_modified(compressor, tw, node, value, 0) ? finish_walk() : ((def.references.push(sym), node.logical || (eq || (def.chained = !0), def.fixed = eq ? function() { return node.right; } : function() { return make_node(AST_Binary, node, { @@ -7243,7 +7243,7 @@ left: fixed instanceof AST_Node ? fixed : fixed(), right: node.right }); - }), node.logical) ? (mark(tw, def, !1), push(tw), node.right.walk(tw), pop(tw), !0) : (mark(tw, def, !1), node.right.walk(tw), mark(tw, def, !0), mark_escaped(tw, def, sym.scope, node, value, 0, 1), !0); + }), node.logical) ? (mark(tw, def, !1), push(tw), node.right.walk(tw), pop(tw)) : (mark(tw, def, !1), node.right.walk(tw), mark(tw, def, !0), mark_escaped(tw, def, sym.scope, node, value, 0, 1)), !0); }), def_reduce_vars(AST_Binary, function(tw) { if (lazy_op.has(this.operator)) return this.left.walk(tw), push(tw), this.right.walk(tw), pop(tw), !0; }), def_reduce_vars(AST_Block, function(tw, descend, compressor) { @@ -8705,7 +8705,7 @@ operator: "void", expression: expressions[end] }), expressions.length = end + 1); - }(), 0 == end) ? ((self1 = maintain_this_binding(compressor.parent(), compressor.self(), expressions[0])) instanceof AST_Sequence || (self1 = self1.optimize(compressor)), self1) : (self1.expressions = expressions, self1); + }(), 0 == end) ? (self1 = maintain_this_binding(compressor.parent(), compressor.self(), expressions[0])) instanceof AST_Sequence || (self1 = self1.optimize(compressor)) : self1.expressions = expressions, self1; }), AST_Unary.DEFMETHOD("lift_sequences", function(compressor) { if (compressor.option("sequences") && this.expression instanceof AST_Sequence) { var x = this.expression.expressions.slice(), e = this.clone(); diff --git a/crates/swc_ecma_minifier/tests/benches-full/three.js b/crates/swc_ecma_minifier/tests/benches-full/three.js index 4c55e6596da2..2f665a74cdb5 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/three.js +++ b/crates/swc_ecma_minifier/tests/benches-full/three.js @@ -769,7 +769,7 @@ return this._onChangeCallback(), this; }, _proto.setFromUnitVectors = function(vFrom, vTo) { var r = vFrom.dot(vTo) + 1; - return r < 0.000001 ? (r = 0, Math.abs(vFrom.x) > Math.abs(vFrom.z) ? (this._x = -vFrom.y, this._y = vFrom.x, this._z = 0, this._w = r) : (this._x = 0, this._y = -vFrom.z, this._z = vFrom.y, this._w = r)) : (this._x = vFrom.y * vTo.z - vFrom.z * vTo.y, this._y = vFrom.z * vTo.x - vFrom.x * vTo.z, this._z = vFrom.x * vTo.y - vFrom.y * vTo.x, this._w = r), this.normalize(); + return r < 0.000001 ? (r = 0, Math.abs(vFrom.x) > Math.abs(vFrom.z) ? (this._x = -vFrom.y, this._y = vFrom.x, this._z = 0) : (this._x = 0, this._y = -vFrom.z, this._z = vFrom.y)) : (this._x = vFrom.y * vTo.z - vFrom.z * vTo.y, this._y = vFrom.z * vTo.x - vFrom.x * vTo.z, this._z = vFrom.x * vTo.y - vFrom.y * vTo.x), this._w = r, this.normalize(); }, _proto.angleTo = function(q) { return 2 * Math.acos(Math.abs(MathUtils.clamp(this.dot(q), -1, 1))); }, _proto.rotateTowards = function(q, step) { @@ -1229,7 +1229,7 @@ var deltaLengthSq = this.center.distanceToSquared(point); return void 0 === target && (console.warn('THREE.Sphere: .clampPoint() target is now required'), target = new Vector3()), target.copy(point), deltaLengthSq > this.radius * this.radius && (target.sub(this.center).normalize(), target.multiplyScalar(this.radius).add(this.center)), target; }, _proto.getBoundingBox = function(target) { - return (void 0 === target && (console.warn('THREE.Sphere: .getBoundingBox() target is now required'), target = new Box3()), this.isEmpty()) ? (target.makeEmpty(), target) : (target.set(this.center, this.center), target.expandByScalar(this.radius), target); + return (void 0 === target && (console.warn('THREE.Sphere: .getBoundingBox() target is now required'), target = new Box3()), this.isEmpty()) ? target.makeEmpty() : (target.set(this.center, this.center), target.expandByScalar(this.radius)), target; }, _proto.applyMatrix4 = function(matrix) { return this.center.applyMatrix4(matrix), this.radius = this.radius * matrix.getMaxScaleOnAxis(), this; }, _proto.translate = function(offset) { @@ -1700,7 +1700,7 @@ for(var i = 0; i < arguments.length; i++)this.add(arguments[i]); return this; } - return object === this ? (console.error('THREE.Object3D.add: object can\'t be added as a child of itself.', object), this) : (object && object.isObject3D ? (null !== object.parent && object.parent.remove(object), object.parent = this, this.children.push(object), object.dispatchEvent(_addedEvent)) : console.error('THREE.Object3D.add: object not an instance of THREE.Object3D.', object), this); + return object === this ? console.error('THREE.Object3D.add: object can\'t be added as a child of itself.', object) : object && object.isObject3D ? (null !== object.parent && object.parent.remove(object), object.parent = this, this.children.push(object), object.dispatchEvent(_addedEvent)) : console.error('THREE.Object3D.add: object not an instance of THREE.Object3D.', object), this; }, remove: function(object) { if (arguments.length > 1) { diff --git a/crates/swc_ecma_minifier/tests/benches-full/victory.js b/crates/swc_ecma_minifier/tests/benches-full/victory.js index 63caa5ca041d..963eb8148494 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/victory.js +++ b/crates/swc_ecma_minifier/tests/benches-full/victory.js @@ -5972,9 +5972,9 @@ var _timer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../../node_modules/d3-timer/src/timer.js"); __webpack_exports__.default = function(callback, delay, time) { var t = new _timer_js__WEBPACK_IMPORTED_MODULE_0__.Timer, total = delay; - return null == delay ? (t.restart(callback, delay, time), t) : (delay = +delay, time = null == time ? Object(_timer_js__WEBPACK_IMPORTED_MODULE_0__.now)() : +time, t.restart(function tick(elapsed) { + return null == delay ? t.restart(callback, delay, time) : (delay = +delay, time = null == time ? Object(_timer_js__WEBPACK_IMPORTED_MODULE_0__.now)() : +time, t.restart(function tick(elapsed) { elapsed += total, t.restart(tick, total += delay, time), callback(elapsed); - }, delay, time), t); + }, delay, time)), t; }; }, "../../../node_modules/d3-timer/src/timeout.js": function(module1, __webpack_exports__, __webpack_require__) { @@ -24281,7 +24281,7 @@ return Array.isArray(bins) ? (bin.domain([ bins[0], bins[bins.length - 1] - ]), bin.thresholds(bins.slice(1, bins.length - 1)), bin) : Number.isInteger(bins) ? (bin.domain(niceScale.domain()), bin.thresholds(bins), bin) : dataOrBinsContainsDates ? (bin.domain(niceScale.domain()), bin.thresholds(niceScale.ticks()), bin) : (bin.domain(niceScale.domain()), bin); + ]), bin.thresholds(bins.slice(1, bins.length - 1))) : Number.isInteger(bins) ? (bin.domain(niceScale.domain()), bin.thresholds(bins)) : dataOrBinsContainsDates ? (bin.domain(niceScale.domain()), bin.thresholds(niceScale.ticks())) : bin.domain(niceScale.domain()), bin; }, getFormattedData = (func = function(_ref3) { var _ref3$data = _ref3.data, data = void 0 === _ref3$data ? [] : _ref3$data, x = _ref3.x, bins = _ref3.bins; if ((!data || !data.length) && !Array.isArray(bins)) return []; diff --git a/crates/swc_ecma_minifier/tests/benches-full/vue.js b/crates/swc_ecma_minifier/tests/benches-full/vue.js index a71260e5ec49..6fce558489b9 100644 --- a/crates/swc_ecma_minifier/tests/benches-full/vue.js +++ b/crates/swc_ecma_minifier/tests/benches-full/vue.js @@ -362,7 +362,7 @@ if ((isUndef(target) || isPrimitive(target)) && warn("Cannot set reactive property on undefined, null, or primitive value: " + target), Array.isArray(target) && isValidArrayIndex(key)) return target.length = Math.max(target.length, key), target.splice(key, 1, val), val; if (key in target && !(key in Object.prototype)) return target[key] = val, val; var ob = target.__ob__; - return target._isVue || ob && ob.vmCount ? (warn("Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option."), val) : ob ? (defineReactive$$1(ob.value, key, val), ob.dep.notify(), val) : (target[key] = val, val); + return target._isVue || ob && ob.vmCount ? warn("Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option.") : ob ? (defineReactive$$1(ob.value, key, val), ob.dep.notify()) : target[key] = val, val; } function del(target, key) { if ((isUndef(target) || isPrimitive(target)) && warn("Cannot delete reactive property on undefined, null, or primitive value: " + target), Array.isArray(target) && isValidArrayIndex(key)) { @@ -2257,7 +2257,7 @@ } }(vnode, insertedVnodeQueue, parentElm, refElm)) { var data = vnode.data, children = vnode.children, tag = vnode.tag; - isDef(tag) ? (data && data.pre && creatingElmInVPre++, isUnknownElement$$1(vnode, creatingElmInVPre) && warn('Unknown custom element: <' + tag + '> - did you register the component correctly? For recursive components, make sure to provide the "name" option.', vnode.context), vnode.elm = vnode.ns ? nodeOps.createElementNS(vnode.ns, tag) : nodeOps.createElement(tag, vnode), setScope(vnode), createChildren(vnode, children, insertedVnodeQueue), isDef(data) && invokeCreateHooks(vnode, insertedVnodeQueue), insert(parentElm, vnode.elm, refElm), data && data.pre && creatingElmInVPre--) : isTrue(vnode.isComment) ? (vnode.elm = nodeOps.createComment(vnode.text), insert(parentElm, vnode.elm, refElm)) : (vnode.elm = nodeOps.createTextNode(vnode.text), insert(parentElm, vnode.elm, refElm)); + isDef(tag) ? (data && data.pre && creatingElmInVPre++, isUnknownElement$$1(vnode, creatingElmInVPre) && warn('Unknown custom element: <' + tag + '> - did you register the component correctly? For recursive components, make sure to provide the "name" option.', vnode.context), vnode.elm = vnode.ns ? nodeOps.createElementNS(vnode.ns, tag) : nodeOps.createElement(tag, vnode), setScope(vnode), createChildren(vnode, children, insertedVnodeQueue), isDef(data) && invokeCreateHooks(vnode, insertedVnodeQueue), insert(parentElm, vnode.elm, refElm), data && data.pre && creatingElmInVPre--) : (isTrue(vnode.isComment) ? vnode.elm = nodeOps.createComment(vnode.text) : vnode.elm = nodeOps.createTextNode(vnode.text), insert(parentElm, vnode.elm, refElm)); } } function initComponent(vnode, insertedVnodeQueue) { @@ -2385,7 +2385,7 @@ } isUndef(vnode.text) ? isDef(oldCh) && isDef(ch) ? oldCh !== ch && function(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) { var oldKeyToIdx, idxInOld, vnodeToMove, oldStartIdx = 0, newStartIdx = 0, oldEndIdx = oldCh.length - 1, oldStartVnode = oldCh[0], oldEndVnode = oldCh[oldEndIdx], newEndIdx = newCh.length - 1, newStartVnode = newCh[0], newEndVnode = newCh[newEndIdx], canMove = !removeOnly; - for(checkDuplicateKeys(newCh); oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx;)isUndef(oldStartVnode) ? oldStartVnode = oldCh[++oldStartIdx] : isUndef(oldEndVnode) ? oldEndVnode = oldCh[--oldEndIdx] : sameVnode(oldStartVnode, newStartVnode) ? (patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx), oldStartVnode = oldCh[++oldStartIdx], newStartVnode = newCh[++newStartIdx]) : sameVnode(oldEndVnode, newEndVnode) ? (patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx), oldEndVnode = oldCh[--oldEndIdx], newEndVnode = newCh[--newEndIdx]) : sameVnode(oldStartVnode, newEndVnode) ? (patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx), canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm)), oldStartVnode = oldCh[++oldStartIdx], newEndVnode = newCh[--newEndIdx]) : sameVnode(oldEndVnode, newStartVnode) ? (patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx), canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm), oldEndVnode = oldCh[--oldEndIdx], newStartVnode = newCh[++newStartIdx]) : (isUndef(oldKeyToIdx) && (oldKeyToIdx = function(children, beginIdx, endIdx) { + for(checkDuplicateKeys(newCh); oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx;)isUndef(oldStartVnode) ? oldStartVnode = oldCh[++oldStartIdx] : isUndef(oldEndVnode) ? oldEndVnode = oldCh[--oldEndIdx] : sameVnode(oldStartVnode, newStartVnode) ? (patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx), oldStartVnode = oldCh[++oldStartIdx], newStartVnode = newCh[++newStartIdx]) : sameVnode(oldEndVnode, newEndVnode) ? (patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx), oldEndVnode = oldCh[--oldEndIdx], newEndVnode = newCh[--newEndIdx]) : sameVnode(oldStartVnode, newEndVnode) ? (patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx), canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm)), oldStartVnode = oldCh[++oldStartIdx], newEndVnode = newCh[--newEndIdx]) : (sameVnode(oldEndVnode, newStartVnode) ? (patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx), canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm), oldEndVnode = oldCh[--oldEndIdx]) : (isUndef(oldKeyToIdx) && (oldKeyToIdx = function(children, beginIdx, endIdx) { var i, key, map = {}; for(i = beginIdx; i <= endIdx; ++i)isDef(key = children[i].key) && (map[key] = i); return map; @@ -2394,7 +2394,7 @@ var c = oldCh[i]; if (isDef(c) && sameVnode(node, c)) return i; } - }(newStartVnode, oldCh, oldStartIdx, oldEndIdx)) ? 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)) ? 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]); oldStartIdx > oldEndIdx ? addVnodes(parentElm, isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm, 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/fixture/issues/2257/full/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/2257/full/output.js index e92869c45b02..927d263663b4 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 @@ -7290,10 +7290,7 @@ return null === match ? { value: void 0, done: state.done = !0 - } : state.global ? ("" === toString1(match[0]) && (R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode)), { - value: match, - done: !1 - }) : (state.done = !0, { + } : (state.global ? "" === toString1(match[0]) && (R.lastIndex = advanceStringIndex(S, toLength(R.lastIndex), state.unicode)) : state.done = !0, { value: match, done: !1 }); @@ -11421,7 +11418,7 @@ } } function tc(a, b, c, d, e, f) { - return null === a || a.nativeEvent !== f ? (a = rc(b, c, d, e, f), null !== b && null !== (b = Cb(b)) && fc(b), a) : (a.eventSystemFlags |= d, b = a.targetContainers, null !== e && -1 === b.indexOf(e) && b.push(e), a); + return null === a || a.nativeEvent !== f ? (a = rc(b, c, d, e, f), null !== b && null !== (b = Cb(b)) && fc(b)) : (a.eventSystemFlags |= d, b = a.targetContainers, null !== e && -1 === b.indexOf(e) && b.push(e)), a; } function xc(a) { if (null !== a.blockedOn) return !1; @@ -12888,16 +12885,16 @@ return a && null === b.alternate && (b.flags = 2), b; } function h(a, b, c, d) { - return null === b || 6 !== b.tag ? ((b = Ug(c, a.mode, d)).return = a, b) : ((b = e(b, c)).return = a, b); + return null === b || 6 !== b.tag ? (b = Ug(c, a.mode, d)).return = a : (b = e(b, c)).return = a, b; } function k(a, b, c, d) { - return null !== b && b.elementType === c.type ? ((d = e(b, c.props)).ref = Qg(a, b, c), d.return = a, d) : ((d = Vg(c.type, c.key, c.props, null, a.mode, d)).ref = Qg(a, b, c), d.return = a, d); + return null !== b && b.elementType === c.type ? (d = e(b, c.props)).ref = Qg(a, b, c) : (d = Vg(c.type, c.key, c.props, null, a.mode, d)).ref = Qg(a, b, c), d.return = a, d; } function l(a, b, c, d) { - return null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation ? ((b = Wg(c, a.mode, d)).return = a, b) : ((b = e(b, c.children || [])).return = a, b); + return null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation ? (b = Wg(c, a.mode, d)).return = a : (b = e(b, c.children || [])).return = a, b; } function n(a, b, c, d, f) { - return null === b || 7 !== b.tag ? ((b = Xg(c, a.mode, d, f)).return = a, b) : ((b = e(b, c)).return = a, b); + return null === b || 7 !== b.tag ? (b = Xg(c, a.mode, d, f)).return = a : (b = e(b, c)).return = a, b; } function A(a, b, c) { if ("string" == typeof b || "number" == typeof b) return (b = Ug("" + b, a.mode, c)).return = a, b; @@ -12985,7 +12982,7 @@ } return g(a1); } - if ("string" == typeof f1 || "number" == typeof f1) return f1 = "" + f1, null !== d1 && 6 === d1.tag ? (c(a1, d1.sibling), (d1 = e(d1, f1)).return = a1, a1 = d1) : (c(a1, d1), (d1 = Ug(f1, a1.mode, h)).return = a1, a1 = d1), g(a1); + if ("string" == typeof f1 || "number" == typeof f1) return f1 = "" + f1, null !== d1 && 6 === d1.tag ? (c(a1, d1.sibling), (d1 = e(d1, f1)).return = a1) : (c(a1, d1), (d1 = Ug(f1, a1.mode, h)).return = a1), g(a1 = d1); if (Pg(f1)) return function(e, g, h, k) { for(var l = null, t = null, u = g, z = g = 0, q = null; null !== u && z < h.length; z++){ u.index > z ? (q = u, u = null) : q = u.sibling; diff --git a/crates/swc_ecma_minifier/tests/fixture/issues/firebase-firestore/1/output.js b/crates/swc_ecma_minifier/tests/fixture/issues/firebase-firestore/1/output.js index fb5e744261b6..ea064828bb3d 100644 --- a/crates/swc_ecma_minifier/tests/fixture/issues/firebase-firestore/1/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/issues/firebase-firestore/1/output.js @@ -411,7 +411,7 @@ const e = t[s + 1]; if ("\\" !== e && "." !== e && "`" !== e) throw new j(K.INVALID_ARGUMENT, "Path has invalid escape sequence: " + t); n += e, s += 2; - } else "`" === e ? (r = !r, s++) : "." !== e || r ? (n += e, s++) : (i(), s++); + } else "`" === e ? r = !r : "." !== e || r ? n += e : i(), s++; } if (i(), r) throw new j(K.INVALID_ARGUMENT, "Unterminated ` in path: " + t); return new ft(e); 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 1cb607ae04a8..5b9e7255935b 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 @@ -1522,7 +1522,7 @@ return out; } function listWeekdaysImpl(localeSorted, format, index, field) { - "boolean" == typeof localeSorted ? (isNumber(format) && (index = format, format = void 0), format = format || "") : (index = format = localeSorted, localeSorted = !1, isNumber(format) && (index = format, format = void 0), format = format || ""); + "boolean" == typeof localeSorted || (index = format = localeSorted, localeSorted = !1), isNumber(format) && (index = format, format = void 0), format = format || ""; var i, locale = getLocale(), shift = localeSorted ? locale._week.dow : 0, out = []; if (null != index) return get$1(format, (index + shift) % 7, field, "day"); for(i = 0; i < 7; i++)out[i] = get$1(format, (i + shift) % 7, field, "day"); 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 f736ce095248..1551ec3ad8d7 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 @@ -596,13 +596,13 @@ function(module1, exports1, __webpack_require__) { var superPropBase = __webpack_require__(227); function _get(target, property, receiver) { - return "undefined" != typeof Reflect && Reflect.get ? (module1.exports = _get = Reflect.get, module1.exports.default = module1.exports, module1.exports.__esModule = !0) : (module1.exports = _get = function(target, property, receiver) { + return "undefined" != typeof Reflect && Reflect.get ? module1.exports = _get = Reflect.get : module1.exports = _get = function(target, property, receiver) { var base = superPropBase(target, property); if (base) { var desc = Object.getOwnPropertyDescriptor(base, property); return desc.get ? desc.get.call(receiver) : desc.value; } - }, module1.exports.default = module1.exports, module1.exports.__esModule = !0), _get(target, property, receiver || target); + }, module1.exports.default = module1.exports, module1.exports.__esModule = !0, _get(target, property, receiver || target); } module1.exports = _get, module1.exports.default = module1.exports, module1.exports.__esModule = !0; }, @@ -633,11 +633,11 @@ }, function(module1, exports1) { function _typeof(obj) { - return "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? (module1.exports = _typeof = function(obj) { + return "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? module1.exports = _typeof = function(obj) { return typeof obj; - }, module1.exports.default = module1.exports, module1.exports.__esModule = !0) : (module1.exports = _typeof = function(obj) { + } : module1.exports = _typeof = function(obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }, module1.exports.default = module1.exports, module1.exports.__esModule = !0), _typeof(obj); + }, module1.exports.default = module1.exports, module1.exports.__esModule = !0, _typeof(obj); } module1.exports = _typeof, module1.exports.default = module1.exports, module1.exports.__esModule = !0; }, @@ -3056,14 +3056,14 @@ function(module1, exports1, __webpack_require__) { var setPrototypeOf = __webpack_require__(41), isNativeReflectConstruct = __webpack_require__(250); function _construct(Parent, args, Class) { - return isNativeReflectConstruct() ? (module1.exports = _construct = Reflect.construct, module1.exports.default = module1.exports, module1.exports.__esModule = !0) : (module1.exports = _construct = function(Parent, args, Class) { + return isNativeReflectConstruct() ? module1.exports = _construct = Reflect.construct : module1.exports = _construct = function(Parent, args, Class) { var a = [ null ]; a.push.apply(a, args); var instance = new (Function.bind.apply(Parent, a))(); return Class && setPrototypeOf(instance, Class.prototype), instance; - }, module1.exports.default = module1.exports, module1.exports.__esModule = !0), _construct.apply(null, arguments); + }, module1.exports.default = module1.exports, module1.exports.__esModule = !0, _construct.apply(null, arguments); } module1.exports = _construct, module1.exports.default = module1.exports, module1.exports.__esModule = !0; }, 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 f7294f8f4b06..c8e3539baa26 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 @@ -5891,9 +5891,9 @@ ]); return !sourceTech || ((str1 = sourceTech.tech, str2 = this.techName_, toTitleCase$1(str1) !== toTitleCase$1(str2)) ? (this.changingSrc_ = !0, this.loadTech_(sourceTech.tech, sourceTech.source), this.tech_.ready(function() { _this15.changingSrc_ = !1; - }), !1) : (this.ready(function() { + })) : this.ready(function() { this.tech_.constructor.prototype.hasOwnProperty("setSource") ? this.techCall_("setSource", source) : this.techCall_("src", source.src), this.changingSrc_ = !1; - }, !0), !1)); + }, !0), !1); }, _proto.load = function() { this.techCall_("load"); }, _proto.reset = function() { @@ -8962,7 +8962,7 @@ Object.keys(captionServices).forEach(function(serviceName) { serviceProps = captionServices[serviceName], /^SERVICE/.test(serviceName) && (captionServiceEncodings[serviceName] = serviceProps.encoding); }), this.serviceEncodings = captionServiceEncodings, this.current708Packet = null, this.services = {}, this.push = function(packet) { - 3 === packet.type ? (self1.new708Packet(), self1.add708Bytes(packet)) : (null === self1.current708Packet && self1.new708Packet(), self1.add708Bytes(packet)); + 3 === packet.type ? self1.new708Packet() : null === self1.current708Packet && self1.new708Packet(), self1.add708Bytes(packet); }; }; Cea708Stream.prototype = new Stream(), Cea708Stream.prototype.new708Packet = function() { @@ -9616,7 +9616,7 @@ workingBytes.set(workingData.subarray(position, position + availableBytes)), workingWord = new DataView(workingBytes.buffer).getUint32(0), workingBitsAvailable = 8 * availableBytes, workingBytesAvailable -= availableBytes; }, this.skipBits = function(count) { var skipBytes; - workingBitsAvailable > count ? (workingWord <<= count, workingBitsAvailable -= count) : (count -= workingBitsAvailable, skipBytes = Math.floor(count / 8), count -= 8 * skipBytes, workingBytesAvailable -= skipBytes, this.loadWord(), workingWord <<= count, workingBitsAvailable -= count); + workingBitsAvailable > count || (count -= workingBitsAvailable, skipBytes = Math.floor(count / 8), count -= 8 * skipBytes, workingBytesAvailable -= skipBytes, this.loadWord()), workingWord <<= count, workingBitsAvailable -= count; }, this.readBits = function(size) { var bits = Math.min(workingBitsAvailable, size), valu = workingWord >>> 32 - bits; return ((workingBitsAvailable -= bits) > 0 ? workingWord <<= bits : workingBytesAvailable > 0 && this.loadWord(), (bits = size - bits) > 0) ? valu << bits | this.readBits(bits) : valu; 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 d69c7e4901ea..d01e464606f3 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 @@ -2168,7 +2168,7 @@ NAMESPACE.isHTML(el.uri) && !el.closed ? end = function(source, elStartEnd, tagName, entityReplacer, domBuilder) { if (/^(?:script|textarea)$/i.test(tagName)) { var elEndStart = source.indexOf("", elStartEnd), text = source.substring(elStartEnd + 1, elEndStart); - if (/[&<]/.test(text)) return /^script$/i.test(tagName) ? (domBuilder.characters(text, 0, text.length), elEndStart) : (text = text.replace(/&#?\w+;/g, entityReplacer), domBuilder.characters(text, 0, text.length), elEndStart); + if (/[&<]/.test(text)) return /^script$/i.test(tagName) || (text = text.replace(/&#?\w+;/g, entityReplacer)), domBuilder.characters(text, 0, text.length), elEndStart; } return elStartEnd + 1; }(source, end, el.tagName, entityReplacer, domBuilder) : end++; 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 b0e230c462f2..f5a088becf4a 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 @@ -979,9 +979,9 @@ if ("\t" == m[0]) { var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; (txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab"))).setAttribute("role", "presentation"), txt$1.setAttribute("cm-text", "\t"), builder.col += tabWidth; - } else "\r" == m[0] || "\n" == m[0] ? ((txt$1 = content.appendChild(elt("span", "\r" == m[0] ? "\u240d" : "\u2424", "cm-invalidchar"))).setAttribute("cm-text", m[0]), builder.col += 1) : ((txt$1 = builder.cm.options.specialCharPlaceholder(m[0])).setAttribute("cm-text", m[0]), ie && ie_version < 9 ? content.appendChild(elt("span", [ + } else "\r" == m[0] || "\n" == m[0] ? (txt$1 = content.appendChild(elt("span", "\r" == m[0] ? "\u240d" : "\u2424", "cm-invalidchar"))).setAttribute("cm-text", m[0]) : ((txt$1 = builder.cm.options.specialCharPlaceholder(m[0])).setAttribute("cm-text", m[0]), ie && ie_version < 9 ? content.appendChild(elt("span", [ txt$1 - ])) : content.appendChild(txt$1), builder.col += 1); + ])) : content.appendChild(txt$1)), builder.col += 1; builder.map.push(builder.pos, builder.pos + 1, txt$1), builder.pos++; } } else builder.col += text.length, content = document.createTextNode(displayText), builder.map.push(builder.pos, builder.pos + text.length, content), ie && ie_version < 9 && (mustWrap = !0), builder.pos += text.length; diff --git a/crates/swc_ecma_minifier/tests/fixture/next/feedback-3/579-dcac359116b2707c/output.js b/crates/swc_ecma_minifier/tests/fixture/next/feedback-3/579-dcac359116b2707c/output.js index 57104b5e5e35..eaac898bd3cf 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/feedback-3/579-dcac359116b2707c/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/feedback-3/579-dcac359116b2707c/output.js @@ -54,11 +54,11 @@ }, 8: (t)=>{ function e(r) { - return "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? (t.exports = e = function(t) { + return "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? t.exports = e = function(t) { return typeof t; - }, t.exports.default = t.exports, t.exports.__esModule = !0) : (t.exports = e = function(t) { + } : t.exports = e = function(t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t; - }, t.exports.default = t.exports, t.exports.__esModule = !0), e(r); + }, t.exports.default = t.exports, t.exports.__esModule = !0, e(r); } t.exports = e, t.exports.default = t.exports, t.exports.__esModule = !0; }, @@ -648,7 +648,7 @@ var o = e.length - r.maxStringLength; return t(e.slice(0, r.maxStringLength), r) + "... " + o + " more character" + (o > 1 ? "s" : ""); } - return E(e.replace(/(['\\])/g, "\\$1").replace(/[\x00-\x1f]/g, U), "single", r); + return E(e.replace(/(['\\])/g, "\\$1").replace(/[\x00-\x1f]/g, M), "single", r); }(e, p); if ("number" == typeof e) return 0 === e ? 1 / 0 / e > 0 ? "0" : "-0" : String(e); if ("bigint" == typeof e) return String(e) + "n"; @@ -667,7 +667,7 @@ }; }(p, o); if (void 0 === n) n = []; - else if (M(n, e) >= 0) return "[Circular]"; + else if (U(n, e) >= 0) return "[Circular]"; function O(e, r, i) { if (r && (n = n.slice()).push(r), i) { var a = { @@ -697,7 +697,7 @@ if (0 === e.length) return "[]"; var V = C(e, O); return v && !function(t) { - for(var e = 0; e < t.length; e++)if (M(t[e], "\n") >= 0) return !1; + for(var e = 0; e < t.length; e++)if (U(t[e], "\n") >= 0) return !1; return !0; }(V) ? "[" + T(V, v) + "]" : "[ " + V.join(", ") + " ]"; } @@ -803,12 +803,12 @@ function R(t) { return b.call(t); } - function M(t, e) { + function U(t, e) { if (t.indexOf) return t.indexOf(e); for(var r = 0, o = t.length; r < o; r++)if (t[r] === e) return r; return -1; } - function U(t) { + function M(t) { var e = t.charCodeAt(0), r = { 8: "b", 9: "t", diff --git a/crates/swc_ecma_minifier/tests/fixture/next/octokit/static/chunks/357-72bd409f1472b1b8/output.js b/crates/swc_ecma_minifier/tests/fixture/next/octokit/static/chunks/357-72bd409f1472b1b8/output.js index 7f27a01325d4..a30ad6f52dcf 100644 --- a/crates/swc_ecma_minifier/tests/fixture/next/octokit/static/chunks/357-72bd409f1472b1b8/output.js +++ b/crates/swc_ecma_minifier/tests/fixture/next/octokit/static/chunks/357-72bd409f1472b1b8/output.js @@ -629,7 +629,7 @@ error: error1 }), !1; } - return blocked ? (job.doDrop(), !0) : reachedHWM && (null != (shifted = strategy === Bottleneck.prototype.strategy.LEAK ? this._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? this._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0) && shifted.doDrop(), null == shifted || strategy === Bottleneck.prototype.strategy.OVERFLOW) ? (null == shifted && job.doDrop(), reachedHWM) : (job.doQueue(reachedHWM, blocked), this._queues.push(job), await this._drainAll(), reachedHWM); + return blocked ? (job.doDrop(), !0) : (reachedHWM && (null != (shifted = strategy === Bottleneck.prototype.strategy.LEAK ? this._queues.shiftLastFrom(options.priority) : strategy === Bottleneck.prototype.strategy.OVERFLOW_PRIORITY ? this._queues.shiftLastFrom(options.priority + 1) : strategy === Bottleneck.prototype.strategy.OVERFLOW ? job : void 0) && shifted.doDrop(), null == shifted || strategy === Bottleneck.prototype.strategy.OVERFLOW) ? null == shifted && job.doDrop() : (job.doQueue(reachedHWM, blocked), this._queues.push(job), await this._drainAll()), reachedHWM); } _receive(job) { return null != this._states.jobStatus(job.options.id) ? (job._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${job.options.id})`)), !1) : (job.doReceive(), this._submitLock.schedule(this._addToQueue, job)); 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 540ccb6b5cd2..1910a24fcb9b 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 @@ -11809,7 +11809,7 @@ margin: 0 10px;\ var startW, textW, endW, isLeftAligned = !0, isRightAligned = !0; return lines.map(function(line) { var m = line.match(/(\s*)(.*?)(\s*)([=:].*)/); - return m ? null == startW ? (startW = m[1].length, textW = m[2].length, endW = m[3].length, m) : (startW + textW + endW != m[1].length + m[2].length + m[3].length && (isRightAligned = !1), startW != m[1].length && (isLeftAligned = !1), startW > m[1].length && (startW = m[1].length), textW < m[2].length && (textW = m[2].length), endW > m[3].length && (endW = m[3].length), m) : [ + return m ? (null == startW ? (startW = m[1].length, textW = m[2].length, endW = m[3].length) : (startW + textW + endW != m[1].length + m[2].length + m[3].length && (isRightAligned = !1), startW != m[1].length && (isLeftAligned = !1), startW > m[1].length && (startW = m[1].length), textW < m[2].length && (textW = m[2].length), endW > m[3].length && (endW = m[3].length)), m) : [ line ]; }).map(forceLeft ? alignLeft : isLeftAligned ? isRightAligned ? function(m) { 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 35323d35a3b9..f24265543aff 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 @@ -21698,9 +21698,9 @@ e.exports = { destroy: function(e, o) { var a = this, u = this._readableState && this._readableState.destroyed, l = this._writableState && this._writableState.destroyed; - return u || l ? (o ? o(e) : e && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = !0, n.nextTick(i, this, e)) : n.nextTick(i, this, e)), this) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(e || null, function(e) { + return u || l ? o ? o(e) : e && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = !0, n.nextTick(i, this, e)) : n.nextTick(i, this, e)) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(e || null, function(e) { !o && e ? a._writableState ? a._writableState.errorEmitted ? n.nextTick(r, a) : (a._writableState.errorEmitted = !0, n.nextTick(t, a, e)) : n.nextTick(t, a, e) : o ? (n.nextTick(r, a), o(e)) : n.nextTick(r, a); - }), this); + })), this; }, undestroy: function() { this._readableState && (this._readableState.destroyed = !1, this._readableState.reading = !1, this._readableState.ended = !1, this._readableState.endEmitted = !1), this._writableState && (this._writableState.destroyed = !1, this._writableState.ended = !1, this._writableState.ending = !1, this._writableState.finalCalled = !1, this._writableState.prefinished = !1, this._writableState.finished = !1, this._writableState.errorEmitted = !1); @@ -24758,16 +24758,16 @@ return e && null === t.alternate && (t.effectTag = 2), t; } function u(e, t, r, n) { - return null === t || 6 !== t.tag ? ((t = iv(r, e.mode, n)).return = e, t) : ((t = i(t, r, n)).return = e, t); + return null === t || 6 !== t.tag ? (t = iv(r, e.mode, n)).return = e : (t = i(t, r, n)).return = e, t; } function l(e, t, r, n) { - return null !== t && t.elementType === r.type ? ((n = i(t, r.props, n)).ref = tX(e, t, r), n.return = e, n) : ((n = iy(r.type, r.key, r.props, null, e.mode, n)).ref = tX(e, t, r), n.return = e, n); + return null !== t && t.elementType === r.type ? (n = i(t, r.props, n)).ref = tX(e, t, r) : (n = iy(r.type, r.key, r.props, null, e.mode, n)).ref = tX(e, t, r), n.return = e, n; } function s(e, t, r, n) { - return null === t || 4 !== t.tag || t.stateNode.containerInfo !== r.containerInfo || t.stateNode.implementation !== r.implementation ? ((t = ib(r, e.mode, n)).return = e, t) : ((t = i(t, r.children || [], n)).return = e, t); + return null === t || 4 !== t.tag || t.stateNode.containerInfo !== r.containerInfo || t.stateNode.implementation !== r.implementation ? (t = ib(r, e.mode, n)).return = e : (t = i(t, r.children || [], n)).return = e, t; } function c(e, t, r, n, o) { - return null === t || 7 !== t.tag ? ((t = ig(r, e.mode, n, o)).return = e, t) : ((t = i(t, r, n)).return = e, t); + return null === t || 7 !== t.tag ? (t = ig(r, e.mode, n, o)).return = e : (t = i(t, r, n)).return = e, t; } function f(e, t, r) { if ("string" == typeof t || "number" == typeof t) return (t = iv("" + t, e.mode, r)).return = e, t; @@ -24850,7 +24850,7 @@ } return a(u); } - if ("string" == typeof s || "number" == typeof s) return s = "" + s, null !== l && 6 === l.tag ? (r(u, l.sibling), (l = i(l, s, c)).return = u, u = l) : (r(u, l), (l = iv(s, u.mode, c)).return = u, u = l), a(u); + if ("string" == typeof s || "number" == typeof s) return s = "" + s, null !== l && 6 === l.tag ? (r(u, l.sibling), (l = i(l, s, c)).return = u) : (r(u, l), (l = iv(s, u.mode, c)).return = u), a(u = l); if (tZ(s)) return function(i, a, u, l) { for(var s = null, c = null, d = a, y = a = 0, g = null; null !== d && y < u.length; y++){ d.index > y ? (g = d, d = null) : g = d.sibling; 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 959692dcee17..3b838f7ea85c 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 @@ -813,7 +813,7 @@ targetContainers: [ e ] - }, null !== b && null !== (b = Bb(b)) && Ec(b), a) : (a.eventSystemFlags |= d, b = a.targetContainers, null !== e && -1 === b.indexOf(e) && b.push(e), a); + }, null !== b && null !== (b = Bb(b)) && Ec(b)) : (a.eventSystemFlags |= d, b = a.targetContainers, null !== e && -1 === b.indexOf(e) && b.push(e)), a; } function Uc(a) { var b = Vc(a.target); @@ -2407,17 +2407,17 @@ return a && null === b.alternate && (b.flags |= 2), b; } function h(a, b, c, d) { - return null === b || 6 !== b.tag ? ((b = uh(c, a.mode, d)).return = a, b) : ((b = e(b, c)).return = a, b); + return null === b || 6 !== b.tag ? (b = uh(c, a.mode, d)).return = a : (b = e(b, c)).return = a, b; } function k(a, b, c, d) { var f = c.type; - return f === wa ? n(a, b, c.props.children, d, c.key) : null !== b && (b.elementType === f || "object" == typeof f && null !== f && f.$$typeof === Ga && rh(f) === b.type) ? ((d = e(b, c.props)).ref = ph(a, b, c), d.return = a, d) : ((d = vh(c.type, c.key, c.props, null, a.mode, d)).ref = ph(a, b, c), d.return = a, d); + return f === wa ? n(a, b, c.props.children, d, c.key) : (null !== b && (b.elementType === f || "object" == typeof f && null !== f && f.$$typeof === Ga && rh(f) === b.type) ? (d = e(b, c.props)).ref = ph(a, b, c) : (d = vh(c.type, c.key, c.props, null, a.mode, d)).ref = ph(a, b, c), d.return = a, d); } function l(a, b, c, d) { - return null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation ? ((b = wh(c, a.mode, d)).return = a, b) : ((b = e(b, c.children || [])).return = a, b); + return null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation ? (b = wh(c, a.mode, d)).return = a : (b = e(b, c.children || [])).return = a, b; } function n(a, b, c, d, f) { - return null === b || 7 !== b.tag ? ((b = xh(c, a.mode, d, f)).return = a, b) : ((b = e(b, c)).return = a, b); + return null === b || 7 !== b.tag ? (b = xh(c, a.mode, d, f)).return = a : (b = e(b, c)).return = a, b; } function u(a, b, c) { if ("string" == typeof b && "" !== b || "number" == typeof b) return (b = uh("" + b, a.mode, c)).return = a, b; @@ -2557,7 +2557,7 @@ }(a1, d1, f1, h); qh(a1, f1); } - return "string" == typeof f1 && "" !== f1 || "number" == typeof f1 ? (f1 = "" + f1, null !== d1 && 6 === d1.tag ? (c(a1, d1.sibling), (d1 = e(d1, f1)).return = a1, a1 = d1) : (c(a1, d1), (d1 = uh(f1, a1.mode, h)).return = a1, a1 = d1), g(a1)) : c(a1, d1); + return "string" == typeof f1 && "" !== f1 || "number" == typeof f1 ? (f1 = "" + f1, null !== d1 && 6 === d1.tag ? (c(a1, d1.sibling), (d1 = e(d1, f1)).return = a1) : (c(a1, d1), (d1 = uh(f1, a1.mode, h)).return = a1), g(a1 = d1)) : c(a1, d1); }; } var yh = sh(!0), zh = sh(!1), Ah = {}, Bh = Tf(Ah), Ch = Tf(Ah), Dh = Tf(Ah); @@ -3190,7 +3190,7 @@ return null; } function Si(a, b, c, d, e) { - return 0 == (1 & a.mode) ? (a === b ? a.flags |= 65536 : (a.flags |= 128, c.flags |= 131072, c.flags &= -52805, 1 === c.tag && (null === c.alternate ? c.tag = 17 : ((b = zg(-1, 1)).tag = 2, Ag(c, b))), c.lanes |= 1), a) : (a.flags |= 65536, a.lanes = e, a); + return 0 == (1 & a.mode) ? a === b ? a.flags |= 65536 : (a.flags |= 128, c.flags |= 131072, c.flags &= -52805, 1 === c.tag && (null === c.alternate ? c.tag = 17 : ((b = zg(-1, 1)).tag = 2, Ag(c, b))), c.lanes |= 1) : (a.flags |= 65536, a.lanes = e), a; } function Xi(a, b) { if (!I) switch(a.tailMode){ 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 35475b0ad632..d1cdcbf5c585 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 @@ -7713,7 +7713,7 @@ var ele = this.reactElement; ele && !this.isAppendCalled && (this.isAppendCalled = !0, this.appendTo(ele)); }, ComponentBase.prototype.shouldComponentUpdate = function(nextProps) { - return (this.isshouldComponentUpdateCalled = !0, this.initRenderCalled) ? (this.isAppendCalled || (clearTimeout(this.cachedTimeOut), this.isAppendCalled = !0, this.appendTo(this.reactElement)), this.updateProperties(nextProps), !0) : (this.updateProperties(nextProps, !0), !0); + return (this.isshouldComponentUpdateCalled = !0, this.initRenderCalled) ? (this.isAppendCalled || (clearTimeout(this.cachedTimeOut), this.isAppendCalled = !0, this.appendTo(this.reactElement)), this.updateProperties(nextProps)) : this.updateProperties(nextProps, !0), !0; }, ComponentBase.prototype.updateProperties = function(nextProps, silent) { for(var _this = this, dProps = (0, ej2_base.l7)({}, nextProps), keys = Object.keys(nextProps), _i = 0; _i < keys.length; _i++){ var propkey = keys[_i], isClassName = 'className' === propkey; @@ -8240,7 +8240,7 @@ baseToolbar: this.parent.getBaseToolbarObject() }); var serializeValue = this.parent.serializeValue(editHTML.value); - value = null === serializeValue || '' === serializeValue ? 'DIV' === this.parent.enterKey ? '

' : 'BR' === this.parent.enterKey ? '
' : '


' : serializeValue, this.parent.iframeSettings.enable ? (editHTML.parentElement.style.display = 'none', editHTML.style.display = 'none', this.contentModule.getPanel().style.display = 'block', this.contentModule.getEditPanel().innerHTML = value) : (editHTML.style.display = 'none', this.contentModule.getEditPanel().style.display = 'block', this.contentModule.getEditPanel().innerHTML = value), this.parent.isBlur = !1, this.parent.enableToolbarItem(this.parent.toolbarSettings.items), this.parent.getToolbar() && (0, ej2_base.IV)([ + value = null === serializeValue || '' === serializeValue ? 'DIV' === this.parent.enterKey ? '

' : 'BR' === this.parent.enterKey ? '
' : '


' : serializeValue, this.parent.iframeSettings.enable ? (editHTML.parentElement.style.display = 'none', editHTML.style.display = 'none', this.contentModule.getPanel().style.display = 'block') : (editHTML.style.display = 'none', this.contentModule.getEditPanel().style.display = 'block'), this.contentModule.getEditPanel().innerHTML = value, this.parent.isBlur = !1, this.parent.enableToolbarItem(this.parent.toolbarSettings.items), this.parent.getToolbar() && (0, ej2_base.IV)([ this.parent.getToolbar() ], [ classes.Yi @@ -13136,7 +13136,7 @@ } else anchorNodes[j += 1] = this.createAchorNode(e), cloneNode = finalinlineNodes[i + 1].cloneNode(!0), anchorNodes[j].appendChild(cloneNode); } this.parent.nodeSelection.setRange(document, save.range); - for(var i = 0, j_2 = 0, k = 0; i <= finalinlineNodes.length; i++)0 === i && (finalinlineNodes[i].parentNode.insertBefore(anchorNodes[j_2], finalinlineNodes[i].nextSibling), 1 === this.parent.domNode.blockNodes().length && this.parent.nodeSelection.setSelectionNode(this.parent.currentDocument, anchorNodes[j_2]), removeNodes[k] = finalinlineNodes[i], k++), i < finalinlineNodes.length - 1 && (finalinlineNodes[i].parentNode === finalinlineNodes[i + 1].parentNode ? (removeNodes[k] = finalinlineNodes[i + 1], k++) : (j_2 += 1, finalinlineNodes[i + 1].parentNode.insertBefore(anchorNodes[j_2], finalinlineNodes[i + 1]), removeNodes[k] = finalinlineNodes[i + 1], k++)); + for(var i = 0, j_2 = 0, k = 0; i <= finalinlineNodes.length; i++)0 === i && (finalinlineNodes[i].parentNode.insertBefore(anchorNodes[j_2], finalinlineNodes[i].nextSibling), 1 === this.parent.domNode.blockNodes().length && this.parent.nodeSelection.setSelectionNode(this.parent.currentDocument, anchorNodes[j_2]), removeNodes[k] = finalinlineNodes[i], k++), i < finalinlineNodes.length - 1 && (finalinlineNodes[i].parentNode === finalinlineNodes[i + 1].parentNode || (j_2 += 1, finalinlineNodes[i + 1].parentNode.insertBefore(anchorNodes[j_2], finalinlineNodes[i + 1])), removeNodes[k] = finalinlineNodes[i + 1], k++); for(var i = 0; i < removeNodes.length; i++)removeNodes[i].parentNode && removeNodes[i].parentNode.removeChild(removeNodes[i]); }, LinkCommand.prototype.createAchorNode = function(e) { var anchorEle = (0, ej2_base.az)('a', { @@ -13288,7 +13288,7 @@ }); for(var i = 0; i < indentsNodes.length; i++){ var parentNode = indentsNodes[i], marginLeftOrRight = isRtl ? parentNode.style.marginRight : parentNode.style.marginLeft, indentsValue = void 0; - 'Indent' === e.subCommand ? (indentsValue = '' === marginLeftOrRight ? this.indentValue + 'px' : parseInt(marginLeftOrRight, null) + this.indentValue + 'px', isRtl ? parentNode.style.marginRight = indentsValue : parentNode.style.marginLeft = indentsValue) : (indentsValue = '' === marginLeftOrRight || '0px' === marginLeftOrRight ? '' : parseInt(marginLeftOrRight, null) - this.indentValue + 'px', isRtl ? parentNode.style.marginRight = indentsValue : parentNode.style.marginLeft = indentsValue); + indentsValue = 'Indent' === e.subCommand ? '' === marginLeftOrRight ? this.indentValue + 'px' : parseInt(marginLeftOrRight, null) + this.indentValue + 'px' : '' === marginLeftOrRight || '0px' === marginLeftOrRight ? '' : parseInt(marginLeftOrRight, null) - this.indentValue + 'px', isRtl ? parentNode.style.marginRight = indentsValue : parentNode.style.marginLeft = indentsValue; } editEle.focus(), (0, common_util.FA)() && (0, common_util.ze)(editEle, e.selector), (save = this.parent.domNode.saveMarker(save)).restore(), e.callBack && e.callBack({ requestType: e.subCommand, @@ -19231,7 +19231,7 @@ }, Toolbar.prototype.pushingPoppedEle = function(tbarObj, popupPri, ele, eleHeight, sepHeight) { var element = tbarObj.element, poppedEle = [].slice.call((0, ej2_base.td)('.' + CLS_POPUP, element.querySelector('.' + CLS_ITEMS))), nodes = (0, ej2_base.td)('.' + CLS_TBAROVERFLOW, ele), nodeIndex = 0, nodePri = 0; poppedEle.forEach(function(el, index) { - nodes = (0, ej2_base.td)('.' + CLS_TBAROVERFLOW, ele), el.classList.contains(CLS_TBAROVERFLOW) && nodes.length > 0 ? tbarObj.tbResize && nodes.length > index ? (ele.insertBefore(el, nodes[index]), ++nodePri) : (ele.insertBefore(el, ele.children[nodes.length]), ++nodePri) : el.classList.contains(CLS_TBAROVERFLOW) ? (ele.insertBefore(el, ele.firstChild), ++nodePri) : tbarObj.tbResize && el.classList.contains(CLS_POPOVERFLOW) && ele.children.length > 0 && 0 === nodes.length ? (ele.insertBefore(el, ele.firstChild), ++nodePri) : el.classList.contains(CLS_POPOVERFLOW) ? popupPri.push(el) : tbarObj.tbResize ? (ele.insertBefore(el, ele.childNodes[nodeIndex + nodePri]), ++nodeIndex) : ele.appendChild(el), el.classList.contains(CLS_SEPARATOR) ? (0, ej2_base.V7)(el, { + nodes = (0, ej2_base.td)('.' + CLS_TBAROVERFLOW, ele), el.classList.contains(CLS_TBAROVERFLOW) && nodes.length > 0 ? (tbarObj.tbResize && nodes.length > index ? ele.insertBefore(el, nodes[index]) : ele.insertBefore(el, ele.children[nodes.length]), ++nodePri) : el.classList.contains(CLS_TBAROVERFLOW) ? (ele.insertBefore(el, ele.firstChild), ++nodePri) : tbarObj.tbResize && el.classList.contains(CLS_POPOVERFLOW) && ele.children.length > 0 && 0 === nodes.length ? (ele.insertBefore(el, ele.firstChild), ++nodePri) : el.classList.contains(CLS_POPOVERFLOW) ? popupPri.push(el) : tbarObj.tbResize ? (ele.insertBefore(el, ele.childNodes[nodeIndex + nodePri]), ++nodeIndex) : ele.appendChild(el), el.classList.contains(CLS_SEPARATOR) ? (0, ej2_base.V7)(el, { display: '', height: sepHeight + 'px' }) : (0, ej2_base.V7)(el, { @@ -19492,7 +19492,7 @@ var sepBeforePri_1 = 0; 'Extended' !== this_1.overflowMode && eleSplice.slice(0, index).forEach(function(el) { (el.classList.contains(CLS_TBAROVERFLOW) || el.classList.contains(CLS_SEPARATOR)) && (el.classList.contains(CLS_SEPARATOR) && (el.style.display = '', width -= el.offsetWidth), sepBeforePri_1++); - }), ignoreCount = this_1.ignoreEleFetch(index, innerEle), el.classList.contains(CLS_TBAROVERFLOW) ? (this_1.tbarPriRef(innerEle, index, sepBeforePri_1, el, destroy, elWidth, width, ignoreCount), width -= el.offsetWidth) : 0 === index ? (innerEle.insertBefore(el, innerEle.firstChild), width -= el.offsetWidth) : (priEleCnt = (0, ej2_base.td)('.' + CLS_TBAROVERFLOW, this_1.popObj.element).length, innerEle.insertBefore(el, innerEle.children[index + ignoreCount - priEleCnt]), width -= el.offsetWidth), el.style.height = ''; + }), ignoreCount = this_1.ignoreEleFetch(index, innerEle), el.classList.contains(CLS_TBAROVERFLOW) ? this_1.tbarPriRef(innerEle, index, sepBeforePri_1, el, destroy, elWidth, width, ignoreCount) : 0 === index ? innerEle.insertBefore(el, innerEle.firstChild) : (priEleCnt = (0, ej2_base.td)('.' + CLS_TBAROVERFLOW, this_1.popObj.element).length, innerEle.insertBefore(el, innerEle.children[index + ignoreCount - priEleCnt])), width -= el.offsetWidth, el.style.height = ''; }(_a[_i]); _i++); this.checkOverflow(this.element, this.element.getElementsByClassName(CLS_ITEMS)[0]) && !destroy && this.renderOverflowMode(); }, Toolbar.prototype.removePositioning = function() { @@ -21437,7 +21437,7 @@ this.sliderContainer ], slider_classNames.rtl); var preDir = 'Vertical' !== this.orientation ? this.horDir : this.verDir; - this.enableRtl ? (this.horDir = 'right', this.verDir = 'bottom') : (this.horDir = 'left', this.verDir = 'bottom'), preDir !== ('Vertical' !== this.orientation ? this.horDir : this.verDir) && 'Horizontal' === this.orientation && ((0, ej2_base.V7)(this.firstHandle, { + this.enableRtl ? this.horDir = 'right' : this.horDir = 'left', this.verDir = 'bottom', preDir !== ('Vertical' !== this.orientation ? this.horDir : this.verDir) && 'Horizontal' === this.orientation && ((0, ej2_base.V7)(this.firstHandle, { right: '', left: 'auto' }), 'Range' === this.type && (0, ej2_base.V7)(this.secondHandle, { @@ -21457,7 +21457,7 @@ content = this.formatContent(this.tooltipFormatInfo, !1), this.tooltipObj.content = content; }, Slider.prototype.formatContent = function(formatInfo, ariaContent) { var content = '', handle1 = this.handleVal1, handle2 = this.handleVal2; - return (!(0, ej2_base.le)(this.customValues) && this.customValues.length > 0 && (handle1 = this.customValues[this.handleVal1], handle2 = this.customValues[this.handleVal2]), ariaContent) ? ('Range' === this.type ? content = this.enableRtl && 'Vertical' !== this.orientation ? (0, ej2_base.le)(this.tooltip) || (0, ej2_base.le)(this.tooltip.format) ? handle2.toString() + ' - ' + handle1.toString() : this.formatString(handle2, formatInfo).elementVal + ' - ' + this.formatString(handle1, formatInfo).elementVal : (0, ej2_base.le)(this.tooltip) || (0, ej2_base.le)(this.tooltip.format) ? handle1.toString() + ' - ' + handle2.toString() : this.formatString(handle1, formatInfo).elementVal + ' - ' + this.formatString(handle2, formatInfo).elementVal : (0, ej2_base.le)(handle1) || (content = (0, ej2_base.le)(this.tooltip) || (0, ej2_base.le)(this.tooltip.format) ? handle1.toString() : this.formatString(handle1, formatInfo).elementVal), content) : ('Range' === this.type ? content = this.enableRtl && 'Vertical' !== this.orientation ? (0, ej2_base.le)(formatInfo.format) ? handle2.toString() + ' - ' + handle1.toString() : this.formatString(handle2, formatInfo).formatString + ' - ' + this.formatString(handle1, formatInfo).formatString : (0, ej2_base.le)(formatInfo.format) ? handle1.toString() + ' - ' + handle2.toString() : this.formatString(handle1, formatInfo).formatString + ' - ' + this.formatString(handle2, formatInfo).formatString : (0, ej2_base.le)(handle1) || (content = (0, ej2_base.le)(formatInfo.format) ? handle1.toString() : this.formatString(handle1, formatInfo).formatString), content); + return (!(0, ej2_base.le)(this.customValues) && this.customValues.length > 0 && (handle1 = this.customValues[this.handleVal1], handle2 = this.customValues[this.handleVal2]), ariaContent) ? 'Range' === this.type ? content = this.enableRtl && 'Vertical' !== this.orientation ? (0, ej2_base.le)(this.tooltip) || (0, ej2_base.le)(this.tooltip.format) ? handle2.toString() + ' - ' + handle1.toString() : this.formatString(handle2, formatInfo).elementVal + ' - ' + this.formatString(handle1, formatInfo).elementVal : (0, ej2_base.le)(this.tooltip) || (0, ej2_base.le)(this.tooltip.format) ? handle1.toString() + ' - ' + handle2.toString() : this.formatString(handle1, formatInfo).elementVal + ' - ' + this.formatString(handle2, formatInfo).elementVal : (0, ej2_base.le)(handle1) || (content = (0, ej2_base.le)(this.tooltip) || (0, ej2_base.le)(this.tooltip.format) ? handle1.toString() : this.formatString(handle1, formatInfo).elementVal) : 'Range' === this.type ? content = this.enableRtl && 'Vertical' !== this.orientation ? (0, ej2_base.le)(formatInfo.format) ? handle2.toString() + ' - ' + handle1.toString() : this.formatString(handle2, formatInfo).formatString + ' - ' + this.formatString(handle1, formatInfo).formatString : (0, ej2_base.le)(formatInfo.format) ? handle1.toString() + ' - ' + handle2.toString() : this.formatString(handle1, formatInfo).formatString + ' - ' + this.formatString(handle2, formatInfo).formatString : (0, ej2_base.le)(handle1) || (content = (0, ej2_base.le)(formatInfo.format) ? handle1.toString() : this.formatString(handle1, formatInfo).formatString), content; }, Slider.prototype.addTooltipClass = function(content) { if (this.isMaterialTooltip) { var count = content.toString().length; @@ -21776,7 +21776,7 @@ }, Slider.prototype.checkValidValueAndPos = function(value) { return value = this.checkHandleValue(value), value = this.checkHandlePosition(value); }, Slider.prototype.setLimitBarPositions = function(fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion) { - 'Horizontal' === this.orientation ? this.enableRtl ? (this.limitBarFirst.style.right = fromMinPostion + 'px', this.limitBarFirst.style.width = fromMaxpostion - fromMinPostion + 'px') : (this.limitBarFirst.style.left = fromMinPostion + 'px', this.limitBarFirst.style.width = fromMaxpostion - fromMinPostion + 'px') : (this.limitBarFirst.style.bottom = fromMinPostion + 'px', this.limitBarFirst.style.height = fromMaxpostion - fromMinPostion + 'px'), 'Range' === this.type && ('Horizontal' === this.orientation ? this.enableRtl ? (this.limitBarSecond.style.right = toMinPostion + 'px', this.limitBarSecond.style.width = toMaxpostion - toMinPostion + 'px') : (this.limitBarSecond.style.left = toMinPostion + 'px', this.limitBarSecond.style.width = toMaxpostion - toMinPostion + 'px') : (this.limitBarSecond.style.bottom = toMinPostion + 'px', this.limitBarSecond.style.height = toMaxpostion - toMinPostion + 'px')); + 'Horizontal' === this.orientation ? (this.enableRtl ? this.limitBarFirst.style.right = fromMinPostion + 'px' : this.limitBarFirst.style.left = fromMinPostion + 'px', this.limitBarFirst.style.width = fromMaxpostion - fromMinPostion + 'px') : (this.limitBarFirst.style.bottom = fromMinPostion + 'px', this.limitBarFirst.style.height = fromMaxpostion - fromMinPostion + 'px'), 'Range' === this.type && ('Horizontal' === this.orientation ? (this.enableRtl ? this.limitBarSecond.style.right = toMinPostion + 'px' : this.limitBarSecond.style.left = toMinPostion + 'px', this.limitBarSecond.style.width = toMaxpostion - toMinPostion + 'px') : (this.limitBarSecond.style.bottom = toMinPostion + 'px', this.limitBarSecond.style.height = toMaxpostion - toMinPostion + 'px')); }, Slider.prototype.setLimitBar = function() { if ('Default' === this.type || 'MinRange' === this.type) { var fromPosition = this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, !0)[0]; @@ -21897,7 +21897,7 @@ }), this.refreshTooltip(this.tooltipTarget), this.setBarColor(); }, Slider.prototype.changeHandleValue = function(value) { var position = null; - 1 === this.activeHandle ? (this.limits.enabled && this.limits.startHandleFixed || (this.handleVal1 = this.checkHandleValue(value), this.handlePos1 = this.checkHandlePosition(this.handleVal1), 'Range' === this.type && this.handlePos1 > this.handlePos2 && (this.handlePos1 = this.handlePos2, this.handleVal1 = this.handleVal2), this.handlePos1 === this.preHandlePos1 || (position = this.preHandlePos1 = this.handlePos1)), this.modifyZindex()) : (this.limits.enabled && this.limits.endHandleFixed || (this.handleVal2 = this.checkHandleValue(value), this.handlePos2 = this.checkHandlePosition(this.handleVal2), 'Range' === this.type && this.handlePos2 < this.handlePos1 && (this.handlePos2 = this.handlePos1, this.handleVal2 = this.handleVal1), this.handlePos2 === this.preHandlePos2 || (position = this.preHandlePos2 = this.handlePos2)), this.modifyZindex()), null !== position && ('Default' !== this.type && this.setRangeBar(), this.setHandlePosition(null)); + 1 === this.activeHandle ? this.limits.enabled && this.limits.startHandleFixed || (this.handleVal1 = this.checkHandleValue(value), this.handlePos1 = this.checkHandlePosition(this.handleVal1), 'Range' === this.type && this.handlePos1 > this.handlePos2 && (this.handlePos1 = this.handlePos2, this.handleVal1 = this.handleVal2), this.handlePos1 === this.preHandlePos1 || (position = this.preHandlePos1 = this.handlePos1)) : this.limits.enabled && this.limits.endHandleFixed || (this.handleVal2 = this.checkHandleValue(value), this.handlePos2 = this.checkHandlePosition(this.handleVal2), 'Range' === this.type && this.handlePos2 < this.handlePos1 && (this.handlePos2 = this.handlePos1, this.handleVal2 = this.handleVal1), this.handlePos2 === this.preHandlePos2 || (position = this.preHandlePos2 = this.handlePos2)), this.modifyZindex(), null !== position && ('Default' !== this.type && this.setRangeBar(), this.setHandlePosition(null)); }, Slider.prototype.tempStartEnd = function() { return this.min > this.max ? { start: this.max, 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 674cfa8518fc..19202085cac0 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 @@ -712,7 +712,7 @@ }, BN1.prototype.maskn = function(bits1) { return this.clone().imaskn(bits1); }, BN1.prototype.iaddn = function(num1) { - return (assert1('number' == typeof num1), assert1(num1 < 0x4000000), num1 < 0) ? this.isubn(-num1) : 0 !== this.negative ? 1 === this.length && (0 | this.words[0]) <= num1 ? (this.words[0] = num1 - (0 | this.words[0]), this.negative = 0, this) : (this.negative = 0, this.isubn(num1), this.negative = 1, this) : this._iaddn(num1); + return (assert1('number' == typeof num1), assert1(num1 < 0x4000000), num1 < 0) ? this.isubn(-num1) : 0 !== this.negative ? (1 === this.length && (0 | this.words[0]) <= num1 ? (this.words[0] = num1 - (0 | this.words[0]), this.negative = 0) : (this.negative = 0, this.isubn(num1), this.negative = 1), this) : this._iaddn(num1); }, BN1.prototype._iaddn = function(num1) { this.words[0] += num1; for(var i2 = 0; i2 < this.length && this.words[i2] >= 0x4000000; i2++)this.words[i2] -= 0x4000000, i2 === this.length - 1 ? this.words[i2 + 1] = 1 : this.words[i2 + 1]++; @@ -1265,11 +1265,11 @@ this.nextTick(callback1); } nextv(size1, options1, callback1) { - return (callback1 = fromCallback1(callback1 = getCallback1(options1, callback1), kPromise1), options1 = getOptions1(options1, emptyOptions1), Number.isInteger(size1)) ? (this[kClosing1] ? this.nextTick(callback1, new ModuleError1('Iterator is not open: cannot call nextv() after close()', { + return (callback1 = fromCallback1(callback1 = getCallback1(options1, callback1), kPromise1), options1 = getOptions1(options1, emptyOptions1), Number.isInteger(size1)) ? this[kClosing1] ? this.nextTick(callback1, new ModuleError1('Iterator is not open: cannot call nextv() after close()', { code: 'LEVEL_ITERATOR_NOT_OPEN' })) : this[kWorking1] ? this.nextTick(callback1, new ModuleError1('Iterator is busy: cannot call nextv() until previous call has completed', { code: 'LEVEL_ITERATOR_BUSY' - })) : (size1 < 1 && (size1 = 1), this[kLimit1] < 1 / 0 && (size1 = Math.min(size1, this[kLimit1] - this[kCount1])), this[kWorking1] = !0, this[kCallback1] = callback1, size1 <= 0 ? this.nextTick(this[kHandleMany1], null, []) : this._nextv(size1, options1, this[kHandleMany1])), callback1[kPromise1]) : (this.nextTick(callback1, TypeError("The first argument 'size' must be an integer")), callback1[kPromise1]); + })) : (size1 < 1 && (size1 = 1), this[kLimit1] < 1 / 0 && (size1 = Math.min(size1, this[kLimit1] - this[kCount1])), this[kWorking1] = !0, this[kCallback1] = callback1, size1 <= 0 ? this.nextTick(this[kHandleMany1], null, []) : this._nextv(size1, options1, this[kHandleMany1])) : this.nextTick(callback1, TypeError("The first argument 'size' must be an integer")), callback1[kPromise1]; } _nextv(size1, options1, callback1) { const acc1 = [], onnext1 = (err1, key1, value1)=>err1 ? callback1(err1) : (this[kLegacy1] ? void 0 === key1 && void 0 === value1 : void 0 === key1) ? callback1(null, acc1) : void (acc1.push(this[kLegacy1] ? [ @@ -8004,7 +8004,7 @@ }, BN1.prototype.maskn = function(bits1) { return this.clone().imaskn(bits1); }, BN1.prototype.iaddn = function(num1) { - return (assert1('number' == typeof num1), assert1(num1 < 0x4000000), num1 < 0) ? this.isubn(-num1) : 0 !== this.negative ? 1 === this.length && (0 | this.words[0]) < num1 ? (this.words[0] = num1 - (0 | this.words[0]), this.negative = 0, this) : (this.negative = 0, this.isubn(num1), this.negative = 1, this) : this._iaddn(num1); + return (assert1('number' == typeof num1), assert1(num1 < 0x4000000), num1 < 0) ? this.isubn(-num1) : 0 !== this.negative ? (1 === this.length && (0 | this.words[0]) < num1 ? (this.words[0] = num1 - (0 | this.words[0]), this.negative = 0) : (this.negative = 0, this.isubn(num1), this.negative = 1), this) : this._iaddn(num1); }, BN1.prototype._iaddn = function(num1) { this.words[0] += num1; for(var i2 = 0; i2 < this.length && this.words[i2] >= 0x4000000; i2++)this.words[i2] -= 0x4000000, i2 === this.length - 1 ? this.words[i2 + 1] = 1 : this.words[i2 + 1]++; @@ -13558,7 +13558,7 @@ if ('hex' === enc1) for((msg1 = msg1.replace(/[^a-z0-9]+/ig, '')).length % 2 != 0 && (msg1 = '0' + msg1), i2 = 0; i2 < msg1.length; i2 += 2)res1.push(parseInt(msg1[i2] + msg1[i2 + 1], 16)); } else for(var p3 = 0, i2 = 0; i2 < msg1.length; i2++){ var c5 = msg1.charCodeAt(i2); - c5 < 128 ? res1[p3++] = c5 : c5 < 2048 ? (res1[p3++] = c5 >> 6 | 192, res1[p3++] = 63 & c5 | 128) : isSurrogatePair1(msg1, i2) ? (c5 = 0x10000 + ((0x03FF & c5) << 10) + (0x03FF & msg1.charCodeAt(++i2)), res1[p3++] = c5 >> 18 | 240, res1[p3++] = c5 >> 12 & 63 | 128, res1[p3++] = c5 >> 6 & 63 | 128, res1[p3++] = 63 & c5 | 128) : (res1[p3++] = c5 >> 12 | 224, res1[p3++] = c5 >> 6 & 63 | 128, res1[p3++] = 63 & c5 | 128); + c5 < 128 ? res1[p3++] = c5 : (c5 < 2048 ? res1[p3++] = c5 >> 6 | 192 : (isSurrogatePair1(msg1, i2) ? (c5 = 0x10000 + ((0x03FF & c5) << 10) + (0x03FF & msg1.charCodeAt(++i2)), res1[p3++] = c5 >> 18 | 240, res1[p3++] = c5 >> 12 & 63 | 128) : res1[p3++] = c5 >> 12 | 224, res1[p3++] = c5 >> 6 & 63 | 128), res1[p3++] = 63 & c5 | 128); } } else for(i2 = 0; i2 < msg1.length; i2++)res1[i2] = 0 | msg1[i2]; return res1; @@ -13986,7 +13986,7 @@ var i2, type1 = typeof key1; if ('string' === type1) { var code1, bytes1 = [], length1 = key1.length, index1 = 0; - for(i2 = 0; i2 < length1; ++i2)(code1 = key1.charCodeAt(i2)) < 0x80 ? bytes1[index1++] = code1 : code1 < 0x800 ? (bytes1[index1++] = 0xc0 | code1 >> 6, bytes1[index1++] = 0x80 | 0x3f & code1) : code1 < 0xd800 || code1 >= 0xe000 ? (bytes1[index1++] = 0xe0 | code1 >> 12, bytes1[index1++] = 0x80 | code1 >> 6 & 0x3f, bytes1[index1++] = 0x80 | 0x3f & code1) : (code1 = 0x10000 + ((0x3ff & code1) << 10 | 0x3ff & key1.charCodeAt(++i2)), bytes1[index1++] = 0xf0 | code1 >> 18, bytes1[index1++] = 0x80 | code1 >> 12 & 0x3f, bytes1[index1++] = 0x80 | code1 >> 6 & 0x3f, bytes1[index1++] = 0x80 | 0x3f & code1); + for(i2 = 0; i2 < length1; ++i2)(code1 = key1.charCodeAt(i2)) < 0x80 ? bytes1[index1++] = code1 : (code1 < 0x800 ? bytes1[index1++] = 0xc0 | code1 >> 6 : (code1 < 0xd800 || code1 >= 0xe000 ? bytes1[index1++] = 0xe0 | code1 >> 12 : (code1 = 0x10000 + ((0x3ff & code1) << 10 | 0x3ff & key1.charCodeAt(++i2)), bytes1[index1++] = 0xf0 | code1 >> 18, bytes1[index1++] = 0x80 | code1 >> 12 & 0x3f), bytes1[index1++] = 0x80 | code1 >> 6 & 0x3f), bytes1[index1++] = 0x80 | 0x3f & code1); key1 = bytes1; } else if ('object' === type1) { if (null === key1) throw Error(ERROR); @@ -14014,7 +14014,7 @@ } for(var code1, i2, index1 = 0, length1 = message1.length, blocks1 = this.blocks; index1 < length1;){ if (this.hashed && (this.hashed = !1, blocks1[0] = this.block, blocks1[16] = blocks1[1] = blocks1[2] = blocks1[3] = blocks1[4] = blocks1[5] = blocks1[6] = blocks1[7] = blocks1[8] = blocks1[9] = blocks1[10] = blocks1[11] = blocks1[12] = blocks1[13] = blocks1[14] = blocks1[15] = 0), notString1) for(i2 = this.start; index1 < length1 && i2 < 64; ++index1)blocks1[i2 >> 2] |= message1[index1] << SHIFT[3 & i2++]; - else for(i2 = this.start; index1 < length1 && i2 < 64; ++index1)(code1 = message1.charCodeAt(index1)) < 0x80 ? blocks1[i2 >> 2] |= code1 << SHIFT[3 & i2++] : code1 < 0x800 ? (blocks1[i2 >> 2] |= (0xc0 | code1 >> 6) << SHIFT[3 & i2++], blocks1[i2 >> 2] |= (0x80 | 0x3f & code1) << SHIFT[3 & i2++]) : code1 < 0xd800 || code1 >= 0xe000 ? (blocks1[i2 >> 2] |= (0xe0 | code1 >> 12) << SHIFT[3 & i2++], blocks1[i2 >> 2] |= (0x80 | code1 >> 6 & 0x3f) << SHIFT[3 & i2++], blocks1[i2 >> 2] |= (0x80 | 0x3f & code1) << SHIFT[3 & i2++]) : (code1 = 0x10000 + ((0x3ff & code1) << 10 | 0x3ff & message1.charCodeAt(++index1)), blocks1[i2 >> 2] |= (0xf0 | code1 >> 18) << SHIFT[3 & i2++], blocks1[i2 >> 2] |= (0x80 | code1 >> 12 & 0x3f) << SHIFT[3 & i2++], blocks1[i2 >> 2] |= (0x80 | code1 >> 6 & 0x3f) << SHIFT[3 & i2++], blocks1[i2 >> 2] |= (0x80 | 0x3f & code1) << SHIFT[3 & i2++]); + else for(i2 = this.start; index1 < length1 && i2 < 64; ++index1)(code1 = message1.charCodeAt(index1)) < 0x80 ? blocks1[i2 >> 2] |= code1 << SHIFT[3 & i2++] : (code1 < 0x800 ? blocks1[i2 >> 2] |= (0xc0 | code1 >> 6) << SHIFT[3 & i2++] : (code1 < 0xd800 || code1 >= 0xe000 ? blocks1[i2 >> 2] |= (0xe0 | code1 >> 12) << SHIFT[3 & i2++] : (code1 = 0x10000 + ((0x3ff & code1) << 10 | 0x3ff & message1.charCodeAt(++index1)), blocks1[i2 >> 2] |= (0xf0 | code1 >> 18) << SHIFT[3 & i2++], blocks1[i2 >> 2] |= (0x80 | code1 >> 12 & 0x3f) << SHIFT[3 & i2++]), blocks1[i2 >> 2] |= (0x80 | code1 >> 6 & 0x3f) << SHIFT[3 & i2++]), blocks1[i2 >> 2] |= (0x80 | 0x3f & code1) << SHIFT[3 & i2++]); this.lastByteIndex = i2, this.bytes += i2 - this.start, i2 >= 64 ? (this.block = blocks1[16], this.start = i2 - 64, this.hash(), this.hashed = !0) : this.start = i2; } return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 << 0, this.bytes = this.bytes % 4294967296), this; @@ -14357,7 +14357,7 @@ } var length1 = key1.length; if (!notString1) { - for(var code1, bytes1 = [], length1 = key1.length, index1 = 0, i2 = 0; i2 < length1; ++i2)(code1 = key1.charCodeAt(i2)) < 0x80 ? bytes1[index1++] = code1 : code1 < 0x800 ? (bytes1[index1++] = 0xc0 | code1 >> 6, bytes1[index1++] = 0x80 | 0x3f & code1) : code1 < 0xd800 || code1 >= 0xe000 ? (bytes1[index1++] = 0xe0 | code1 >> 12, bytes1[index1++] = 0x80 | code1 >> 6 & 0x3f, bytes1[index1++] = 0x80 | 0x3f & code1) : (code1 = 0x10000 + ((0x3ff & code1) << 10 | 0x3ff & key1.charCodeAt(++i2)), bytes1[index1++] = 0xf0 | code1 >> 18, bytes1[index1++] = 0x80 | code1 >> 12 & 0x3f, bytes1[index1++] = 0x80 | code1 >> 6 & 0x3f, bytes1[index1++] = 0x80 | 0x3f & code1); + for(var code1, bytes1 = [], length1 = key1.length, index1 = 0, i2 = 0; i2 < length1; ++i2)(code1 = key1.charCodeAt(i2)) < 0x80 ? bytes1[index1++] = code1 : (code1 < 0x800 ? bytes1[index1++] = 0xc0 | code1 >> 6 : (code1 < 0xd800 || code1 >= 0xe000 ? bytes1[index1++] = 0xe0 | code1 >> 12 : (code1 = 0x10000 + ((0x3ff & code1) << 10 | 0x3ff & key1.charCodeAt(++i2)), bytes1[index1++] = 0xf0 | code1 >> 18, bytes1[index1++] = 0x80 | code1 >> 12 & 0x3f), bytes1[index1++] = 0x80 | code1 >> 6 & 0x3f), bytes1[index1++] = 0x80 | 0x3f & code1); key1 = bytes1; } key1.length > 128 && (key1 = new Sha5121(bits1, !0).update(key1).array()); @@ -14380,7 +14380,7 @@ } for(var code1, i2, index1 = 0, length1 = message1.length, blocks1 = this.blocks; index1 < length1;){ if (this.hashed && (this.hashed = !1, blocks1[0] = this.block, blocks1[1] = blocks1[2] = blocks1[3] = blocks1[4] = blocks1[5] = blocks1[6] = blocks1[7] = blocks1[8] = blocks1[9] = blocks1[10] = blocks1[11] = blocks1[12] = blocks1[13] = blocks1[14] = blocks1[15] = blocks1[16] = blocks1[17] = blocks1[18] = blocks1[19] = blocks1[20] = blocks1[21] = blocks1[22] = blocks1[23] = blocks1[24] = blocks1[25] = blocks1[26] = blocks1[27] = blocks1[28] = blocks1[29] = blocks1[30] = blocks1[31] = blocks1[32] = 0), notString1) for(i2 = this.start; index1 < length1 && i2 < 128; ++index1)blocks1[i2 >> 2] |= message1[index1] << SHIFT1[3 & i2++]; - else for(i2 = this.start; index1 < length1 && i2 < 128; ++index1)(code1 = message1.charCodeAt(index1)) < 0x80 ? blocks1[i2 >> 2] |= code1 << SHIFT1[3 & i2++] : code1 < 0x800 ? (blocks1[i2 >> 2] |= (0xc0 | code1 >> 6) << SHIFT1[3 & i2++], blocks1[i2 >> 2] |= (0x80 | 0x3f & code1) << SHIFT1[3 & i2++]) : code1 < 0xd800 || code1 >= 0xe000 ? (blocks1[i2 >> 2] |= (0xe0 | code1 >> 12) << SHIFT1[3 & i2++], blocks1[i2 >> 2] |= (0x80 | code1 >> 6 & 0x3f) << SHIFT1[3 & i2++], blocks1[i2 >> 2] |= (0x80 | 0x3f & code1) << SHIFT1[3 & i2++]) : (code1 = 0x10000 + ((0x3ff & code1) << 10 | 0x3ff & message1.charCodeAt(++index1)), blocks1[i2 >> 2] |= (0xf0 | code1 >> 18) << SHIFT1[3 & i2++], blocks1[i2 >> 2] |= (0x80 | code1 >> 12 & 0x3f) << SHIFT1[3 & i2++], blocks1[i2 >> 2] |= (0x80 | code1 >> 6 & 0x3f) << SHIFT1[3 & i2++], blocks1[i2 >> 2] |= (0x80 | 0x3f & code1) << SHIFT1[3 & i2++]); + else for(i2 = this.start; index1 < length1 && i2 < 128; ++index1)(code1 = message1.charCodeAt(index1)) < 0x80 ? blocks1[i2 >> 2] |= code1 << SHIFT1[3 & i2++] : (code1 < 0x800 ? blocks1[i2 >> 2] |= (0xc0 | code1 >> 6) << SHIFT1[3 & i2++] : (code1 < 0xd800 || code1 >= 0xe000 ? blocks1[i2 >> 2] |= (0xe0 | code1 >> 12) << SHIFT1[3 & i2++] : (code1 = 0x10000 + ((0x3ff & code1) << 10 | 0x3ff & message1.charCodeAt(++index1)), blocks1[i2 >> 2] |= (0xf0 | code1 >> 18) << SHIFT1[3 & i2++], blocks1[i2 >> 2] |= (0x80 | code1 >> 12 & 0x3f) << SHIFT1[3 & i2++]), blocks1[i2 >> 2] |= (0x80 | code1 >> 6 & 0x3f) << SHIFT1[3 & i2++]), blocks1[i2 >> 2] |= (0x80 | 0x3f & code1) << SHIFT1[3 & i2++]); this.lastByteIndex = i2, this.bytes += i2 - this.start, i2 >= 128 ? (this.block = blocks1[32], this.start = i2 - 128, this.hash(), this.hashed = !0) : this.start = i2; } return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 << 0, this.bytes = this.bytes % 4294967296), this; @@ -17088,9 +17088,9 @@ "use strict"; function destroy1(e1, t3) { var r3 = this, n2 = this._readableState && this._readableState.destroyed, i2 = this._writableState && this._writableState.destroyed; - return n2 || i2 ? (t3 ? t3(e1) : e1 && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = !0, process1.nextTick(emitErrorNT1, this, e1)) : process1.nextTick(emitErrorNT1, this, e1)), this) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(e1 || null, function(e1) { + return n2 || i2 ? t3 ? t3(e1) : e1 && (this._writableState ? this._writableState.errorEmitted || (this._writableState.errorEmitted = !0, process1.nextTick(emitErrorNT1, this, e1)) : process1.nextTick(emitErrorNT1, this, e1)) : (this._readableState && (this._readableState.destroyed = !0), this._writableState && (this._writableState.destroyed = !0), this._destroy(e1 || null, function(e1) { !t3 && e1 ? r3._writableState ? r3._writableState.errorEmitted ? process1.nextTick(emitCloseNT1, r3) : (r3._writableState.errorEmitted = !0, process1.nextTick(emitErrorAndCloseNT1, r3, e1)) : process1.nextTick(emitErrorAndCloseNT1, r3, e1) : t3 ? (process1.nextTick(emitCloseNT1, r3), t3(e1)) : process1.nextTick(emitCloseNT1, r3); - }), this); + })), this; } function emitErrorAndCloseNT1(e1, t3) { emitErrorNT1(e1, t3), emitCloseNT1(e1); 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 f8481d3b77c1..044ec04b0b86 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 s=tt[`filter_${r}`],a=i6(o,s);let l=null;if("error"===a.result)throw Error(a.value.map(i=>`${i.key}: ${i.message}`).join(", "));l=(i,r,n)=>a.value.evaluate(i,r,{},n);let c=null,h=null;if(o!==n){const i=i6(n,s);if("error"===i.result)throw Error(i.value.map(i=>`${i.key}: ${i.message}`).join(", "));c=(r,n,o,s,a)=>i.value.evaluate(r,n,{},o,void 0,void 0,s,a),h=!t4(i.value.expression)}return{filter:l,dynamicFilter:c||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 ru(i,r){return ir?1:0}function rd(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 rp(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(ru)]]:["filter-in-small",i,["literal",r]]}}function rf(i){switch(i){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",i]}}function rm(i){return["!",i]}function r_(i){if(ra(ts(i.value))){const r=ts(i.layerType);return ro(tn({},i,{expressionContext:"filter",valueSpec:i.styleSpec[`filter_${r||"fill"}`]}))}return function i(r){const n=r.value,o=r.key;if("array"!==iK(n))return[new ti(o,n,`array expected, ${iK(n)} found`)];const s=r.styleSpec;let a,l=[];if(n.length<1)return[new ti(o,n,"filter array must have at least 1 element")];switch(l=l.concat(rs({key:`${o}[0]`,value:n[0],valueSpec:s.filter_operator,style:r.style,styleSpec:r.styleSpec})),to(n[0])){case"<":case"<=":case">":case">=":n.length>=2&&"$type"===to(n[1])&&l.push(new ti(o,n,`"$type" cannot be use with operator "${n[0]}"`));case"==":case"!=":3!==n.length&&l.push(new ti(o,n,`filter array for operator "${n[0]}" must have 3 elements`));case"in":case"!in":n.length>=2&&"string"!==(a=iK(n[1]))&&l.push(new ti(`${o}[1]`,n[1],`string expected, ${a} found`));for(let i=2;i{i in n&&r.push(new ti(o,n[i],`"${i}" is prohibited for ref layers`))}),s.layers.forEach(r=>{to(r.id)===c&&(i=r)}),i?i.ref?r.push(new ti(o,n.ref,"ref cannot reference another ref layer")):l=to(i.type):r.push(new ti(o,n.ref,`ref layer "${c}" not found`))}else if("background"!==l&&"sky"!==l){if(n.source){const i=s.sources&&s.sources[n.source],a=i&&to(i.type);i?"vector"===a&&"raster"===l?r.push(new ti(o,n.source,`layer "${n.id}" requires a raster source`)):"raster"===a&&"raster"!==l?r.push(new ti(o,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==a||n["source-layer"]?"raster-dem"===a&&"hillshade"!==l?r.push(new ti(o,n.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"===l&&n.paint&&n.paint["line-gradient"]&&("geojson"!==a||!i.lineMetrics)&&r.push(new ti(o,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):r.push(new ti(o,n,`layer "${n.id}" must specify a "source-layer"`)):r.push(new ti(o,n.source,`source "${n.source}" not found`))}else r.push(new ti(o,n,'missing required property "source"'))}return r=r.concat(rt({key:o,value:n,valueSpec:a.layer,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":()=>[],type:()=>rA({key:`${o}.type`,value:n.type,valueSpec:a.layer.type,style:i.style,styleSpec:i.styleSpec,object:n,objectKey:"type"}),filter:i=>r_(tn({layerType:l},i)),layout:i=>rt({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rx(tn({layerType:l},i))}}),paint:i=>rt({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>ry(tn({layerType:l},i))}})}}))}function rb(i){const r=i.value,n=i.key,o=iK(r);return"string"!==o?[new ti(n,r,`string expected, ${o} found`)]:[]}const rw={promoteId:function({key:i,value:r}){if("string"===iK(r))return rb({key:i,value:r});{const n=[];for(const o in r)n.push(...rb({key:`${i}.${o}`,value:r[o]}));return n}}};function rT(i){let r;const n=i.value,o=i.key,s=i.styleSpec,a=i.style;if(!n.type)return[new ti(o,n,'"type" is required')];const l=to(n.type);switch(l){case"vector":case"raster":case"raster-dem":return rt({key:o,value:n,valueSpec:s[`source_${l.replace("-","_")}`],style:i.style,styleSpec:s,objectElementValidators:rw});case"geojson":if(r=rt({key:o,value:n,valueSpec:s.source_geojson,style:a,styleSpec:s,objectElementValidators:rw}),n.cluster)for(const i in n.clusterProperties){const[s,a]=n.clusterProperties[i],l="string"==typeof s?[s,["accumulated"],["get",i]]:s;r.push(...ro({key:`${o}.${i}.map`,value:a,expressionContext:"cluster-map"})),r.push(...ro({key:`${o}.${i}.reduce`,value:l,expressionContext:"cluster-reduce"}))}return r;case"video":return rt({key:o,value:n,valueSpec:s.source_video,style:a,styleSpec:s});case"image":return rt({key:o,value:n,valueSpec:s.source_image,style:a,styleSpec:s});case"canvas":return[new ti(o,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return rs({key:`${o}.type`,value:n.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:a,styleSpec:s})}}function rE(i){const r=i.value,n=i.styleSpec,o=n.light,s=i.style;let a=[];const l=iK(r);if(void 0===r)return a;if("object"!==l)return a.concat([new ti("light",r,`object expected, ${l} found`)]);for(const i in r){const l=i.match(/^(.*)-transition$/);a=a.concat(l&&o[l[1]]&&o[l[1]].transition?rA({key:i,value:r[i],valueSpec:n.transition,style:s,styleSpec:n}):o[i]?rA({key:i,value:r[i],valueSpec:o[i],style:s,styleSpec:n}):[new ti(i,r[i],`unknown property "${i}"`)])}return a}function rS(i){const r=i.value,n=i.key,o=i.style,s=i.styleSpec,a=s.terrain;let l=[];const c=iK(r);if(void 0===r)return l;if("object"!==c)return l.concat([new ti("terrain",r,`object expected, ${c} found`)]);for(const i in r){const n=i.match(/^(.*)-transition$/);l=l.concat(n&&a[n[1]]&&a[n[1]].transition?rA({key:i,value:r[i],valueSpec:s.transition,style:o,styleSpec:s}):a[i]?rA({key:i,value:r[i],valueSpec:a[i],style:o,styleSpec:s}):[new ti(i,r[i],`unknown property "${i}"`)])}if(r.source){const i=o.sources&&o.sources[r.source],s=i&&to(i.type);i?"raster-dem"!==s&&l.push(new ti(n,r.source,`terrain cannot be used with a source of type ${s}, it only be used with a "raster-dem" source type`)):l.push(new ti(n,r.source,`source "${r.source}" not found`))}else l.push(new ti(n,r,'terrain is missing required property "source"'));return l}function rI(i){const r=i.value,n=i.style,o=i.styleSpec,s=o.fog;let a=[];const l=iK(r);if(void 0===r)return a;if("object"!==l)return a.concat([new ti("fog",r,`object expected, ${l} found`)]);for(const i in r){const l=i.match(/^(.*)-transition$/);a=a.concat(l&&s[l[1]]&&s[l[1]].transition?rA({key:i,value:r[i],valueSpec:o.transition,style:n,styleSpec:o}):s[i]?rA({key:i,value:r[i],valueSpec:s[i],style:n,styleSpec:o}):[new ti(i,r[i],`unknown property "${i}"`)])}return a}const rM={"*":()=>[],array:ri,boolean:function(i){const r=i.value,n=i.key,o=iK(r);return"boolean"!==o?[new ti(n,r,`boolean expected, ${o} found`)]:[]},number:rr,color:function(i){const r=i.key,n=i.value,o=iK(n);return"string"!==o?[new ti(r,n,`color expected, ${o} found`)]:null===tI.parseCSSColor(n)?[new ti(r,n,`color expected, "${n}" found`)]:[]},constants:tr,enum:rs,filter:r_,function:rn,layer:rv,object:rt,source:rT,light:rE,terrain:rS,fog:rI,string:rb,formatted:function(i){return 0===rb(i).length?[]:ro(i)},resolvedImage:function(i){return 0===rb(i).length?[]:ro(i)},projection:function(i){const r=i.value,n=i.styleSpec,o=n.projection,s=i.style;let a=[];const l=iK(r);if("object"===l)for(const i in r)a=a.concat(rA({key:i,value:r[i],valueSpec:o[i],style:s,styleSpec:n}));else"string"!==l&&(a=a.concat([new ti("projection",r,`object or string expected, ${l} found`)]));return a}};function rA(i){const r=i.value,n=i.valueSpec,o=i.styleSpec;return n.expression&&iY(to(r))?rn(i):n.expression&&i4(ts(r))?ro(i):n.type&&rM[n.type]?rM[n.type](i):rt(tn({},i,{valueSpec:n.type?o[n.type]:n}))}function rC(i){const r=i.value,n=i.key,o=rb(i);return o.length||(-1===r.indexOf("{fontstack}")&&o.push(new ti(n,r,'"glyphs" url must include a "{fontstack}" token')),-1===r.indexOf("{range}")&&o.push(new ti(n,r,'"glyphs" url must include a "{range}" token'))),o}function rz(i,r=tt){let n=[];return n=n.concat(rA({key:"",value:i,valueSpec:r.$root,styleSpec:r,style:i,objectElementValidators:{glyphs:rC,"*":()=>[]}})),i.constants&&(n=n.concat(tr({key:"constants",value:i.constants,style:i,styleSpec:r}))),rk(n)}function rk(i){return[].concat(i).sort((i,r)=>i.line-r.line)}function rP(i){return function(...r){return rk(i.apply(this,r))}}rz.source=rP(rT),rz.light=rP(rE),rz.terrain=rP(rS),rz.fog=rP(rI),rz.layer=rP(rv),rz.filter=rP(r_),rz.paintProperty=rP(ry),rz.layoutProperty=rP(rx);const rD=rz.light,rL=rz.fog,rB=rz.paintProperty,rR=rz.layoutProperty;function rF(i,r){let n=!1;if(r&&r.length)for(const o of r)i.fire(new e7(Error(o.message))),n=!0;return n}function rO(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}}},rO.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}},rO.prototype._convertFromCellCoord=function(i){return(i-this.padding)/this.scale},rO.prototype._convertToCellCoord=function(i){return Math.max(0,Math.min(this.d-1,Math.floor(i*this.scale)+this.padding))},rO.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 a=i[n];s[n]=rN[o].shallow.indexOf(n)>=0?a:r$(a,r)}i instanceof Error&&(s.message=i.message)}if(s.$name)throw Error("$name property is reserved for worker serialization logic.");return"Object"!==o&&(s.$name=o),s}throw Error("can't serialize object of type "+typeof i)}function rq(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||rG(i)||rZ(i)||ArrayBuffer.isView(i)||i instanceof rU)return i;if(Array.isArray(i))return i.map(rq);if("object"==typeof i){const r=i.$name||"Object",{klass:n}=rN[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 n of Object.keys(i)){if("$name"===n)continue;const s=i[n];o[n]=rN[r].shallow.indexOf(n)>=0?s:rq(s)}return o}throw Error("can't deserialize object of type "+typeof i)}class rX{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,rH=i=>i>=1872&&i<=1919,rK=i=>i>=2208&&i<=2303,rY=i=>i>=11904&&i<=12031,rJ=i=>i>=12032&&i<=12255,rQ=i=>i>=12272&&i<=12287,r0=i=>i>=12288&&i<=12351,r1=i=>i>=12352&&i<=12447,r2=i=>i>=12448&&i<=12543,r3=i=>i>=12544&&i<=12591,r5=i=>i>=12704&&i<=12735,r4=i=>i>=12736&&i<=12783,r6=i=>i>=12784&&i<=12799,r8=i=>i>=12800&&i<=13055,r9=i=>i>=13056&&i<=13311,r7=i=>i>=13312&&i<=19903,ne=i=>i>=19968&&i<=40959,nt=i=>i>=40960&&i<=42127,ni=i=>i>=42128&&i<=42191,nr=i=>i>=44032&&i<=55215,nn=i=>i>=63744&&i<=64255,no=i=>i>=64336&&i<=65023,ns=i=>i>=65040&&i<=65055,na=i=>i>=65072&&i<=65103,nl=i=>i>=65104&&i<=65135,nc=i=>i>=65136&&i<=65279,nh=i=>i>=65280&&i<=65519;function nu(i){for(const r of i)if(nd(r.charCodeAt(0)))return!0;return!1}function nd(i){return!(746!==i&&747!==i&&(i<4352||!(r5(i)||r3(i)||na(i)&&!(i>=65097&&i<=65103)||nn(i)||r9(i)||rY(i)||r4(i)||!(!r0(i)||i>=12296&&i<=12305||i>=12308&&i<=12319||12336===i)||r7(i)||ne(i)||r8(i)||i>=12592&&i<=12687||i>=43360&&i<=43391||i>=55216&&i<=55295||i>=4352&&i<=4607||nr(i)||r1(i)||rQ(i)||i>=12688&&i<=12703||rJ(i)||r6(i)||r2(i)&&12540!==i||!(!nh(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)||!(!nl(i)||i>=65112&&i<=65118||i>=65123&&i<=65126)||i>=5120&&i<=5759||i>=6320&&i<=6399||ns(i)||i>=19904&&i<=19967||nt(i)||ni(i))))}function np(i){return!(nd(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)||r0(i)||r2(i)||i>=57344&&i<=63743||na(i)||nl(i)||nh(i)||8734===i||8756===i||8757===i||i>=9984&&i<=10087||i>=10102&&i<=10131||65532===i||65533===i)}function nf(i){return i>=1424&&i<=2303||no(i)||nc(i)}const nm="deferred",n_="loading",ng="loaded";let ny=null,nx="unavailable",nv=null;const nb=function(i){i&&"string"==typeof i&&i.indexOf("NetworkError")>-1&&(nx="error"),ny&&ny(i)};function nw(){nT.fire(new e9("pluginStateChange",{pluginStatus:nx,pluginURL:nv}))}const nT=new te,nE=function(){return nx},nS=function(){if(nx!==nm||!nv)throw Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");nx=n_,nw(),nv&&e1({url:nv},i=>{i?nb(i):(nx=ng,nw())})},nI={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>nx===ng||null!=nI.applyArabicShaping,isLoading:()=>nx===n_,setState(i){nx=i.pluginStatus,nv=i.pluginURL},isParsed:()=>null!=nI.applyArabicShaping&&null!=nI.processBidirectionalText&&null!=nI.processStyledBidirectionalText,getPluginURL:()=>nv};class nM{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 rX,this.transition={},this.pitch=0)}isSupportedScript(i){return function(i,r){for(const o of i){var n;if(n=o.charCodeAt(0),!r&&nf(n)||n>=2304&&n<=3583||n>=3840&&n<=4255||n>=6016&&n<=6143)return!1}return!0}(i,nI.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 nA{constructor(i,r){this.property=i,this.value=r,this.expression=function(i,r){if(iY(i))return new re(i,r);if(i4(i)){const n=i7(i,r);if("error"===n.result)throw Error(n.value.map(i=>`${i.key}: ${i.message}`).join(", "));return n.value}{let n=i;return"string"==typeof i&&"color"===r.type&&(n=tM.parse(i)),{kind:"constant",evaluate:()=>n}}}(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 nC{constructor(i){this.property=i,this.value=new nA(i,void 0)}transitioned(i,r){return new nk(this.property,this.value,r,J({},i.transition,this.transition),i.now)}untransitioned(){return new nk(this.property,this.value,null,{},0)}}class nz{constructor(i){this._properties=i,this._values=Object.create(i.defaultTransitionablePropertyValues)}getValue(i){return el(this._values[i].value.value)}setValue(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nC(this._values[i].property)),this._values[i].value=new nA(this._values[i].property,null===r?void 0:el(r))}getTransition(i){return el(this._values[i].transition)}setTransition(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nC(this._values[i].property)),this._values[i].transition=el(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 nP(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 nP(this._properties);for(const r of Object.keys(this._values))i._values[r]=this._values[r].untransitioned();return i}}class nk{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 nU{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 nM(Math.floor(r.zoom-1),r)),i.expression.evaluate(new nM(Math.floor(r.zoom),r)),i.expression.evaluate(new nM(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 nV{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){return!!i.expression.evaluate(r,null,{},n,o)}interpolate(){return!1}}class nN{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 nA(n,void 0),s=this.defaultTransitionablePropertyValues[r]=new nC(n);this.defaultTransitioningPropertyValues[r]=s.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=o.possiblyEvaluate({})}}}function nj(i,r){return 256*(i=X(Math.floor(i),0,255))+X(Math.floor(r),0,255)}rj("DataDrivenProperty",nF),rj("DataConstantProperty",nR),rj("CrossFadedDataDrivenProperty",nO),rj("CrossFadedProperty",nU),rj("ColorRampProperty",nV);const nG={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class nZ{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 n${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 nq(i,r=1){let n=0,o=0;return{members:i.map(i=>{const s=nG[i.type].BYTES_PER_ELEMENT,a=n=nX(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:nX(n,Math.max(o,r)),alignment:r}}function nX(i,r){return Math.ceil(i/r)*r}class nW extends n${_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}}nW.prototype.bytesPerElement=4,rj("StructArrayLayout2i4",nW);class nH extends n${_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}}nH.prototype.bytesPerElement=8,rj("StructArrayLayout4i8",nH);class nK extends n${_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;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[3*i+2]=c,i}}nK.prototype.bytesPerElement=12,rj("StructArrayLayout2i4ub1f12",nK);class nY extends n${_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}}nY.prototype.bytesPerElement=12,rj("StructArrayLayout3f12",nY);class nJ extends n${_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}}nJ.prototype.bytesPerElement=20,rj("StructArrayLayout10ui20",nJ);class nQ extends n${_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}}nQ.prototype.bytesPerElement=16,rj("StructArrayLayout8ui16",nQ);class n0 extends n${_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}}n0.prototype.bytesPerElement=32,rj("StructArrayLayout4i4ui4i4i32",n0);class n1 extends n${_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}}n1.prototype.bytesPerElement=4,rj("StructArrayLayout1ul4",n1);class n2 extends n${_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}}n2.prototype.bytesPerElement=40,rj("StructArrayLayout5i4f1i1ul2ui40",n2);class n3 extends n${_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}}n3.prototype.bytesPerElement=16,rj("StructArrayLayout3i2i2i16",n3);class n5 extends n${_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}}n5.prototype.bytesPerElement=16,rj("StructArrayLayout2f1f2i16",n5);class n4 extends n${_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}}n4.prototype.bytesPerElement=12,rj("StructArrayLayout2ub2f12",n4);class n6 extends n${_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}}n6.prototype.bytesPerElement=6,rj("StructArrayLayout3ui6",n6);class n8 extends n${_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}}n8.prototype.bytesPerElement=60,rj("StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60",n8);class n9 extends n${_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}}n9.prototype.bytesPerElement=76,rj("StructArrayLayout3i2f6i15ui1ul3f76",n9);class n7 extends n${_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}}n7.prototype.bytesPerElement=4,rj("StructArrayLayout1f4",n7);class oe extends n${_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}}oe.prototype.bytesPerElement=6,rj("StructArrayLayout3i6",oe);class ot extends n${_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}}ot.prototype.bytesPerElement=28,rj("StructArrayLayout7f28",ot);class oi extends n${_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}}oi.prototype.bytesPerElement=12,rj("StructArrayLayout1ul3ui12",oi);class or extends n${_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}}or.prototype.bytesPerElement=4,rj("StructArrayLayout2ui4",or);class on extends n${_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}}on.prototype.bytesPerElement=2,rj("StructArrayLayout1ui2",on);class oo extends n${_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}}oo.prototype.bytesPerElement=8,rj("StructArrayLayout2f8",oo);class os extends n${_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}}os.prototype.bytesPerElement=16,rj("StructArrayLayout4f16",os);class oa extends nZ{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]}}oa.prototype.size=40;class ol extends n2{get(i){return new oa(this,i)}}rj("CollisionBoxArray",ol);class oc extends nZ{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}}oc.prototype.size=60;class oh extends n8{get(i){return new oc(this,i)}}rj("PlacedSymbolArray",oh);class ou extends nZ{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]}}ou.prototype.size=76;class od extends n9{get(i){return new ou(this,i)}}rj("SymbolInstanceArray",od);class op extends n7{getoffsetX(i){return this.float32[1*i+0]}}rj("GlyphOffsetArray",op);class of extends oe{getx(i){return this.int16[3*i+0]}gety(i){return this.int16[3*i+1]}gettileUnitDistanceFromAnchor(i){return this.int16[3*i+2]}}rj("SymbolLineVertexArray",of);class om extends nZ{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]}}om.prototype.size=12;class o_ extends oi{get(i){return new om(this,i)}}rj("FeatureIndexArray",o_);class og extends nZ{get a_centroid_pos0(){return this._structArray.uint16[this._pos2+0]}get a_centroid_pos1(){return this._structArray.uint16[this._pos2+1]}}og.prototype.size=4;class oy extends or{get(i){return new og(this,i)}}rj("FillExtrusionCentroidArray",oy);const ox=nq([{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"}]),ov=nq([{name:"a_dash_to",components:4,type:"Uint16"},{name:"a_dash_from",components:4,type:"Uint16"}]);var ob=tS(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}}),ow=tS(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}});ob.murmur3=ob,ob.murmur2=ow;class oT{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(i,r,n,o){this.ids.push(oE(i)),this.positions.push(r,n,o)}getPositions(i){const r=oE(i);let n=0,o=this.ids.length-1;for(;n>1;this.ids[i]>=r?o=i:n=i+1}const s=[];for(;this.ids[n]===r;)s.push({index:this.positions[3*n],start:this.positions[3*n+1],end:this.positions[3*n+2]}),n++;return s}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;oS(r,l,c),oS(n,3*l,3*c),oS(n,3*l+1,3*c+1),oS(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 oC(i,r):new oM(i,r)}}class oB{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 oA(i,r):new oM(i,r)}}class oR{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 nM(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=oD(n);for(let n=i;n`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 nM(this.zoom),r,{},s,o,a),c=this.expression.evaluate(new nM(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=oD(n),a=oD(o);for(let n=i;n!0){this.binders={},this._buffers=[];const o=[];for(const a in i.paint._values){var s;if(!n(a))continue;const l=i.paint.get(a);if(!(l instanceof nL&&iX(l.property.specification)))continue;const c=(s=i.type,oN[a]||[a.replace(`${s}-`,"").replace(/-/g,"_")]),h=l.value,u=l.property.specification.type,d=l.property.useIntegerZoom,p=l.property.specification["property-type"],f="cross-faded"===p||"cross-faded-data-driven"===p,m="line-dasharray"===String(a)&&"constant"!==i.layout.get("line-cap").value.kind;if("constant"!==h.kind||m){if("source"===h.kind||m||f){const n=oZ(a,u,"source");this.binders[a]=f?new oO(h,c,u,d,r,n,i.id):new oR(h,c,u,n),o.push(`/a_${a}`)}else{const i=oZ(a,u,"composite");this.binders[a]=new oF(h,c,u,d,r,i),o.push(`/z_${a}`)}}else this.binders[a]=f?new oB(h.value,c):new oL(h.value,c,u),o.push(`/u_${a}`)}this.cacheKey=o.sort().join("")}getMaxValue(i){const r=this.binders[i];return r instanceof oR||r instanceof oF?r.maxValue:0}populatePaintArrays(i,r,n,o,s,a){for(const l in this.binders){const c=this.binders[l];(c instanceof oR||c instanceof oF||c instanceof oO)&&c.populatePaintArray(i,r,n,o,s,a)}}setConstantPatternPositions(i,r){for(const n in this.binders){const o=this.binders[n];o instanceof oB&&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 r of h){const h=n.feature(r.index);for(const n in this.binders){const u=this.binders[n];if((u instanceof oR||u instanceof oF||u instanceof oO)&&!0===u.expression.isStateDependent){const d=o.paint.get(n);u.expression=d.value,u.updatePaintArray(r.start,r.end,h,i[c],s,a),l=!0}}}}return l}defines(){const i=[];for(const r in this.binders){const n=this.binders[r];(n instanceof oL||n instanceof oB)&&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 oR||n instanceof oF||n instanceof oO)for(let r=0;r!0){for(const o of(this.programConfigurations={},i))this.programConfigurations[o.id]=new oU(o,r,n);this.needsUpload=!1,this._featureMap=new oT,this._bufferOffset=0}populatePaintArrays(i,r,n,o,s,a,l){for(const n in this.programConfigurations)this.programConfigurations[n].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 oN={"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"]},oj={"line-pattern":{source:nJ,composite:nJ},"fill-pattern":{source:nJ,composite:nJ},"fill-extrusion-pattern":{source:nJ,composite:nJ},"line-dasharray":{source:nQ,composite:nQ}},oG={color:{source:oo,composite:os},number:{source:n7,composite:oo}};function oZ(i,r,n){const o=oj[i];return o&&o[n]||oG[r][n]}rj("ConstantBinder",oL),rj("CrossFadedConstantBinder",oB),rj("SourceExpressionBinder",oR),rj("CrossFadedCompositeBinder",oO),rj("CompositeExpressionBinder",oF),rj("ProgramConfiguration",oU,{omit:["_buffers"]}),rj("ProgramConfigurationSet",oV);const o$="-transition";class oq extends te{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 nD(r.layout)),r.paint)){for(const n in this._transitionablePaint=new nz(r.paint),i.paint)this.setPaintProperty(n,i.paint[n],{validate:!1});for(const r in i.layout)this.setLayoutProperty(r,i.layout[r],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new nB(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(rR,`layers.${this.id}.layout.${i}`,i,r,n)||("visibility"!==i?this._unevaluatedLayout.setValue(i,r):this.visibility=r)}getPaintProperty(i){return eo(i,o$)?this._transitionablePaint.getTransition(i.slice(0,-o$.length)):this._transitionablePaint.getValue(i)}setPaintProperty(i,r,n={}){if(null!=r&&this._validate(rB,`layers.${this.id}.paint.${i}`,i,r,n))return!1;if(eo(i,o$))return this._transitionablePaint.setTransition(i.slice(0,-o$.length),r||void 0),!1;{const n=this._transitionablePaint._values[i],o="cross-faded-data-driven"===n.property.specification["property-type"],s=n.value.isDataDriven(),a=n.value;this._transitionablePaint.setValue(i,r),this._handleSpecialPaintPropertyUpdate(i);const l=this._transitionablePaint._values[i].value;return l.isDataDriven()||s||o||this._handleOverridablePaintPropertyUpdate(i,a,l)}}_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),ea(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)&&rF(this,i.call(rz,{key:r,layerType:this.type,objectKey:n,value:o,styleSpec:tt,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 nL&&iX(r.property.specification)&&("source"===r.value.kind||"composite"===r.value.kind)&&r.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=rl(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const oX=nq([{name:"a_pos",components:2,type:"Int16"}],4),{members:oW}=oX;class oH{constructor(i=[]){this.segments=i}prepareSegment(i,r,n,o){let s=this.segments[this.segments.length-1];return i>oH.MAX_VERTEX_ARRAY_LENGTH&&eh(`Max vertices per segment is ${oH.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${i}`),(!s||s.vertexLength+i>oH.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 oH([{vertexOffset:i,primitiveOffset:r,vertexLength:n,primitiveLength:o,vaos:{},sortKey:0}])}}oH.MAX_VERTEX_ARRAY_LENGTH=65535,rj("SegmentVector",oH);class oK{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 oY?new oY(i.lng,i.lat):oY.convert(i),this}setSouthWest(i){return this._sw=i instanceof oY?new oY(i.lng,i.lat):oY.convert(i),this}extend(i){let r,n;const o=this._sw,s=this._ne;if(i instanceof oY)r=i,n=i;else{if(!(i instanceof oK))return Array.isArray(i)?4===i.length||i.every(Array.isArray)?this.extend(oK.convert(i)):this.extend(oY.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 oY(r.lng,r.lat),this._ne=new oY(n.lng,n.lat)),this}getCenter(){return new oY((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 oY(this.getWest(),this.getNorth())}getSouthEast(){return new oY(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}=oY.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 oK?i:new oK(i)}}class oY{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 oY(H(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 oK(new oY(this.lng-n,this.lat-r),new oY(this.lng+n,this.lat+r))}static convert(i){if(i instanceof oY)return i;if(Array.isArray(i)&&(2===i.length||3===i.length))return new oY(Number(i[0]),Number(i[1]));if(!Array.isArray(i)&&"object"==typeof i&&null!==i)return new oY(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 oJ=2*Math.PI*6371008.8;function oQ(i){return oJ*Math.cos(i*Math.PI/180)}function o0(i){return(180+i)/360}function o1(i){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360}function o2(i){return 360*i-180}function o3(i){return 360/Math.PI*Math.atan(Math.exp((180-360*i)*Math.PI/180))-90}class o5{constructor(i,r,n=0){this.x=+i,this.y=+r,this.z=+n}static fromLngLat(i,r=0){const n=oY.convert(i);return new o5(o0(n.lng),o1(n.lat),r/oQ(n.lat))}toLngLat(){return new oY(o2(this.x),o3(this.y))}toAltitude(){return this.z*oQ(o3(this.y))}meterInMercatorCoordinateUnits(){return 1/oJ*(1/Math.cos(o3(this.y)*Math.PI/180))}}const o4=-16383-1;function o6(i,r,n){const o=i.loadGeometry(),s=i.extent,a=8192/s;if(r&&n&&n.projection.isReprojectedInTileSpace){const a=1<{const n=o2((r.x+i.x/s)/a),o=o3((r.y+i.y/s)/a),u=d.project(n,o);i.x=(u.x*l-c)*s,i.y=(u.y*l-h)*s};for(let r=0;r=d?(i(r,n,o,p,f,l,m,h,d),i(r,p,f,s,a,m,c,h,d)):r.push(c)}(l,o,s,i,c,a,n,r,1):l.push(n),o=i,s=c,a=n}return l}(o[r],p,0);else{const i=[];for(const n of o[r])n.x<0||n.x>=s||n.y<0||n.y>=s||(p(n),i.push(n));o[r]=i}}for(const i of o)for(const r of i)!function(i,r){const n=Math.round(i.x*r),o=Math.round(i.y*r);i.x=X(n,o4,16383),i.y=X(o,o4,16383),(ni.x+1||oi.y+1)&&eh("Geometry exceeds allowed extent, reduce your vector tile buffer size")}(r,a);return o}function o8(i,r){return{type:i.type,id:i.id,properties:i.properties,geometry:r?o6(i):[]}}function o9(i,r,n,o,s){i.emplaceBack(2*r+(o+1)/2,2*n+(s+1)/2)}class o7{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 nW,this.indexArray=new n6,this.segments=new oH,this.programConfigurations=new oV(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:r,id:c,index:h,sourceLayerIndex:u}of("circle"===s.type&&(l=s.layout.get("circle-sort-key")),i)){const i=this.layers[0]._featureFilter.needGeometry,s=o8(r,i);if(!this.layers[0]._featureFilter.filter(new nM(this.zoom),s,n))continue;const d=l?l.evaluate(s,{},n):void 0,p={id:c,properties:r.properties,type:r.type,sourceLayerIndex:u,index:h,geometry:i?s.geometry:o6(r,n,o),patterns:{},sortKey:d};a.push(p)}for(const o of(l&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:s,index:a,sourceLayerIndex:l}=o,c=i[a].feature;this.addFeature(o,s,a,r.availableImages,n),r.featureIndex.insert(c,s,a,l,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,oW),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 n of r)for(const r of n){const n=r.x,o=r.y;if(n<0||n>=8192||o<0||o>=8192)continue;const s=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,i.sortKey),a=s.vertexLength;o9(this.layoutVertexArray,n,o,-1,-1),o9(this.layoutVertexArray,n,o,1,-1),o9(this.layoutVertexArray,n,o,1,1),o9(this.layoutVertexArray,n,o,-1,1),this.indexArray.emplaceBack(a,a+1,a+2),this.indexArray.emplaceBack(a,a+3,a+2),s.vertexLength+=4,s.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,{},o,s)}}function se(i,r){for(let n=0;n1?n:n.sub(r)._mult(s)._add(r))}function so(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 ss(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 sa(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 a=[new u(r,n),new u(r,s),new u(o,s),new u(o,n)];if(i.length>2){for(const r of a)if(ss(i,r))return!0}for(let r=0;rs.x&&r.x>s.x||i.ys.y&&r.y>s.y)return!1;const a=eu(i,r,n[0]);return a!==eu(i,r,n[1])||a!==eu(i,r,n[2])||a!==eu(i,r,n[3])}(i[r],i[r+1],a))return!0;return!1}function sl(i,r,n){const o=r.paint.get(i).value;return"constant"===o.kind?o.value:n.programConfigurations.get(r.id).getMaxValue(i)}function sc(i){return Math.sqrt(i[0]*i[0]+i[1]*i[1])}function sh(i,r,n,o,s){if(!r[0]&&!r[1])return i;const a=u.convert(r)._mult(s);"viewport"===n&&a._rotate(-o);const l=[];for(let r=0;r{var a;const l=R([],n,i),c=1/l[3]/r*s;return a=[c,c,o?1/l[3]:c,c],l[0]=l[0]*a[0],l[1]=l[1]*a[1],l[2]=l[2]*a[2],l[3]=l[3]*a[3],l}),l=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(i=>{const r=k([],D([],M([],a[i[0]],a[i[1]]),M([],a[i[2]],a[i[1]]))),n=-P(r,a[i[1]]);return r.concat(n)});return new sf(a,l)}}class sm{constructor(i,r){this.min=i,this.max=r,this.center=C([],I([],this.min,this.max),.5)}quadrant(i){const r=[i%2==0,i<2],n=T(this.min),o=T(this.max);for(let i=0;i=0;if(0===a)return 0;a!==r.length&&(n=!1)}if(n)return 2;for(let r=0;r<3;r++){let n=Number.MAX_VALUE,o=-Number.MAX_VALUE;for(let s=0;sthis.max[r]-this.min[r])return 0}return 1}}function s_(i,r,n,o,s,a,l,c,h){if(a&&i.queryGeometry.isAboveHorizon)return!1;for(const p of(a&&(h*=i.pixelToTileUnitsFactor),r))for(const r of p){var d;const p=r.add(c),f=s&&n.elevation?n.elevation.exaggeration()*s.getElevationAt(p.x,p.y,!0):0,m=a?p:function(i,r,n){const o=R([],[i.x,i.y,r,1],n);return new u(o[0]/o[3],o[1]/o[3])}(p,f,o),_=a?i.tilespaceRays.map(i=>(function(i,r){const n=w();return sg[2]=r,i.intersectsPlane(sg,sy,n),new u(n[0],n[1])})(i,f)):i.queryGeometry.screenGeometry,g=R([],[r.x,r.y,f,1],o);if(!l&&a?h*=g[3]/n.cameraToCenterDistance:l&&!a&&(h*=n.cameraToCenterDistance/g[3]),d=h,ss(_,m)||sr(m,_,d))return!0}return!1}const sg=S(0,0,0),sy=S(0,0,1);class sx extends o7{}function sv(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 sb(i,{width:r,height:n},o){if(r===i.width&&n===i.height)return;const s=sv({},{width:r,height:n},o);sw(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 sw(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 r=0,s=0;r=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&&sR(cs.x||a.x===s.x&&(n=s,o=a,0>sF(n.prev,n,o.prev)&&0>sF(o.next,n,n.next))))&&(s=a,_=d)),a=a.next;while(a!==p)return s}(i,r);if(!n)return r;var o=sG(n,i),s=sD(n,n.next);return sD(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=sB(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(sF(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=sB(s.x=h&&p&&p.z<=u;){if(d!==i.prev&&d!==i.next&&sR(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sF(d.prev,d,d.next)>=0||(d=d.prevZ,p!==i.prev&&p!==i.next&&sR(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sF(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;d&&d.z>=h;){if(d!==i.prev&&d!==i.next&&sR(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sF(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;p&&p.z<=u;){if(p!==i.prev&&p!==i.next&&sR(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sF(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(sF(r,i,n)>=0)return!1;for(var o=i.next.next;o!==i.prev;){if(sR(r.x,r.y,i.x,i.y,n.x,n.y,o.x,o.y)&&sF(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),s$(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;!sO(s,a)&&sU(s,o,o.next,a)&&sj(s,a)&&sj(a,s)&&(r.push(s.i/n),r.push(o.i/n),r.push(a.i/n),s$(o),s$(o.next),o=i=a),o=o.next}while(o!==i)return sD(o)}(sD(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&&sU(n,n.next,i,r))return!0;n=n.next}while(n!==i)return!1}(h,u)&&(sj(h,u)&&sj(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)&&(sF(h.prev,h,u.prev)||sF(h,u.prev,u))||sO(h,u)&&sF(h.prev,h,h.next)>0&&sF(u.prev,u,u.next)>0))){var p=sG(c,d);return c=sD(c,c.next),p=sD(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(sD(r),n,o,s,a,l,1);break}}}(f,m,n,o,s,u),m}function sP(i,r,n,o,s){var a,l;if(s===sX(i,r,n,o)>0)for(a=r;a=r;a-=o)l=sZ(a,i[a],i[a+1],l);return l&&sO(l,l.next)&&(s$(l),l=l.next),l}function sD(i,r){if(!i)return i;r||(r=i);var n,o=i;do if(n=!1,o.steiner||!sO(o,o.next)&&0!==sF(o.prev,o,o.next))o=o.next;else{if(s$(o),(o=r=o.prev)===o.next)break;n=!0}while(n||o!==r)return r}function sL(i,r){return i.x-r.x}function sB(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 sR(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 sF(i,r,n){return(r.y-i.y)*(n.x-r.x)-(r.x-i.x)*(n.y-r.y)}function sO(i,r){return i.x===r.x&&i.y===r.y}function sU(i,r,n,o){var s=sN(sF(i,r,n)),a=sN(sF(i,r,o)),l=sN(sF(n,o,i)),c=sN(sF(n,o,r));return s!==a&&l!==c||!(0!==s||!sV(i,n,r))||!(0!==a||!sV(i,o,r))||!(0!==l||!sV(n,i,o))||!(0!==c||!sV(n,r,o))}function sV(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 sN(i){return i>0?1:i<0?-1:0}function sj(i,r){return 0>sF(i.prev,i,i.next)?sF(i,r,i.next)>=0&&sF(i,i.prev,r)>=0:0>sF(i,r,i.prev)||0>sF(i,i.next,r)}function sG(i,r){var n=new sq(i.i,i.x,i.y),o=new sq(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 sZ(i,r,n,o){var s=new sq(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 s$(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 sq(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 sX(i,r,n,o){for(var s=0,a=r,l=n-o;ar?1:0}function sK(i,r){let n,o;const s=i.length;if(s<=1)return[i];const a=[];for(let r=0;r1)for(let i=0;io;){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(sW(r,o,n),a(r[s],p)>0&&sW(r,o,s);fa(r[f],p);)f++;for(;a(r[m],p)>0;)m--}0===a(r[o],p)?sW(r,o,m):sW(r,++m,s),m<=n&&(o=m+1),n<=m&&(s=m-1)}}(l,r,1,c||l.length-1,sY||sH),a[i]=a[i].slice(0,r))}return a}function sY(i,r){return r.area-i.area}function sJ(i,r,n){const o=n.patternDependencies;let s=!1;for(const n of r){const r=n.paint.get(`${i}-pattern`);r.isConstant()||(s=!0);const a=r.constantOr(null);a&&(s=!0,o[a.to]=!0,o[a.from]=!0)}return s}function sQ(i,r,n,o,s){const a=s.patternDependencies;for(const l of r){const r=l.paint.get(`${i}-pattern`).value;if("constant"!==r.kind){let i=r.evaluate({zoom:o-1},n,{},s.availableImages),c=r.evaluate({zoom:o},n,{},s.availableImages),h=r.evaluate({zoom:o+1},n,{},s.availableImages);i=i&&i.name?i.name:i,c=c&&c.name?c.name:c,h=h&&h.name?h.name:h,a[i]=!0,a[c]=!0,a[h]=!0,n.patterns[l.id]={min:i,mid:c,max:h}}}return n}sk.deviation=function(i,r,n,o){var s=r&&r.length,a=Math.abs(sX(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},sz.default=sk;class s0{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 nW,this.indexArray=new n6,this.indexArray2=new or,this.programConfigurations=new oV(i.layers,i.zoom),this.segments=new oH,this.segments2=new oH,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=sJ("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 i=this.layers[0]._featureFilter.needGeometry,d=o8(l,i);if(!this.layers[0]._featureFilter.filter(new nM(this.zoom),d,n))continue;const p=s?s.evaluate(d,{},n,r.availableImages):void 0,f={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:i?d.geometry:o6(l,n,o),patterns:{},sortKey:p};a.push(f)}for(const o of(s&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:s,index:a,sourceLayerIndex:l}=o;if(this.hasPattern){const i=sQ("fill",this.layers,o,this.zoom,r);this.patternFeatures.push(i)}else this.addFeature(o,s,a,n,{},r.availableImages);r.featureIndex.insert(i[a].feature,s,a,l,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 i of this.patternFeatures)this.addFeature(i,i.geometry,i.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,sC),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 i of sK(r,500)){let r=0;for(const n of i)r+=n.length;const n=this.segments.prepareSegment(r,this.layoutVertexArray,this.indexArray),o=n.vertexLength,s=[],a=[];for(const r of i){if(0===r.length)continue;r!==i[0]&&a.push(s.length/2);const n=this.segments2.prepareSegment(r.length,this.layoutVertexArray,this.indexArray2),o=n.vertexLength;this.layoutVertexArray.emplaceBack(r[0].x,r[0].y),this.indexArray2.emplaceBack(o+r.length-1,o),s.push(r[0].x),s.push(r[0].y);for(let i=1;i>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 ae(i,r,n){if(3===i){var o=new s9(n,n.readVarint()+n.pos);o.length&&(r[o.name]=o)}}s6.types=["Unknown","Point","LineString","Polygon"],s6.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,l=0,c=[];i.pos>3}if(s--,1===o||2===o)a+=i.readSVarint(),l+=i.readSVarint(),1===o&&(r&&c.push(r),r=[]),r.push(new u(a,l));else{if(7!==o)throw Error("unknown command "+o);r&&r.push(r[0].clone())}}return r&&c.push(r),c},s6.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]},s6.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=s6.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 s6(this._pbf,r,this.extent,this._keys,this._values)};var at={VectorTile:function(i,r){this.layers=i.readFields(ae,{},r)},VectorTileFeature:s6,VectorTileLayer:s9};const ai=at.VectorTileFeature.types;function ar(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 an{constructor(){this.acc=new u(0,0),this.polyCount=[]}startRing(i){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new u(i.x,i.y),this.max=new u(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,ii(r.y,i.y,(0-r.x)/(i.x-r.x))),r.x>8192!=i.x>8192&&this.addBorderIntersection(1,ii(r.y,i.y,(8192-r.x)/(i.x-r.x))),r.y<0!=i.y<0&&this.addBorderIntersection(2,ii(r.x,i.x,(0-r.y)/(i.y-r.y))),r.y>8192!=i.y>8192&&this.addBorderIntersection(3,ii(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 n=0===i.y?2:3;this.addBorderIntersection(n,r.x),this.addBorderIntersection(n,i.x)}}centroid(){const i=this.polyCount.reduce((i,r)=>i+r.edges,0);return 0!==i?this.acc.div(i)._round():new u(0,0)}span(){return new u(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 ao{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 nH,this.centroidVertexArray=new oy,this.indexArray=new n6,this.programConfigurations=new oV(i.layers,i.zoom),this.segments=new oH,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=sJ("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 i=0;i=1){const n=s[i-1];if((r.x!==n.x||!(r.x<0)&&!(r.x>8192))&&(r.y!==n.y||!(r.y<0)&&!(r.y>8192))){c&&c.append(r,n),o.vertexLength+4>oH.MAX_VERTEX_ARRAY_LENGTH&&(o=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const i=r.sub(n)._perp(),s=i.x/(Math.abs(i.x)+Math.abs(i.y)),l=i.y>0?1:0,h=n.dist(r);a+h>32768&&(a=0),ar(this.layoutVertexArray,r.x,r.y,s,l,0,0,a),ar(this.layoutVertexArray,r.x,r.y,s,l,0,1,a),a+=h,ar(this.layoutVertexArray,n.x,n.y,s,l,0,0,a),ar(this.layoutVertexArray,n.x,n.y,s,l,0,1,a);const u=o.vertexLength;this.indexArray.emplaceBack(u,u+2,u+1),this.indexArray.emplaceBack(u+1,u+2,u+3),o.vertexLength+=4,o.primitiveLength+=2}}}}if(o.vertexLength+r>oH.MAX_VERTEX_ARRAY_LENGTH&&(o=this.segments.prepareSegment(r,this.layoutVertexArray,this.indexArray)),"Polygon"!==ai[i.type])continue;const s=[],a=[],h=o.vertexLength;for(let i=0;i0){if(c.borders){c.vertexArrayOffset=this.centroidVertexArray.length;const i=c.borders,r=this.featuresOnBorder.push(c)-1;for(let n=0;n<4;n++)i[n][0]!==Number.MAX_VALUE&&this.borders[n].push(r)}this.encodeCentroid(c.borders?void 0:c.centroid(),c)}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 n=r.span()._mult(this.tileToMeter);o=(Math.max(i.x,1)<<3)+Math.min(7,Math.round(n.x/10)),s=(Math.max(i.y,1)<<3)+Math.min(7,Math.round(n.y/10))}else o=Math.ceil(7*(i.x+450)),s=0}else o=0,s=+n;let a=n?this.centroidVertexArray.length:r.vertexArrayOffset;for(const i of r.polyCount){n&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*i.edges+i.top);for(let r=0;r<2*i.edges;r++)this.centroidVertexArray.emplace(a++,0,s),this.centroidVertexArray.emplace(a++,o,s);for(let r=0;ri.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 nK,this.layoutVertexArray2=new nY,this.indexArray=new n6,this.programConfigurations=new oV(i.layers,i.zoom),this.segments=new oH,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=sJ("line",this.layers,r);const s=this.layers[0].layout.get("line-sort-key"),a=[];for(const{feature:r,id:l,index:c,sourceLayerIndex:h}of i){const i=this.layers[0]._featureFilter.needGeometry,u=o8(r,i);if(!this.layers[0]._featureFilter.filter(new nM(this.zoom),u,n))continue;const d=s?s.evaluate(u,{},n):void 0,p={id:l,properties:r.properties,type:r.type,sourceLayerIndex:h,index:c,geometry:i?u.geometry:o6(r,n,o),patterns:{},sortKey:d};a.push(p)}s&&a.sort((i,r)=>i.sortKey-r.sortKey);const{lineAtlas:l,featureIndex:c}=r,h=this.addConstantDashes(l);for(const o of a){const{geometry:s,index:a,sourceLayerIndex:u}=o;if(h&&this.addFeatureDashes(o,l),this.hasPattern){const i=sQ("line",this.layers,o,this.zoom,r);this.patternFeatures.push(i)}else this.addFeature(o,s,a,n,l.positions,r.availableImages);c.insert(i[a].feature,s,a,u,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 r=s.value,n=o.value;if(!n)continue;i.addDash(n.from,r),i.addDash(n.to,r),n.other&&i.addDash(n.other,r)}}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 i=d.value;if(!i)continue;s=i.other||i.to,a=i.to,l=i.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 f=r.getKey(s,c),m=r.getKey(a,h),_=r.getKey(l,u);i.patterns[o.id]={min:f,mid:m,max:_}}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const i of this.patternFeatures)this.addFeature(i,i.geometry,i.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,ap)),this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,au),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 n of(this.lineClips=this.lineFeatureClips(i),r))this.addLine(n,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 r=0;r=2&&i[f-1].equals(i[f-2]);)f--;let m=0;for(;m0;if(T&&r>m){const i=l.dist(c);if(i>2*_){const r=l.sub(l.sub(c)._mult(_/i)._round());this.updateDistance(c,r),this.addCurrentVertex(r,u,0,0,g),c=r}}const S=c&&h;let I=S?n:p?"butt":o;if(S&&"round"===I&&(bs&&(I="bevel"),"bevel"===I&&(b>2&&(I="flipbevel"),b100)y=d.mult(-1);else{const i=b*u.add(d).mag()/u.sub(d).mag();y._perp()._mult(i*(E?-1:1))}this.addCurrentVertex(l,y,0,0,g),this.addCurrentVertex(l,y.mult(-1),0,0,g)}else if("bevel"===I||"fakeround"===I){const i=-Math.sqrt(b*b-1),r=E?i:0,n=E?0:i;if(c&&this.addCurrentVertex(l,u,r,n,g),"fakeround"===I){const i=Math.round(180*w/Math.PI/20);for(let r=1;r2*_){const r=l.add(h.sub(l)._mult(_/i)._round());this.updateDistance(l,r),this.addCurrentVertex(r,d,0,0,g),l=r}}}}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()}}rj("LineBucket",a_,{omit:["layers","patternFeatures"]});const ag=new nN({"line-cap":new nF(tt.layout_line["line-cap"]),"line-join":new nF(tt.layout_line["line-join"]),"line-miter-limit":new nR(tt.layout_line["line-miter-limit"]),"line-round-limit":new nR(tt.layout_line["line-round-limit"]),"line-sort-key":new nF(tt.layout_line["line-sort-key"])});var ay={paint:new nN({"line-opacity":new nF(tt.paint_line["line-opacity"]),"line-color":new nF(tt.paint_line["line-color"]),"line-translate":new nR(tt.paint_line["line-translate"]),"line-translate-anchor":new nR(tt.paint_line["line-translate-anchor"]),"line-width":new nF(tt.paint_line["line-width"]),"line-gap-width":new nF(tt.paint_line["line-gap-width"]),"line-offset":new nF(tt.paint_line["line-offset"]),"line-blur":new nF(tt.paint_line["line-blur"]),"line-dasharray":new nO(tt.paint_line["line-dasharray"]),"line-pattern":new nO(tt.paint_line["line-pattern"]),"line-gradient":new nV(tt.paint_line["line-gradient"])}),layout:ag};const ax=new class extends nF{possiblyEvaluate(i,r){return r=new nM(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=J({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(i,r,n,o)}}(ay.paint.properties["line-width"].specification);ax.useIntegerZoom=!0;const av=nq([{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),ab=nq([{name:"a_projected_pos",components:3,type:"Float32"}],4);nq([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const aw=nq([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),aT=nq([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);nq([{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 aE=nq([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),aS=nq([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function aI(i,r){const{expression:n}=r;if("constant"===n.kind)return{kind:"constant",layoutSize:n.evaluate(new nM(i+1))};if("source"===n.kind)return{kind:"source"};{const{zoomStops:r,interpolationType:o}=n;let s=0;for(;s":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","\xa2":"¢","\xa3":"£","\xa5":"¥","\xa6":"¦","\xac":"¬","\xaf":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var ak=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)},aP=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(isNaN(r=Math.abs(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 aD(i){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(i)?i:new Uint8Array(i||0),this.pos=0,this.type=0,this.length=this.buf.length}aD.Varint=0,aD.Fixed64=1,aD.Bytes=2,aD.Fixed32=5;var aL="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function aB(i){return i.type===aD.Bytes?i.readVarint()+i.pos:i.pos+1}function aR(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 aF(i,r){for(var n=0;n>>8,i[n+2]=r>>>16,i[n+3]=r>>>24}function aW(i,r){return(i[r]|i[r+1]<<8|i[r+2]<<16)+(i[r+3]<<24)}function aH(i,r,n){r.glyphs=[],1===i&&n.readMessage(aK,r)}function aK(i,r,n){if(3===i){const{id:i,bitmap:o,width:s,height:a,left:l,top:c,advance:h}=n.readMessage(aY,{});r.glyphs.push({id:i,bitmap:new sT({width:s+6,height:a+6},o),metrics:{width:s,height:a,left:l,top:c,advance:h}})}else 4===i?r.ascender=n.readSVarint():5===i&&(r.descender=n.readSVarint())}function aY(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 aJ(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 o=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(r/.95)),n),h:1/0}];let s=0,a=0;for(const r of i)for(let i=o.length-1;i>=0;i--){const n=o[i];if(!(r.w>n.w||r.h>n.h)){if(r.x=n.x,r.y=n.y,a=Math.max(a,r.y+r.h),s=Math.max(s,r.x+r.w),r.w===n.w&&r.h===n.h){const r=o.pop();i>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=aW(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*aW(this.buf,this.pos+4);return this.pos+=8,i},readFloat:function(){var i=ak(this.buf,this.pos,!0,23,4);return this.pos+=4,i},readDouble:function(){var i=ak(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!!this.readVarint()},readString:function(){var i,r=this.readVarint()+this.pos,n=this.pos;return this.pos=r,r-n>=12&&aL?(i=this.buf,aL.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!==aD.Bytes)return i.push(this.readVarint(r));var n=aB(this);for(i=i||[];this.pos127;);else if(r===aD.Bytes)this.pos=this.readVarint()+this.pos;else if(r===aD.Fixed32)this.pos+=4;else{if(r!==aD.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;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,r.buf[r.pos++]=127&s|128,s>>>=7,r.buf[r.pos++]=127&s|128,s>>>=7,r.buf[r.pos++]=127&s|128,s>>>=7,r.buf[r.pos++]=127&s|128,r.buf[r.pos]=127&(s>>>=7),l=(7&(a=o))<<4,r.buf[r.pos++]|=l|((a>>>=3)?128:0),a&&(r.buf[r.pos++]=127&a|((a>>>=7)?128:0),a&&(r.buf[r.pos++]=127&a|((a>>>=7)?128:0),a&&(r.buf[r.pos++]=127&a|((a>>>=7)?128:0),a&&(r.buf[r.pos++]=127&a|((a>>>=7)?128:0),a&&(r.buf[r.pos++]=127&a)))))}(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(!!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&&aR(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeFloat:function(i){this.realloc(4),aP(this.buf,i,this.pos,!0,23,4),this.pos+=4},writeDouble:function(i){this.realloc(8),aP(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&&aR(n,o,this),this.pos=n-1,this.writeVarint(o),this.pos+=o},writeMessage:function(i,r,n){this.writeTag(i,aD.Bytes),this.writeRawMessage(r,n)},writePackedVarint:function(i,r){r.length&&this.writeMessage(i,aF,r)},writePackedSVarint:function(i,r){r.length&&this.writeMessage(i,aO,r)},writePackedBoolean:function(i,r){r.length&&this.writeMessage(i,aN,r)},writePackedFloat:function(i,r){r.length&&this.writeMessage(i,aU,r)},writePackedDouble:function(i,r){r.length&&this.writeMessage(i,aV,r)},writePackedFixed32:function(i,r){r.length&&this.writeMessage(i,aj,r)},writePackedSFixed32:function(i,r){r.length&&this.writeMessage(i,aG,r)},writePackedFixed64:function(i,r){r.length&&this.writeMessage(i,aZ,r)},writePackedSFixed64:function(i,r){r.length&&this.writeMessage(i,a$,r)},writeBytesField:function(i,r){this.writeTag(i,aD.Bytes),this.writeBytes(r)},writeFixed32Field:function(i,r){this.writeTag(i,aD.Fixed32),this.writeFixed32(r)},writeSFixed32Field:function(i,r){this.writeTag(i,aD.Fixed32),this.writeSFixed32(r)},writeFixed64Field:function(i,r){this.writeTag(i,aD.Fixed64),this.writeFixed64(r)},writeSFixed64Field:function(i,r){this.writeTag(i,aD.Fixed64),this.writeSFixed64(r)},writeVarintField:function(i,r){this.writeTag(i,aD.Varint),this.writeVarint(r)},writeSVarintField:function(i,r){this.writeTag(i,aD.Varint),this.writeSVarint(r)},writeStringField:function(i,r){this.writeTag(i,aD.Bytes),this.writeString(r)},writeFloatField:function(i,r){this.writeTag(i,aD.Fixed32),this.writeFloat(r)},writeDoubleField:function(i,r){this.writeTag(i,aD.Fixed64),this.writeDouble(r)},writeBooleanField:function(i,r){this.writeVarintField(i,!!r)}};class aQ{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 a0{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}=aJ(s),c=new sE({width:a||1,height:l||1});for(const r in i){const o=i[r],s=n[r].paddedRect;sE.copy(o.data,c,{x:0,y:0},{x:s.x+1,y:s.y+1},o.data)}for(const i in r){const n=r[i],s=o[i].paddedRect,a=s.x+1,l=s.y+1,h=n.data.width,u=n.data.height;sE.copy(n.data,c,{x:0,y:0},{x:a,y:l},n.data),sE.copy(n.data,c,{x:0,y:u-1},{x:a,y:l-1},{width:h,height:1}),sE.copy(n.data,c,{x:0,y:0},{x:a,y:l+u},{width:h,height:1}),sE.copy(n.data,c,{x:h-1,y:0},{x:a-1,y:l},{width:1,height:u}),sE.copy(n.data,c,{x:0,y:0},{x:a+h,y:l},{width:1,height:u})}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 aQ(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})}}rj("ImagePosition",aQ),rj("ImageAtlas",a0);const a1={horizontal:1,vertical:2,horizontalOnly:3};class a2{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(i,r){const n=new a2;return n.scale=i||1,n.fontStack=r,n}static forImage(i){const r=new a2;return r.imageName=i,r}}class a3{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(i,r){const n=new a3;for(let o=0;o=0&&n>=i&&a4[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(i,r),this.sectionIndex=this.sectionIndex.slice(i,r)}substring(i,r){const n=new a3;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(a2.forText(i.scale,i.fontStack||r));const n=this.sections.length-1;for(let r=0;r=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function a5(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){let y;const x=a3.fromFeature(i,s);p===a1.vertical&&x.verticalizePunctuation(f);const{processBidirectionalText:v,processStyledBidirectionalText:b}=nI;if(v&&1===x.sections.length){y=[];const i=v(x.toString(),le(x,u,a,r,o,m,_));for(const r of i){const i=new a3;i.text=r,i.sections=x.sections;for(let n=0;n0&&a>w&&(w=a)}else{const i=n[c.fontStack];if(!i)continue;i[g]&&(S=i[g]);const o=r[c.fontStack];if(!o)continue;const a=o.glyphs[g];if(!a)continue;if(v=a.metrics,M=8203!==g?24:0,y){const i=void 0!==o.ascender?Math.abs(o.ascender):0,r=void 0!==o.descender?Math.abs(o.descender):0,n=(i+r)*x;T=0;let d=0;for(let n=0;n-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+=r.dist(n)}return!0}function ls(i){let r=0;for(let n=0;n=o&&d.x>=o||(l.x>=o?l=new u(o,l.y+(o-l.x)/(d.x-l.x)*(d.y-l.y))._round():d.x>=o&&(d=new u(o,l.y+(o-l.x)/(d.x-l.x)*(d.y-l.y))._round()),l.y>=s&&d.y>=s||(l.y>=s?l=new u(l.x+(s-l.y)/(d.y-l.y)*(d.x-l.x),s)._round():d.y>=s&&(d=new u(l.x+(s-l.y)/(d.y-l.y)*(d.x-l.x),s)._round()),c&&l.equals(c[c.length-1])||(c=[l],a.push(c)),c.push(d)))))}}return a}function lc(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 c=0,h=0;c{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]=[],ld.loadGlyphRange(i,a,this.url,this.requestManager,(i,r)=>{if(r){for(const i in o.ascender=r.ascender,o.descender=r.descender,r.glyphs)this._doesCharSupportLocalGlyph(+i)||(o.glyphs[+i]=r.glyphs[+i]);o.ranges[a]=!0}for(const n of l)n(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 i={};for(const{stack:r,id:o,glyph:s}of n)void 0===i[r]&&(i[r]={}),void 0===i[r].glyphs&&(i[r].glyphs={}),i[r].glyphs[o]=s&&{id:s.id,bitmap:s.bitmap.clone(),metrics:s.metrics},i[r].ascender=this.entries[r].ascender,i[r].descender=this.entries[r].descender;r(null,i)}})}_doesCharSupportLocalGlyph(i){return this.localGlyphMode!==lu.none&&(this.localGlyphMode===lu.all?!!this.localFontFamily:!!this.localFontFamily&&(ne(i)||nr(i)||r1(i)||r2(i))||r0(i))}_tinySDF(i,r,n){const o=this.localFontFamily;if(!o||!this._doesCharSupportLocalGlyph(n))return;let s=i.tinySDF;if(!s){let n="400";/bold/i.test(r)?n="900":/medium/i.test(r)?n="500":/light/i.test(r)&&(n="200"),(s=i.tinySDF=new ld.TinySDF({fontFamily:o,fontWeight:n,fontSize:48,buffer:6,radius:16})).fontWeight=n}if(this.localGlyphs[s.fontWeight][n])return this.localGlyphs[s.fontWeight][n];const a=String.fromCharCode(n),{data:l,width:c,height:h,glyphWidth:u,glyphHeight:d,glyphLeft:p,glyphTop:f,glyphAdvance:m}=s.draw(a);return this.localGlyphs[s.fontWeight][n]={id:n,bitmap:new sT({width:c,height:h},l),metrics:{width:u/2,height:d/2,left:p/2,top:f/2-27,advance:m/2,localGlyph:!0}}}}function lp(i,r,n,o){const s=[],a=i.image,l=a.pixelRatio,c=a.paddedRect.w-2,h=a.paddedRect.h-2,d=i.right-i.left,p=i.bottom-i.top,f=a.stretchX||[[0,c]],m=a.stretchY||[[0,h]],_=(i,r)=>i+r[1]-r[0],g=f.reduce(_,0),y=m.reduce(_,0),x=c-g,v=h-y;let b=0,w=g,T=0,E=y,S=0,I=x,M=0,A=v;if(a.content&&o){const i=a.content;b=lf(f,0,i[0]),T=lf(m,0,i[1]),w=lf(f,i[0],i[2]),E=lf(m,i[1],i[3]),S=i[0]-b,M=i[1]-T,I=i[2]-i[0]-w,A=i[3]-i[1]-E}const C=(o,s,c,h)=>{const f=(o.stretch-b)/w*d+i.left,m=o.fixed-S-I*o.stretch/g,_=(s.stretch-T)/E*p+i.top,x=s.fixed-M-A*s.stretch/y,v=(c.stretch-b)/w*d+i.left,C=c.fixed-S-I*c.stretch/g,z=(h.stretch-T)/E*p+i.top,k=h.fixed-M-A*h.stretch/y,P=new u(f,_),D=new u(v,_),L=new u(v,z),B=new u(f,z),R=new u(m/l,x/l),F=new u(C/l,k/l),O=r*Math.PI/180;if(O){const i=Math.sin(O),r=Math.cos(O),n=[r,-i,i,r];P._matMult(n),D._matMult(n),B._matMult(n),L._matMult(n)}const U=o.stretch+o.fixed,V=s.stretch+s.fixed;return{tl:P,tr:D,bl:B,br:L,tex:{x:a.paddedRect.x+1+U,y:a.paddedRect.y+1+V,w:c.stretch+c.fixed-U,h:h.stretch+h.fixed-V},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:R,pixelOffsetBR:F,minFontScaleX:I/l/d,minFontScaleY:A/l/p,isSDF:n}};if(o&&(a.stretchX||a.stretchY)){const i=lm(f,x,g),r=lm(m,v,y);for(let n=0;n{if(i)s(i);else if(r){const i={},n=new aD(r).readFields(aH,{});for(const r of n.glyphs)i[r.id]=r;s(null,{glyphs:i,ascender:n.ascender,descender:n.descender})}})},ld.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 i=0;i0?i*i:0,y[o]=i<0?i*i:0}}lc(x,0,0,u,d,u,this.f,this.v,this.z),lc(y,g,g,c,h,u,this.f,this.v,this.z);for(let i=0;i0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}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[l],a)&&(o=l,a=r[l]),n(a,s)>=0)break;r[i]=a,i=o}r[i]=s}}function lg(i,r){return ir?1:0}function ly(i,r){return r.max-i.max}function lx(i,r,n,o){this.p=new u(i,r),this.h=n,this.d=function(i,r){let n=!1,o=1/0;for(let s=0;si.y!=c.y>i.y&&i.x<(c.x-s.x)*(i.y-s.y)/(c.y-s.y)+s.x&&(n=!n),o=Math.min(o,sn(i,s,c))}}return(n?1:-1)*Math.sqrt(o)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}const lv=Number.POSITIVE_INFINITY,lb=Math.sqrt(2);function lw(i,r){return r[1]!==lv?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/lb;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 lT(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 lE(i,r,n,o,s,a,l,c,h,d,p,f,m,_,g,y,x){const v=function(i,r,n,o,s,a,l,c){const h=[];if(0===r.positionedLines.length)return h;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 i of r.positionedLines)f-=i.lineOffset;const m=r.positionedLines.length,_=f/m;let g=r.top-n[1];for(let i=0;i32640&&eh(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`):"composite"===b.kind&&((w=[128*g.compositeTextSizes[0].evaluate(c,{},x),128*g.compositeTextSizes[1].evaluate(c,{},x)])[0]>32640||w[1]>32640)&&eh(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`),i.addSymbols(i.text,v,w,h,l,c,p,r,n,d.lineStartIndex,d.lineLength,_,y,x),f))m[o]=i.text.placedSymbolArray.length-1;return 4*v.length}function lS(i){for(const r in i)return i[r];return null}function lI(i,r,n,o,s,a,l,c,h,d){let p=l.top,f=l.bottom,m=l.left,_=l.right;const g=l.collisionPadding;if(g&&(m-=g[0],p-=g[1],_+=g[2],f+=g[3]),h){const i=new u(m,p),r=new u(_,p),n=new u(m,f),o=new u(_,f),s=h*N;let a=new u(0,0);d&&(a=new u(d[0],d[1])),i._rotateAround(s,a),r._rotateAround(s,a),n._rotateAround(s,a),o._rotateAround(s,a),m=Math.min(i.x,r.x,n.x,o.x),_=Math.max(i.x,r.x,n.x,o.x),p=Math.min(i.y,r.y,n.y,o.y),f=Math.max(i.y,r.y,n.y,o.y)}return i.emplaceBack(r.x,r.y,r.z,n.x,n.y,m,p,_,f,c,o,s,a),i.length-1}function lM(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 lA=at.VectorTileFeature.types,lC=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function lz(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 lk(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 lP{constructor(i){this.layoutVertexArray=new n0,this.indexArray=new n6,this.programConfigurations=i,this.segments=new oH,this.dynamicLayoutVertexArray=new nY,this.opacityVertexArray=new n1,this.placedSymbolArray=new oh}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,av.members),this.indexBuffer=i.createIndexBuffer(this.indexArray,r),this.dynamicLayoutVertexBuffer=i.createVertexBuffer(this.dynamicLayoutVertexArray,ab.members,!0),this.opacityVertexBuffer=i.createVertexBuffer(this.opacityVertexArray,lC,!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())}}rj("SymbolBuffers",lP);class lD{constructor(i,r,n){this.layoutVertexArray=new i,this.layoutAttributes=r,this.indexArray=new n,this.segments=new oH,this.collisionVertexArray=new n4,this.collisionVertexArrayExt=new nY}upload(i){this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=i.createVertexBuffer(this.collisionVertexArray,aw.members,!0),this.collisionVertexBufferExt=i.createVertexBuffer(this.collisionVertexArrayExt,aT.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}rj("CollisionBuffers",lD);class lL{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=_([]),this.placementViewportMatrix=_([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=aI(this.zoom,r["text-size"]),this.iconSizeData=aI(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=>a1[i]),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.sourceID=i.sourceID}createArrays(){this.text=new lP(new oV(this.layers,this.zoom,i=>/^text/.test(i))),this.icon=new lP(new oV(this.layers,this.zoom,i=>/^icon/.test(i))),this.glyphOffsetArray=new op,this.lineVertexArray=new of,this.symbolInstances=new od}calculateGlyphDependencies(i,r,n,o,s){for(let n=0;n0)&&("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 nM(this.zoom);for(const{feature:r,id:c,index:h,sourceLayerIndex:y}of i){let i,x;const v=s._featureFilter.needGeometry,b=o8(r,v);if(!s._featureFilter.filter(g,b,n))continue;if(v||(b.geometry=o6(r,n,o)),u){const r=s.getValueAndResolveTokens("text-field",b,n,_),o=tz.factory(r);(function(i){for(const r of i.sections)if(function(i){for(const r of i)if(nf(r.charCodeAt(0)))return!0;return!1}(r.text))return!0;return!1})(o)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===nE()||this.hasRTLText&&nI.isParsed())&&(i=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()),nI.applyArabicShaping&&(i=nI.applyArabicShaping(i)),i}(i.text,r,n)}),i}(o,s,b))}if(d){const i=s.getValueAndResolveTokens("icon-image",b,n,_);x=i instanceof tk?i:tk.fromString(i)}if(!i&&!x)continue;const w=this.sortFeaturesByKey?p.evaluate(b,{},n):void 0;if(this.features.push({id:c,text:i,icon:x,index:h,sourceLayerIndex:y,geometry:b.geometry,properties:r.properties,type:lA[r.type],sortKey:w}),x&&(f[x.name]=!0),i){const r=l.evaluate(b,{},n).join(","),o="map"===a.get("text-rotation-alignment")&&"point"!==a.get("symbol-placement");for(const n of(this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(a1.vertical)>=0,i.sections))if(n.image)f[n.image.name]=!0;else{const s=nu(i.toString()),a=n.fontStack||r,l=m[a]=m[a]||{};this.calculateGlyphDependencies(n.text,l,o,this.allowVerticalPlacement,s)}}}"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 n=i.dist(r[i.segment+1]),o=i.dist(r[i.segment]);const s={};for(let o=i.segment+1;o=0;n--)s[n]={x:r[n].x,y:r[n].y,tileUnitDistanceFromAnchor:o},n>0&&(o+=r[n-1].dist(r[n]));for(let i=0;i=0?r.rightJustifiedTextSymbolIndex:r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.leftJustifiedTextSymbolIndex>=0?r.leftJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex>=0?r.verticalPlacedTextSymbolIndex:o),a=aM(this.textSizeData,i,s)/24;return this.tilePixelRatio*a}getSymbolInstanceIconSize(i,r,n){const o=this.icon.placedSymbolArray.get(n),s=aM(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 r=n.vertexStartIndex;ro[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 i=this.symbolInstances.get(r);this.featureSortOrder.push(i.featureIndex),[i.rightJustifiedTextSymbolIndex,i.centerJustifiedTextSymbolIndex,i.leftJustifiedTextSymbolIndex].forEach((i,r,n)=>{i>=0&&n.indexOf(i)===r&&this.addIndicesForPlacedSymbol(this.text,i)}),i.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,i.verticalPlacedTextSymbolIndex),i.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.placedIconSymbolIndex),i.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}rj("SymbolBucket",lL,{omit:["layers","collisionBoxArray","features","compareText"]}),lL.MAX_GLYPHS=65535,lL.addDynamicAttributes=lk;const lB=new nN({"symbol-placement":new nR(tt.layout_symbol["symbol-placement"]),"symbol-spacing":new nR(tt.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new nR(tt.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new nF(tt.layout_symbol["symbol-sort-key"]),"symbol-z-order":new nR(tt.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new nR(tt.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new nR(tt.layout_symbol["icon-ignore-placement"]),"icon-optional":new nR(tt.layout_symbol["icon-optional"]),"icon-rotation-alignment":new nR(tt.layout_symbol["icon-rotation-alignment"]),"icon-size":new nF(tt.layout_symbol["icon-size"]),"icon-text-fit":new nR(tt.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new nR(tt.layout_symbol["icon-text-fit-padding"]),"icon-image":new nF(tt.layout_symbol["icon-image"]),"icon-rotate":new nF(tt.layout_symbol["icon-rotate"]),"icon-padding":new nR(tt.layout_symbol["icon-padding"]),"icon-keep-upright":new nR(tt.layout_symbol["icon-keep-upright"]),"icon-offset":new nF(tt.layout_symbol["icon-offset"]),"icon-anchor":new nF(tt.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new nR(tt.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new nR(tt.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new nR(tt.layout_symbol["text-rotation-alignment"]),"text-field":new nF(tt.layout_symbol["text-field"]),"text-font":new nF(tt.layout_symbol["text-font"]),"text-size":new nF(tt.layout_symbol["text-size"]),"text-max-width":new nF(tt.layout_symbol["text-max-width"]),"text-line-height":new nF(tt.layout_symbol["text-line-height"]),"text-letter-spacing":new nF(tt.layout_symbol["text-letter-spacing"]),"text-justify":new nF(tt.layout_symbol["text-justify"]),"text-radial-offset":new nF(tt.layout_symbol["text-radial-offset"]),"text-variable-anchor":new nR(tt.layout_symbol["text-variable-anchor"]),"text-anchor":new nF(tt.layout_symbol["text-anchor"]),"text-max-angle":new nR(tt.layout_symbol["text-max-angle"]),"text-writing-mode":new nR(tt.layout_symbol["text-writing-mode"]),"text-rotate":new nF(tt.layout_symbol["text-rotate"]),"text-padding":new nR(tt.layout_symbol["text-padding"]),"text-keep-upright":new nR(tt.layout_symbol["text-keep-upright"]),"text-transform":new nF(tt.layout_symbol["text-transform"]),"text-offset":new nF(tt.layout_symbol["text-offset"]),"text-allow-overlap":new nR(tt.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new nR(tt.layout_symbol["text-ignore-placement"]),"text-optional":new nR(tt.layout_symbol["text-optional"])});var lR={paint:new nN({"icon-opacity":new nF(tt.paint_symbol["icon-opacity"]),"icon-color":new nF(tt.paint_symbol["icon-color"]),"icon-halo-color":new nF(tt.paint_symbol["icon-halo-color"]),"icon-halo-width":new nF(tt.paint_symbol["icon-halo-width"]),"icon-halo-blur":new nF(tt.paint_symbol["icon-halo-blur"]),"icon-translate":new nR(tt.paint_symbol["icon-translate"]),"icon-translate-anchor":new nR(tt.paint_symbol["icon-translate-anchor"]),"text-opacity":new nF(tt.paint_symbol["text-opacity"]),"text-color":new nF(tt.paint_symbol["text-color"],{runtimeType:tp,getOverride:i=>i.textColor,hasOverride:i=>!!i.textColor}),"text-halo-color":new nF(tt.paint_symbol["text-halo-color"]),"text-halo-width":new nF(tt.paint_symbol["text-halo-width"]),"text-halo-blur":new nF(tt.paint_symbol["text-halo-blur"]),"text-translate":new nR(tt.paint_symbol["text-translate"]),"text-translate-anchor":new nR(tt.paint_symbol["text-translate-anchor"])}),layout:lB};class lF{constructor(i){this.type=i.property.overrides?i.property.overrides.runtimeType:tc,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}}rj("FormatSectionOverride",lF,{omit:["defaultValue"]});class lO extends oq{constructor(i){super(i,lR)}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 i=[];for(const r of n)0>i.indexOf(r)&&i.push(r);this.layout._values["text-writing-mode"]=i}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()||i4(l.value)||!a?a:(s=r.properties,a.replace(/{([^{}]+)}/g,(i,r)=>r in s?String(s[r]):""))}createBucket(i){return new lL(i)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const i of lR.paint.overridableProperties){if(!lO.hasPaintOverride(this.layout,i))continue;const r=this.paint.get(i),n=new lF(r),o=new i5(n,r.property.specification);let s=null;s="constant"===r.value.kind||"source"===r.value.kind?new i8("source",o):new i9("composite",o,r.value.zoomStops,r.value._interpolationType),this.paint._values[i]=new nL(r.property,s,r.parameters)}}_handleOverridablePaintPropertyUpdate(i,r,n){return!(!this.layout||r.isDataDriven()||n.isDataDriven())&&lO.hasPaintOverride(this.layout,i)}static hasPaintOverride(i,r){const n=i.get("text-field"),o=lR.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 tz)a(n.value.value.sections);else if("source"===n.value.kind){const i=r=>{s||(r instanceof tR&&tL(r.value)===tg?a(r.value.sections):r instanceof tV?a(r.sections):r.eachChild(i))},r=n.value;r._styleExpression&&i(r._styleExpression.expression)}return s}getProgramConfiguration(i){return new oU(this,i)}}var lU={paint:new nN({"background-color":new nR(tt.paint_background["background-color"]),"background-pattern":new nU(tt.paint_background["background-pattern"]),"background-opacity":new nR(tt.paint_background["background-opacity"])})},lV={paint:new nN({"raster-opacity":new nR(tt.paint_raster["raster-opacity"]),"raster-hue-rotate":new nR(tt.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new nR(tt.paint_raster["raster-brightness-min"]),"raster-brightness-max":new nR(tt.paint_raster["raster-brightness-max"]),"raster-saturation":new nR(tt.paint_raster["raster-saturation"]),"raster-contrast":new nR(tt.paint_raster["raster-contrast"]),"raster-resampling":new nR(tt.paint_raster["raster-resampling"]),"raster-fade-duration":new nR(tt.paint_raster["raster-fade-duration"])})};class lN extends oq{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 lj={paint:new nN({"sky-type":new nR(tt.paint_sky["sky-type"]),"sky-atmosphere-sun":new nR(tt.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new nR(tt.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new nR(tt.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new nR(tt.paint_sky["sky-gradient-radius"]),"sky-gradient":new nV(tt.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new nR(tt.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new nR(tt.paint_sky["sky-atmosphere-color"]),"sky-opacity":new nR(tt.paint_sky["sky-opacity"])})};function lG(i,r,n){var o,s,a,l,c,h,u;const d=S(0,0,1),p=O(F());return o=(n?-(i*N)+Math.PI:i*N)*.5,s=p[0],a=p[1],l=p[2],c=p[3],h=Math.sin(o),u=Math.cos(o),p[0]=s*u-l*h,p[1]=a*u+c*h,p[2]=l*u+s*h,p[3]=c*u-a*h,U(p,p,-(r*N)),B(d,d,p),k(d,d)}const lZ={circle:class extends oq{constructor(i){super(i,sp)}createBucket(i){return new o7(i)}queryRadius(i){return sl("circle-radius",this,i)+sl("circle-stroke-width",this,i)+sc(this.paint.get("circle-translate"))}queryIntersectsFeature(i,r,n,o,s,a,l,c){const h=su(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 s_(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 oU(this,i)}},heatmap:class extends oq{createBucket(i){return new sx(i)}constructor(i){super(i,sS),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(i){"heatmap-color"===i&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=sI({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 sl("heatmap-radius",this,i)}queryIntersectsFeature(i,r,n,o,s,a,l,c){const h=this.paint.get("heatmap-radius").evaluate(r,n);return s_(i,o,a,l,c,!0,!0,new u(0,0),h)}hasOffscreenPass(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(i){return new oU(this,i)}},hillshade:class extends oq{constructor(i){super(i,sM)}hasOffscreenPass(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility}getProgramIds(){return["hillshade","hillshadePrepare"]}getProgramConfiguration(i){return new oU(this,i)}},fill:class extends oq{constructor(i){super(i,s2)}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 oU(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 s0(i)}queryRadius(){return sc(this.paint.get("fill-translate"))}queryIntersectsFeature(i,r,n,o,s,a){return!i.queryGeometry.isAboveHorizon&&st(sh(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 oq{constructor(i){super(i,as)}createBucket(i){return new ao(i)}queryRadius(){return sc(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 oU(this,i)}queryIntersectsFeature(i,r,n,o,s,a,l,c,h){var d,p;const f=su(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=c&&a.elevation,x=a.elevation?a.elevation.exaggeration():1;if(y){const r=i.tile.getBucket(this).centroidVertexArray,n=h+1;if(n0?n+2*r:r),s=sl("line-offset",this,i);return o/2+Math.abs(s)+sc(this.paint.get("line-translate"))}queryIntersectsFeature(i,r,n,o,s,a){var l,c;if(i.queryGeometry.isAboveHorizon)return!1;const h=sh(i.tilespaceGeometry,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),d=i.pixelToTileUnitsFactor/2*(l=this.paint.get("line-width").evaluate(r,n),(c=this.paint.get("line-gap-width").evaluate(r,n))>0?c+2*l:l),p=this.paint.get("line-offset").evaluate(r,n);return p&&(o=function(i,r){const n=[],o=new u(0,0);for(let s=0;s=3){for(let r=0;r1){if(si(i,r))return!0;for(let o=0;o1&&(l=i[++a]);const u=Math.abs(c-l.left),d=Math.abs(c-l.right),p=Math.min(u,d),f=r/n*(o+1);if(l.isDash){const i=o-Math.abs(f);h=Math.sqrt(p*p+i*i)}else h=o-Math.sqrt(p*p+f*f);this.image.data[s+c]=Math.max(0,Math.min(255,h+128))}}}addRegularDash(i,r){for(let r=i.length-1;r>=0;--r){const n=i[r],o=i[r+1];n.zeroLength?i.splice(r,1):o&&o.isDash===n.isDash&&(o.left=n.left,i.splice(r,1))}const n=i[0],o=i[i.length-1];n.isDash===o.isDash&&(n.left=o.left-this.width,o.right=n.right+this.width);const s=this.width*this.nextRow;let a=0,l=i[0];for(let n=0;n1&&(l=i[++a]);const o=Math.abs(n-l.left),c=Math.abs(n-l.right),h=Math.min(o,c);this.image.data[s+n]=Math.max(0,Math.min(255,(l.isDash?h:-h)+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 eh("LineAtlas out of space"),null;0===i.length&&i.push(1);let l=0;for(let r=0;r{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 lQ=p.performance;function l0(i){const r=i?i.url.toString():void 0;return lQ.getEntriesByName(r)}class l1{constructor(){this.tasks={},this.taskQueue=[],en(["process"],this),this.invoker=new lJ(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?(ed(),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(){ed();{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 l4(i,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new l4(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 l6(this.wrap*+r,i,this.canonical.z,this.canonical.x,this.canonical.y);{const n=this.canonical.z-i;return l6(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 l4(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 l4(r,this.wrap,r,n,o),new l4(r,this.wrap,r,n+1,o),new l4(r,this.wrap,r,n,o+1),new l4(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 i=h;h=u,u=i}if(h>s&&(s=h),ua)return null}return s}function cs(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 ca(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 cn(o);const c=[];for(let r=0;r=1;o/=2){const i=n[n.length-1];l=new cn(o);for(let r=0;r0;){const{idx:c,t:g,nodex:y,nodey:x,depth:v}=f.pop();if(this.leaves[c]){ca(y,x,v,i,r,n,o,d,p);const c=1<=i[2])return g}continue}let b=0;for(let f=0;f=h[u[r]]&&(u.splice(r,0,f),i=!0);i||(u[b]=f),b++}}for(let i=0;i=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=cd.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 sE({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 r=a;r{this.remove(i,s)},n)),this.data[o].push(s),this.order.push(o),this.order.length>this.max){const i=this._getAndRemoveByKey(this.order[0]);i&&this.onRemove(i)}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 i=this._getAndRemoveByKey(this.order[0]);i&&this.onRemove(i)}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 i of r)this.remove(i.value.tileID,i)}}class cf extends te{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 cp(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=null,this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new cr}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 Y(this._tiles).map(i=>i.tileID).sort(cm).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 u(n.canonical.x,n.canonical.y)._rotate(this.transform.angle),a=new u(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(cm).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 e7(o,{tile:i}));else if("raster-dem"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){const i=this.map.painter.terrain;this.update(this.transform,i.getScaledDemTileSize(),!0),i.resetTileLookupCache(this.id)}else this.update(this.transform)}else i.timeAdded=ev.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 e9("data",{dataType:"source",tile:i,coord:i.tileID,sourceCacheId:this.id}))}_backfillDEM(i){const r=this.getRenderableIds();for(let o=0;o1||(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 i=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[i.key])&&a.hasData()&&(l=i)}let c=l;for(;c.overscaledZ>r;)if(i[(c=c.scaledTo(c.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 n=i.overscaledZ-1;n>=r;n--){const r=i.scaledTo(n),o=this._getLoadedTile(r);if(o)return o}}_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 i={};for(const n in this._tiles){const o=this._tiles[n];o.tileID=o.tileID.unwrapTo(o.tileID.wrap+r),i[o.tileID.key]=o}for(const r in this._tiles=i,this._timers)clearTimeout(this._timers[r]),delete this._timers[r];for(const i in this._tiles)this._setTileReloadTimer(+i,this._tiles[i])}}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 l4(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(c_(this._source.type)&&0!==o.length){const i={},r={},n=Object.keys(s);for(const o of n){const n=s[o],a=this._tiles[o];if(!a||a.fadeEndTime&&a.fadeEndTime<=ev.now())continue;const l=this.findLoadedParent(n,Math.max(n.overscaledZ-cf.maxOverzooming,this._source.minzoom));l&&(this._addTile(l.tileID),i[l.tileID.key]=l.tileID),r[o]=n}const a=o[o.length-1].overscaledZ;for(const i in this._tiles){const n=this._tiles[i];if(s[i]||!n.hasData())continue;let o=n.tileID;for(;o.overscaledZ>a;){o=o.scaledTo(o.overscaledZ-1);const a=this._tiles[o.key];if(a&&a.hasData()&&r[o.key]){s[i]=n.tileID;break}}}for(const r in i)s[r]||(this._coveredTiles[r]=!0,s[r]=i[r])}for(const i in s)this._tiles[i].clearFadeHold();const a=function(i,r){const n=[];for(const o in i)o in r||n.push(o);return n}(this._tiles,s);for(const i of a){const r=this._tiles[i];r.hasSymbolBuckets&&!r.holdingForFade()?r.setHoldDuration(this.map._fadeDuration):r.hasSymbolBuckets&&!r.symbolFadeFinished()||this._removeTile(+i)}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-cf.maxOverzooming,this._source.minzoom),l=Math.max(s+cf.maxUnderzooming,this._source.minzoom),c={};for(const n of i){const i=this._addTile(n);r[n.key]=n,i.hasData()||o=this._source.maxzoom){const i=s.children(this._source.maxzoom)[0],n=this.getTile(i);if(n&&n.hasData()){r[i.key]=i;continue}}else{const i=s.children(this._source.maxzoom);if(r[i[0].key]&&r[i[1].key]&&r[i[2].key]&&r[i[3].key])continue}let o=i.wasRequested();for(let l=s.overscaledZ-1;l>=a;--l){const a=s.scaledTo(l);if(n[a.key]||(n[a.key]=!0,(i=this.getTile(a))||!o||(i=this._addTile(a)),i&&(r[a.key]=a,o=i.wasRequested(),i.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 i=o.scaledTo(o.overscaledZ-1);if(n=this._getLoadedTile(i))break;o=i}for(const i of r)this._loadedParentTiles[i]=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=!!r;if(!n){const n=this.map?this.map.painter:null,o="raster"===this._source.type||"raster-dem"===this._source.type;r=new cC(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,n,o),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 e9("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 i of r)i.projMatrix=this.transform.calculateProjMatrix(i.toUnwrapped());return r}hasTransition(){if(this._source.hasTransition())return!0;if(c_(this._source.type))for(const i in this._tiles){const r=this._tiles[i];if(void 0!==r.fadeEndTime&&r.fadeEndTime>=ev.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 i of o){const r=i.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 i of r)n.set(i.key,i);this.usedForTerrain&&i.updateElevation(!1)}const l=Array.from(n.values()),c="raster"===this._source.type||"raster-dem"===this._source.type;K(l,(i,r)=>{const n=new cC(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,this.map.painter,c);this._loadTile(n,i=>{"raster-dem"===this._source.type&&n.dem&&this._backfillDEM(n),r(i,n)})},r)}}function cm(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 c_(i){return"raster"===i||"image"===i||"video"===i}cf.maxOverzooming=10,cf.maxUnderzooming=3;class cg{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&&o[3]>=0&&c.insert(l,o[0],o[1],o[2],o[3])}}loadVTLayers(){if(!this.vtLayers)for(const i in this.vtLayers=new at.VectorTile(new aD(this.rawTileData)).layers,this.sourceLayerCoder=new ct(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=rl(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)=>sa(c.bufferedTilespaceGeometry,i,r,n,o));d.sort(cv);let p=null;h.elevation&&d.length>0&&(p=cg.create(h.elevation,this.tileID));const f={};for(let h=0;h(_||(_=o6(r,this.tileID.canonical,i.tileTransform)),n.queryIntersectsFeature(c,r,o,_,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 i=o8(g,!0);if(!n.filter(new nM(this.tileID.overscaledZ),i,this.tileID.canonical))return}else if(!n.filter(new nM(this.tileID.overscaledZ),g))return;const y=this.getId(g,_);for(let r=0;ro.indexOf(n))continue;const d=a[n];if(!d)continue;let p={};void 0!==y&&c&&(p=c.getState(d.sourceLayer||"_geojsonTileLayer",y));const _=J({},l[n]);_.paint=cx(_.paint,d.paint,g,p,s),_.layout=cx(_.layout,d.layout,g,p,s);const x=!h||h(g,d,p,f);if(!x)continue;const v=new ci(g,this.z,this.x,this.y,y);v.layer=_;let b=i[n];void 0===b&&(b=i[n]=[]),b.push({featureIndex:u,feature:v,intersectionZ:x})}}lookupSymbolFeatures(i,r,n,o,s,a,l,c){const h={};this.loadVTLayers();const u=rl(s);for(const s of i)this.loadMatchingFeature(h,{bucketIndex:n,sourceLayerIndex:o,featureIndex:s,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 cx(i,r,n,o,s){return es(i,(i,a)=>{const l=r instanceof nB?r.get(a):null;return l&&l.evaluate?l.evaluate(n,o,s):l})}function cv(i,r){return r-i}rj("FeatureIndex",cy,{omit:["rawTileData","sourceLayerCoder"]});var cb=nq([{name:"a_pos",type:"Int16",components:2}]);const cw=new Uint16Array(8184);for(let i=0;i<2046;i++){let r=i+2,n=0,o=0,s=0,a=0,l=0,c=0;for(1&r?s=a=l=32:n=o=c=32;(r>>=1)>1;){const i=n+s>>1,h=o+a>>1;1&r?(s=n,a=o,n=l,o=c):(n=s,o=a,s=l,a=c),l=i,c=h}const h=4*i;cw[h+0]=n,cw[h+1]=o,cw[h+2]=s,cw[h+3]=a}const cT=new Uint16Array(2178),cE=new Uint8Array(1089),cS=new Uint16Array(1089);function cI(i){return 0===i?-.03125:32===i?.03125:0}var cM=nq([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const cA={type:2,extent:8192,loadGeometry:()=>[[new u(0,0),new u(8193,0),new u(8193,8193),new u(0,8193),new u(0,0)]]};class cC{constructor(i,r,n,o,s){this.tileID=i,this.uid=ee(),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!==i.length)for(const r of(o.layers=i,o.stateDependentLayerIds&&(o.stateDependentLayers=o.stateDependentLayerIds.map(r=>i.filter(i=>i.id===r)[0])),i))n[r.id]=o}return n}(i.buckets,r.style),this.hasSymbolBuckets=!1,this.buckets){const i=this.buckets[o];if(i instanceof lL){if(this.hasSymbolBuckets=!0,!n)break;i.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const i in this.buckets){const r=this.buckets[i];if(r instanceof lL&&r.hasRTLText){this.hasRTLText=!0,nI.isLoading()||nI.isLoaded()||"deferred"!==nE()||nS();break}}for(const i in this.queryPadding=0,this.buckets){const n=this.buckets[i];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(i).queryRadius(n))}i.imageAtlas&&(this.imageAtlas=i.imageAtlas),i.glyphAtlasImage&&(this.glyphAtlasImage=i.glyphAtlasImage),i.lineAtlas&&(this.lineAtlas=i.lineAtlas)}else this.collisionBoxArray=new ol}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 r=i.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new lK(i,this.imageAtlas.image,r.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new lK(i,this.glyphAtlasImage,r.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new lK(i,this.lineAtlas.image,r.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=rl(r&&r.filter),{z:c,x:h,y:u}=this.tileID.canonical,d={z:c,x:h,y:u};for(let r=0;ri)n=!1;else if(r){if(this.expirationTime=0;i--){const r=4*i,n=cw[r+0],o=cw[r+1],s=cw[r+2],a=cw[r+3],l=n+s>>1,c=o+a>>1,h=l+c-o,u=c+n-l,d=33*o+n,p=33*a+s,f=33*c+l,m=Math.hypot((cT[2*d+0]+cT[2*p+0])/2-cT[2*f+0],(cT[2*d+1]+cT[2*p+1])/2-cT[2*f+1])>=16;if(cE[f]=cE[f]||(m?1:0),i<1022){const i=(o+u>>1)*33+(n+h>>1),r=(a+u>>1)*33+(s+h>>1);cE[f]=cE[f]||cE[i]||cE[r]}}const s=new nH,a=new n6;let l=0;function c(i,r){const n=33*r+i;return 0===cS[n]&&(s.emplaceBack(cT[2*n+0],cT[2*n+1],8192*i/32,8192*r/32),cS[n]=++l),cS[n]-1}function h(i,r,n,o,s,l){const u=i+n>>1,d=r+o>>1;if(Math.abs(i-s)+Math.abs(r-l)>1&&cE[33*d+u])h(s,l,i,r,u,d),h(n,o,s,l,u,d);else{const h=c(i,r),u=c(n,o),d=c(s,l);a.emplaceBack(h,u,d)}}return h(0,0,32,32,32,0),h(32,32,0,0,0,32),{vertices:s,indices:a}}(this.tileID.canonical,r);n=i.vertices,o=i.indices}else{for(const{x:i,y:r}of(n=new nH,o=new n6,s))n.emplaceBack(i,r,0,0);const i=sz(n.int16,void 0,4);for(let r=0;ri*(1-n)+r*n,[o,s]=cO(i),a=new ot,l=function(i){var r,n;const o=_(new Float64Array(16)),s=cN(i);return x(o,o,[s,s,s]),y(o,o,((r=[])[0]=-(n=i.min)[0],r[1]=-n[1],r[2]=-n[2],r)),o}(cF(i));a.reserve(4096);for(let c=0;c<65;c++){const h=n(o[0],s[0],c/64),u=o1(h),d=u*r-i.y,p=Math.sin(h*N),f=Math.cos(h*N);for(let i=0;i<65;i++){const r=i/64,c=n(o[1],s[1],r),h=cU(f,p,c);L(h,h,l);const m=o0(c);a.emplaceBack(h[0],h[1],h[2],m,u,r,d)}}return a}_createGridIndices(){const i=new n6,r=(r,n)=>{const o=65*n+r;i.emplaceBack(o+1,o,o+65),i.emplaceBack(o+65,o+65+1,o+1)};for(let i=0;i<64;i++)for(let n=0;n<64;n++)r(n,i);return i}getWirefameBuffer(i){if(!this.wireframeSegments){const r=this._createWireframeGrid();this.wireframeIndexBuffer=i.createIndexBuffer(r),this.wireframeSegments=oH.simpleSegment(0,0,4096,r.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}_createWireframeGrid(){const i=new or,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 i=0;i<64;i++)for(let n=0;n<64;n++)r(n,i);return i}}function c$(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 cq{constructor(i){const r={},n=[];for(const o in i){const s=i[o],a=r[o]={};for(const i in s.glyphs){const r=s.glyphs[+i];if(!r||0===r.bitmap.width||0===r.bitmap.height)continue;const o=r.metrics.localGlyph?2:1,l={x:0,y:0,w:r.bitmap.width+2*o,h:r.bitmap.height+2*o};n.push(l),a[i]=l}}const{w:o,h:s}=aJ(n),a=new sT({width:o||1,height:s||1});for(const n in i){const o=i[n];for(const i in o.glyphs){const s=o.glyphs[+i];if(!s||0===s.bitmap.width||0===s.bitmap.height)continue;const l=r[n][i],c=s.metrics.localGlyph?2:1;sT.copy(s.bitmap,a,{x:0,y:0},{x:l.x+c,y:l.y+c},s.bitmap)}}this.image=a,this.positions=r}}rj("GlyphAtlas",cq);class cX{constructor(i){this.tileID=new l4(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=c$(i.tileID.canonical,i.projection),this.projection=i.projection}parse(i,r,n,o,s){let a,l,c,h;this.status="parsing",this.data=i,this.collisionBoxArray=new ol;const d=new ct(Object.keys(i.layers).sort()),p=new cy(this.tileID,this.promoteId);p.bucketLayerIDs=[];const f={},m=new lY(256,256),_={featureIndex:p,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:m,availableImages:n},g=r.familiesBySource[this.source];for(const r in g){const o=i.layers[r];if(!o)continue;let s=!1,a=!1;for(const i of g[r])"symbol"===i[0].type?s=!0:a=!0;if(!0===this.isSymbolTile&&!s||!1===this.isSymbolTile&&!a)continue;1===o.version&&eh(`Vector tile source "${this.source}" layer "${r}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const l=d.encode(r),c=[];for(let i=0;i=r.maxzoom||"none"!==r.visibility&&(cW(i,this.zoom,n),(f[r.id]=r.createBucket({index:p.bucketLayerIDs.length,layers:i,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:l,sourceID:this.source,enableTerrain:this.enableTerrain,availableImages:n})).populate(c,_,this.tileID.canonical,this.tileTransform),p.bucketLayerIDs.push(i.map(i=>i.id)))}}m.trim();const y={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},x=es(_.glyphDependencies,i=>Object.keys(i).map(Number));Object.keys(x).length?o.send("getGlyphs",{uid:this.uid,stacks:x},(i,r)=>{a||(a=i,l=r,w.call(this))},void 0,!1,y):l={};const v=Object.keys(_.iconDependencies);v.length?o.send("getImages",{icons:v,source:this.source,tileID:this.tileID,type:"icons"},(i,r)=>{a||(a=i,c=r,w.call(this))},void 0,!1,y):c={};const b=Object.keys(_.patternDependencies);function w(){if(a)return s(a);if(l&&c&&h){const i=new cq(l),r=new a0(c,h);for(const o in f){const s=f[o];s instanceof lL?(cW(s.layers,this.zoom,n),function(i,r,n,o,s,a,l,c,h,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:r,maxZoom:n}=i.textSizeData;m.compositeTextSizes=[f["text-size"].possiblyEvaluate(new nM(r),c),f["text-size"].possiblyEvaluate(new nM(n),c)]}if("composite"===i.iconSizeData.kind){const{minZoom:r,maxZoom:n}=i.iconSizeData;m.compositeIconSizes=[f["icon-size"].possiblyEvaluate(new nM(r),c),f["icon-size"].possiblyEvaluate(new nM(n),c)]}m.layoutTextSize=f["text-size"].possiblyEvaluate(new nM(h+1),c),m.layoutIconSize=f["icon-size"].possiblyEvaluate(new nM(h+1),c),m.textMaxSize=f["text-size"].possiblyEvaluate(new nM(18),c);const _="map"===p.get("text-rotation-alignment")&&"point"!==p.get("symbol-placement"),g=p.get("text-size");for(const a of i.features){const h=p.get("text-font").evaluate(a,{},c).join(","),f=g.evaluate(a,{},c),y=m.layoutTextSize.evaluate(a,{},c),x=(m.layoutIconSize.evaluate(a,{},c),{horizontal:{},vertical:void 0}),v=a.text;let b,w=[0,0];if(v){const o=v.toString(),l=24*p.get("text-letter-spacing").evaluate(a,{},c),u=24*p.get("text-line-height").evaluate(a,{},c),d=!function(i){for(const n of i){var r;if(rW(r=n.charCodeAt(0))||rH(r)||rK(r)||no(r)||nc(r))return!1}return!0}(o)?0:l,m=p.get("text-anchor").evaluate(a,{},c),g=p.get("text-variable-anchor");if(!g){const i=p.get("text-radial-offset").evaluate(a,{},c);w=i?lw(m,[24*i,lv]):p.get("text-offset").evaluate(a,{},c).map(i=>24*i)}let b=_?"center":p.get("text-justify").evaluate(a,{},c);const T=p.get("symbol-placement"),E="point"===T,S="point"===T?24*p.get("text-max-width").evaluate(a,{},c):0,I=a=>{i.allowVerticalPlacement&&nu(o)&&(x.vertical=a5(v,r,n,s,h,S,u,m,a,d,w,a1.vertical,!0,T,y,f))};if(!_&&g){const i="auto"===b?g.map(i=>lT(i)):[b];let o=!1;for(let a=0;a=0||!nu(o)){const i=a5(v,r,n,s,h,S,u,m,b,d,w,a1.horizontal,!1,T,y,f);i&&(x.horizontal[b]=i)}I("point"===T?"left":b)}}let T=!1;if(a.icon&&a.icon.name){const r=o[a.icon.name];r&&(b=function(i,r,n){const{horizontalAlign:o,verticalAlign:s}=lt(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[a.icon.name],p.get("icon-offset").evaluate(a,{},c),p.get("icon-anchor").evaluate(a,{},c)),T=r.sdf,void 0===i.sdfIcons?i.sdfIcons=r.sdf:i.sdfIcons!==r.sdf&&eh("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(r.pixelRatio!==i.pixelRatio||0!==p.get("icon-rotate").constantOr(1))&&(i.iconsNeedLinear=!0))}const E=lS(x.horizontal)||x.vertical;i.iconsInText||(i.iconsInText=!!E&&E.iconsInText),(E||b)&&function(i,r,n,o,s,a,l,c,h,d,p,f,m){let _,g=a.textMaxSize.evaluate(r,{},f);void 0===g&&(g=l);const y=i.layers[0].layout,x=y.get("icon-offset").evaluate(r,{},f),v=lS(n.horizontal)||n.vertical,b=l/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")*N,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&&(_=lr(o,n.vertical,k,y.get("icon-text-fit-padding"),x,b)),v&&(o=lr(o,v,k,y.get("icon-text-fit-padding"),x,b)));const P=(l,c,u)=>{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,u),b=new ln(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=ob(""),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=lv),i.allowVerticalPlacement&&s.vertical){const i=s.vertical;if(_)D=lM(i),c&&(L=lM(c));else{const o=h.layout.get("text-rotate").evaluate(w,{},I)+90;z=lI(u,n,r,d,p,f,i,m,o,g),c&&(k=lI(u,n,r,d,p,f,c,x,o))}}if(a){const o=h.layout.get("icon-rotate").evaluate(w,{},I),s="none"!==h.layout.get("icon-text-fit"),l=lp(a,o,E,s),m=c?lp(c,o,E,s):void 0;C=lI(u,n,r,d,p,f,a,x,o),B=4*l.length;const _=i.iconSizeData;let g=null;"source"===_.kind?(g=[128*h.layout.get("icon-size").evaluate(w,{},I)])[0]>32640&&eh(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`):"composite"===_.kind&&((g=[128*T.compositeIconSizes[0].evaluate(w,{},I),128*T.compositeIconSizes[1].evaluate(w,{},I)])[0]>32640||g[1]>32640)&&eh(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`),i.addSymbols(i.icon,l,g,b,v,w,!1,n,r,M.lineStartIndex,M.lineLength,-1,S,I),U=i.icon.placedSymbolArray.length-1,m&&(R=4*m.length,i.addSymbols(i.icon,m,g,b,v,w,a1.vertical,n,r,M.lineStartIndex,M.lineLength,-1,S,I),V=i.icon.placedSymbolArray.length-1)}for(const o in s.horizontal){const a=s.horizontal[o];A||(j=ob(a.text),_?P=lM(a):A=lI(u,n,r,d,p,f,a,m,h.layout.get("text-rotate").evaluate(w,{},I),g));const c=1===a.positionedLines.length;if(F+=lE(i,n,r,a,l,h,_,w,g,M,s.vertical?a1.horizontal:a1.horizontalOnly,c?Object.keys(s.horizontal):[o],N,U,T,S,I),c)break}s.vertical&&(O+=lE(i,n,r,s.vertical,l,h,_,w,g,M,a1.vertical,["vertical"],N,V,T,S,I));let $=-1;const q=(i,r)=>i?Math.max(i,r):r;$=q(P,$),$=q(D,$),$=q(L,$);const X=$>-1?1:0;i.glyphOffsetArray.length>=lL.MAX_GLYPHS&&eh("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,X,0,G,Z,$)}(i,c,b,l,n,o,s,_,i.layers[0],i.collisionBoxArray,r.index,r.sourceLayerIndex,i.index,E,M,h,0,S,A,x,r,a,d,p,f)};if("line"===C)for(const s of ll(r.geometry,0,0,8192,8192)){const r=function(i,r,n,o,s,a,l,c,h){const u=o?.6*a*l:0,d=la(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&&x=0&&v=0&&m+d<=p){const n=new ln(x,v,0,g,i);n._round(),s&&!lo(r,n,l,s,a)||_.push(n)}}f+=h}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)}(s,T,I,n.vertical||v,o,24,w,i.overscaling,8192);for(const n of r)v&&function(i,r,n,o){const s=i.compareText;if(r in s){const i=s[r];for(let r=i.length-1;r>=0;r--)if(o.dist(i[r])1){const r=function(i,r,n,o,s,a){const l=n?.6*24*a:0,c=la(n,o)*a;let h=0;const u=ls(i)/2;for(let n=0;nu){const d=(u-h)/a,p=ii(o.x,s.x,d),f=ii(o.y,s.y,d),m=new ln(p,f,0,s.angleTo(o),n);return!l||lo(i,m,c,l,r)?m:void 0}h+=a}}(i,I,n.vertical||v,o,0,w);r&&P(i,r,f)}}else if("Polygon"===r.type)for(const i of sK(r.geometry,0)){const r=function(i,r=1,n=!1){let o=1/0,s=1/0,a=-1/0,l=-1/0;const c=i[0];for(let i=0;ia)&&(a=r.x),(!i||r.y>l)&&(l=r.y)}const h=Math.min(a-o,l-s);let d=h/2;const p=new l_([],ly);if(0===h)return new u(o,s);for(let r=o;rf.d||!f.d)&&(f=o,n&&console.log("found best %d after %d probes",Math.round(1e4*o.d)/1e4,m)),o.max-f.d<=r||(d=o.h/2,p.push(new lx(o.p.x-d,o.p.y-d,d,i)),p.push(new lx(o.p.x+d,o.p.y-d,d,i)),p.push(new lx(o.p.x-d,o.p.y+d,d,i)),p.push(new lx(o.p.x+d,o.p.y+d,d,i)),m+=4)}return n&&(console.log(`num probes: ${m}`),console.log(`best distance: ${f.d}`)),f.p}(i,16);P(i[0],new ln(r.x,r.y,0,0,void 0),f)}else if("LineString"===r.type)for(const i of r.geometry)P(i,new ln(i[0].x,i[0].y,0,0,void 0),f);else if("Point"===r.type)for(const i of r.geometry)for(const r of i)P([r],new ln(r.x,r.y,0,0,void 0),f)}(i,a,x,b,o,m,y,0,w,T,l,c,d)}a&&i.generateCollisionDebugBuffers(h,i.collisionBoxArray)}(s,l,i.positions,c,r.iconPositions,this.showCollisionBoxes,n,this.tileID.canonical,this.tileZoom,this.projection),s.projection=this.projection.name):s.hasPattern&&(s instanceof a_||s instanceof s0||s instanceof ao)&&(cW(s.layers,this.zoom,n),s.addFeatures(_,this.tileID.canonical,r.patternPositions,n))}this.status="done",s(null,{buckets:Y(f).filter(i=>!i.isEmpty()),featureIndex:p,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:i.image,lineAtlas:m,imageAtlas:r,glyphMap:this.returnDependencies?l:null,iconMap:this.returnDependencies?c:null,glyphPositions:this.returnDependencies?i.positions:null})}}b.length?o.send("getImages",{icons:b,source:this.source,tileID:this.tileID,type:"patterns"},(i,r)=>{a||(a=i,h=r,w.call(this))},void 0,!1,y):h={},w.call(this)}}function cW(i,r,n){const o=new nM(r);for(const r of i)r.recalculate(o,n)}class cH{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[i,n]=s.result;return this.scheduler?this.scheduler.add(()=>{o(i,n)},r):o(i,n),()=>{}}return s.callbacks.push(o),s.cancel||(s.cancel=n((n,o)=>{for(const i of(s.result=[n,o],s.callbacks))this.scheduler?this.scheduler.add(()=>{i(n,o)},r):i(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 cK(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=e1(i.request,(i,o,s,a)=>{i?r(i):o&&r(null,{vectorTile:n?void 0:new at.VectorTile(new aD(o)),rawData:o,cacheControl:s,expires:a})});return()=>{o.cancel(),r()}},r)}const cY=_(new Float64Array(16));class cJ{constructor(i,r){this._tr=i,this._worldSize=r}createInversionMatrix(){return cY}createTileMatrix(i){let r,n,o;const s=i.canonical,a=_(new Float64Array(16)),l=this._tr.projection;if(l.isReprojectedInTileSpace){const c=c$(s,l);r=1,n=c.x+i.wrap*c.scale,o=c.y,x(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 y(a,a,[n,o,0]),x(a,a,[r/8192,r/8192,1]),a}pointCoordinate(i,r,n){const o=this._tr.horizonLineFromTop(!1),s=new u(i,Math.max(o,r));return this._tr.rayIntersectionCoordinate(this._tr.pointRayIntersection(s,n))}upVector(){return[0,0,1]}upVectorScale(){return 1}}const cQ=Math.sqrt(3)/2,c0=Math.PI/2;function c1(i){return Math.tan((c0+i)/2)}const c2=85.051129*N,c3=85.051129*N,c5={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&&V(this.parallels,this.constants.parallels))return;const i=Math.sin(this.parallels[0]*N),r=(i+Math.sin(this.parallels[1]*N))/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])*N,o=r*N,{n:s,c:a,r0:l}=this.constants,c=Math.sqrt(a-2*s*Math.sin(o))/s;return{x:c*Math.sin(n*s),y:c*Math.cos(n*s)-l,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]*N*n;l=H(l,-Math.PI-c,Math.PI-c);const h=l/n*j+this.center[0],u=Math.asin(X((o-(i*i+a*a)*n*n)/(2*n),-1,1)),d=X(u*j,-85.051129,85.051129);return new oY(h,d)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(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(cQ*Math.sin(r)),o=n*n,s=o*o*o;return{x:.5*(i*Math.cos(n)/(cQ*(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 i,a,l=0;l<12&&(a=n*(1.340264+-.081106*o+s*(893e-6+.003796*o))-r,s=(o=(n=X(n-(i=a/(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))),-Math.PI/3,Math.PI/3))*n)*o*o,!(1e-12>Math.abs(i)));++l);const a=cQ*i*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))/Math.cos(n),l=Math.asin(Math.sin(n)/cQ),c=X(180*a/Math.PI,-180,180),h=X(180*l/Math.PI,-85.051129,85.051129);return new oY(c,h)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(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=X(360*(.5-r),-85.051129,85.051129);return new oY(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/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(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&&V(this.parallels,this.constants.parallels))return;const i=this.parallels[0]*N,r=this.parallels[1]*N,n=Math.cos(i),o=i===r?Math.sin(i):Math.log(n/Math.cos(r))/Math.log(c1(r)/c1(i)),s=n*Math.pow(c1(i),o)/o;this.constants={n:o,f:s,parallels:this.parallels}},project(i,r){this.initializeConstants(),r*=N,i=(i-this.center[0])*N;const{n:n,f:o}=this.constants;o>0?r<-c0+1e-6&&(r=-c0+1e-6):r>c0-1e-6&&(r=c0-1e-6);const s=o/Math.pow(c1(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=X(c/n*j+this.center[0],-180,180),u=X((2*Math.atan(Math.pow(o/l,1/n))-c0)*j,-85.051129,85.051129);return new oY(h,u)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(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:o0(i),y:o1(r),z:0}),unproject(i,r){const n=o2(i),o=o3(r);return new oY(n,o)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(i,r)},naturalEarth:{name:"naturalEarth",center:[0,0],range:[3.5,7],isReprojectedInTileSpace:!0,zAxisUnit:"meters",unsupportedLayers:["custom"],project(i,r){const n=(r*=N)*r,o=n*n;return{x:.5*((i*=N)*(.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 i=a*a;s=(n*(1.007226+a*(.015085+i*(.028874*a-.044475-.005916*i)))-r)/(1.007226+a*(.045255+i*(.259866*a-.311325-.005916*11*i))),n=X(n-s,-c2,c2)}while(Math.abs(s)>1e-6&&--o>0)a=n*n;const l=X(i/(.8707+a*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979))*j,-180,180),c=n*j;return new oY(l,c)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(i,r)},winkelTripel:{name:"winkelTripel",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r*=N,i*=N;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 s=Math.cos(o),c=Math.sin(o),h=2*c*s,u=c*c,d=s*s,p=Math.cos(n/2),f=Math.sin(n/2),m=2*p*f,_=f*f,g=1-d*p*p,y=g?1/g:0,x=g?Math.acos(s*p)*Math.sqrt(1/g):0,v=.5*(2*x*s*f+2*n/Math.PI)-i,b=.5*(x*c+o)-r,w=.5*y*(d*_+x*s*p*u)+1/Math.PI,T=y*(m*h/4-x*c*f),E=.125*y*(h*f-x*c*d*m),S=.5*y*(u*p+x*_*s)+.5,I=T*E-S*w;a=(b*T-v*S)/I,l=(v*E-b*w)/I,n=X(n-a,-Math.PI,Math.PI),o=X(o-l,-c3,c3)}while((Math.abs(a)>1e-6||Math.abs(l)>1e-6)&&--s>0)return new oY(n*j,o*j)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(i,r)}};i.ARRAY_TYPE=f,i.AUTH_ERR_MSG=eA,i.Aabb=sm,i.Actor=class{constructor(i,r,n){this.target=i,this.parent=r,this.mapId=n,this.callbacks={},this.cancelCallbacks={},en(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=ed()?i:p,this.scheduler=new l1}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=ey(this.globalScope)?void 0:[];return this.target.postMessage({id:l,type:i,hasCallback:!!n,targetMapId:o,mustQueue:s,sourceMapId:this.mapId,data:r$(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 i=this.cancelCallbacks[n];delete this.cancelCallbacks[n],i&&i.cancel()}else if(r.mustQueue||ed()){const i=this.callbacks[n];this.cancelCallbacks[n]=this.scheduler.add(()=>this.processTask(n,r),i&&i.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(rq(r.error)):n(null,rq(r.data)))}else{const n=ey(this.globalScope)?void 0:[],o=r.hasCallback?(r,o)=>{delete this.cancelCallbacks[i],this.target.postMessage({id:i,type:"",sourceMapId:this.mapId,error:r?r$(r):null,data:r$(o,n)},n)}:i=>{},s=rq(r.data);if(this.parent[r.type])this.parent[r.type](r.sourceMapId,s,o);else if(this.parent.getWorkerSource){const i=r.type.split(".");this.parent.getWorkerSource(r.sourceMapId,i[0],s.source)[i[1]](s,o)}else o(Error(`Could not find function ${r.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},i.CanonicalTileID=l3,i.Color=tM,i.ColorMode=l7,i.CullFaceMode=ce,i.DEMData=cd,i.DataConstantProperty=nR,i.DedupedRequest=cH,i.DepthMode=l8,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 C(s,s,o*r.upVectorScale(i.canonical)),s}}getForTilePoints(i,r,n,o){const s=cg.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 i=Math.max(-x/2,0),o=m+d*i,s=_+p*i,a=g+f*i,l=Math.hypot(o,s,a);return n[0]=o*r/l,n[1]=s*r/l,n[2]=a*r/l,!1}{const i=(-x-Math.sqrt(v))/(2*y);if(i<0){const i=Math.hypot(m,_,g);return n[0]=m*r/i,n[1]=_*r/i,n[2]=g*r/i,!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(!eC(i))return i;const n=eP(i);return n.path=`/styles/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeGlyphsURL(i,r){if(!eC(i))return i;const n=eP(i);return n.path=`/fonts/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeSourceURL(i,r){if(!eC(i))return i;const n=eP(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=eP(i);return eC(i)?(s.path=`/styles/v1${s.path}/sprite${r}${n}`,this._makeAPIURL(s,this._customAccessToken||o)):(s.path+=`${r}${n}`,eD(s))}normalizeTileURL(i,r,n){if(this._isSkuTokenExpired()&&this._createSkuToken(),i&&!eC(i))return i;const o=eP(i);o.path=o.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${r||n&&"raster"!==o.authority&&512===n?"@2x":""}${ew.supported?".webp":"$1"}`),"raster"===o.authority?o.path=`/${eb.RASTER_URL_PREFIX}${o.path}`:(o.path=o.path.replace(/^.+\/v4\//,"/"),o.path=`/${eb.TILE_URL_VERSION}${o.path}`);const s=this._customAccessToken||function(i){for(const r of i){const i=r.match(/^access_token=(.*)$/);if(i)return i[1]}return null}(o.params)||eb.ACCESS_TOKEN;return eb.REQUIRE_ACCESS_TOKEN&&s&&this._skuToken&&o.params.push(`sku=${this._skuToken}`),this._makeAPIURL(o,s)}canonicalizeTileURL(i,r){const n=eP(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(`/${eb.RASTER_URL_PREFIX}/`,"")}`:o+=`tiles/${n.path.replace(`/${eb.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&&eC(r),o=[];for(const r of i.tiles||[])ez(r)?o.push(this.canonicalizeTileURL(r,n)):o.push(r);return o}_makeAPIURL(i,r){const n="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",o=eP(eb.API_URL);if(i.protocol=o.protocol,i.authority=o.authority,"http"===i.protocol){const r=i.params.indexOf("secure");r>=0&&i.params.splice(r,1)}if("/"!==o.path&&(i.path=`${o.path}${i.path}`),!eb.REQUIRE_ACCESS_TOKEN)return eD(i);if(r=r||eb.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||""}`),eD(i)}},i.ResourceType=eY,i.SegmentVector=oH,i.SourceCache=cf,i.StencilMode=l9,i.StructArrayLayout1ui2=on,i.StructArrayLayout2f1f2i16=n5,i.StructArrayLayout2i4=nW,i.StructArrayLayout2ui4=or,i.StructArrayLayout3f12=nY,i.StructArrayLayout3ui6=n6,i.StructArrayLayout4i8=nH,i.Texture=lK,i.Tile=cC,i.Transitionable=nz,i.Uniform1f=oM,i.Uniform1i=class extends oI{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 oI{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 oI{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=oA,i.UniformColor=oC,i.UniformMatrix2f=class extends oI{constructor(i,r){super(i,r),this.current=oP}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 oI{constructor(i,r){super(i,r),this.current=ok}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 oI{constructor(i,r){super(i,r),this.current=oz}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=l5,i.ValidationError=ti,i.VectorTileWorkerSource=class extends te{constructor(i,r,n,o,s){super(),this.actor=i,this.layerIndex=r,this.availableImages=n,this.loadVectorData=s||cK,this.loading={},this.loaded={},this.deduped=new cH(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 cX(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 at.VectorTile(new aD(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 i=l0(o);i.length>0&&(a.resourceTiming=JSON.parse(JSON.stringify(i)))}r(null,J({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=a1,i.ZoomHistory=rX,i.add=I,i.addDynamicAttributes=lk,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=K,i.bezier=$,i.bindAll=en,i.boundsAttributes=cM,i.bufferConvexPolygon=function(i,r){const n=[];for(let o=0;oeX&&(i.getActor().send("enforceCacheSizeLimit",eq),eK=0)},i.calculateGlobeMatrix=cG,i.calculateGlobeMercatorMatrix=function(i){const r=i.worldSize,n=X(i.center.lat,-85.051129,85.051129),o=new u(o0(i.center.lng)*r,o1(n)*r),s=1/oQ(i.center.lat)*r,a=i.pixelsPerMeter,l=r/(s/i.pixelsPerMeter),c=_(new Float64Array(16));return y(c,c,[o.x,o.y,0]),x(c,c,[l,l,a]),c},i.clamp=X,i.clearTileCache=function(i){const r=p.caches.delete(eG);i&&r.catch(i).then(()=>i())},i.clipLine=ll,i.clone=function(i){var r=new f(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=el,i.collisionCircleLayout=aS,i.config=eb,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 f(16);return f!=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=m,i.createExpression=i6,i.createLayout=nq,i.createStyleLayer=function(i){return"custom"===i.type?new lN(i):new lZ[i.type](i)},i.cross=D,i.degToRad=function(i){return i*N},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=P,i.ease=q,i.easeCubicInOut=Z,i.emitValidationErrors=rF,i.endsWith=eo,i.enforceCacheSizeLimit=function(i){eW(),eZ&&eZ.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*N)),n=1/(2*Math.max(Math.PI*r,1/r));return{wrap:!0,supportsWorldCopies:!0,unsupportedLayers:["custom"],project(i,o){const s=i*N*r,a=Math.sin(o*N)/r;return{x:s*n+.5,y:-a*n+.5,z:0}},unproject(i,o){const s=-(o-.5)/n,a=X((i-.5)/n*j/r,-180,180),l=Math.asin(X(s*r,-1,1)),c=X(l*j,-85.051129,85.051129);return new oY(a,c)}}}(r.parallels[0]);if("lambertConformalConic"===r.name){const{project:i,unproject:r}=c5.mercator;n={wrap:!0,supportsWorldCopies:!0,project:i,unproject:r}}return J({},i,r,n)}return J({},i,r)}(r,i):r},i.getRTLTextPluginStatus=nE,i.getReferrer=eQ,i.getTilePoint=function(i,{x:r,y:n},o=0){return new u(((r-o)*i.scale-i.x)*8192,(n*i.scale-i.y)*8192)},i.getTileVec3=function(i,r,n=0){return S(((r.x-n)*i.scale-i.x)*8192,(r.y*i.scale-i.y)*8192,r.z*oQ(o3(r.y)))},i.getVideo=function(i,r){const n=p.document.createElement("video");n.muted=!0,n.onloadstart=function(){r(null,n)};for(let r=0;r{}}},i.globeBuffersForTileMesh=function(i,r,n,o){const s=i.context,a=i.transform;let l=r.globeGridBuffer,c=r.globePoleBuffer;if(!l){const i=cZ.createGridVertices(n.canonical);l=r.globeGridBuffer=s.createVertexBuffer(i,cP,!1)}if(!c){const i=cZ.createPoleTriangleVertices(o,a.tileSize*o,0===n.canonical.y);c=r.globePoleBuffer=s.createVertexBuffer(i,cP,!1)}return[l,c]},i.globeDenormalizeECEF=cj,i.globeMatrixForTile=function(i,r){var n;const o=cj(cF(i)),s=((n=new Float64Array(16))[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n);return g(s,s,o),s},i.globePoleMatrixForTile=function(i,r,n){const o=_(new Float64Array(16)),s=Math.pow(2,i.z),a=(i.x-s/2)/s*Math.PI*2,l=n.point,c=n.worldSize/(n.tileSize*s);return y(o,o,[l.x,l.y,-n.worldSize/Math.PI/2]),x(o,o,[c,c,c]),v(o,o,-n._center.lat*N),b(o,o,-n._center.lng*N),b(o,o,a),r&&x(o,o,[1,-1,1]),o},i.globeTileBounds=cF,i.globeToMercatorTransition=function(i){return W(5,6,i)},i.identity=_,i.identity$1=O,i.invert=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],p=r[9],f=r[10],m=r[11],_=r[12],g=r[13],y=r[14],x=r[15],v=n*c-o*l,b=n*h-s*l,w=n*u-a*l,T=o*h-s*c,E=o*u-a*c,S=s*u-a*h,I=d*g-p*_,M=d*y-f*_,A=d*x-m*_,C=p*y-f*g,z=p*x-m*g,k=f*x-m*y,P=v*k-b*z+w*C+T*A-E*M+S*I;return P?(i[0]=(c*k-h*z+u*C)*(P=1/P),i[1]=(s*z-o*k-a*C)*P,i[2]=(g*S-y*E+x*T)*P,i[3]=(f*E-p*S-m*T)*P,i[4]=(h*A-l*k-u*M)*P,i[5]=(n*k-s*A+a*M)*P,i[6]=(y*w-_*S-x*b)*P,i[7]=(d*S-f*w+m*b)*P,i[8]=(l*z-c*A+u*I)*P,i[9]=(o*A-n*z-a*I)*P,i[10]=(_*E-g*w+x*v)*P,i[11]=(p*w-d*E-m*v)*P,i[12]=(c*M-l*C-h*I)*P,i[13]=(n*C-o*M+s*I)*P,i[14]=(g*b-_*T-y*v)*P,i[15]=(d*T-p*b+f*v)*P,i):null},i.isMapAuthenticated=function(i){return ej.has(i)},i.isMapboxURL=eC,i.latFromMercatorY=o3,i.len=E,i.length=E,i.length$1=function(i){return Math.hypot(i[0],i[1],i[2],i[3])},i.loadVectorTile=cK,i.makeRequest=e0,i.mercatorXfromLng=o0,i.mercatorYfromLat=o1,i.mercatorZfromAltitude=function(i,r){return i/oQ(r)},i.mul=g,i.mul$1=A,i.multiply=function(i,r,n){var o=r[0],s=r[1],a=r[2],l=r[3],c=r[4],h=r[5],u=r[6],d=r[7],p=r[8],f=n[0],m=n[1],_=n[2],g=n[3],y=n[4],x=n[5],v=n[6],b=n[7],w=n[8];return i[0]=f*o+m*l+_*u,i[1]=f*s+m*c+_*d,i[2]=f*a+m*h+_*p,i[3]=g*o+y*l+x*u,i[4]=g*s+y*c+x*d,i[5]=g*a+y*h+x*p,i[6]=v*o+b*l+w*u,i[7]=v*s+b*c+w*d,i[8]=v*a+b*h+w*p,i},i.multiply$1=g,i.multiply$2=A,i.nextPowerOfTwo=ei,i.normalize=k,i.normalize$1=function(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=n*n+o*o+s*s+a*a;return l>0&&(l=1/Math.sqrt(l)),i[0]=n*l,i[1]=o*l,i[2]=s*l,i[3]=a*l,i},i.number=ii,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=aD,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]),n=r[0];if("none"===n.visibility)continue;const o=n.source||"";let s=this.familiesBySource[o];s||(s=this.familiesBySource[o]={});const a=n.sourceLayer||"_geojsonTileLayer";let l=s[a];l||(l=s[a]=[]),l.push(r)}}}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 r=[];for(const n of this._feature.geometry){const o=[];for(const r of n)o.push(new i.pointGeometry(r[0],r[1]));r.push(o)}return r}}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),r.writeVarint(m<<1^m>>31),s+=f,a+=m}3===o&&r.writeVarint(15)}}function w(i,r){var n=typeof i;"string"===n?r.writeStringField(1,i):"boolean"===n?r.writeBooleanField(7,i):"number"===n&&(i%1!=0?r.writeDoubleField(3,i):i<0?r.writeSVarintField(6,i):r.writeVarintField(5,i))}function T(i,r,n,o){E(i,n,o),E(r,2*n,2*o),E(r,2*n+1,2*o+1)}function E(i,r,n){const o=i[r];i[r]=i[n],i[n]=o}function S(i,r,n,o){const s=i-n,a=r-o;return s*s+a*a}_.fromVectorTileJs=g,_.fromGeojsonVt=function(i,r){r=r||{};var n={};for(var o in i)n[o]=new f(i[o].features,r),n[o].name=o,n[o].version=r.version,n[o].extent=r.extent;return g({layers:n})},_.GeoJSONWrapper=f;const I=i=>i[0],M=i=>i[1];class A{constructor(i,r=I,n=M,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 o=0;o>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 c=n[2*o+l];let h=s,u=a;for(T(r,n,s,o),n[2*a+l]>c&&T(r,n,s,a);hc;)u--}n[2*s+l]===c?T(r,n,s,u):T(r,n,++u,a),u<=o&&(s=u+1),o<=u&&(a=u-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 l=m;l<=f;l++)c=r[2*l],h=r[2*l+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[l]);continue}const _=Math.floor((m+f)/2);c=r[2*_],h=r[2*_+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[_]);const g=(p+1)%2;(0===p?n<=c:o<=h)&&(u.push(m),u.push(_-1),u.push(g)),(0===p?s>=c:a>=h)&&(u.push(_+1),u.push(f),u.push(g))}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 s=p;s<=d;s++)S(r[2*s],r[2*s+1],n,o)<=h&&c.push(i[s]);continue}const f=Math.floor((p+d)/2),m=r[2*f],_=r[2*f+1];S(m,_,n,o)<=h&&c.push(i[f]);const g=(u+1)%2;(0===u?n-s<=m:o-s<=_)&&(l.push(p),l.push(f-1),l.push(g)),(0===u?n+s>=m:o+s>=_)&&(l.push(f+1),l.push(d),l.push(g))}return c}(this.ids,this.coords,i,r,n,this.nodeSize)}}const C={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:i=>i},z=Math.fround||(s=new Float32Array(1),i=>(s[0]=+i,s[0]));class k{constructor(i){this.options=R(Object.create(C),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 r=0;r=n;i--){const n=+Date.now();l=this._cluster(l,i),this.trees[i]=new A(l,F,O,s,Float32Array),r&&console.log("z%d: %d clusters in %dms",i,l.length,+Date.now()-n)}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 i=this.getClusters([n,o,180,a],r),l=this.getClusters([-180,o,s,a],r);return i.concat(l)}const l=this.trees[this._limitZoom(r)],c=l.range(L(n),B(a),L(s),B(o)),h=[];for(const i of c){const r=l.points[i];h.push(r.numPoints?P(r):this.points[r.index])}return h}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 r of c){const n=s.points[r];n.parentId===i&&h.push(n.numPoints?P(n):this.points[n.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 r of a){const a=r.properties;if(a&&a.cluster?s+a.point_count<=o?s+=a.point_count:s=this._appendLeaves(i,a.cluster_id,n,o,s):sr&&(g+=n.numPoints||1)}if(g>_&&g>=l){var h,u,d,p;let i=s.x*_,l=s.y*_,c=a&&_>1?this._map(s,!0):null;const y=(o<<5)+(r+1)+this.points.length;for(const n of m){const o=f.points[n];if(o.zoom<=r)continue;o.zoom=r;const h=o.numPoints||1;i+=o.x*h,l+=o.y*h,o.parentId=y,a&&(c||(c=this._map(s,!0)),a(c,this._map(o)))}s.parentId=y,n.push((h=i/g,u=l/g,d=g,p=c,{x:z(h),y:z(u),zoom:1/0,id:y,parentId:-1,numPoints:d,properties:p}))}else if(n.push(s),g>1)for(const i of m){const o=f.points[i];o.zoom<=r||(o.zoom=r,n.push(o))}}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?R({},i.properties):i.properties;const n=this.points[i.index].properties,o=this.options.map(n);return r&&o===n?R({},o):o}}function P(i){return{type:"Feature",id:i.id,properties:D(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 D(i){const r=i.numPoints,n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r;return R(R({},i.properties),{cluster:!0,cluster_id:i.id,point_count:r,point_count_abbreviated:n})}function L(i){return i/360+.5}function B(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 R(i,r){for(const n in r)i[n]=r[n];return i}function F(i){return i.x}function O(i){return i.y}function U(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)V(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 Z(i,r,n,o){for(var s=0;s1?1:n}function q(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)X(p,g,n,o,s,!1,c.lineMetrics);else if("MultiLineString"===f)H(p,g,n,o,s,!1);else if("Polygon"===f)H(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=W(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&&K(u,m,_,g),T=u.length-3,a&&T>=3&&(u[T]!==u[0]||u[T+1]!==u[1])&&K(u,u[0],u[1],u[2]),u.length&&r.push(u)}function W(i){var r=[];return r.size=i.size,r.start=i.start,r.end=i.end,r}function H(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=q(i,d,n-T,n+S,0,f.minX,f.maxX,h),w=q(i,d,n+E,n+I,0,f.minX,f.maxX,h),i=null,b&&(g=q(b,d,o-T,o+S,1,f.minY,f.maxY,h),y=q(b,d,o+E,o+I,1,f.minY,f.maxY,h),b=null),w&&(x=q(w,d,o-T,o+S,1,f.minY,f.maxY,h),v=q(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)}}},en.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[eo(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]?et(this.tiles[c],s):null):null};class ea extends i.VectorTileWorkerSource{constructor(i,r,n,o,s){super(i,r,n,o,es),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 n=i.createExpression(r.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===n.result)throw Error(n.value.map(i=>`${i.key}: ${i.message}`).join(", "));const o=c.features.filter(i=>n.value.evaluate({zoom:0},i));c={type:"FeatureCollection",features:o}}this._geoJSONIndex=r.cluster?new k(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 r of c){const[a,l]=n[r],c=i.createExpression(l),h=i.createExpression("string"==typeof a?[a,["accumulated"],["get",r]]:a);o[r]=c.value,s[r]=h.value}return r.map=i=>{l.properties=i;const r={};for(const i of c)r[i]=o[i].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 en(h,u))}catch(i){return n(i)}this.loaded={};const l={};if(s){const n=i.getPerformanceMeasurement(o);n&&(l.resourceTiming={},l.resourceTiming[r.source]=JSON.parse(JSON.stringify(n)))}n(null,l)}})}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(i){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(i){r(i)}}getClusterChildren(i,r){try{r(null,this._geoJSONIndex.getChildren(i.clusterId))}catch(i){r(i)}}getClusterLeaves(i,r){try{r(null,this._geoJSONIndex.getLeaves(i.clusterId,i.limit,i.offset))}catch(i){r(i)}}}class el{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:ea},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 r in s)s[r]instanceof i.VectorTileWorkerSource&&(s[r].isSpriteLoaded=n,s[r].fire(new i.Event("isSpriteLoaded")))}}setImages(i,r,n){for(const n in this.availableImages[i]=r,this.workerSources[i]){const o=this.workerSources[i][n];for(const i in o)o[i].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(i){n(i.toString())}}syncRTLPluginState(r,n,o){try{i.plugin.setState(n);const r=i.plugin.getPluginURL();if(i.plugin.isLoaded()&&!i.plugin.isParsed()&&null!=r){this.self.importScripts(r);const n=i.plugin.isParsed();o(n?void 0:Error(`RTL Text Plugin failed to import scripts from ${r}`),n)}}catch(i){o(i.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 el(self)),el}),s(["./shared"],function(i){let r,n,o,s;function a(i){var r;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(r){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===l[r=i&&i.failIfMajorPerformanceCaveat]&&(l[r]=function(i){var r,n,o,s=(r=document.createElement("canvas"),(n=Object.create(a.webGLContextAttributes)).failIfMajorPerformanceCaveat=i,r.getContext("webgl",n)||r.getContext("experimental-webgl",n));if(!s)return!1;try{o=s.createShader(s.VERTEX_SHADER)}catch(i){return!1}return!(!o||s.isContextLost())&&(s.shaderSource(o,"void main() {}"),s.compileShader(o),!0===s.getShaderParameter(o,s.COMPILE_STATUS))}(r)),!!l[r]&&!document.documentMode)}var l={};function c(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 h(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",f,!0)},0)},u.mousePos=function(i,r){const n=i.getBoundingClientRect();return m(i,n,r)},u.touchPos=function(i,r){const n=i.getBoundingClientRect(),o=[];for(let s=0;s=0?0:r.button};class _ 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:i,callback:r}of this.requestors)this._notify(i,r);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 C(r,n,o){return n*(i.EXTENT/(r.tileSize*Math.pow(2,o-r.tileID.overscaledZ)))}A.Actor=i.Actor;class z{constructor(i,r,n){this.context=i;const o=i.gl;this.buffer=o.createBuffer(),this.dynamicDraw=!!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 k={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class P{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 a=i.pointGeometry.convert(r[0]),l=i.pointGeometry.convert(r[1]);o=[a,l],s=i.polygonizeBounds(a,l).every(i=>n.isPointAboveHorizon(i))}return new eg(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=C(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=100*i|0;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=100*i|0;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 ey(r,n,o){const s=function(s,a){if(s)return o(s);if(a){const s=i.pick(i.extend(a,r),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);a.vector_layers&&(s.vectorLayers=a.vector_layers,s.vectorLayerIds=s.vectorLayers.map(i=>i.id)),s.tiles=n.canonicalizeTileset(s,r.url),o(null,s)}};return r.url?i.getJSON(n.transformRequest(n.normalizeSourceURL(r.url),i.ResourceType.Source),s):i.exported.frame(()=>s(null,r))}class ex{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 ex(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 o=this.map.painter.context,c=o.gl;r.texture=this.map.painter.getTileTexture(s.width),r.texture?r.texture.update(s,{useMipmap:!0}):(r.texture=new i.Texture(o,s,c.RGBA,{useMipmap:!0}),r.texture.bind(c.LINEAR,c.CLAMP_TO_EDGE),o.extTextureFilterAnisotropic&&c.texParameterf(c.TEXTURE_2D,o.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,o.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 eb(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 ew 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 i of r)n=Math.min(n,i.x),o=Math.min(o,i.y),s=Math.max(s,i.x),a=Math.max(a,i.y);const l=Math.max(s-n,a-o),c=Math.max(0,Math.floor(-Math.log(l)/Math.LN2)),h=Math.pow(2,c);return new i.CanonicalTileID(c,Math.floor((n+s)/2*h),Math.floor((o+a)/2*h))}(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=eb(0,0,r,0,0,n,r,n),f=eb(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 i=this.tiles[o];"loaded"!==i.state&&(i.state="loaded",i.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 eT={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=ey(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 ex(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 i of r)i.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,a.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,a.bind(this),void 0,!0);else{const n=i.loadVectorTile.call({deduped:this._deduped},s,(i,n)=>{i||!n?a.call(this,i):(s.data={cacheControl:n.cacheControl,expires:n.expires,rawData:n.rawData.slice(0)},r.actor&&r.actor.send("loadTile",s,a.bind(this),void 0,!0))},!0);r.request={cancel:n}}function a(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:ev,"raster-dem":class extends ev{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,o){const s=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function a(i,n){i&&(r.state="errored",o(i)),n&&(r.dem=n,r.dem.onDeserialize(),r.needsHillshadePrepare=!0,r.needsDEMTextureUpload=!0,r.state="loaded",o(null))}r.request=i.getImage(this.map._requestManager.transformRequest(s,i.ResourceType.Tile),(function(s,l,c,h){if(delete r.request,r.aborted)r.state="unloaded",o(null);else if(s)r.state="errored",o(s);else if(l){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:c,expires:h});const o=i.window.ImageBitmap&&l instanceof i.window.ImageBitmap&&(null==n&&(n=i.window.OffscreenCanvas&&new i.window.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof i.window.createImageBitmap),n),s=1-(l.width-i.prevPowerOfTwo(l.width))/2;s<1||r.neighboringTiles||(r.neighboringTiles=this._getNeighboringTiles(r.tileID));const u=o?l:i.exported.getImageData(l,s),d={uid:r.uid,coord:r.tileID,source:this.id,rawImageData:u,encoding:this.encoding,padding:s};r.actor&&"expired"!==r.state||(r.actor=this.dispatcher.getActor(),r.actor.send("loadDEMTile",d,a.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 r={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&n&&n.resourceTiming&&n.resourceTiming[this.id]&&(r.resourceTiming=n.resourceTiming[this.id]),this.fire(new i.Event("data",r)),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 ew{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 i=this.tiles[o];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:ew,canvas:class extends ew{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 i=this.tiles[s];"loaded"!==i.state&&(i.state="loaded",i.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}}},eE=function(r,n,o,s){const a=new eT[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 eS(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 eI(){return null!=rZ.workerClass?new rZ.workerClass:new i.window.Worker(rZ.workerUrl)}const eM="mapboxgl_preloaded_worker_pool";class eA{constructor(){this.active={}}acquire(i){if(!this.workers)for(this.workers=[];this.workers.length{i.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[eM]}numActive(){return Object.keys(this.active).length}}function eC(){return o||(o=new eA),o}function ez(r){r=r.slice();const n=Object.create(null);for(let i=0;i{i in n&&(o[i]=n[i])}),o}(r[o],n[r[o].ref]));return r}eA.workerCount=2;const ek={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 eP(i,r,n){n.push({command:ek.addSource,args:[i,r[i]]})}function eD(i,r,n){r.push({command:ek.removeSource,args:[i]}),n[i]=!0}function eL(i,r,n,o,s,a){let l;for(l in r=r||{},i=i||{})i.hasOwnProperty(l)&&(h(i[l],r[l])||n.push({command:a,args:[o,l,r[l],s]}));for(l in r)r.hasOwnProperty(l)&&!i.hasOwnProperty(l)&&(h(i[l],r[l])||n.push({command:a,args:[o,l,r[l],s]}))}function eB(i){return i.id}function eR(i,r){return i[r.id]=r,i}class eF{constructor(i,r){this.reset(i,r)}reset(i,r){this.points=i||[],this._distances=[0];for(let i=1;i0?(s-l)/c:0;return this.points[a].mult(1-h).add(this.points[n].mult(h))}}class eO{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 i=0;ithis.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 i=0;i0: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 s=this.bboxes;for(const d of u)if(!h.box[d]){h.box[d]=!0;const u=4*d;if(i<=s[u+2]&&r<=s[u+3]&&n>=s[u+0]&&o>=s[u+1]&&(!c||c(this.boxKeys[d]))){if(l.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[d],x1:s[u],y1:s[u+1],x2:s[u+2],y2:s[u+3]})}}}const d=this.circleCells[s];if(null!==d){const s=this.circles;for(const u of d)if(!h.circle[u]){h.circle[u]=!0;const d=3*u;if(this._circleAndRectCollide(s[d],s[d+1],s[d+2],i,r,n,o)&&(!c||c(this.circleKeys[u]))){if(l.hitTest)return a.push(!0),!0;{const i=s[d],r=s[d+1],n=s[d+2];a.push({key:this.circleKeys[u],x1:i-n,y1:r-n,x2:i+n,y2:r+n})}}}}}_queryCellCircle(i,r,n,o,s,a,l,c){const h=l.circle,u=l.seenUids,d=this.boxCells[s];if(null!==d){const i=this.bboxes;for(const r of d)if(!u.box[r]){u.box[r]=!0;const n=4*r;if(this._circleAndRectCollide(h.x,h.y,h.radius,i[n+0],i[n+1],i[n+2],i[n+3])&&(!c||c(this.boxKeys[r])))return a.push(!0),!0}}const p=this.circleCells[s];if(null!==p){const i=this.circles;for(const r of p)if(!u.circle[r]){u.circle[r]=!0;const n=3*r;if(this._circlesCollide(i[n],i[n+1],i[n+2],h.x,h.y,h.radius)&&(!c||c(this.circleKeys[r])))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 h=u;h<=p;h++)if(s.call(this,i,r,n,o,this.xCellCount*h+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 eU=Math.tan(85*Math.PI/180);function eV(r,n,o,s,a,l){let h=i.create();if(o){if("globe"===a.projection.name)h=i.calculateGlobeMatrix(a,a.worldSize/a._projectionScaler,[0,0]),i.multiply$1(h,h,i.globeDenormalizeECEF(i.globeTileBounds(n)));else{const i=c([],l);h[0]=i[0],h[1]=i[1],h[4]=i[2],h[5]=i[3]}s||i.rotateZ(h,h,a.angle)}else i.multiply$1(h,a.labelPlaneMatrix,r);return h}function eN(r,n,o,s,a,l){if(o){if("globe"===a.projection.name){const c=eV(r,n,o,s,a,l);return i.invert(c,c),i.multiply$1(c,r,c),c}{const n=i.clone(r),o=i.identity([]);return o[0]=l[0],o[1]=l[1],o[4]=l[2],o[5]=l[3],i.multiply$1(n,n,o),s||i.rotateZ(n,n,-a.angle),n}}return a.glCoordMatrix}function ej(r,n,o=0){const s=[r.x,r.y,o,1];o?i.transformMat4$1(s,s,n):eJ(s,s,n);const a=s[3];return{point:new i.pointGeometry(s[0]/a,s[1]/a),signedDistanceFromCamera:a}}function eG(i,r){return Math.min(.5+i/r*.5,1.5)}function eZ(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=eH(i*v,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);if(!w)return null;const T=eH(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 e$(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.yeU}(n,o,s)?1===r.flipState?{needsFlipping:!0}:null:n.x>o.x?{needsFlipping:!0}:null}function eq(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 i=r.glyphStartIndex+r.numGlyphs,n=r.lineStartIndex,a=r.lineStartIndex+r.lineLength,d=eZ(b,h,w,T,o,p,f,r,u,l,m,g,!1,y,x);if(!d)return{notEnoughRoom:!0};const E=ej(d.first.point,c).point,S=ej(d.last.point,c).point;if(s&&!o){const i=e$(r,E,S,_);if(r.flipState=i&&i.needsFlipping?1:2,i)return i}v=[d.first];for(let s=r.glyphStartIndex+1;s0?l.point:eW(f,s,n,1,a,void 0,y,x.canonical),_);if(r.flipState=c&&c.needsFlipping?1:2,c)return c}const n=eH(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(!n)return{notEnoughRoom:!0};v=[n]}for(const r of v)i.addDynamicAttributes(d,r.point,r.angle);return{}}function eX(r,n,o,s,a){const l=s.projectTilePoint(r.x,r.y,n);if(!a)return ej(l,o,l.z);const c=a(r);return ej(new i.pointGeometry(l.x+c[0],l.y+c[1]),o,l.z+c[2])}function eW(i,r,n,o,s,a,l,c){const h=eX(i.add(i.sub(r)._unit()),c,s,l,a).point,u=n.sub(h);return n.add(u._mult(o/u.mag()))}function eH(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=()=>eW(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 r=eX(k,x.canonical,p,y,m);E=r.signedDistanceFromCamera>0?f[T]=r.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 L=(A-I)/M,B=E.sub(S),R=B.mult(L)._add(S);o&&R._add(B._unit()._perp()._mult(o*b));const F=w+Math.atan2(E.y-S.y,E.x-S.x);return C.push(R),_&&(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,L))),{point:R,angle:F,path:C,tilePath:z}}const eK=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function eY(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=ej(new i.pointGeometry(E[0],E[1]),c,E[2]).point,C=S.signedDistanceFromCamera>0?eZ(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 n=.5*f*I+m,o=new i.pointGeometry(-100,-100),s=new i.pointGeometry(this.screenRightBoundary,this.screenBottomBoundary),a=new eF,l=C.first,c=C.last;let d=[];for(let i=l.path.length-1;i>=1;i--)d.push(l.path[i]);for(let i=1;i{const n=v(rej(i,h));d=i.some(i=>i.signedDistanceFromCamera<=0)?[]:i.map(i=>i.point)}let x=[];if(d.length>0){const r=d[0].clone(),n=d[0].clone();for(let i=1;i=o.x&&n.x<=s.x&&r.y>=o.y&&n.y<=s.y?[d]:n.xs.x||n.ys.y?[]:i.clipLine([d],o.x,o.y,s.x,s.y)}for(const i of x){a.reset(i,.25*n);let o=0;o=a.length<=.5*n?1:Math.ceil(a.paddedLength/_)+1;for(let i=0;i0){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),T(r,h,l.pitch,l._fov)}(this.fogState,n,o,s||0,a.toUnwrapped(),this.transform)>.9),c=l[2]>l[3]||h}else eJ(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 e6(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 e8(r,n,o,s,a){const l=new i.pointGeometry(r,n);return o&&l._rotate(s?a:-a),l}class e9{constructor(i,r,n,o,s){this.transform=i.clone(),this.collisionIndex=new eQ(this.transform,s),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=r,this.retainedQueryData={},this.collisionGroups=new e4(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=eV(f,o.tileID.canonical,m,_,this.transform,x);let b=null;if(m){const r=eN(f,o.tileID.canonical,m,_,this.transform,x);b=i.multiply$1([],this.transform.labelPlaneMatrix,r)}let w=null;g&&o.latestFeatureIndex&&(w={unwrappedTileID:p,dynamicFilter:g,dynamicFilterNeedsFeature:y,featureIndex:o.latestFeatureIndex}),this.retainedQueryData[a.bucketInstanceId]=new e5(a.bucketInstanceId,l,a.sourceLayerIndex,a.index,o.tileID);const T={bucket:a,layout:c,posMatrix:f,textLabelPlaneMatrix:v,labelToScreenMatrix:b,clippingData:w,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 i of a.sortKeyRanges){const{sortKey:n,symbolInstanceStart:o,symbolInstanceEnd:s}=i;r.push({sortKey:n,symbolInstanceStart:o,symbolInstanceEnd:s,parameters:T})}else r.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:T})}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=e6(i,n,o,v,s),w=this.collisionIndex.placeCollisionBox(s,r,e8(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,e8(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate).box.length)&&w.box.length>0){let r;return this.prevPlacement&&this.prevPlacement.variableOffsets[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID].text&&(r=this.prevPlacement.variableOffsets[p.crossTileID].anchor),this.variableOffsets[p.crossTileID]={textOffset:v,width:n,height:o,anchor:i,textScale:s,prevAnchor:r},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 o={zoom:this.transform.zoom,pitch:this.transform.pitch};let s=null;if(d.dynamicFilterNeedsFeature){const i=this.retainedQueryData[a.bucketInstanceId];s=d.featureIndex.loadFeature({featureIndex:r.featureIndex,bucketIndex:i.bucketIndex,sourceLayerIndex:i.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,d.dynamicFilter)(o,s,this.retainedQueryData[a.bucketInstanceId].tileID.canonical,new i.pointGeometry(r.tileAnchorX,r.tileAnchorY),this.transform.calculateDistanceTileData(d.unwrappedTileID)))return this.placements[r.crossTileID]=new e2(!1,!1,!1,!0),void(n[r.crossTileID]=!0)}if(n[r.crossTileID])return;if(f)return void(this.placements[r.crossTileID]=new e2(!1,!1,!1));let I=!1,C=!1,z=!0,k=null,P={box:null,offscreen:null},D={box:null,offscreen:null},L=null,B=null,R=null,F=0,O=0,U=0;m.textFeatureIndex?F=m.textFeatureIndex:r.useRuntimeCollisionCircles&&(F=r.featureIndex),m.verticalTextFeatureIndex&&(O=m.verticalTextFeatureIndex);const V=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)},N=m.textBox;if(N){V(N);const n=n=>{let o=i.WritingMode.horizontal;if(a.allowVerticalPlacement&&!n&&this.prevPlacement){const i=this.prevPlacement.placedOrientations[r.crossTileID];i&&(this.placedOrientations[r.crossTileID]=i,o=i,this.markUsedOrientation(a,o,r))}return o},o=(n,o)=>{if(a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&m.verticalTextBox){for(const r of a.writingModes)if(r===i.WritingMode.vertical?D=P=o():P=n(),P&&P.box&&P.box.length)break}else P=n()};if(l.get("text-variable-anchor")){let h=l.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[r.crossTileID]){const i=this.prevPlacement.variableOffsets[r.crossTileID];h.indexOf(i.anchor)>0&&(h=h.filter(r=>r!==i.anchor)).unshift(i.anchor)}const u=(i,n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),u=(i.x2-i.x1)*l+2*i.padding,d=(i.y2-i.y1)*l+2*i.padding,f=S&&!w?n:null;f&&V(f);let m={box:[],offscreen:!1};const x=b?2*h.length:h.length;for(let n=0;n=h.length,r,s,a,o,f,_,g);if(x&&(m=x.placedGlyphBoxes)&&m.box&&m.box.length){I=!0,k=x.shift;break}}return m};o(()=>u(N,m.iconBox,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return n&&V(n),a.allowVerticalPlacement&&!(P&&P.box&&P.box.length)&&r.numVerticalGlyphVertices>0&&n?u(n,m.verticalIconBox,i.WritingMode.vertical):{box:null,offscreen:null}}),P&&(I=P.box,z=P.offscreen);const d=n(P&&P.box);if(!I&&this.prevPlacement){const i=this.prevPlacement.variableOffsets[r.crossTileID];i&&(this.variableOffsets[r.crossTileID]=i,this.markUsedJustification(a,i.anchor,r,d))}}else{const l=(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};o(()=>l(N,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&n?(V(n),l(n,i.WritingMode.vertical)):{box:null,offscreen:null}}),n(P&&P.box&&P.box.length)}}if(I=(L=P)&&L.box&&L.box.length>0,z=L&&L.offscreen,r.useRuntimeCollisionCircles){const n=a.text.placedSymbolArray.get(r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex),s=i.evaluateSizeForFeature(a.textSizeData,_,n),d=l.get("text-padding");B=this.collisionIndex.placeCollisionCircles(b,n,a.lineVertexArray,a.glyphOffsetArray,s,c,h,u,o,E,y.predicate,r.collisionCircleDiameter*s/i.ONE_EM,d,this.retainedQueryData[a.bucketInstanceId].tileID),I=b||B.circles.length>0&&!B.collisionDetected,z=z&&B.offscreen}if(m.iconFeatureIndex&&(U=m.iconFeatureIndex),m.iconBox){const r=r=>{V(r);const n=S&&k?e8(k.x,k.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)};C=D&&D.box&&D.box.length&&m.verticalIconBox?(R=r(m.verticalIconBox)).box.length>0:(R=r(m.iconBox)).box.length>0,z=z&&R.offscreen}const j=x||0===r.numHorizontalGlyphVertices&&0===r.numVerticalGlyphVertices,G=v||0===r.numIconVertices;if(j||G?G?j||(C=C&&I):I=C&&I:C=I=C&&I,I&&L&&L.box&&this.collisionIndex.insertCollisionBox(L.box,l.get("text-ignore-placement"),a.bucketInstanceId,D&&D.box&&O?O:F,y.ID),C&&R&&this.collisionIndex.insertCollisionBox(R.box,l.get("icon-ignore-placement"),a.bucketInstanceId,U,y.ID),B&&(I&&this.collisionIndex.insertCollisionCircles(B.circles,l.get("text-ignore-placement"),a.bucketInstanceId,F,y.ID),o)){const i=a.bucketInstanceId;let r=this.collisionCircleArrays[i];void 0===r&&(r=this.collisionCircleArrays[i]=new e3);for(let i=0;i=0;--r){const n=i[r];C(a.symbolInstances.get(n),n,a.collisionArrays[n])}}else for(let i=r.symbolInstanceStart;i=0&&(r.text.placedSymbolArray.get(i).crossTileID=a>=0&&i!==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 i of l)r.text.placedSymbolArray.get(i).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 i in this.placements){const r=this.placements[i],a=s[i];a?(this.opacities[i]=new e1(a,o,r.text,r.icon,null,r.clipped),n=n||r.text!==a.text.placed||r.icon!==a.icon.placed):(this.opacities[i]=new e1(null,o,r.text,r.icon,r.skipFade,r.clipped),n=n||r.text||r.icon)}for(const i in s){const r=s[i];if(!this.opacities[i]){const s=new e1(r,o,!1,!1);s.isHidden()||(this.opacities[i]=s,n=n||r.text.placed||r.icon.placed)}}for(const i in a)this.variableOffsets[i]||!this.opacities[i]||this.opacities[i].isHidden()||(this.variableOffsets[i]=a[i]);for(const i in l)this.placedOrientations[i]||!this.opacities[i]||this.opacities[i].isHidden()||(this.placedOrientations[i]=l[i]);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 r=o.getBucket(i);r&&o.latestFeatureIndex&&i.id===r.layerIds[0]&&this.updateBucketOpacities(r,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 e1(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 e1(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||h>0,b=s.numIconVertices>0,w=this.placedOrientations[s.crossTileID],T=w===i.WritingMode.vertical,E=w===i.WritingMode.horizontal||w===i.WritingMode.horizontalOnly;if(!v&&!b||x.isHidden()||g++,v){const i=te(x.text);_(r.text,c,T?tt:i),_(r.text,h,E?tt:i);const n=x.text.isHidden();[s.rightJustifiedTextSymbolIndex,s.centerJustifiedTextSymbolIndex,s.leftJustifiedTextSymbolIndex].forEach(i=>{i>=0&&(r.text.placedSymbolArray.get(i).hidden=n||T?1:0)}),s.verticalPlacedTextSymbolIndex>=0&&(r.text.placedSymbolArray.get(s.verticalPlacedTextSymbolIndex).hidden=n||E?1:0);const o=this.variableOffsets[s.crossTileID];o&&this.markUsedJustification(r,o.anchor,s,w);const a=this.placedOrientations[s.crossTileID];a&&(this.markUsedJustification(r,"left",s,a),this.markUsedOrientation(r,a,s))}if(b){const i=te(x.icon);s.placedIconSymbolIndex>=0&&(_(r.icon,s.numIconVertices,T?tt:i),r.icon.placedSymbolArray.get(s.placedIconSymbolIndex).hidden=x.icon.isHidden()),s.verticalPlacedIconSymbolIndex>=0&&(_(r.icon,s.numVerticalIconVertices,E?tt:i),r.icon.placedSymbolArray.get(s.verticalPlacedIconSymbolIndex).hidden=x.icon.isHidden())}if(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData()){const n=r.collisionArrays[o];if(n){let o=new i.pointGeometry(0,0),s=!0;if(n.textBox||n.verticalTextBox){if(u){const i=this.variableOffsets[y];i?(o=e6(i.anchor,i.width,i.height,i.textOffset,i.textScale),d&&o._rotate(p?this.transform.angle:-this.transform.angle)):s=!1}a&&(s=!x.clipped),n.textBox&&e7(r.textCollisionBox.collisionVertexArray,x.text.placed,!s||T,o.x,o.y),n.verticalTextBox&&e7(r.textCollisionBox.collisionVertexArray,x.text.placed,!s||E,o.x,o.y)}const l=s&&!!(!E&&n.verticalIconBox);n.iconBox&&e7(r.iconCollisionBox.collisionVertexArray,x.icon.placed,l,f?o.x:0,f?o.y:0),n.verticalIconBox&&e7(r.iconCollisionBox.collisionVertexArray,x.icon.placed,!l,f?o.x:0,f?o.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 i=this.collisionCircleArrays[r.bucketInstanceId];r.placementInvProjMatrix=i.invProjMatrix,r.placementViewportMatrix=i.viewportMatrix,r.collisionCircleArray=i.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 e7(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 te(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 tt=0;class ti{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 i=n[r[this._currentPlacementIndex]],s=this.placement.collisionIndex.transform.zoom;if("symbol"===i.type&&(!i.minzoom||i.minzoom<=s)&&(!i.maxzoom||i.maxzoom>s)){if(this._inProgressLayer||(this._inProgressLayer=new ti(i)),this._inProgressLayer.continuePlacement(o[i.source],this.placement,this._showCollisionBoxes,i,a))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(i){return this.placement.commit(i),this.placement}}const tn=512/i.EXTENT/2;class to{constructor(i,r,n){this.tileID=i,this.indexedSymbolInstances={},this.bucketInstanceId=n;for(let n=0;ni.overscaledZ)for(const n in s){const a=s[n];a.tileID.isChildOf(i)&&a.findMatches(r.symbolInstances,i,o)}else{const a=s[i.scaledTo(Number(n)).key];a&&a.findMatches(r.symbolInstances,i,o)}}for(let i=0;i{r[i]=!0}),this.layerIndexes)r[n]||delete this.layerIndexes[n]}}const tc=(r,n)=>i.emitValidationErrors(r,n&&n.filter(i=>"source.canvas"!==i.identifier)),th=i.pick(ek,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),tu=i.pick(ek,["setCenter","setZoom","setBearing","setPitch"]),td=function(){const r={},n=i.spec.$version;for(const o in i.spec.$root){const s=i.spec.$root[o];if(s.required){let i=null;null!=(i="version"===o?n:"array"===s.type?[]:{})&&(r[o]=i)}}return r}(),tp={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class tf extends i.Evented{constructor(r,n={}){super(),this.map=r,this.dispatcher=new A(eC(),this),this.imageManager=new _,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 tl,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=tf.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 i in o._sourceCaches){const r=o._sourceCaches[i],n=r.getSource().type;"vector"!==n&&"geojson"!==n||r.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 i in this._layers){const n=this._layers[i];n.source===r.id&&this._validateLayer(n)}})}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(td,!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&&tc(this,i.validateStyle(r)))return;for(const i in this._loaded=!0,this.stylesheet=r,this.updateProjection(),r.sources)this.addSource(i,r.sources[i],{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 o=ez(this.stylesheet.layers);for(let r of(this._order=o.map(i=>i.id),this._layers={},this._serializedLayers={},o))(r=i.createStyleLayer(r)).setEventedParent(this,{layer:{id:r.id}}),this._layers[r.id]=r,this._serializedLayers[r.id]=r.serialize(),this._updateLayerCount(r,!0);this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new x(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 i in this.map.painter.clearBackgroundTiles(),this._sourceCaches)this._sourceCaches[i].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 o in s){const{width:a,height:l,x:c,y:h,sdf:u,pixelRatio:d,stretchX:p,stretchY:f,content:m}=s[o],_=new i.RGBAImage({width:a,height:l});i.RGBAImage.copy(r,_,{x:c,y:h},{x:0,y:0},{width:a,height:l}),n[o]={data:_,pixelRatio:d,sdf:u,stretchX:p,stretchY:f,content:m}}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 i in n)this.imageManager.addImage(i,n[i]);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 i=this._layers[n];"custom"!==i.type&&r.push(i.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 i in this._layers)if(this._layers[i].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(i){return!!this.terrain&&tp[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 i=Object.keys(this._updatedLayers),n=Object.keys(this._removedLayers);for(const r in(i.length||n.length)&&this._updateWorkerLayers(i,n),this._updatedSources){const i=this._updatedSources[r];"reload"===i?this._reloadSource(r):"clear"===i&&this._clearSource(r)}for(const i in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[i].updateTransitions(r);this.light.updateTransitions(r),this.fog&&this.fog.updateTransitions(r),this._resetUpdates()}const o={};for(const i in this._sourceCaches){const r=this._sourceCaches[i];o[i]=r.used,r.used=!1}for(const i of this._order){const n=this._layers[i];if(n.recalculate(r,this._availableImages),!n.isHidden(r.zoom)){const i=this._getLayerSourceCache(n);i&&(i.used=!0)}const o=this.map.painter;if(o){const i=n.getProgramIds();if(!i)continue;const s=n.getProgramConfiguration(r.zoom);for(const r of i)o.useProgram(r,s)}}for(const r in o){const n=this._sourceCaches[r];o[r]!==n.used&&n.getSource().fire(new i.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:n.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(),tc(this,i.validateStyle(r)))return!1;(r=i.clone$1(r)).layers=ez(r.layers);const n=(function(i,r){if(!i)return[{command:ek.setStyle,args:[r]}];let n=[];try{if(!h(i.version,r.version))return[{command:ek.setStyle,args:[r]}];h(i.center,r.center)||n.push({command:ek.setCenter,args:[r.center]}),h(i.zoom,r.zoom)||n.push({command:ek.setZoom,args:[r.zoom]}),h(i.bearing,r.bearing)||n.push({command:ek.setBearing,args:[r.bearing]}),h(i.pitch,r.pitch)||n.push({command:ek.setPitch,args:[r.pitch]}),h(i.sprite,r.sprite)||n.push({command:ek.setSprite,args:[r.sprite]}),h(i.glyphs,r.glyphs)||n.push({command:ek.setGlyphs,args:[r.glyphs]}),h(i.transition,r.transition)||n.push({command:ek.setTransition,args:[r.transition]}),h(i.light,r.light)||n.push({command:ek.setLight,args:[r.light]}),h(i.fog,r.fog)||n.push({command:ek.setFog,args:[r.fog]}),h(i.projection,r.projection)||n.push({command:ek.setProjection,args:[r.projection]});const o={},s=[];!function(i,r,n,o){let s;for(s in r=r||{},i=i||{})i.hasOwnProperty(s)&&(r.hasOwnProperty(s)||eD(s,n,o));for(s in r){var a,l;r.hasOwnProperty(s)&&(i.hasOwnProperty(s)?h(i[s],r[s])||("geojson"===i[s].type&&"geojson"===r[s].type&&function(i,r,n){let o;for(o in i[n])if(i[n].hasOwnProperty(o)&&"data"!==o&&!h(i[n][o],r[n][o]))return!1;for(o in r[n])if(r[n].hasOwnProperty(o)&&"data"!==o&&!h(i[n][o],r[n][o]))return!1;return!0}(i,r,s)?n.push({command:ek.setGeoJSONSourceData,args:[s,r[s].data]}):(a=s,l=r,eD(a,n,o),eP(a,l,n))):eP(s,r,n))}}(i.sources,r.sources,s,o);const a=[];i.layers&&i.layers.forEach(i=>{o[i.source]?n.push({command:ek.removeLayer,args:[i.id]}):a.push(i)});let l=i.terrain;l&&o[l.source]&&(n.push({command:ek.setTerrain,args:[void 0]}),l=void 0),n=n.concat(s),h(l,r.terrain)||n.push({command:ek.setTerrain,args:[r.terrain]}),function(i,r,n){let o,s,a,l,c,u,d;r=r||[];const p=(i=i||[]).map(eB),f=r.map(eB),m=i.reduce(eR,{}),_=r.reduce(eR,{}),g=p.slice(),y=Object.create(null);for(o=0,s=0;o!(i.command in tu));if(0===n.length)return!1;const o=n.filter(i=>!(i.command in th));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=eE(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 n in this._layers)if(this._layers[n].source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while layer "${n}" 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 o=this._getSourceCaches(r);for(const r of o)delete this._sourceCaches[r.id],delete this._updatedSources[r.id],r.fire(new i.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:r.getSource().id})),r.setEventedParent(null),r.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(tc(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 i=this._removedLayers[a];delete this._removedLayers[a],i.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 s=this.getLayer(r);if(s){if(!h(s.filter,n))return null==n?(s.filter=void 0,void this._updateLayer(s)):void(this._validate(i.validateStyle.filter,`layers.${s.id}.filter`,n,{layerType:s.type},o)||(s.filter=i.clone$1(n),this._updateLayer(s)))}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,s={}){this._checkLoaded();const a=this.getLayer(r);a?h(a.getLayoutProperty(n),o)||(a.setLayoutProperty(n,o,s),this._updateLayer(a)):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,s={}){this._checkLoaded();const a=this.getLayer(r);a?h(a.getPaintProperty(n),o)||(a.setPaintProperty(n,o,s)&&this._updateLayer(a),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 i of c)i.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 i of c)i.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 i in this._sourceCaches){const n=this._sourceCaches[i].getSource();r[n.id]||(r[n.id]=n.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){const r=i=>"fill-extrusion"===this._layers[i].type,n={},o=[];for(let s=this._order.length-1;s>=0;s--){const a=this._order[s];if(r(a))for(const r of(n[a]=s,i)){const i=r[a];if(i)for(const r of i)o.push(r)}}o.sort((i,r)=>r.intersectionZ-i.intersectionZ);const s=[];for(let a=this._order.length-1;a>=0;a--){const l=this._order[a];if(r(l))for(let i=o.length-1;i>=0;i--){const r=o[i].feature;if(n[r.layer.id]{const r=this.getLayer(i);return r&&r.is3D()}):this.has3DLayers(),c=eg.createFromScreenPoints(r,o);for(const r in this._sourceCaches){const h=this._sourceCaches[r].getSource().id;n.layers&&!s[h]||a.push(function(r,n,o,s,a,l,c,h=!1){const u=r.tilesIn(s,c,h);u.sort(eS);const d=[];for(const s of u)d.push({wrappedTileID:s.tile.tileID.wrapped().key,queryResults:s.tile.queryRenderedFeatures(n,o,r._state,s,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,s.tile.tileID),h)});const p=function(i){const r={},n={};for(const o of i){const i=o.queryResults,s=o.wrappedTileID,a=n[s]=n[s]||{};for(const n in i){const o=i[n],s=a[n]=a[n]||{},l=r[n]=r[n]||[];for(const i of o)s[i.featureIndex]||(s[i.featureIndex]=!0,l.push(i))}}return r}(d);for(const i in p)p[i].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 p}(this._sourceCaches[r],this._layers,this._serializedLayers,c,n,o,l,!!this.map._showQueryGeometry))}return this.placement&&a.push(function(i,r,n,o,s,a,l){const c={},h=a.queryRenderedSymbols(o),u=[];for(const i of Object.keys(h).map(Number))u.push(l[i]);for(const n of(u.sort(eS),u)){const o=n.featureIndex.lookupSymbolFeatures(h[n.bucketInstanceId],r,n.bucketIndex,n.sourceLayerIndex,s.filter,s.layers,s.availableImages,i);for(const i in o){const r=c[i]=c[i]||[],s=o[i];for(const i of(s.sort((i,r)=>{const o=n.featureSortOrder;if(o){const n=o.indexOf(i.featureIndex);return o.indexOf(r.featureIndex)-n}return r.featureIndex-i.featureIndex}),s))r.push(i)}}for(const r in c)c[r].forEach(o=>{const s=o.feature,a=n(i[r]).getFeatureState(s.layer["source-layer"],s.id);s.source=s.layer.source,s.layer["source-layer"]&&(s.sourceLayer=s.layer["source-layer"]),s.state=a});return c}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),c.screenGeometry,n,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(a)}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 i of o)s=s.concat(function(i,r){const n=i.getRenderableIds().map(r=>i.getTileByID(r)),o=[],s={};for(let i=0;i{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 s in r)if(!h(r[s],o[s])){n.set(r),this.stylesheet.fog=r;const o={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};n.updateTransitions(o);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 w(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)&&tc(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 i in this._sourceCaches)this._sourceCaches[i].clearTiles(),this._sourceCaches[i].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(i){const r=this._getSourceCaches(i);for(const i of r)i.clearTiles()}_reloadSource(i){const r=this._getSourceCaches(i);for(const i of r)i.resume(),i.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 i of this._order){const n=this._layers[i];if("symbol"!==n.type)continue;if(!h[n.source]){const i=this._getLayerSourceCache(n);if(!i)continue;h[n.source]=i.getRenderableIds(!0).map(r=>i.getTileByID(r)).sort((i,r)=>r.tileID.overscaledZ-i.tileID.overscaledZ||(i.tileID.isLessThan(r.tileID)?-1:1))}const o=this.crossTileSymbolIndex.addLayer(n,h[n.source],r.center.lng,r.projection);l=l||o}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 tr(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 i of this._order){const r=this._layers[i];"symbol"===r.type&&this.placement.updateLayerOpacities(r,h[r.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)}}tf.getSourceType=function(i){return eT[i]},tf.setSourceType=function(i,r){eT[i]=r},tf.registerForPluginStateChange=i.registerForPluginStateChange;var tm="\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",t_="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 tg={},ty={};tg=tb("","\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),ty=tb("#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 tx=tb("\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 tv={background:tb("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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("#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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("#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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("#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:tb("#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:tb("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:tb("#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:tb("\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}",t_),skyboxGradient:tb("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}",t_),skyboxCapture:tb("\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:tb("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:tb("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 tb(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=tm.match(s);let u=c?c.concat(l):l;n||(tg.staticUniforms&&(u=tg.staticUniforms.concat(u)),ty.staticUniforms&&(u=ty.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 ti(o,l,'use of "text-field" requires a style "glyphs" property')),"text-font"===c&&iY(ts(l))&&"identity"===to(l.type)&&p.push(new ti(o,l,'"text-font" does not support identity functions'))),p.concat(rA({key:i.key,value:l,valueSpec:d,style:s,styleSpec:a,expressionContext:"property",propertyType:r,propertyKey:c}))}function ry(i){return rg(i,"paint")}function rx(i){return rg(i,"layout")}function rv(i){let r=[];const n=i.value,o=i.key,s=i.style,a=i.styleSpec;n.type||n.ref||r.push(new ti(o,n,'either "type" or "ref" is required'));let l=to(n.type);const c=to(n.ref);if(n.id){const a=to(n.id);for(let l=0;l{i in n&&r.push(new ti(o,n[i],`"${i}" is prohibited for ref layers`))}),s.layers.forEach(r=>{to(r.id)===c&&(i=r)}),i?i.ref?r.push(new ti(o,n.ref,"ref cannot reference another ref layer")):l=to(i.type):r.push(new ti(o,n.ref,`ref layer "${c}" not found`))}else if("background"!==l&&"sky"!==l){if(n.source){const i=s.sources&&s.sources[n.source],a=i&&to(i.type);i?"vector"===a&&"raster"===l?r.push(new ti(o,n.source,`layer "${n.id}" requires a raster source`)):"raster"===a&&"raster"!==l?r.push(new ti(o,n.source,`layer "${n.id}" requires a vector source`)):"vector"!==a||n["source-layer"]?"raster-dem"===a&&"hillshade"!==l?r.push(new ti(o,n.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"===l&&n.paint&&n.paint["line-gradient"]&&("geojson"!==a||!i.lineMetrics)&&r.push(new ti(o,n,`layer "${n.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):r.push(new ti(o,n,`layer "${n.id}" must specify a "source-layer"`)):r.push(new ti(o,n.source,`source "${n.source}" not found`))}else r.push(new ti(o,n,'missing required property "source"'))}return r=r.concat(rt({key:o,value:n,valueSpec:a.layer,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":()=>[],type:()=>rA({key:`${o}.type`,value:n.type,valueSpec:a.layer.type,style:i.style,styleSpec:i.styleSpec,object:n,objectKey:"type"}),filter:i=>r_(tn({layerType:l},i)),layout:i=>rt({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>rx(tn({layerType:l},i))}}),paint:i=>rt({layer:n,key:i.key,value:i.value,style:i.style,styleSpec:i.styleSpec,objectElementValidators:{"*":i=>ry(tn({layerType:l},i))}})}}))}function rb(i){const r=i.value,n=i.key,o=iK(r);return"string"!==o?[new ti(n,r,`string expected, ${o} found`)]:[]}const rw={promoteId:function({key:i,value:r}){if("string"===iK(r))return rb({key:i,value:r});{const n=[];for(const o in r)n.push(...rb({key:`${i}.${o}`,value:r[o]}));return n}}};function rT(i){let r;const n=i.value,o=i.key,s=i.styleSpec,a=i.style;if(!n.type)return[new ti(o,n,'"type" is required')];const l=to(n.type);switch(l){case"vector":case"raster":case"raster-dem":return rt({key:o,value:n,valueSpec:s[`source_${l.replace("-","_")}`],style:i.style,styleSpec:s,objectElementValidators:rw});case"geojson":if(r=rt({key:o,value:n,valueSpec:s.source_geojson,style:a,styleSpec:s,objectElementValidators:rw}),n.cluster)for(const i in n.clusterProperties){const[s,a]=n.clusterProperties[i],l="string"==typeof s?[s,["accumulated"],["get",i]]:s;r.push(...ro({key:`${o}.${i}.map`,value:a,expressionContext:"cluster-map"})),r.push(...ro({key:`${o}.${i}.reduce`,value:l,expressionContext:"cluster-reduce"}))}return r;case"video":return rt({key:o,value:n,valueSpec:s.source_video,style:a,styleSpec:s});case"image":return rt({key:o,value:n,valueSpec:s.source_image,style:a,styleSpec:s});case"canvas":return[new ti(o,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return rs({key:`${o}.type`,value:n.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:a,styleSpec:s})}}function rE(i){const r=i.value,n=i.styleSpec,o=n.light,s=i.style;let a=[];const l=iK(r);if(void 0===r)return a;if("object"!==l)return a.concat([new ti("light",r,`object expected, ${l} found`)]);for(const i in r){const l=i.match(/^(.*)-transition$/);a=a.concat(l&&o[l[1]]&&o[l[1]].transition?rA({key:i,value:r[i],valueSpec:n.transition,style:s,styleSpec:n}):o[i]?rA({key:i,value:r[i],valueSpec:o[i],style:s,styleSpec:n}):[new ti(i,r[i],`unknown property "${i}"`)])}return a}function rS(i){const r=i.value,n=i.key,o=i.style,s=i.styleSpec,a=s.terrain;let l=[];const c=iK(r);if(void 0===r)return l;if("object"!==c)return l.concat([new ti("terrain",r,`object expected, ${c} found`)]);for(const i in r){const n=i.match(/^(.*)-transition$/);l=l.concat(n&&a[n[1]]&&a[n[1]].transition?rA({key:i,value:r[i],valueSpec:s.transition,style:o,styleSpec:s}):a[i]?rA({key:i,value:r[i],valueSpec:a[i],style:o,styleSpec:s}):[new ti(i,r[i],`unknown property "${i}"`)])}if(r.source){const i=o.sources&&o.sources[r.source],s=i&&to(i.type);i?"raster-dem"!==s&&l.push(new ti(n,r.source,`terrain cannot be used with a source of type ${s}, it only be used with a "raster-dem" source type`)):l.push(new ti(n,r.source,`source "${r.source}" not found`))}else l.push(new ti(n,r,'terrain is missing required property "source"'));return l}function rI(i){const r=i.value,n=i.style,o=i.styleSpec,s=o.fog;let a=[];const l=iK(r);if(void 0===r)return a;if("object"!==l)return a.concat([new ti("fog",r,`object expected, ${l} found`)]);for(const i in r){const l=i.match(/^(.*)-transition$/);a=a.concat(l&&s[l[1]]&&s[l[1]].transition?rA({key:i,value:r[i],valueSpec:o.transition,style:n,styleSpec:o}):s[i]?rA({key:i,value:r[i],valueSpec:s[i],style:n,styleSpec:o}):[new ti(i,r[i],`unknown property "${i}"`)])}return a}const rM={"*":()=>[],array:ri,boolean:function(i){const r=i.value,n=i.key,o=iK(r);return"boolean"!==o?[new ti(n,r,`boolean expected, ${o} found`)]:[]},number:rr,color:function(i){const r=i.key,n=i.value,o=iK(n);return"string"!==o?[new ti(r,n,`color expected, ${o} found`)]:null===tI.parseCSSColor(n)?[new ti(r,n,`color expected, "${n}" found`)]:[]},constants:tr,enum:rs,filter:r_,function:rn,layer:rv,object:rt,source:rT,light:rE,terrain:rS,fog:rI,string:rb,formatted:function(i){return 0===rb(i).length?[]:ro(i)},resolvedImage:function(i){return 0===rb(i).length?[]:ro(i)},projection:function(i){const r=i.value,n=i.styleSpec,o=n.projection,s=i.style;let a=[];const l=iK(r);if("object"===l)for(const i in r)a=a.concat(rA({key:i,value:r[i],valueSpec:o[i],style:s,styleSpec:n}));else"string"!==l&&(a=a.concat([new ti("projection",r,`object or string expected, ${l} found`)]));return a}};function rA(i){const r=i.value,n=i.valueSpec,o=i.styleSpec;return n.expression&&iY(to(r))?rn(i):n.expression&&i4(ts(r))?ro(i):n.type&&rM[n.type]?rM[n.type](i):rt(tn({},i,{valueSpec:n.type?o[n.type]:n}))}function rC(i){const r=i.value,n=i.key,o=rb(i);return o.length||(-1===r.indexOf("{fontstack}")&&o.push(new ti(n,r,'"glyphs" url must include a "{fontstack}" token')),-1===r.indexOf("{range}")&&o.push(new ti(n,r,'"glyphs" url must include a "{range}" token'))),o}function rz(i,r=tt){let n=[];return n=n.concat(rA({key:"",value:i,valueSpec:r.$root,styleSpec:r,style:i,objectElementValidators:{glyphs:rC,"*":()=>[]}})),i.constants&&(n=n.concat(tr({key:"constants",value:i.constants,style:i,styleSpec:r}))),rk(n)}function rk(i){return[].concat(i).sort((i,r)=>i.line-r.line)}function rP(i){return function(...r){return rk(i.apply(this,r))}}rz.source=rP(rT),rz.light=rP(rE),rz.terrain=rP(rS),rz.fog=rP(rI),rz.layer=rP(rv),rz.filter=rP(r_),rz.paintProperty=rP(ry),rz.layoutProperty=rP(rx);const rD=rz.light,rL=rz.fog,rB=rz.paintProperty,rR=rz.layoutProperty;function rF(i,r){let n=!1;if(r&&r.length)for(const o of r)i.fire(new e7(Error(o.message))),n=!0;return n}function rO(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}}},rO.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}},rO.prototype._convertFromCellCoord=function(i){return(i-this.padding)/this.scale},rO.prototype._convertToCellCoord=function(i){return Math.max(0,Math.min(this.d-1,Math.floor(i*this.scale)+this.padding))},rO.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 a=i[n];s[n]=rN[o].shallow.indexOf(n)>=0?a:r$(a,r)}i instanceof Error&&(s.message=i.message)}if(s.$name)throw Error("$name property is reserved for worker serialization logic.");return"Object"!==o&&(s.$name=o),s}throw Error("can't serialize object of type "+typeof i)}function rq(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||rG(i)||rZ(i)||ArrayBuffer.isView(i)||i instanceof rU)return i;if(Array.isArray(i))return i.map(rq);if("object"==typeof i){const r=i.$name||"Object",{klass:n}=rN[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 n of Object.keys(i)){if("$name"===n)continue;const s=i[n];o[n]=rN[r].shallow.indexOf(n)>=0?s:rq(s)}return o}throw Error("can't deserialize object of type "+typeof i)}class rX{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,rH=i=>i>=1872&&i<=1919,rK=i=>i>=2208&&i<=2303,rY=i=>i>=11904&&i<=12031,rJ=i=>i>=12032&&i<=12255,rQ=i=>i>=12272&&i<=12287,r0=i=>i>=12288&&i<=12351,r1=i=>i>=12352&&i<=12447,r2=i=>i>=12448&&i<=12543,r3=i=>i>=12544&&i<=12591,r5=i=>i>=12704&&i<=12735,r4=i=>i>=12736&&i<=12783,r6=i=>i>=12784&&i<=12799,r8=i=>i>=12800&&i<=13055,r9=i=>i>=13056&&i<=13311,r7=i=>i>=13312&&i<=19903,ne=i=>i>=19968&&i<=40959,nt=i=>i>=40960&&i<=42127,ni=i=>i>=42128&&i<=42191,nr=i=>i>=44032&&i<=55215,nn=i=>i>=63744&&i<=64255,no=i=>i>=64336&&i<=65023,ns=i=>i>=65040&&i<=65055,na=i=>i>=65072&&i<=65103,nl=i=>i>=65104&&i<=65135,nc=i=>i>=65136&&i<=65279,nh=i=>i>=65280&&i<=65519;function nu(i){for(const r of i)if(nd(r.charCodeAt(0)))return!0;return!1}function nd(i){return!(746!==i&&747!==i&&(i<4352||!(r5(i)||r3(i)||na(i)&&!(i>=65097&&i<=65103)||nn(i)||r9(i)||rY(i)||r4(i)||!(!r0(i)||i>=12296&&i<=12305||i>=12308&&i<=12319||12336===i)||r7(i)||ne(i)||r8(i)||i>=12592&&i<=12687||i>=43360&&i<=43391||i>=55216&&i<=55295||i>=4352&&i<=4607||nr(i)||r1(i)||rQ(i)||i>=12688&&i<=12703||rJ(i)||r6(i)||r2(i)&&12540!==i||!(!nh(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)||!(!nl(i)||i>=65112&&i<=65118||i>=65123&&i<=65126)||i>=5120&&i<=5759||i>=6320&&i<=6399||ns(i)||i>=19904&&i<=19967||nt(i)||ni(i))))}function np(i){return!(nd(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)||r0(i)||r2(i)||i>=57344&&i<=63743||na(i)||nl(i)||nh(i)||8734===i||8756===i||8757===i||i>=9984&&i<=10087||i>=10102&&i<=10131||65532===i||65533===i)}function nf(i){return i>=1424&&i<=2303||no(i)||nc(i)}const nm="deferred",n_="loading",ng="loaded";let ny=null,nx="unavailable",nv=null;const nb=function(i){i&&"string"==typeof i&&i.indexOf("NetworkError")>-1&&(nx="error"),ny&&ny(i)};function nw(){nT.fire(new e9("pluginStateChange",{pluginStatus:nx,pluginURL:nv}))}const nT=new te,nE=function(){return nx},nS=function(){if(nx!==nm||!nv)throw Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");nx=n_,nw(),nv&&e1({url:nv},i=>{i?nb(i):(nx=ng,nw())})},nI={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>nx===ng||null!=nI.applyArabicShaping,isLoading:()=>nx===n_,setState(i){nx=i.pluginStatus,nv=i.pluginURL},isParsed:()=>null!=nI.applyArabicShaping&&null!=nI.processBidirectionalText&&null!=nI.processStyledBidirectionalText,getPluginURL:()=>nv};class nM{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 rX,this.transition={},this.pitch=0)}isSupportedScript(i){return function(i,r){for(const o of i){var n;if(n=o.charCodeAt(0),!r&&nf(n)||n>=2304&&n<=3583||n>=3840&&n<=4255||n>=6016&&n<=6143)return!1}return!0}(i,nI.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 nA{constructor(i,r){this.property=i,this.value=r,this.expression=function(i,r){if(iY(i))return new re(i,r);if(i4(i)){const n=i7(i,r);if("error"===n.result)throw Error(n.value.map(i=>`${i.key}: ${i.message}`).join(", "));return n.value}{let n=i;return"string"==typeof i&&"color"===r.type&&(n=tM.parse(i)),{kind:"constant",evaluate:()=>n}}}(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 nC{constructor(i){this.property=i,this.value=new nA(i,void 0)}transitioned(i,r){return new nk(this.property,this.value,r,J({},i.transition,this.transition),i.now)}untransitioned(){return new nk(this.property,this.value,null,{},0)}}class nz{constructor(i){this._properties=i,this._values=Object.create(i.defaultTransitionablePropertyValues)}getValue(i){return el(this._values[i].value.value)}setValue(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nC(this._values[i].property)),this._values[i].value=new nA(this._values[i].property,null===r?void 0:el(r))}getTransition(i){return el(this._values[i].transition)}setTransition(i,r){this._values.hasOwnProperty(i)||(this._values[i]=new nC(this._values[i].property)),this._values[i].transition=el(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 nP(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 nP(this._properties);for(const r of Object.keys(this._values))i._values[r]=this._values[r].untransitioned();return i}}class nk{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 nU{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 nM(Math.floor(r.zoom-1),r)),i.expression.evaluate(new nM(Math.floor(r.zoom),r)),i.expression.evaluate(new nM(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 nV{constructor(i){this.specification=i}possiblyEvaluate(i,r,n,o){return!!i.expression.evaluate(r,null,{},n,o)}interpolate(){return!1}}class nN{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 nA(n,void 0),s=this.defaultTransitionablePropertyValues[r]=new nC(n);this.defaultTransitioningPropertyValues[r]=s.untransitioned(),this.defaultPossiblyEvaluatedValues[r]=o.possiblyEvaluate({})}}}function nj(i,r){return 256*(i=X(Math.floor(i),0,255))+X(Math.floor(r),0,255)}rj("DataDrivenProperty",nF),rj("DataConstantProperty",nR),rj("CrossFadedDataDrivenProperty",nO),rj("CrossFadedProperty",nU),rj("ColorRampProperty",nV);const nG={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class nZ{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 n${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 nq(i,r=1){let n=0,o=0;return{members:i.map(i=>{const s=nG[i.type].BYTES_PER_ELEMENT,a=n=nX(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:nX(n,Math.max(o,r)),alignment:r}}function nX(i,r){return Math.ceil(i/r)*r}class nW extends n${_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}}nW.prototype.bytesPerElement=4,rj("StructArrayLayout2i4",nW);class nH extends n${_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}}nH.prototype.bytesPerElement=8,rj("StructArrayLayout4i8",nH);class nK extends n${_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;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[3*i+2]=c,i}}nK.prototype.bytesPerElement=12,rj("StructArrayLayout2i4ub1f12",nK);class nY extends n${_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}}nY.prototype.bytesPerElement=12,rj("StructArrayLayout3f12",nY);class nJ extends n${_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}}nJ.prototype.bytesPerElement=20,rj("StructArrayLayout10ui20",nJ);class nQ extends n${_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}}nQ.prototype.bytesPerElement=16,rj("StructArrayLayout8ui16",nQ);class n0 extends n${_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}}n0.prototype.bytesPerElement=32,rj("StructArrayLayout4i4ui4i4i32",n0);class n1 extends n${_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}}n1.prototype.bytesPerElement=4,rj("StructArrayLayout1ul4",n1);class n2 extends n${_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}}n2.prototype.bytesPerElement=40,rj("StructArrayLayout5i4f1i1ul2ui40",n2);class n3 extends n${_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}}n3.prototype.bytesPerElement=16,rj("StructArrayLayout3i2i2i16",n3);class n5 extends n${_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}}n5.prototype.bytesPerElement=16,rj("StructArrayLayout2f1f2i16",n5);class n4 extends n${_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}}n4.prototype.bytesPerElement=12,rj("StructArrayLayout2ub2f12",n4);class n6 extends n${_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}}n6.prototype.bytesPerElement=6,rj("StructArrayLayout3ui6",n6);class n8 extends n${_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}}n8.prototype.bytesPerElement=60,rj("StructArrayLayout3i2f2ui3ul3ui2f3ub1ul1i1ub60",n8);class n9 extends n${_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}}n9.prototype.bytesPerElement=76,rj("StructArrayLayout3i2f6i15ui1ul3f76",n9);class n7 extends n${_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}}n7.prototype.bytesPerElement=4,rj("StructArrayLayout1f4",n7);class oe extends n${_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}}oe.prototype.bytesPerElement=6,rj("StructArrayLayout3i6",oe);class ot extends n${_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}}ot.prototype.bytesPerElement=28,rj("StructArrayLayout7f28",ot);class oi extends n${_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}}oi.prototype.bytesPerElement=12,rj("StructArrayLayout1ul3ui12",oi);class or extends n${_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}}or.prototype.bytesPerElement=4,rj("StructArrayLayout2ui4",or);class on extends n${_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}}on.prototype.bytesPerElement=2,rj("StructArrayLayout1ui2",on);class oo extends n${_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}}oo.prototype.bytesPerElement=8,rj("StructArrayLayout2f8",oo);class os extends n${_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}}os.prototype.bytesPerElement=16,rj("StructArrayLayout4f16",os);class oa extends nZ{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]}}oa.prototype.size=40;class ol extends n2{get(i){return new oa(this,i)}}rj("CollisionBoxArray",ol);class oc extends nZ{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}}oc.prototype.size=60;class oh extends n8{get(i){return new oc(this,i)}}rj("PlacedSymbolArray",oh);class ou extends nZ{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]}}ou.prototype.size=76;class od extends n9{get(i){return new ou(this,i)}}rj("SymbolInstanceArray",od);class op extends n7{getoffsetX(i){return this.float32[1*i+0]}}rj("GlyphOffsetArray",op);class of extends oe{getx(i){return this.int16[3*i+0]}gety(i){return this.int16[3*i+1]}gettileUnitDistanceFromAnchor(i){return this.int16[3*i+2]}}rj("SymbolLineVertexArray",of);class om extends nZ{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]}}om.prototype.size=12;class o_ extends oi{get(i){return new om(this,i)}}rj("FeatureIndexArray",o_);class og extends nZ{get a_centroid_pos0(){return this._structArray.uint16[this._pos2+0]}get a_centroid_pos1(){return this._structArray.uint16[this._pos2+1]}}og.prototype.size=4;class oy extends or{get(i){return new og(this,i)}}rj("FillExtrusionCentroidArray",oy);const ox=nq([{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"}]),ov=nq([{name:"a_dash_to",components:4,type:"Uint16"},{name:"a_dash_from",components:4,type:"Uint16"}]);var ob=tS(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}}),ow=tS(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}});ob.murmur3=ob,ob.murmur2=ow;class oT{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(i,r,n,o){this.ids.push(oE(i)),this.positions.push(r,n,o)}getPositions(i){const r=oE(i);let n=0,o=this.ids.length-1;for(;n>1;this.ids[i]>=r?o=i:n=i+1}const s=[];for(;this.ids[n]===r;)s.push({index:this.positions[3*n],start:this.positions[3*n+1],end:this.positions[3*n+2]}),n++;return s}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;oS(r,l,c),oS(n,3*l,3*c),oS(n,3*l+1,3*c+1),oS(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 oC(i,r):new oM(i,r)}}class oB{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 oA(i,r):new oM(i,r)}}class oR{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 nM(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=oD(n);for(let n=i;n`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 nM(this.zoom),r,{},s,o,a),c=this.expression.evaluate(new nM(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=oD(n),a=oD(o);for(let n=i;n!0){this.binders={},this._buffers=[];const o=[];for(const a in i.paint._values){var s;if(!n(a))continue;const l=i.paint.get(a);if(!(l instanceof nL&&iX(l.property.specification)))continue;const c=(s=i.type,oN[a]||[a.replace(`${s}-`,"").replace(/-/g,"_")]),h=l.value,u=l.property.specification.type,d=l.property.useIntegerZoom,p=l.property.specification["property-type"],f="cross-faded"===p||"cross-faded-data-driven"===p,m="line-dasharray"===String(a)&&"constant"!==i.layout.get("line-cap").value.kind;if("constant"!==h.kind||m){if("source"===h.kind||m||f){const n=oZ(a,u,"source");this.binders[a]=f?new oO(h,c,u,d,r,n,i.id):new oR(h,c,u,n),o.push(`/a_${a}`)}else{const i=oZ(a,u,"composite");this.binders[a]=new oF(h,c,u,d,r,i),o.push(`/z_${a}`)}}else this.binders[a]=f?new oB(h.value,c):new oL(h.value,c,u),o.push(`/u_${a}`)}this.cacheKey=o.sort().join("")}getMaxValue(i){const r=this.binders[i];return r instanceof oR||r instanceof oF?r.maxValue:0}populatePaintArrays(i,r,n,o,s,a){for(const l in this.binders){const c=this.binders[l];(c instanceof oR||c instanceof oF||c instanceof oO)&&c.populatePaintArray(i,r,n,o,s,a)}}setConstantPatternPositions(i,r){for(const n in this.binders){const o=this.binders[n];o instanceof oB&&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 r of h){const h=n.feature(r.index);for(const n in this.binders){const u=this.binders[n];if((u instanceof oR||u instanceof oF||u instanceof oO)&&!0===u.expression.isStateDependent){const d=o.paint.get(n);u.expression=d.value,u.updatePaintArray(r.start,r.end,h,i[c],s,a),l=!0}}}}return l}defines(){const i=[];for(const r in this.binders){const n=this.binders[r];(n instanceof oL||n instanceof oB)&&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 oR||n instanceof oF||n instanceof oO)for(let r=0;r!0){for(const o of(this.programConfigurations={},i))this.programConfigurations[o.id]=new oU(o,r,n);this.needsUpload=!1,this._featureMap=new oT,this._bufferOffset=0}populatePaintArrays(i,r,n,o,s,a,l){for(const n in this.programConfigurations)this.programConfigurations[n].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 oN={"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"]},oj={"line-pattern":{source:nJ,composite:nJ},"fill-pattern":{source:nJ,composite:nJ},"fill-extrusion-pattern":{source:nJ,composite:nJ},"line-dasharray":{source:nQ,composite:nQ}},oG={color:{source:oo,composite:os},number:{source:n7,composite:oo}};function oZ(i,r,n){const o=oj[i];return o&&o[n]||oG[r][n]}rj("ConstantBinder",oL),rj("CrossFadedConstantBinder",oB),rj("SourceExpressionBinder",oR),rj("CrossFadedCompositeBinder",oO),rj("CompositeExpressionBinder",oF),rj("ProgramConfiguration",oU,{omit:["_buffers"]}),rj("ProgramConfigurationSet",oV);const o$="-transition";class oq extends te{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 nD(r.layout)),r.paint)){for(const n in this._transitionablePaint=new nz(r.paint),i.paint)this.setPaintProperty(n,i.paint[n],{validate:!1});for(const r in i.layout)this.setLayoutProperty(r,i.layout[r],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new nB(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(rR,`layers.${this.id}.layout.${i}`,i,r,n)||("visibility"!==i?this._unevaluatedLayout.setValue(i,r):this.visibility=r)}getPaintProperty(i){return eo(i,o$)?this._transitionablePaint.getTransition(i.slice(0,-o$.length)):this._transitionablePaint.getValue(i)}setPaintProperty(i,r,n={}){if(null!=r&&this._validate(rB,`layers.${this.id}.paint.${i}`,i,r,n))return!1;if(eo(i,o$))return this._transitionablePaint.setTransition(i.slice(0,-o$.length),r||void 0),!1;{const n=this._transitionablePaint._values[i],o="cross-faded-data-driven"===n.property.specification["property-type"],s=n.value.isDataDriven(),a=n.value;this._transitionablePaint.setValue(i,r),this._handleSpecialPaintPropertyUpdate(i);const l=this._transitionablePaint._values[i].value;return l.isDataDriven()||s||o||this._handleOverridablePaintPropertyUpdate(i,a,l)}}_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),ea(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)&&rF(this,i.call(rz,{key:r,layerType:this.type,objectKey:n,value:o,styleSpec:tt,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 nL&&iX(r.property.specification)&&("source"===r.value.kind||"composite"===r.value.kind)&&r.value.isStateDependent)return!0}return!1}compileFilter(){this._filterCompiled||(this._featureFilter=rl(this.filter),this._filterCompiled=!0)}invalidateCompiledFilter(){this._filterCompiled=!1}dynamicFilter(){return this._featureFilter.dynamicFilter}dynamicFilterNeedsFeature(){return this._featureFilter.needFeature}}const oX=nq([{name:"a_pos",components:2,type:"Int16"}],4),{members:oW}=oX;class oH{constructor(i=[]){this.segments=i}prepareSegment(i,r,n,o){let s=this.segments[this.segments.length-1];return i>oH.MAX_VERTEX_ARRAY_LENGTH&&eh(`Max vertices per segment is ${oH.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${i}`),(!s||s.vertexLength+i>oH.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 oH([{vertexOffset:i,primitiveOffset:r,vertexLength:n,primitiveLength:o,vaos:{},sortKey:0}])}}oH.MAX_VERTEX_ARRAY_LENGTH=65535,rj("SegmentVector",oH);class oK{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 oY?new oY(i.lng,i.lat):oY.convert(i),this}setSouthWest(i){return this._sw=i instanceof oY?new oY(i.lng,i.lat):oY.convert(i),this}extend(i){let r,n;const o=this._sw,s=this._ne;if(i instanceof oY)r=i,n=i;else{if(!(i instanceof oK))return Array.isArray(i)?4===i.length||i.every(Array.isArray)?this.extend(oK.convert(i)):this.extend(oY.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 oY(r.lng,r.lat),this._ne=new oY(n.lng,n.lat)),this}getCenter(){return new oY((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 oY(this.getWest(),this.getNorth())}getSouthEast(){return new oY(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}=oY.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 oK?i:new oK(i)}}class oY{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 oY(H(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 oK(new oY(this.lng-n,this.lat-r),new oY(this.lng+n,this.lat+r))}static convert(i){if(i instanceof oY)return i;if(Array.isArray(i)&&(2===i.length||3===i.length))return new oY(Number(i[0]),Number(i[1]));if(!Array.isArray(i)&&"object"==typeof i&&null!==i)return new oY(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 oJ=2*Math.PI*6371008.8;function oQ(i){return oJ*Math.cos(i*Math.PI/180)}function o0(i){return(180+i)/360}function o1(i){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+i*Math.PI/360)))/360}function o2(i){return 360*i-180}function o3(i){return 360/Math.PI*Math.atan(Math.exp((180-360*i)*Math.PI/180))-90}class o5{constructor(i,r,n=0){this.x=+i,this.y=+r,this.z=+n}static fromLngLat(i,r=0){const n=oY.convert(i);return new o5(o0(n.lng),o1(n.lat),r/oQ(n.lat))}toLngLat(){return new oY(o2(this.x),o3(this.y))}toAltitude(){return this.z*oQ(o3(this.y))}meterInMercatorCoordinateUnits(){return 1/oJ*(1/Math.cos(o3(this.y)*Math.PI/180))}}const o4=-16383-1;function o6(i,r,n){const o=i.loadGeometry(),s=i.extent,a=8192/s;if(r&&n&&n.projection.isReprojectedInTileSpace){const a=1<{const n=o2((r.x+i.x/s)/a),o=o3((r.y+i.y/s)/a),u=d.project(n,o);i.x=(u.x*l-c)*s,i.y=(u.y*l-h)*s};for(let r=0;r=d?(i(r,n,o,p,f,l,m,h,d),i(r,p,f,s,a,m,c,h,d)):r.push(c)}(l,o,s,i,c,a,n,r,1):l.push(n),o=i,s=c,a=n}return l}(o[r],p,0);else{const i=[];for(const n of o[r])n.x<0||n.x>=s||n.y<0||n.y>=s||(p(n),i.push(n));o[r]=i}}for(const i of o)for(const r of i)!function(i,r){const n=Math.round(i.x*r),o=Math.round(i.y*r);i.x=X(n,o4,16383),i.y=X(o,o4,16383),(ni.x+1||oi.y+1)&&eh("Geometry exceeds allowed extent, reduce your vector tile buffer size")}(r,a);return o}function o8(i,r){return{type:i.type,id:i.id,properties:i.properties,geometry:r?o6(i):[]}}function o9(i,r,n,o,s){i.emplaceBack(2*r+(o+1)/2,2*n+(s+1)/2)}class o7{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 nW,this.indexArray=new n6,this.segments=new oH,this.programConfigurations=new oV(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:r,id:c,index:h,sourceLayerIndex:u}of("circle"===s.type&&(l=s.layout.get("circle-sort-key")),i)){const i=this.layers[0]._featureFilter.needGeometry,s=o8(r,i);if(!this.layers[0]._featureFilter.filter(new nM(this.zoom),s,n))continue;const d=l?l.evaluate(s,{},n):void 0,p={id:c,properties:r.properties,type:r.type,sourceLayerIndex:u,index:h,geometry:i?s.geometry:o6(r,n,o),patterns:{},sortKey:d};a.push(p)}for(const o of(l&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:s,index:a,sourceLayerIndex:l}=o,c=i[a].feature;this.addFeature(o,s,a,r.availableImages,n),r.featureIndex.insert(c,s,a,l,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,oW),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 n of r)for(const r of n){const n=r.x,o=r.y;if(n<0||n>=8192||o<0||o>=8192)continue;const s=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,i.sortKey),a=s.vertexLength;o9(this.layoutVertexArray,n,o,-1,-1),o9(this.layoutVertexArray,n,o,1,-1),o9(this.layoutVertexArray,n,o,1,1),o9(this.layoutVertexArray,n,o,-1,1),this.indexArray.emplaceBack(a,a+1,a+2),this.indexArray.emplaceBack(a,a+3,a+2),s.vertexLength+=4,s.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,i,n,{},o,s)}}function se(i,r){for(let n=0;n1?n:n.sub(r)._mult(s)._add(r))}function so(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 ss(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 sa(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 a=[new u(r,n),new u(r,s),new u(o,s),new u(o,n)];if(i.length>2){for(const r of a)if(ss(i,r))return!0}for(let r=0;rs.x&&r.x>s.x||i.ys.y&&r.y>s.y)return!1;const a=eu(i,r,n[0]);return a!==eu(i,r,n[1])||a!==eu(i,r,n[2])||a!==eu(i,r,n[3])}(i[r],i[r+1],a))return!0;return!1}function sl(i,r,n){const o=r.paint.get(i).value;return"constant"===o.kind?o.value:n.programConfigurations.get(r.id).getMaxValue(i)}function sc(i){return Math.sqrt(i[0]*i[0]+i[1]*i[1])}function sh(i,r,n,o,s){if(!r[0]&&!r[1])return i;const a=u.convert(r)._mult(s);"viewport"===n&&a._rotate(-o);const l=[];for(let r=0;r{var a;const l=R([],n,i),c=1/l[3]/r*s;return a=[c,c,o?1/l[3]:c,c],l[0]=l[0]*a[0],l[1]=l[1]*a[1],l[2]=l[2]*a[2],l[3]=l[3]*a[3],l}),l=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(i=>{const r=k([],D([],M([],a[i[0]],a[i[1]]),M([],a[i[2]],a[i[1]]))),n=-P(r,a[i[1]]);return r.concat(n)});return new sf(a,l)}}class sm{constructor(i,r){this.min=i,this.max=r,this.center=C([],I([],this.min,this.max),.5)}quadrant(i){const r=[i%2==0,i<2],n=T(this.min),o=T(this.max);for(let i=0;i=0;if(0===a)return 0;a!==r.length&&(n=!1)}if(n)return 2;for(let r=0;r<3;r++){let n=Number.MAX_VALUE,o=-Number.MAX_VALUE;for(let s=0;sthis.max[r]-this.min[r])return 0}return 1}}function s_(i,r,n,o,s,a,l,c,h){if(a&&i.queryGeometry.isAboveHorizon)return!1;for(const p of(a&&(h*=i.pixelToTileUnitsFactor),r))for(const r of p){var d;const p=r.add(c),f=s&&n.elevation?n.elevation.exaggeration()*s.getElevationAt(p.x,p.y,!0):0,m=a?p:function(i,r,n){const o=R([],[i.x,i.y,r,1],n);return new u(o[0]/o[3],o[1]/o[3])}(p,f,o),_=a?i.tilespaceRays.map(i=>(function(i,r){const n=w();return sg[2]=r,i.intersectsPlane(sg,sy,n),new u(n[0],n[1])})(i,f)):i.queryGeometry.screenGeometry,g=R([],[r.x,r.y,f,1],o);if(!l&&a?h*=g[3]/n.cameraToCenterDistance:l&&!a&&(h*=n.cameraToCenterDistance/g[3]),d=h,ss(_,m)||sr(m,_,d))return!0}return!1}const sg=S(0,0,0),sy=S(0,0,1);class sx extends o7{}function sv(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 sb(i,{width:r,height:n},o){if(r===i.width&&n===i.height)return;const s=sv({},{width:r,height:n},o);sw(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 sw(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 r=0,s=0;r=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&&sR(cs.x||a.x===s.x&&(n=s,o=a,0>sF(n.prev,n,o.prev)&&0>sF(o.next,n,n.next))))&&(s=a,_=d)),a=a.next;while(a!==p)return s}(i,r);if(!n)return r;var o=sG(n,i),s=sD(n,n.next);return sD(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=sB(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(sF(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=sB(s.x=h&&p&&p.z<=u;){if(d!==i.prev&&d!==i.next&&sR(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sF(d.prev,d,d.next)>=0||(d=d.prevZ,p!==i.prev&&p!==i.next&&sR(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sF(p.prev,p,p.next)>=0))return!1;p=p.nextZ}for(;d&&d.z>=h;){if(d!==i.prev&&d!==i.next&&sR(s.x,s.y,i.x,i.y,a.x,a.y,d.x,d.y)&&sF(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;p&&p.z<=u;){if(p!==i.prev&&p!==i.next&&sR(s.x,s.y,i.x,i.y,a.x,a.y,p.x,p.y)&&sF(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(sF(r,i,n)>=0)return!1;for(var o=i.next.next;o!==i.prev;){if(sR(r.x,r.y,i.x,i.y,n.x,n.y,o.x,o.y)&&sF(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),s$(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;!sO(s,a)&&sU(s,o,o.next,a)&&sj(s,a)&&sj(a,s)&&(r.push(s.i/n),r.push(o.i/n),r.push(a.i/n),s$(o),s$(o.next),o=i=a),o=o.next}while(o!==i)return sD(o)}(sD(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&&sU(n,n.next,i,r))return!0;n=n.next}while(n!==i)return!1}(h,u)&&(sj(h,u)&&sj(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)&&(sF(h.prev,h,u.prev)||sF(h,u.prev,u))||sO(h,u)&&sF(h.prev,h,h.next)>0&&sF(u.prev,u,u.next)>0))){var p=sG(c,d);return c=sD(c,c.next),p=sD(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(sD(r),n,o,s,a,l,1);break}}}(f,m,n,o,s,u),m}function sP(i,r,n,o,s){var a,l;if(s===sX(i,r,n,o)>0)for(a=r;a=r;a-=o)l=sZ(a,i[a],i[a+1],l);return l&&sO(l,l.next)&&(s$(l),l=l.next),l}function sD(i,r){if(!i)return i;r||(r=i);var n,o=i;do if(n=!1,o.steiner||!sO(o,o.next)&&0!==sF(o.prev,o,o.next))o=o.next;else{if(s$(o),(o=r=o.prev)===o.next)break;n=!0}while(n||o!==r)return r}function sL(i,r){return i.x-r.x}function sB(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 sR(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 sF(i,r,n){return(r.y-i.y)*(n.x-r.x)-(r.x-i.x)*(n.y-r.y)}function sO(i,r){return i.x===r.x&&i.y===r.y}function sU(i,r,n,o){var s=sN(sF(i,r,n)),a=sN(sF(i,r,o)),l=sN(sF(n,o,i)),c=sN(sF(n,o,r));return s!==a&&l!==c||!(0!==s||!sV(i,n,r))||!(0!==a||!sV(i,o,r))||!(0!==l||!sV(n,i,o))||!(0!==c||!sV(n,r,o))}function sV(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 sN(i){return i>0?1:i<0?-1:0}function sj(i,r){return 0>sF(i.prev,i,i.next)?sF(i,r,i.next)>=0&&sF(i,i.prev,r)>=0:0>sF(i,r,i.prev)||0>sF(i,i.next,r)}function sG(i,r){var n=new sq(i.i,i.x,i.y),o=new sq(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 sZ(i,r,n,o){var s=new sq(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 s$(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 sq(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 sX(i,r,n,o){for(var s=0,a=r,l=n-o;ar?1:0}function sK(i,r){let n,o;const s=i.length;if(s<=1)return[i];const a=[];for(let r=0;r1)for(let i=0;io;){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(sW(r,o,n),a(r[s],p)>0&&sW(r,o,s);fa(r[f],p);)f++;for(;a(r[m],p)>0;)m--}0===a(r[o],p)?sW(r,o,m):sW(r,++m,s),m<=n&&(o=m+1),n<=m&&(s=m-1)}}(l,r,1,c||l.length-1,sY||sH),a[i]=a[i].slice(0,r))}return a}function sY(i,r){return r.area-i.area}function sJ(i,r,n){const o=n.patternDependencies;let s=!1;for(const n of r){const r=n.paint.get(`${i}-pattern`);r.isConstant()||(s=!0);const a=r.constantOr(null);a&&(s=!0,o[a.to]=!0,o[a.from]=!0)}return s}function sQ(i,r,n,o,s){const a=s.patternDependencies;for(const l of r){const r=l.paint.get(`${i}-pattern`).value;if("constant"!==r.kind){let i=r.evaluate({zoom:o-1},n,{},s.availableImages),c=r.evaluate({zoom:o},n,{},s.availableImages),h=r.evaluate({zoom:o+1},n,{},s.availableImages);i=i&&i.name?i.name:i,c=c&&c.name?c.name:c,h=h&&h.name?h.name:h,a[i]=!0,a[c]=!0,a[h]=!0,n.patterns[l.id]={min:i,mid:c,max:h}}}return n}sk.deviation=function(i,r,n,o){var s=r&&r.length,a=Math.abs(sX(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},sz.default=sk;class s0{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 nW,this.indexArray=new n6,this.indexArray2=new or,this.programConfigurations=new oV(i.layers,i.zoom),this.segments=new oH,this.segments2=new oH,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=sJ("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 i=this.layers[0]._featureFilter.needGeometry,d=o8(l,i);if(!this.layers[0]._featureFilter.filter(new nM(this.zoom),d,n))continue;const p=s?s.evaluate(d,{},n,r.availableImages):void 0,f={id:c,properties:l.properties,type:l.type,sourceLayerIndex:u,index:h,geometry:i?d.geometry:o6(l,n,o),patterns:{},sortKey:p};a.push(f)}for(const o of(s&&a.sort((i,r)=>i.sortKey-r.sortKey),a)){const{geometry:s,index:a,sourceLayerIndex:l}=o;if(this.hasPattern){const i=sQ("fill",this.layers,o,this.zoom,r);this.patternFeatures.push(i)}else this.addFeature(o,s,a,n,{},r.availableImages);r.featureIndex.insert(i[a].feature,s,a,l,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 i of this.patternFeatures)this.addFeature(i,i.geometry,i.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,sC),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 i of sK(r,500)){let r=0;for(const n of i)r+=n.length;const n=this.segments.prepareSegment(r,this.layoutVertexArray,this.indexArray),o=n.vertexLength,s=[],a=[];for(const r of i){if(0===r.length)continue;r!==i[0]&&a.push(s.length/2);const n=this.segments2.prepareSegment(r.length,this.layoutVertexArray,this.indexArray2),o=n.vertexLength;this.layoutVertexArray.emplaceBack(r[0].x,r[0].y),this.indexArray2.emplaceBack(o+r.length-1,o),s.push(r[0].x),s.push(r[0].y);for(let i=1;i>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 ae(i,r,n){if(3===i){var o=new s9(n,n.readVarint()+n.pos);o.length&&(r[o.name]=o)}}s6.types=["Unknown","Point","LineString","Polygon"],s6.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,l=0,c=[];i.pos>3}if(s--,1===o||2===o)a+=i.readSVarint(),l+=i.readSVarint(),1===o&&(r&&c.push(r),r=[]),r.push(new u(a,l));else{if(7!==o)throw Error("unknown command "+o);r&&r.push(r[0].clone())}}return r&&c.push(r),c},s6.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]},s6.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=s6.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 s6(this._pbf,r,this.extent,this._keys,this._values)};var at={VectorTile:function(i,r){this.layers=i.readFields(ae,{},r)},VectorTileFeature:s6,VectorTileLayer:s9};const ai=at.VectorTileFeature.types;function ar(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 an{constructor(){this.acc=new u(0,0),this.polyCount=[]}startRing(i){this.currentPolyCount={edges:0,top:0},this.polyCount.push(this.currentPolyCount),this.min||(this.min=new u(i.x,i.y),this.max=new u(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,ii(r.y,i.y,(0-r.x)/(i.x-r.x))),r.x>8192!=i.x>8192&&this.addBorderIntersection(1,ii(r.y,i.y,(8192-r.x)/(i.x-r.x))),r.y<0!=i.y<0&&this.addBorderIntersection(2,ii(r.x,i.x,(0-r.y)/(i.y-r.y))),r.y>8192!=i.y>8192&&this.addBorderIntersection(3,ii(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 n=0===i.y?2:3;this.addBorderIntersection(n,r.x),this.addBorderIntersection(n,i.x)}}centroid(){const i=this.polyCount.reduce((i,r)=>i+r.edges,0);return 0!==i?this.acc.div(i)._round():new u(0,0)}span(){return new u(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 ao{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 nH,this.centroidVertexArray=new oy,this.indexArray=new n6,this.programConfigurations=new oV(i.layers,i.zoom),this.segments=new oH,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=sJ("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 i=0;i=1){const n=s[i-1];if((r.x!==n.x||!(r.x<0)&&!(r.x>8192))&&(r.y!==n.y||!(r.y<0)&&!(r.y>8192))){c&&c.append(r,n),o.vertexLength+4>oH.MAX_VERTEX_ARRAY_LENGTH&&(o=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const i=r.sub(n)._perp(),s=i.x/(Math.abs(i.x)+Math.abs(i.y)),l=i.y>0?1:0,h=n.dist(r);a+h>32768&&(a=0),ar(this.layoutVertexArray,r.x,r.y,s,l,0,0,a),ar(this.layoutVertexArray,r.x,r.y,s,l,0,1,a),a+=h,ar(this.layoutVertexArray,n.x,n.y,s,l,0,0,a),ar(this.layoutVertexArray,n.x,n.y,s,l,0,1,a);const u=o.vertexLength;this.indexArray.emplaceBack(u,u+2,u+1),this.indexArray.emplaceBack(u+1,u+2,u+3),o.vertexLength+=4,o.primitiveLength+=2}}}}if(o.vertexLength+r>oH.MAX_VERTEX_ARRAY_LENGTH&&(o=this.segments.prepareSegment(r,this.layoutVertexArray,this.indexArray)),"Polygon"!==ai[i.type])continue;const s=[],a=[],h=o.vertexLength;for(let i=0;i0){if(c.borders){c.vertexArrayOffset=this.centroidVertexArray.length;const i=c.borders,r=this.featuresOnBorder.push(c)-1;for(let n=0;n<4;n++)i[n][0]!==Number.MAX_VALUE&&this.borders[n].push(r)}this.encodeCentroid(c.borders?void 0:c.centroid(),c)}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 n=r.span()._mult(this.tileToMeter);o=(Math.max(i.x,1)<<3)+Math.min(7,Math.round(n.x/10)),s=(Math.max(i.y,1)<<3)+Math.min(7,Math.round(n.y/10))}else o=Math.ceil(7*(i.x+450)),s=0}else o=0,s=+n;let a=n?this.centroidVertexArray.length:r.vertexArrayOffset;for(const i of r.polyCount){n&&this.centroidVertexArray.resize(this.centroidVertexArray.length+4*i.edges+i.top);for(let r=0;r<2*i.edges;r++)this.centroidVertexArray.emplace(a++,0,s),this.centroidVertexArray.emplace(a++,o,s);for(let r=0;ri.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 nK,this.layoutVertexArray2=new nY,this.indexArray=new n6,this.programConfigurations=new oV(i.layers,i.zoom),this.segments=new oH,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id)}populate(i,r,n,o){this.hasPattern=sJ("line",this.layers,r);const s=this.layers[0].layout.get("line-sort-key"),a=[];for(const{feature:r,id:l,index:c,sourceLayerIndex:h}of i){const i=this.layers[0]._featureFilter.needGeometry,u=o8(r,i);if(!this.layers[0]._featureFilter.filter(new nM(this.zoom),u,n))continue;const d=s?s.evaluate(u,{},n):void 0,p={id:l,properties:r.properties,type:r.type,sourceLayerIndex:h,index:c,geometry:i?u.geometry:o6(r,n,o),patterns:{},sortKey:d};a.push(p)}s&&a.sort((i,r)=>i.sortKey-r.sortKey);const{lineAtlas:l,featureIndex:c}=r,h=this.addConstantDashes(l);for(const o of a){const{geometry:s,index:a,sourceLayerIndex:u}=o;if(h&&this.addFeatureDashes(o,l),this.hasPattern){const i=sQ("line",this.layers,o,this.zoom,r);this.patternFeatures.push(i)}else this.addFeature(o,s,a,n,l.positions,r.availableImages);c.insert(i[a].feature,s,a,u,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 r=s.value,n=o.value;if(!n)continue;i.addDash(n.from,r),i.addDash(n.to,r),n.other&&i.addDash(n.other,r)}}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 i=d.value;if(!i)continue;s=i.other||i.to,a=i.to,l=i.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 f=r.getKey(s,c),m=r.getKey(a,h),_=r.getKey(l,u);i.patterns[o.id]={min:f,mid:m,max:_}}}update(i,r,n,o){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(i,r,this.stateDependentLayers,n,o)}addFeatures(i,r,n,o){for(const i of this.patternFeatures)this.addFeature(i,i.geometry,i.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,ap)),this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,au),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 n of(this.lineClips=this.lineFeatureClips(i),r))this.addLine(n,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 r=0;r=2&&i[f-1].equals(i[f-2]);)f--;let m=0;for(;m0;if(T&&r>m){const i=l.dist(c);if(i>2*_){const r=l.sub(l.sub(c)._mult(_/i)._round());this.updateDistance(c,r),this.addCurrentVertex(r,u,0,0,g),c=r}}const S=c&&h;let I=S?n:p?"butt":o;if(S&&"round"===I&&(bs&&(I="bevel"),"bevel"===I&&(b>2&&(I="flipbevel"),b100)y=d.mult(-1);else{const i=b*u.add(d).mag()/u.sub(d).mag();y._perp()._mult(i*(E?-1:1))}this.addCurrentVertex(l,y,0,0,g),this.addCurrentVertex(l,y.mult(-1),0,0,g)}else if("bevel"===I||"fakeround"===I){const i=-Math.sqrt(b*b-1),r=E?i:0,n=E?0:i;if(c&&this.addCurrentVertex(l,u,r,n,g),"fakeround"===I){const i=Math.round(180*w/Math.PI/20);for(let r=1;r2*_){const r=l.add(h.sub(l)._mult(_/i)._round());this.updateDistance(l,r),this.addCurrentVertex(r,d,0,0,g),l=r}}}}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()}}rj("LineBucket",a_,{omit:["layers","patternFeatures"]});const ag=new nN({"line-cap":new nF(tt.layout_line["line-cap"]),"line-join":new nF(tt.layout_line["line-join"]),"line-miter-limit":new nR(tt.layout_line["line-miter-limit"]),"line-round-limit":new nR(tt.layout_line["line-round-limit"]),"line-sort-key":new nF(tt.layout_line["line-sort-key"])});var ay={paint:new nN({"line-opacity":new nF(tt.paint_line["line-opacity"]),"line-color":new nF(tt.paint_line["line-color"]),"line-translate":new nR(tt.paint_line["line-translate"]),"line-translate-anchor":new nR(tt.paint_line["line-translate-anchor"]),"line-width":new nF(tt.paint_line["line-width"]),"line-gap-width":new nF(tt.paint_line["line-gap-width"]),"line-offset":new nF(tt.paint_line["line-offset"]),"line-blur":new nF(tt.paint_line["line-blur"]),"line-dasharray":new nO(tt.paint_line["line-dasharray"]),"line-pattern":new nO(tt.paint_line["line-pattern"]),"line-gradient":new nV(tt.paint_line["line-gradient"])}),layout:ag};const ax=new class extends nF{possiblyEvaluate(i,r){return r=new nM(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=J({},r,{zoom:Math.floor(r.zoom)}),super.evaluate(i,r,n,o)}}(ay.paint.properties["line-width"].specification);ax.useIntegerZoom=!0;const av=nq([{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),ab=nq([{name:"a_projected_pos",components:3,type:"Float32"}],4);nq([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const aw=nq([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]),aT=nq([{name:"a_size_scale",components:1,type:"Float32"},{name:"a_padding",components:2,type:"Float32"}]);nq([{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 aE=nq([{name:"a_pos",components:3,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),aS=nq([{name:"a_pos_2f",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function aI(i,r){const{expression:n}=r;if("constant"===n.kind)return{kind:"constant",layoutSize:n.evaluate(new nM(i+1))};if("source"===n.kind)return{kind:"source"};{const{zoomStops:r,interpolationType:o}=n;let s=0;for(;s":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","\xa2":"¢","\xa3":"£","\xa5":"¥","\xa6":"¦","\xac":"¬","\xaf":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var ak=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)},aP=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(isNaN(r=Math.abs(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 aD(i){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(i)?i:new Uint8Array(i||0),this.pos=0,this.type=0,this.length=this.buf.length}aD.Varint=0,aD.Fixed64=1,aD.Bytes=2,aD.Fixed32=5;var aL="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function aB(i){return i.type===aD.Bytes?i.readVarint()+i.pos:i.pos+1}function aR(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 aF(i,r){for(var n=0;n>>8,i[n+2]=r>>>16,i[n+3]=r>>>24}function aW(i,r){return(i[r]|i[r+1]<<8|i[r+2]<<16)+(i[r+3]<<24)}function aH(i,r,n){r.glyphs=[],1===i&&n.readMessage(aK,r)}function aK(i,r,n){if(3===i){const{id:i,bitmap:o,width:s,height:a,left:l,top:c,advance:h}=n.readMessage(aY,{});r.glyphs.push({id:i,bitmap:new sT({width:s+6,height:a+6},o),metrics:{width:s,height:a,left:l,top:c,advance:h}})}else 4===i?r.ascender=n.readSVarint():5===i&&(r.descender=n.readSVarint())}function aY(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 aJ(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 o=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(r/.95)),n),h:1/0}];let s=0,a=0;for(const r of i)for(let i=o.length-1;i>=0;i--){const n=o[i];if(!(r.w>n.w||r.h>n.h)){if(r.x=n.x,r.y=n.y,a=Math.max(a,r.y+r.h),s=Math.max(s,r.x+r.w),r.w===n.w&&r.h===n.h){const r=o.pop();i>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=aW(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*aW(this.buf,this.pos+4);return this.pos+=8,i},readFloat:function(){var i=ak(this.buf,this.pos,!0,23,4);return this.pos+=4,i},readDouble:function(){var i=ak(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!!this.readVarint()},readString:function(){var i,r=this.readVarint()+this.pos,n=this.pos;return this.pos=r,r-n>=12&&aL?(i=this.buf,aL.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!==aD.Bytes)return i.push(this.readVarint(r));var n=aB(this);for(i=i||[];this.pos127;);else if(r===aD.Bytes)this.pos=this.readVarint()+this.pos;else if(r===aD.Fixed32)this.pos+=4;else{if(r!==aD.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;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,r.buf[r.pos++]=127&s|128,s>>>=7,r.buf[r.pos++]=127&s|128,s>>>=7,r.buf[r.pos++]=127&s|128,s>>>=7,r.buf[r.pos++]=127&s|128,r.buf[r.pos]=127&(s>>>=7),l=(7&(a=o))<<4,r.buf[r.pos++]|=l|((a>>>=3)?128:0),a&&(r.buf[r.pos++]=127&a|((a>>>=7)?128:0),a&&(r.buf[r.pos++]=127&a|((a>>>=7)?128:0),a&&(r.buf[r.pos++]=127&a|((a>>>=7)?128:0),a&&(r.buf[r.pos++]=127&a|((a>>>=7)?128:0),a&&(r.buf[r.pos++]=127&a)))))}(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(!!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&&aR(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeFloat:function(i){this.realloc(4),aP(this.buf,i,this.pos,!0,23,4),this.pos+=4},writeDouble:function(i){this.realloc(8),aP(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&&aR(n,o,this),this.pos=n-1,this.writeVarint(o),this.pos+=o},writeMessage:function(i,r,n){this.writeTag(i,aD.Bytes),this.writeRawMessage(r,n)},writePackedVarint:function(i,r){r.length&&this.writeMessage(i,aF,r)},writePackedSVarint:function(i,r){r.length&&this.writeMessage(i,aO,r)},writePackedBoolean:function(i,r){r.length&&this.writeMessage(i,aN,r)},writePackedFloat:function(i,r){r.length&&this.writeMessage(i,aU,r)},writePackedDouble:function(i,r){r.length&&this.writeMessage(i,aV,r)},writePackedFixed32:function(i,r){r.length&&this.writeMessage(i,aj,r)},writePackedSFixed32:function(i,r){r.length&&this.writeMessage(i,aG,r)},writePackedFixed64:function(i,r){r.length&&this.writeMessage(i,aZ,r)},writePackedSFixed64:function(i,r){r.length&&this.writeMessage(i,a$,r)},writeBytesField:function(i,r){this.writeTag(i,aD.Bytes),this.writeBytes(r)},writeFixed32Field:function(i,r){this.writeTag(i,aD.Fixed32),this.writeFixed32(r)},writeSFixed32Field:function(i,r){this.writeTag(i,aD.Fixed32),this.writeSFixed32(r)},writeFixed64Field:function(i,r){this.writeTag(i,aD.Fixed64),this.writeFixed64(r)},writeSFixed64Field:function(i,r){this.writeTag(i,aD.Fixed64),this.writeSFixed64(r)},writeVarintField:function(i,r){this.writeTag(i,aD.Varint),this.writeVarint(r)},writeSVarintField:function(i,r){this.writeTag(i,aD.Varint),this.writeSVarint(r)},writeStringField:function(i,r){this.writeTag(i,aD.Bytes),this.writeString(r)},writeFloatField:function(i,r){this.writeTag(i,aD.Fixed32),this.writeFloat(r)},writeDoubleField:function(i,r){this.writeTag(i,aD.Fixed64),this.writeDouble(r)},writeBooleanField:function(i,r){this.writeVarintField(i,!!r)}};class aQ{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 a0{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}=aJ(s),c=new sE({width:a||1,height:l||1});for(const r in i){const o=i[r],s=n[r].paddedRect;sE.copy(o.data,c,{x:0,y:0},{x:s.x+1,y:s.y+1},o.data)}for(const i in r){const n=r[i],s=o[i].paddedRect,a=s.x+1,l=s.y+1,h=n.data.width,u=n.data.height;sE.copy(n.data,c,{x:0,y:0},{x:a,y:l},n.data),sE.copy(n.data,c,{x:0,y:u-1},{x:a,y:l-1},{width:h,height:1}),sE.copy(n.data,c,{x:0,y:0},{x:a,y:l+u},{width:h,height:1}),sE.copy(n.data,c,{x:h-1,y:0},{x:a-1,y:l},{width:1,height:u}),sE.copy(n.data,c,{x:0,y:0},{x:a+h,y:l},{width:1,height:u})}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 aQ(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})}}rj("ImagePosition",aQ),rj("ImageAtlas",a0);const a1={horizontal:1,vertical:2,horizontalOnly:3};class a2{constructor(){this.scale=1,this.fontStack="",this.imageName=null}static forText(i,r){const n=new a2;return n.scale=i||1,n.fontStack=r,n}static forImage(i){const r=new a2;return r.imageName=i,r}}class a3{constructor(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null}static fromFeature(i,r){const n=new a3;for(let o=0;o=0&&n>=i&&a4[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(i,r),this.sectionIndex=this.sectionIndex.slice(i,r)}substring(i,r){const n=new a3;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(a2.forText(i.scale,i.fontStack||r));const n=this.sections.length-1;for(let r=0;r=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function a5(i,r,n,o,s,a,l,c,h,u,d,p,f,m,_,g){let y;const x=a3.fromFeature(i,s);p===a1.vertical&&x.verticalizePunctuation(f);const{processBidirectionalText:v,processStyledBidirectionalText:b}=nI;if(v&&1===x.sections.length){y=[];const i=v(x.toString(),le(x,u,a,r,o,m,_));for(const r of i){const i=new a3;i.text=r,i.sections=x.sections;for(let n=0;n0&&a>w&&(w=a)}else{const i=n[c.fontStack];if(!i)continue;i[g]&&(S=i[g]);const o=r[c.fontStack];if(!o)continue;const a=o.glyphs[g];if(!a)continue;if(v=a.metrics,M=8203!==g?24:0,y){const i=void 0!==o.ascender?Math.abs(o.ascender):0,r=void 0!==o.descender?Math.abs(o.descender):0,n=(i+r)*x;T=0;let d=0;for(let n=0;n-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+=r.dist(n)}return!0}function ls(i){let r=0;for(let n=0;n=o&&d.x>=o||(l.x>=o?l=new u(o,l.y+(o-l.x)/(d.x-l.x)*(d.y-l.y))._round():d.x>=o&&(d=new u(o,l.y+(o-l.x)/(d.x-l.x)*(d.y-l.y))._round()),l.y>=s&&d.y>=s||(l.y>=s?l=new u(l.x+(s-l.y)/(d.y-l.y)*(d.x-l.x),s)._round():d.y>=s&&(d=new u(l.x+(s-l.y)/(d.y-l.y)*(d.x-l.x),s)._round()),c&&l.equals(c[c.length-1])||(c=[l],a.push(c)),c.push(d)))))}}return a}function lc(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 c=0,h=0;c{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]=[],ld.loadGlyphRange(i,a,this.url,this.requestManager,(i,r)=>{if(r){for(const i in o.ascender=r.ascender,o.descender=r.descender,r.glyphs)this._doesCharSupportLocalGlyph(+i)||(o.glyphs[+i]=r.glyphs[+i]);o.ranges[a]=!0}for(const n of l)n(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 i={};for(const{stack:r,id:o,glyph:s}of n)void 0===i[r]&&(i[r]={}),void 0===i[r].glyphs&&(i[r].glyphs={}),i[r].glyphs[o]=s&&{id:s.id,bitmap:s.bitmap.clone(),metrics:s.metrics},i[r].ascender=this.entries[r].ascender,i[r].descender=this.entries[r].descender;r(null,i)}})}_doesCharSupportLocalGlyph(i){return this.localGlyphMode!==lu.none&&(this.localGlyphMode===lu.all?!!this.localFontFamily:!!this.localFontFamily&&(ne(i)||nr(i)||r1(i)||r2(i))||r0(i))}_tinySDF(i,r,n){const o=this.localFontFamily;if(!o||!this._doesCharSupportLocalGlyph(n))return;let s=i.tinySDF;if(!s){let n="400";/bold/i.test(r)?n="900":/medium/i.test(r)?n="500":/light/i.test(r)&&(n="200"),(s=i.tinySDF=new ld.TinySDF({fontFamily:o,fontWeight:n,fontSize:48,buffer:6,radius:16})).fontWeight=n}if(this.localGlyphs[s.fontWeight][n])return this.localGlyphs[s.fontWeight][n];const a=String.fromCharCode(n),{data:l,width:c,height:h,glyphWidth:u,glyphHeight:d,glyphLeft:p,glyphTop:f,glyphAdvance:m}=s.draw(a);return this.localGlyphs[s.fontWeight][n]={id:n,bitmap:new sT({width:c,height:h},l),metrics:{width:u/2,height:d/2,left:p/2,top:f/2-27,advance:m/2,localGlyph:!0}}}}function lp(i,r,n,o){const s=[],a=i.image,l=a.pixelRatio,c=a.paddedRect.w-2,h=a.paddedRect.h-2,d=i.right-i.left,p=i.bottom-i.top,f=a.stretchX||[[0,c]],m=a.stretchY||[[0,h]],_=(i,r)=>i+r[1]-r[0],g=f.reduce(_,0),y=m.reduce(_,0),x=c-g,v=h-y;let b=0,w=g,T=0,E=y,S=0,I=x,M=0,A=v;if(a.content&&o){const i=a.content;b=lf(f,0,i[0]),T=lf(m,0,i[1]),w=lf(f,i[0],i[2]),E=lf(m,i[1],i[3]),S=i[0]-b,M=i[1]-T,I=i[2]-i[0]-w,A=i[3]-i[1]-E}const C=(o,s,c,h)=>{const f=(o.stretch-b)/w*d+i.left,m=o.fixed-S-I*o.stretch/g,_=(s.stretch-T)/E*p+i.top,x=s.fixed-M-A*s.stretch/y,v=(c.stretch-b)/w*d+i.left,C=c.fixed-S-I*c.stretch/g,z=(h.stretch-T)/E*p+i.top,k=h.fixed-M-A*h.stretch/y,P=new u(f,_),D=new u(v,_),L=new u(v,z),B=new u(f,z),R=new u(m/l,x/l),F=new u(C/l,k/l),O=r*Math.PI/180;if(O){const i=Math.sin(O),r=Math.cos(O),n=[r,-i,i,r];P._matMult(n),D._matMult(n),B._matMult(n),L._matMult(n)}const U=o.stretch+o.fixed,V=s.stretch+s.fixed;return{tl:P,tr:D,bl:B,br:L,tex:{x:a.paddedRect.x+1+U,y:a.paddedRect.y+1+V,w:c.stretch+c.fixed-U,h:h.stretch+h.fixed-V},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:R,pixelOffsetBR:F,minFontScaleX:I/l/d,minFontScaleY:A/l/p,isSDF:n}};if(o&&(a.stretchX||a.stretchY)){const i=lm(f,x,g),r=lm(m,v,y);for(let n=0;n{if(i)s(i);else if(r){const i={},n=new aD(r).readFields(aH,{});for(const r of n.glyphs)i[r.id]=r;s(null,{glyphs:i,ascender:n.ascender,descender:n.descender})}})},ld.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 i=0;i0?i*i:0,y[o]=i<0?i*i:0}}lc(x,0,0,u,d,u,this.f,this.v,this.z),lc(y,g,g,c,h,u,this.f,this.v,this.z);for(let i=0;i0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}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[l],a)&&(o=l,a=r[l]),n(a,s)>=0)break;r[i]=a,i=o}r[i]=s}}function lg(i,r){return ir?1:0}function ly(i,r){return r.max-i.max}function lx(i,r,n,o){this.p=new u(i,r),this.h=n,this.d=function(i,r){let n=!1,o=1/0;for(let s=0;si.y!=c.y>i.y&&i.x<(c.x-s.x)*(i.y-s.y)/(c.y-s.y)+s.x&&(n=!n),o=Math.min(o,sn(i,s,c))}}return(n?1:-1)*Math.sqrt(o)}(this.p,o),this.max=this.d+this.h*Math.SQRT2}const lv=Number.POSITIVE_INFINITY,lb=Math.sqrt(2);function lw(i,r){return r[1]!==lv?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/lb;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 lT(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 lE(i,r,n,o,s,a,l,c,h,d,p,f,m,_,g,y,x){const v=function(i,r,n,o,s,a,l,c){const h=[];if(0===r.positionedLines.length)return h;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 i of r.positionedLines)f-=i.lineOffset;const m=r.positionedLines.length,_=f/m;let g=r.top-n[1];for(let i=0;i32640&&eh(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`):"composite"===b.kind&&((w=[128*g.compositeTextSizes[0].evaluate(c,{},x),128*g.compositeTextSizes[1].evaluate(c,{},x)])[0]>32640||w[1]>32640)&&eh(`${i.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`),i.addSymbols(i.text,v,w,h,l,c,p,r,n,d.lineStartIndex,d.lineLength,_,y,x),f))m[o]=i.text.placedSymbolArray.length-1;return 4*v.length}function lS(i){for(const r in i)return i[r];return null}function lI(i,r,n,o,s,a,l,c,h,d){let p=l.top,f=l.bottom,m=l.left,_=l.right;const g=l.collisionPadding;if(g&&(m-=g[0],p-=g[1],_+=g[2],f+=g[3]),h){const i=new u(m,p),r=new u(_,p),n=new u(m,f),o=new u(_,f),s=h*N;let a=new u(0,0);d&&(a=new u(d[0],d[1])),i._rotateAround(s,a),r._rotateAround(s,a),n._rotateAround(s,a),o._rotateAround(s,a),m=Math.min(i.x,r.x,n.x,o.x),_=Math.max(i.x,r.x,n.x,o.x),p=Math.min(i.y,r.y,n.y,o.y),f=Math.max(i.y,r.y,n.y,o.y)}return i.emplaceBack(r.x,r.y,r.z,n.x,n.y,m,p,_,f,c,o,s,a),i.length-1}function lM(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 lA=at.VectorTileFeature.types,lC=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function lz(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 lk(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 lP{constructor(i){this.layoutVertexArray=new n0,this.indexArray=new n6,this.programConfigurations=i,this.segments=new oH,this.dynamicLayoutVertexArray=new nY,this.opacityVertexArray=new n1,this.placedSymbolArray=new oh}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,av.members),this.indexBuffer=i.createIndexBuffer(this.indexArray,r),this.dynamicLayoutVertexBuffer=i.createVertexBuffer(this.dynamicLayoutVertexArray,ab.members,!0),this.opacityVertexBuffer=i.createVertexBuffer(this.opacityVertexArray,lC,!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())}}rj("SymbolBuffers",lP);class lD{constructor(i,r,n){this.layoutVertexArray=new i,this.layoutAttributes=r,this.indexArray=new n,this.segments=new oH,this.collisionVertexArray=new n4,this.collisionVertexArrayExt=new nY}upload(i){this.layoutVertexBuffer=i.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=i.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=i.createVertexBuffer(this.collisionVertexArray,aw.members,!0),this.collisionVertexBufferExt=i.createVertexBuffer(this.collisionVertexArrayExt,aT.members,!0)}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy(),this.collisionVertexBufferExt.destroy())}}rj("CollisionBuffers",lD);class lL{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=_([]),this.placementViewportMatrix=_([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=aI(this.zoom,r["text-size"]),this.iconSizeData=aI(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=>a1[i]),this.stateDependentLayerIds=this.layers.filter(i=>i.isStateDependent()).map(i=>i.id),this.sourceID=i.sourceID}createArrays(){this.text=new lP(new oV(this.layers,this.zoom,i=>/^text/.test(i))),this.icon=new lP(new oV(this.layers,this.zoom,i=>/^icon/.test(i))),this.glyphOffsetArray=new op,this.lineVertexArray=new of,this.symbolInstances=new od}calculateGlyphDependencies(i,r,n,o,s){for(let n=0;n0)&&("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 nM(this.zoom);for(const{feature:r,id:c,index:h,sourceLayerIndex:y}of i){let i,x;const v=s._featureFilter.needGeometry,b=o8(r,v);if(!s._featureFilter.filter(g,b,n))continue;if(v||(b.geometry=o6(r,n,o)),u){const r=s.getValueAndResolveTokens("text-field",b,n,_),o=tz.factory(r);(function(i){for(const r of i.sections)if(function(i){for(const r of i)if(nf(r.charCodeAt(0)))return!0;return!1}(r.text))return!0;return!1})(o)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===nE()||this.hasRTLText&&nI.isParsed())&&(i=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()),nI.applyArabicShaping&&(i=nI.applyArabicShaping(i)),i}(i.text,r,n)}),i}(o,s,b))}if(d){const i=s.getValueAndResolveTokens("icon-image",b,n,_);x=i instanceof tk?i:tk.fromString(i)}if(!i&&!x)continue;const w=this.sortFeaturesByKey?p.evaluate(b,{},n):void 0;if(this.features.push({id:c,text:i,icon:x,index:h,sourceLayerIndex:y,geometry:b.geometry,properties:r.properties,type:lA[r.type],sortKey:w}),x&&(f[x.name]=!0),i){const r=l.evaluate(b,{},n).join(","),o="map"===a.get("text-rotation-alignment")&&"point"!==a.get("symbol-placement");for(const n of(this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(a1.vertical)>=0,i.sections))if(n.image)f[n.image.name]=!0;else{const s=nu(i.toString()),a=n.fontStack||r,l=m[a]=m[a]||{};this.calculateGlyphDependencies(n.text,l,o,this.allowVerticalPlacement,s)}}}"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 n=i.dist(r[i.segment+1]),o=i.dist(r[i.segment]);const s={};for(let o=i.segment+1;o=0;n--)s[n]={x:r[n].x,y:r[n].y,tileUnitDistanceFromAnchor:o},n>0&&(o+=r[n-1].dist(r[n]));for(let i=0;i=0?r.rightJustifiedTextSymbolIndex:r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.leftJustifiedTextSymbolIndex>=0?r.leftJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex>=0?r.verticalPlacedTextSymbolIndex:o),a=aM(this.textSizeData,i,s)/24;return this.tilePixelRatio*a}getSymbolInstanceIconSize(i,r,n){const o=this.icon.placedSymbolArray.get(n),s=aM(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 r=n.vertexStartIndex;ro[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 i=this.symbolInstances.get(r);this.featureSortOrder.push(i.featureIndex),[i.rightJustifiedTextSymbolIndex,i.centerJustifiedTextSymbolIndex,i.leftJustifiedTextSymbolIndex].forEach((i,r,n)=>{i>=0&&n.indexOf(i)===r&&this.addIndicesForPlacedSymbol(this.text,i)}),i.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,i.verticalPlacedTextSymbolIndex),i.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.placedIconSymbolIndex),i.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}rj("SymbolBucket",lL,{omit:["layers","collisionBoxArray","features","compareText"]}),lL.MAX_GLYPHS=65535,lL.addDynamicAttributes=lk;const lB=new nN({"symbol-placement":new nR(tt.layout_symbol["symbol-placement"]),"symbol-spacing":new nR(tt.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new nR(tt.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new nF(tt.layout_symbol["symbol-sort-key"]),"symbol-z-order":new nR(tt.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new nR(tt.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new nR(tt.layout_symbol["icon-ignore-placement"]),"icon-optional":new nR(tt.layout_symbol["icon-optional"]),"icon-rotation-alignment":new nR(tt.layout_symbol["icon-rotation-alignment"]),"icon-size":new nF(tt.layout_symbol["icon-size"]),"icon-text-fit":new nR(tt.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new nR(tt.layout_symbol["icon-text-fit-padding"]),"icon-image":new nF(tt.layout_symbol["icon-image"]),"icon-rotate":new nF(tt.layout_symbol["icon-rotate"]),"icon-padding":new nR(tt.layout_symbol["icon-padding"]),"icon-keep-upright":new nR(tt.layout_symbol["icon-keep-upright"]),"icon-offset":new nF(tt.layout_symbol["icon-offset"]),"icon-anchor":new nF(tt.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new nR(tt.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new nR(tt.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new nR(tt.layout_symbol["text-rotation-alignment"]),"text-field":new nF(tt.layout_symbol["text-field"]),"text-font":new nF(tt.layout_symbol["text-font"]),"text-size":new nF(tt.layout_symbol["text-size"]),"text-max-width":new nF(tt.layout_symbol["text-max-width"]),"text-line-height":new nF(tt.layout_symbol["text-line-height"]),"text-letter-spacing":new nF(tt.layout_symbol["text-letter-spacing"]),"text-justify":new nF(tt.layout_symbol["text-justify"]),"text-radial-offset":new nF(tt.layout_symbol["text-radial-offset"]),"text-variable-anchor":new nR(tt.layout_symbol["text-variable-anchor"]),"text-anchor":new nF(tt.layout_symbol["text-anchor"]),"text-max-angle":new nR(tt.layout_symbol["text-max-angle"]),"text-writing-mode":new nR(tt.layout_symbol["text-writing-mode"]),"text-rotate":new nF(tt.layout_symbol["text-rotate"]),"text-padding":new nR(tt.layout_symbol["text-padding"]),"text-keep-upright":new nR(tt.layout_symbol["text-keep-upright"]),"text-transform":new nF(tt.layout_symbol["text-transform"]),"text-offset":new nF(tt.layout_symbol["text-offset"]),"text-allow-overlap":new nR(tt.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new nR(tt.layout_symbol["text-ignore-placement"]),"text-optional":new nR(tt.layout_symbol["text-optional"])});var lR={paint:new nN({"icon-opacity":new nF(tt.paint_symbol["icon-opacity"]),"icon-color":new nF(tt.paint_symbol["icon-color"]),"icon-halo-color":new nF(tt.paint_symbol["icon-halo-color"]),"icon-halo-width":new nF(tt.paint_symbol["icon-halo-width"]),"icon-halo-blur":new nF(tt.paint_symbol["icon-halo-blur"]),"icon-translate":new nR(tt.paint_symbol["icon-translate"]),"icon-translate-anchor":new nR(tt.paint_symbol["icon-translate-anchor"]),"text-opacity":new nF(tt.paint_symbol["text-opacity"]),"text-color":new nF(tt.paint_symbol["text-color"],{runtimeType:tp,getOverride:i=>i.textColor,hasOverride:i=>!!i.textColor}),"text-halo-color":new nF(tt.paint_symbol["text-halo-color"]),"text-halo-width":new nF(tt.paint_symbol["text-halo-width"]),"text-halo-blur":new nF(tt.paint_symbol["text-halo-blur"]),"text-translate":new nR(tt.paint_symbol["text-translate"]),"text-translate-anchor":new nR(tt.paint_symbol["text-translate-anchor"])}),layout:lB};class lF{constructor(i){this.type=i.property.overrides?i.property.overrides.runtimeType:tc,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}}rj("FormatSectionOverride",lF,{omit:["defaultValue"]});class lO extends oq{constructor(i){super(i,lR)}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 i=[];for(const r of n)0>i.indexOf(r)&&i.push(r);this.layout._values["text-writing-mode"]=i}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()||i4(l.value)||!a?a:(s=r.properties,a.replace(/{([^{}]+)}/g,(i,r)=>r in s?String(s[r]):""))}createBucket(i){return new lL(i)}queryRadius(){return 0}queryIntersectsFeature(){return!1}_setPaintOverrides(){for(const i of lR.paint.overridableProperties){if(!lO.hasPaintOverride(this.layout,i))continue;const r=this.paint.get(i),n=new lF(r),o=new i5(n,r.property.specification);let s=null;s="constant"===r.value.kind||"source"===r.value.kind?new i8("source",o):new i9("composite",o,r.value.zoomStops,r.value._interpolationType),this.paint._values[i]=new nL(r.property,s,r.parameters)}}_handleOverridablePaintPropertyUpdate(i,r,n){return!(!this.layout||r.isDataDriven()||n.isDataDriven())&&lO.hasPaintOverride(this.layout,i)}static hasPaintOverride(i,r){const n=i.get("text-field"),o=lR.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 tz)a(n.value.value.sections);else if("source"===n.value.kind){const i=r=>{s||(r instanceof tR&&tL(r.value)===tg?a(r.value.sections):r instanceof tV?a(r.sections):r.eachChild(i))},r=n.value;r._styleExpression&&i(r._styleExpression.expression)}return s}getProgramConfiguration(i){return new oU(this,i)}}var lU={paint:new nN({"background-color":new nR(tt.paint_background["background-color"]),"background-pattern":new nU(tt.paint_background["background-pattern"]),"background-opacity":new nR(tt.paint_background["background-opacity"])})},lV={paint:new nN({"raster-opacity":new nR(tt.paint_raster["raster-opacity"]),"raster-hue-rotate":new nR(tt.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new nR(tt.paint_raster["raster-brightness-min"]),"raster-brightness-max":new nR(tt.paint_raster["raster-brightness-max"]),"raster-saturation":new nR(tt.paint_raster["raster-saturation"]),"raster-contrast":new nR(tt.paint_raster["raster-contrast"]),"raster-resampling":new nR(tt.paint_raster["raster-resampling"]),"raster-fade-duration":new nR(tt.paint_raster["raster-fade-duration"])})};class lN extends oq{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 lj={paint:new nN({"sky-type":new nR(tt.paint_sky["sky-type"]),"sky-atmosphere-sun":new nR(tt.paint_sky["sky-atmosphere-sun"]),"sky-atmosphere-sun-intensity":new nR(tt.paint_sky["sky-atmosphere-sun-intensity"]),"sky-gradient-center":new nR(tt.paint_sky["sky-gradient-center"]),"sky-gradient-radius":new nR(tt.paint_sky["sky-gradient-radius"]),"sky-gradient":new nV(tt.paint_sky["sky-gradient"]),"sky-atmosphere-halo-color":new nR(tt.paint_sky["sky-atmosphere-halo-color"]),"sky-atmosphere-color":new nR(tt.paint_sky["sky-atmosphere-color"]),"sky-opacity":new nR(tt.paint_sky["sky-opacity"])})};function lG(i,r,n){var o,s,a,l,c,h,u;const d=S(0,0,1),p=O(F());return o=(n?-(i*N)+Math.PI:i*N)*.5,s=p[0],a=p[1],l=p[2],c=p[3],h=Math.sin(o),u=Math.cos(o),p[0]=s*u-l*h,p[1]=a*u+c*h,p[2]=l*u+s*h,p[3]=c*u-a*h,U(p,p,-(r*N)),B(d,d,p),k(d,d)}const lZ={circle:class extends oq{constructor(i){super(i,sp)}createBucket(i){return new o7(i)}queryRadius(i){return sl("circle-radius",this,i)+sl("circle-stroke-width",this,i)+sc(this.paint.get("circle-translate"))}queryIntersectsFeature(i,r,n,o,s,a,l,c){const h=su(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 s_(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 oU(this,i)}},heatmap:class extends oq{createBucket(i){return new sx(i)}constructor(i){super(i,sS),this._updateColorRamp()}_handleSpecialPaintPropertyUpdate(i){"heatmap-color"===i&&this._updateColorRamp()}_updateColorRamp(){this.colorRamp=sI({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 sl("heatmap-radius",this,i)}queryIntersectsFeature(i,r,n,o,s,a,l,c){const h=this.paint.get("heatmap-radius").evaluate(r,n);return s_(i,o,a,l,c,!0,!0,new u(0,0),h)}hasOffscreenPass(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility}getProgramIds(){return["heatmap","heatmapTexture"]}getProgramConfiguration(i){return new oU(this,i)}},hillshade:class extends oq{constructor(i){super(i,sM)}hasOffscreenPass(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility}getProgramIds(){return["hillshade","hillshadePrepare"]}getProgramConfiguration(i){return new oU(this,i)}},fill:class extends oq{constructor(i){super(i,s2)}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 oU(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 s0(i)}queryRadius(){return sc(this.paint.get("fill-translate"))}queryIntersectsFeature(i,r,n,o,s,a){return!i.queryGeometry.isAboveHorizon&&st(sh(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 oq{constructor(i){super(i,as)}createBucket(i){return new ao(i)}queryRadius(){return sc(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 oU(this,i)}queryIntersectsFeature(i,r,n,o,s,a,l,c,h){var d,p;const f=su(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=c&&a.elevation,x=a.elevation?a.elevation.exaggeration():1;if(y){const r=i.tile.getBucket(this).centroidVertexArray,n=h+1;if(n0?n+2*r:r),s=sl("line-offset",this,i);return o/2+Math.abs(s)+sc(this.paint.get("line-translate"))}queryIntersectsFeature(i,r,n,o,s,a){var l,c;if(i.queryGeometry.isAboveHorizon)return!1;const h=sh(i.tilespaceGeometry,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),a.angle,i.pixelToTileUnitsFactor),d=i.pixelToTileUnitsFactor/2*(l=this.paint.get("line-width").evaluate(r,n),(c=this.paint.get("line-gap-width").evaluate(r,n))>0?c+2*l:l),p=this.paint.get("line-offset").evaluate(r,n);return p&&(o=function(i,r){const n=[],o=new u(0,0);for(let s=0;s=3){for(let r=0;r1){if(si(i,r))return!0;for(let o=0;o1&&(l=i[++a]);const u=Math.abs(c-l.left),d=Math.abs(c-l.right),p=Math.min(u,d),f=r/n*(o+1);if(l.isDash){const i=o-Math.abs(f);h=Math.sqrt(p*p+i*i)}else h=o-Math.sqrt(p*p+f*f);this.image.data[s+c]=Math.max(0,Math.min(255,h+128))}}}addRegularDash(i,r){for(let r=i.length-1;r>=0;--r){const n=i[r],o=i[r+1];n.zeroLength?i.splice(r,1):o&&o.isDash===n.isDash&&(o.left=n.left,i.splice(r,1))}const n=i[0],o=i[i.length-1];n.isDash===o.isDash&&(n.left=o.left-this.width,o.right=n.right+this.width);const s=this.width*this.nextRow;let a=0,l=i[0];for(let n=0;n1&&(l=i[++a]);const o=Math.abs(n-l.left),c=Math.abs(n-l.right),h=Math.min(o,c);this.image.data[s+n]=Math.max(0,Math.min(255,(l.isDash?h:-h)+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 eh("LineAtlas out of space"),null;0===i.length&&i.push(1);let l=0;for(let r=0;r{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 lQ=p.performance;function l0(i){const r=i?i.url.toString():void 0;return lQ.getEntriesByName(r)}class l1{constructor(){this.tasks={},this.taskQueue=[],en(["process"],this),this.invoker=new lJ(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?(ed(),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(){ed();{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 l4(i,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new l4(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 l6(this.wrap*+r,i,this.canonical.z,this.canonical.x,this.canonical.y);{const n=this.canonical.z-i;return l6(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 l4(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 l4(r,this.wrap,r,n,o),new l4(r,this.wrap,r,n+1,o),new l4(r,this.wrap,r,n,o+1),new l4(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 i=h;h=u,u=i}if(h>s&&(s=h),ua)return null}return s}function cs(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 ca(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 cn(o);const c=[];for(let r=0;r=1;o/=2){const i=n[n.length-1];l=new cn(o);for(let r=0;r0;){const{idx:c,t:g,nodex:y,nodey:x,depth:v}=f.pop();if(this.leaves[c]){ca(y,x,v,i,r,n,o,d,p);const c=1<=i[2])return g}continue}let b=0;for(let f=0;f=h[u[r]]&&(u.splice(r,0,f),i=!0);i||(u[b]=f),b++}}for(let i=0;i=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=cd.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 sE({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 r=a;r{this.remove(i,s)},n)),this.data[o].push(s),this.order.push(o),this.order.length>this.max){const i=this._getAndRemoveByKey(this.order[0]);i&&this.onRemove(i)}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 i=this._getAndRemoveByKey(this.order[0]);i&&this.onRemove(i)}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 i of r)this.remove(i.value.tileID,i)}}class cf extends te{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 cp(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._minTileCacheSize=null,this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new cr}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 Y(this._tiles).map(i=>i.tileID).sort(cm).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 u(n.canonical.x,n.canonical.y)._rotate(this.transform.angle),a=new u(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(cm).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 e7(o,{tile:i}));else if("raster-dem"===this._source.type&&this.usedForTerrain&&this.map.painter.terrain){const i=this.map.painter.terrain;this.update(this.transform,i.getScaledDemTileSize(),!0),i.resetTileLookupCache(this.id)}else this.update(this.transform)}else i.timeAdded=ev.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 e9("data",{dataType:"source",tile:i,coord:i.tileID,sourceCacheId:this.id}))}_backfillDEM(i){const r=this.getRenderableIds();for(let o=0;o1||(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 i=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[i.key])&&a.hasData()&&(l=i)}let c=l;for(;c.overscaledZ>r;)if(i[(c=c.scaledTo(c.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 n=i.overscaledZ-1;n>=r;n--){const r=i.scaledTo(n),o=this._getLoadedTile(r);if(o)return o}}_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 i={};for(const n in this._tiles){const o=this._tiles[n];o.tileID=o.tileID.unwrapTo(o.tileID.wrap+r),i[o.tileID.key]=o}for(const r in this._tiles=i,this._timers)clearTimeout(this._timers[r]),delete this._timers[r];for(const i in this._tiles)this._setTileReloadTimer(+i,this._tiles[i])}}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 l4(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(c_(this._source.type)&&0!==o.length){const i={},r={},n=Object.keys(s);for(const o of n){const n=s[o],a=this._tiles[o];if(!a||a.fadeEndTime&&a.fadeEndTime<=ev.now())continue;const l=this.findLoadedParent(n,Math.max(n.overscaledZ-cf.maxOverzooming,this._source.minzoom));l&&(this._addTile(l.tileID),i[l.tileID.key]=l.tileID),r[o]=n}const a=o[o.length-1].overscaledZ;for(const i in this._tiles){const n=this._tiles[i];if(s[i]||!n.hasData())continue;let o=n.tileID;for(;o.overscaledZ>a;){o=o.scaledTo(o.overscaledZ-1);const a=this._tiles[o.key];if(a&&a.hasData()&&r[o.key]){s[i]=n.tileID;break}}}for(const r in i)s[r]||(this._coveredTiles[r]=!0,s[r]=i[r])}for(const i in s)this._tiles[i].clearFadeHold();const a=function(i,r){const n=[];for(const o in i)o in r||n.push(o);return n}(this._tiles,s);for(const i of a){const r=this._tiles[i];r.hasSymbolBuckets&&!r.holdingForFade()?r.setHoldDuration(this.map._fadeDuration):r.hasSymbolBuckets&&!r.symbolFadeFinished()||this._removeTile(+i)}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-cf.maxOverzooming,this._source.minzoom),l=Math.max(s+cf.maxUnderzooming,this._source.minzoom),c={};for(const n of i){const i=this._addTile(n);r[n.key]=n,i.hasData()||o=this._source.maxzoom){const i=s.children(this._source.maxzoom)[0],n=this.getTile(i);if(n&&n.hasData()){r[i.key]=i;continue}}else{const i=s.children(this._source.maxzoom);if(r[i[0].key]&&r[i[1].key]&&r[i[2].key]&&r[i[3].key])continue}let o=i.wasRequested();for(let l=s.overscaledZ-1;l>=a;--l){const a=s.scaledTo(l);if(n[a.key]||(n[a.key]=!0,(i=this.getTile(a))||!o||(i=this._addTile(a)),i&&(r[a.key]=a,o=i.wasRequested(),i.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 i=o.scaledTo(o.overscaledZ-1);if(n=this._getLoadedTile(i))break;o=i}for(const i of r)this._loadedParentTiles[i]=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=!!r;if(!n){const n=this.map?this.map.painter:null,o="raster"===this._source.type||"raster-dem"===this._source.type;r=new cC(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,n,o),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 e9("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 i of r)i.projMatrix=this.transform.calculateProjMatrix(i.toUnwrapped());return r}hasTransition(){if(this._source.hasTransition())return!0;if(c_(this._source.type))for(const i in this._tiles){const r=this._tiles[i];if(void 0!==r.fadeEndTime&&r.fadeEndTime>=ev.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 i of o){const r=i.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 i of r)n.set(i.key,i);this.usedForTerrain&&i.updateElevation(!1)}const l=Array.from(n.values()),c="raster"===this._source.type||"raster-dem"===this._source.type;K(l,(i,r)=>{const n=new cC(i,this._source.tileSize*i.overscaleFactor(),this.transform.tileZoom,this.map.painter,c);this._loadTile(n,i=>{"raster-dem"===this._source.type&&n.dem&&this._backfillDEM(n),r(i,n)})},r)}}function cm(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 c_(i){return"raster"===i||"image"===i||"video"===i}cf.maxOverzooming=10,cf.maxUnderzooming=3;class cg{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&&o[3]>=0&&c.insert(l,o[0],o[1],o[2],o[3])}}loadVTLayers(){if(!this.vtLayers)for(const i in this.vtLayers=new at.VectorTile(new aD(this.rawTileData)).layers,this.sourceLayerCoder=new ct(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=rl(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)=>sa(c.bufferedTilespaceGeometry,i,r,n,o));d.sort(cv);let p=null;h.elevation&&d.length>0&&(p=cg.create(h.elevation,this.tileID));const f={};for(let h=0;h(_||(_=o6(r,this.tileID.canonical,i.tileTransform)),n.queryIntersectsFeature(c,r,o,_,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 i=o8(g,!0);if(!n.filter(new nM(this.tileID.overscaledZ),i,this.tileID.canonical))return}else if(!n.filter(new nM(this.tileID.overscaledZ),g))return;const y=this.getId(g,_);for(let r=0;ro.indexOf(n))continue;const d=a[n];if(!d)continue;let p={};void 0!==y&&c&&(p=c.getState(d.sourceLayer||"_geojsonTileLayer",y));const _=J({},l[n]);_.paint=cx(_.paint,d.paint,g,p,s),_.layout=cx(_.layout,d.layout,g,p,s);const x=!h||h(g,d,p,f);if(!x)continue;const v=new ci(g,this.z,this.x,this.y,y);v.layer=_;let b=i[n];void 0===b&&(b=i[n]=[]),b.push({featureIndex:u,feature:v,intersectionZ:x})}}lookupSymbolFeatures(i,r,n,o,s,a,l,c){const h={};this.loadVTLayers();const u=rl(s);for(const s of i)this.loadMatchingFeature(h,{bucketIndex:n,sourceLayerIndex:o,featureIndex:s,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 cx(i,r,n,o,s){return es(i,(i,a)=>{const l=r instanceof nB?r.get(a):null;return l&&l.evaluate?l.evaluate(n,o,s):l})}function cv(i,r){return r-i}rj("FeatureIndex",cy,{omit:["rawTileData","sourceLayerCoder"]});var cb=nq([{name:"a_pos",type:"Int16",components:2}]);const cw=new Uint16Array(8184);for(let i=0;i<2046;i++){let r=i+2,n=0,o=0,s=0,a=0,l=0,c=0;for(1&r?s=a=l=32:n=o=c=32;(r>>=1)>1;){const i=n+s>>1,h=o+a>>1;1&r?(s=n,a=o,n=l,o=c):(n=s,o=a,s=l,a=c),l=i,c=h}const h=4*i;cw[h+0]=n,cw[h+1]=o,cw[h+2]=s,cw[h+3]=a}const cT=new Uint16Array(2178),cE=new Uint8Array(1089),cS=new Uint16Array(1089);function cI(i){return 0===i?-.03125:32===i?.03125:0}var cM=nq([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);const cA={type:2,extent:8192,loadGeometry:()=>[[new u(0,0),new u(8193,0),new u(8193,8193),new u(0,8193),new u(0,0)]]};class cC{constructor(i,r,n,o,s){this.tileID=i,this.uid=ee(),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!==i.length)for(const r of(o.layers=i,o.stateDependentLayerIds&&(o.stateDependentLayers=o.stateDependentLayerIds.map(r=>i.filter(i=>i.id===r)[0])),i))n[r.id]=o}return n}(i.buckets,r.style),this.hasSymbolBuckets=!1,this.buckets){const i=this.buckets[o];if(i instanceof lL){if(this.hasSymbolBuckets=!0,!n)break;i.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const i in this.buckets){const r=this.buckets[i];if(r instanceof lL&&r.hasRTLText){this.hasRTLText=!0,nI.isLoading()||nI.isLoaded()||"deferred"!==nE()||nS();break}}for(const i in this.queryPadding=0,this.buckets){const n=this.buckets[i];this.queryPadding=Math.max(this.queryPadding,r.style.getLayer(i).queryRadius(n))}i.imageAtlas&&(this.imageAtlas=i.imageAtlas),i.glyphAtlasImage&&(this.glyphAtlasImage=i.glyphAtlasImage),i.lineAtlas&&(this.lineAtlas=i.lineAtlas)}else this.collisionBoxArray=new ol}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 r=i.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new lK(i,this.imageAtlas.image,r.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new lK(i,this.glyphAtlasImage,r.ALPHA),this.glyphAtlasImage=null),this.lineAtlas&&!this.lineAtlas.uploaded&&(this.lineAtlasTexture=new lK(i,this.lineAtlas.image,r.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=rl(r&&r.filter),{z:c,x:h,y:u}=this.tileID.canonical,d={z:c,x:h,y:u};for(let r=0;ri)n=!1;else if(r){if(this.expirationTime=0;i--){const r=4*i,n=cw[r+0],o=cw[r+1],s=cw[r+2],a=cw[r+3],l=n+s>>1,c=o+a>>1,h=l+c-o,u=c+n-l,d=33*o+n,p=33*a+s,f=33*c+l,m=Math.hypot((cT[2*d+0]+cT[2*p+0])/2-cT[2*f+0],(cT[2*d+1]+cT[2*p+1])/2-cT[2*f+1])>=16;if(cE[f]=cE[f]||(m?1:0),i<1022){const i=(o+u>>1)*33+(n+h>>1),r=(a+u>>1)*33+(s+h>>1);cE[f]=cE[f]||cE[i]||cE[r]}}const s=new nH,a=new n6;let l=0;function c(i,r){const n=33*r+i;return 0===cS[n]&&(s.emplaceBack(cT[2*n+0],cT[2*n+1],8192*i/32,8192*r/32),cS[n]=++l),cS[n]-1}function h(i,r,n,o,s,l){const u=i+n>>1,d=r+o>>1;if(Math.abs(i-s)+Math.abs(r-l)>1&&cE[33*d+u])h(s,l,i,r,u,d),h(n,o,s,l,u,d);else{const h=c(i,r),u=c(n,o),d=c(s,l);a.emplaceBack(h,u,d)}}return h(0,0,32,32,32,0),h(32,32,0,0,0,32),{vertices:s,indices:a}}(this.tileID.canonical,r);n=i.vertices,o=i.indices}else{for(const{x:i,y:r}of(n=new nH,o=new n6,s))n.emplaceBack(i,r,0,0);const i=sz(n.int16,void 0,4);for(let r=0;ri*(1-n)+r*n,[o,s]=cO(i),a=new ot,l=function(i){var r,n;const o=_(new Float64Array(16)),s=cN(i);return x(o,o,[s,s,s]),y(o,o,((r=[])[0]=-(n=i.min)[0],r[1]=-n[1],r[2]=-n[2],r)),o}(cF(i));a.reserve(4096);for(let c=0;c<65;c++){const h=n(o[0],s[0],c/64),u=o1(h),d=u*r-i.y,p=Math.sin(h*N),f=Math.cos(h*N);for(let i=0;i<65;i++){const r=i/64,c=n(o[1],s[1],r),h=cU(f,p,c);L(h,h,l);const m=o0(c);a.emplaceBack(h[0],h[1],h[2],m,u,r,d)}}return a}_createGridIndices(){const i=new n6,r=(r,n)=>{const o=65*n+r;i.emplaceBack(o+1,o,o+65),i.emplaceBack(o+65,o+65+1,o+1)};for(let i=0;i<64;i++)for(let n=0;n<64;n++)r(n,i);return i}getWirefameBuffer(i){if(!this.wireframeSegments){const r=this._createWireframeGrid();this.wireframeIndexBuffer=i.createIndexBuffer(r),this.wireframeSegments=oH.simpleSegment(0,0,4096,r.length)}return[this.wireframeIndexBuffer,this.wireframeSegments]}_createWireframeGrid(){const i=new or,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 i=0;i<64;i++)for(let n=0;n<64;n++)r(n,i);return i}}function c$(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 cq{constructor(i){const r={},n=[];for(const o in i){const s=i[o],a=r[o]={};for(const i in s.glyphs){const r=s.glyphs[+i];if(!r||0===r.bitmap.width||0===r.bitmap.height)continue;const o=r.metrics.localGlyph?2:1,l={x:0,y:0,w:r.bitmap.width+2*o,h:r.bitmap.height+2*o};n.push(l),a[i]=l}}const{w:o,h:s}=aJ(n),a=new sT({width:o||1,height:s||1});for(const n in i){const o=i[n];for(const i in o.glyphs){const s=o.glyphs[+i];if(!s||0===s.bitmap.width||0===s.bitmap.height)continue;const l=r[n][i],c=s.metrics.localGlyph?2:1;sT.copy(s.bitmap,a,{x:0,y:0},{x:l.x+c,y:l.y+c},s.bitmap)}}this.image=a,this.positions=r}}rj("GlyphAtlas",cq);class cX{constructor(i){this.tileID=new l4(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=c$(i.tileID.canonical,i.projection),this.projection=i.projection}parse(i,r,n,o,s){let a,l,c,h;this.status="parsing",this.data=i,this.collisionBoxArray=new ol;const d=new ct(Object.keys(i.layers).sort()),p=new cy(this.tileID,this.promoteId);p.bucketLayerIDs=[];const f={},m=new lY(256,256),_={featureIndex:p,iconDependencies:{},patternDependencies:{},glyphDependencies:{},lineAtlas:m,availableImages:n},g=r.familiesBySource[this.source];for(const r in g){const o=i.layers[r];if(!o)continue;let s=!1,a=!1;for(const i of g[r])"symbol"===i[0].type?s=!0:a=!0;if(!0===this.isSymbolTile&&!s||!1===this.isSymbolTile&&!a)continue;1===o.version&&eh(`Vector tile source "${this.source}" layer "${r}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const l=d.encode(r),c=[];for(let i=0;i=r.maxzoom||"none"!==r.visibility&&(cW(i,this.zoom,n),(f[r.id]=r.createBucket({index:p.bucketLayerIDs.length,layers:i,zoom:this.zoom,canonical:this.canonical,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:l,sourceID:this.source,enableTerrain:this.enableTerrain,availableImages:n})).populate(c,_,this.tileID.canonical,this.tileTransform),p.bucketLayerIDs.push(i.map(i=>i.id)))}}m.trim();const y={type:"maybePrepare",isSymbolTile:this.isSymbolTile,zoom:this.zoom},x=es(_.glyphDependencies,i=>Object.keys(i).map(Number));Object.keys(x).length?o.send("getGlyphs",{uid:this.uid,stacks:x},(i,r)=>{a||(a=i,l=r,w.call(this))},void 0,!1,y):l={};const v=Object.keys(_.iconDependencies);v.length?o.send("getImages",{icons:v,source:this.source,tileID:this.tileID,type:"icons"},(i,r)=>{a||(a=i,c=r,w.call(this))},void 0,!1,y):c={};const b=Object.keys(_.patternDependencies);function w(){if(a)return s(a);if(l&&c&&h){const i=new cq(l),r=new a0(c,h);for(const o in f){const s=f[o];s instanceof lL?(cW(s.layers,this.zoom,n),function(i,r,n,o,s,a,l,c,h,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:r,maxZoom:n}=i.textSizeData;m.compositeTextSizes=[f["text-size"].possiblyEvaluate(new nM(r),c),f["text-size"].possiblyEvaluate(new nM(n),c)]}if("composite"===i.iconSizeData.kind){const{minZoom:r,maxZoom:n}=i.iconSizeData;m.compositeIconSizes=[f["icon-size"].possiblyEvaluate(new nM(r),c),f["icon-size"].possiblyEvaluate(new nM(n),c)]}m.layoutTextSize=f["text-size"].possiblyEvaluate(new nM(h+1),c),m.layoutIconSize=f["icon-size"].possiblyEvaluate(new nM(h+1),c),m.textMaxSize=f["text-size"].possiblyEvaluate(new nM(18),c);const _="map"===p.get("text-rotation-alignment")&&"point"!==p.get("symbol-placement"),g=p.get("text-size");for(const a of i.features){const h=p.get("text-font").evaluate(a,{},c).join(","),f=g.evaluate(a,{},c),y=m.layoutTextSize.evaluate(a,{},c),x=(m.layoutIconSize.evaluate(a,{},c),{horizontal:{},vertical:void 0}),v=a.text;let b,w=[0,0];if(v){const o=v.toString(),l=24*p.get("text-letter-spacing").evaluate(a,{},c),u=24*p.get("text-line-height").evaluate(a,{},c),d=!function(i){for(const n of i){var r;if(rW(r=n.charCodeAt(0))||rH(r)||rK(r)||no(r)||nc(r))return!1}return!0}(o)?0:l,m=p.get("text-anchor").evaluate(a,{},c),g=p.get("text-variable-anchor");if(!g){const i=p.get("text-radial-offset").evaluate(a,{},c);w=i?lw(m,[24*i,lv]):p.get("text-offset").evaluate(a,{},c).map(i=>24*i)}let b=_?"center":p.get("text-justify").evaluate(a,{},c);const T=p.get("symbol-placement"),E="point"===T,S="point"===T?24*p.get("text-max-width").evaluate(a,{},c):0,I=a=>{i.allowVerticalPlacement&&nu(o)&&(x.vertical=a5(v,r,n,s,h,S,u,m,a,d,w,a1.vertical,!0,T,y,f))};if(!_&&g){const i="auto"===b?g.map(i=>lT(i)):[b];let o=!1;for(let a=0;a=0||!nu(o)){const i=a5(v,r,n,s,h,S,u,m,b,d,w,a1.horizontal,!1,T,y,f);i&&(x.horizontal[b]=i)}I("point"===T?"left":b)}}let T=!1;if(a.icon&&a.icon.name){const r=o[a.icon.name];r&&(b=function(i,r,n){const{horizontalAlign:o,verticalAlign:s}=lt(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[a.icon.name],p.get("icon-offset").evaluate(a,{},c),p.get("icon-anchor").evaluate(a,{},c)),T=r.sdf,void 0===i.sdfIcons?i.sdfIcons=r.sdf:i.sdfIcons!==r.sdf&&eh("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(r.pixelRatio!==i.pixelRatio||0!==p.get("icon-rotate").constantOr(1))&&(i.iconsNeedLinear=!0))}const E=lS(x.horizontal)||x.vertical;i.iconsInText||(i.iconsInText=!!E&&E.iconsInText),(E||b)&&function(i,r,n,o,s,a,l,c,h,d,p,f,m){let _,g=a.textMaxSize.evaluate(r,{},f);void 0===g&&(g=l);const y=i.layers[0].layout,x=y.get("icon-offset").evaluate(r,{},f),v=lS(n.horizontal)||n.vertical,b=l/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")*N,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&&(_=lr(o,n.vertical,k,y.get("icon-text-fit-padding"),x,b)),v&&(o=lr(o,v,k,y.get("icon-text-fit-padding"),x,b)));const P=(l,c,u)=>{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,u),b=new ln(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=ob(""),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=lv),i.allowVerticalPlacement&&s.vertical){const i=s.vertical;if(_)D=lM(i),c&&(L=lM(c));else{const o=h.layout.get("text-rotate").evaluate(w,{},I)+90;z=lI(u,n,r,d,p,f,i,m,o,g),c&&(k=lI(u,n,r,d,p,f,c,x,o))}}if(a){const o=h.layout.get("icon-rotate").evaluate(w,{},I),s="none"!==h.layout.get("icon-text-fit"),l=lp(a,o,E,s),m=c?lp(c,o,E,s):void 0;C=lI(u,n,r,d,p,f,a,x,o),B=4*l.length;const _=i.iconSizeData;let g=null;"source"===_.kind?(g=[128*h.layout.get("icon-size").evaluate(w,{},I)])[0]>32640&&eh(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`):"composite"===_.kind&&((g=[128*T.compositeIconSizes[0].evaluate(w,{},I),128*T.compositeIconSizes[1].evaluate(w,{},I)])[0]>32640||g[1]>32640)&&eh(`${i.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`),i.addSymbols(i.icon,l,g,b,v,w,!1,n,r,M.lineStartIndex,M.lineLength,-1,S,I),U=i.icon.placedSymbolArray.length-1,m&&(R=4*m.length,i.addSymbols(i.icon,m,g,b,v,w,a1.vertical,n,r,M.lineStartIndex,M.lineLength,-1,S,I),V=i.icon.placedSymbolArray.length-1)}for(const o in s.horizontal){const a=s.horizontal[o];A||(j=ob(a.text),_?P=lM(a):A=lI(u,n,r,d,p,f,a,m,h.layout.get("text-rotate").evaluate(w,{},I),g));const c=1===a.positionedLines.length;if(F+=lE(i,n,r,a,l,h,_,w,g,M,s.vertical?a1.horizontal:a1.horizontalOnly,c?Object.keys(s.horizontal):[o],N,U,T,S,I),c)break}s.vertical&&(O+=lE(i,n,r,s.vertical,l,h,_,w,g,M,a1.vertical,["vertical"],N,V,T,S,I));let $=-1;const q=(i,r)=>i?Math.max(i,r):r;$=q(P,$),$=q(D,$),$=q(L,$);const X=$>-1?1:0;i.glyphOffsetArray.length>=lL.MAX_GLYPHS&&eh("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,X,0,G,Z,$)}(i,c,b,l,n,o,s,_,i.layers[0],i.collisionBoxArray,r.index,r.sourceLayerIndex,i.index,E,M,h,0,S,A,x,r,a,d,p,f)};if("line"===C)for(const s of ll(r.geometry,0,0,8192,8192)){const r=function(i,r,n,o,s,a,l,c,h){const u=o?.6*a*l:0,d=la(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&&x=0&&v=0&&m+d<=p){const n=new ln(x,v,0,g,i);n._round(),s&&!lo(r,n,l,s,a)||_.push(n)}}f+=h}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)}(s,T,I,n.vertical||v,o,24,w,i.overscaling,8192);for(const n of r)v&&function(i,r,n,o){const s=i.compareText;if(r in s){const i=s[r];for(let r=i.length-1;r>=0;r--)if(o.dist(i[r])1){const r=function(i,r,n,o,s,a){const l=n?.6*24*a:0,c=la(n,o)*a;let h=0;const u=ls(i)/2;for(let n=0;nu){const d=(u-h)/a,p=ii(o.x,s.x,d),f=ii(o.y,s.y,d),m=new ln(p,f,0,s.angleTo(o),n);return!l||lo(i,m,c,l,r)?m:void 0}h+=a}}(i,I,n.vertical||v,o,0,w);r&&P(i,r,f)}}else if("Polygon"===r.type)for(const i of sK(r.geometry,0)){const r=function(i,r=1,n=!1){let o=1/0,s=1/0,a=-1/0,l=-1/0;const c=i[0];for(let i=0;ia)&&(a=r.x),(!i||r.y>l)&&(l=r.y)}const h=Math.min(a-o,l-s);let d=h/2;const p=new l_([],ly);if(0===h)return new u(o,s);for(let r=o;rf.d||!f.d)&&(f=o,n&&console.log("found best %d after %d probes",Math.round(1e4*o.d)/1e4,m)),o.max-f.d<=r||(d=o.h/2,p.push(new lx(o.p.x-d,o.p.y-d,d,i)),p.push(new lx(o.p.x+d,o.p.y-d,d,i)),p.push(new lx(o.p.x-d,o.p.y+d,d,i)),p.push(new lx(o.p.x+d,o.p.y+d,d,i)),m+=4)}return n&&(console.log(`num probes: ${m}`),console.log(`best distance: ${f.d}`)),f.p}(i,16);P(i[0],new ln(r.x,r.y,0,0,void 0),f)}else if("LineString"===r.type)for(const i of r.geometry)P(i,new ln(i[0].x,i[0].y,0,0,void 0),f);else if("Point"===r.type)for(const i of r.geometry)for(const r of i)P([r],new ln(r.x,r.y,0,0,void 0),f)}(i,a,x,b,o,m,y,0,w,T,l,c,d)}a&&i.generateCollisionDebugBuffers(h,i.collisionBoxArray)}(s,l,i.positions,c,r.iconPositions,this.showCollisionBoxes,n,this.tileID.canonical,this.tileZoom,this.projection),s.projection=this.projection.name):s.hasPattern&&(s instanceof a_||s instanceof s0||s instanceof ao)&&(cW(s.layers,this.zoom,n),s.addFeatures(_,this.tileID.canonical,r.patternPositions,n))}this.status="done",s(null,{buckets:Y(f).filter(i=>!i.isEmpty()),featureIndex:p,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:i.image,lineAtlas:m,imageAtlas:r,glyphMap:this.returnDependencies?l:null,iconMap:this.returnDependencies?c:null,glyphPositions:this.returnDependencies?i.positions:null})}}b.length?o.send("getImages",{icons:b,source:this.source,tileID:this.tileID,type:"patterns"},(i,r)=>{a||(a=i,h=r,w.call(this))},void 0,!1,y):h={},w.call(this)}}function cW(i,r,n){const o=new nM(r);for(const r of i)r.recalculate(o,n)}class cH{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[i,n]=s.result;return this.scheduler?this.scheduler.add(()=>{o(i,n)},r):o(i,n),()=>{}}return s.callbacks.push(o),s.cancel||(s.cancel=n((n,o)=>{for(const i of(s.result=[n,o],s.callbacks))this.scheduler?this.scheduler.add(()=>{i(n,o)},r):i(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 cK(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=e1(i.request,(i,o,s,a)=>{i?r(i):o&&r(null,{vectorTile:n?void 0:new at.VectorTile(new aD(o)),rawData:o,cacheControl:s,expires:a})});return()=>{o.cancel(),r()}},r)}const cY=_(new Float64Array(16));class cJ{constructor(i,r){this._tr=i,this._worldSize=r}createInversionMatrix(){return cY}createTileMatrix(i){let r,n,o;const s=i.canonical,a=_(new Float64Array(16)),l=this._tr.projection;if(l.isReprojectedInTileSpace){const c=c$(s,l);r=1,n=c.x+i.wrap*c.scale,o=c.y,x(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 y(a,a,[n,o,0]),x(a,a,[r/8192,r/8192,1]),a}pointCoordinate(i,r,n){const o=this._tr.horizonLineFromTop(!1),s=new u(i,Math.max(o,r));return this._tr.rayIntersectionCoordinate(this._tr.pointRayIntersection(s,n))}upVector(){return[0,0,1]}upVectorScale(){return 1}}const cQ=Math.sqrt(3)/2,c0=Math.PI/2;function c1(i){return Math.tan((c0+i)/2)}const c2=85.051129*N,c3=85.051129*N,c5={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&&V(this.parallels,this.constants.parallels))return;const i=Math.sin(this.parallels[0]*N),r=(i+Math.sin(this.parallels[1]*N))/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])*N,o=r*N,{n:s,c:a,r0:l}=this.constants,c=Math.sqrt(a-2*s*Math.sin(o))/s;return{x:c*Math.sin(n*s),y:c*Math.cos(n*s)-l,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]*N*n;l=H(l,-Math.PI-c,Math.PI-c);const h=l/n*j+this.center[0],u=Math.asin(X((o-(i*i+a*a)*n*n)/(2*n),-1,1)),d=X(u*j,-85.051129,85.051129);return new oY(h,d)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(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(cQ*Math.sin(r)),o=n*n,s=o*o*o;return{x:.5*(i*Math.cos(n)/(cQ*(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 i,a,l=0;l<12&&(a=n*(1.340264+-.081106*o+s*(893e-6+.003796*o))-r,s=(o=(n=X(n-(i=a/(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))),-Math.PI/3,Math.PI/3))*n)*o*o,!(1e-12>Math.abs(i)));++l);const a=cQ*i*(1.340264+-.24331799999999998*o+s*(.0062510000000000005+.034164*o))/Math.cos(n),l=Math.asin(Math.sin(n)/cQ),c=X(180*a/Math.PI,-180,180),h=X(180*l/Math.PI,-85.051129,85.051129);return new oY(c,h)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(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=X(360*(.5-r),-85.051129,85.051129);return new oY(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/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(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&&V(this.parallels,this.constants.parallels))return;const i=this.parallels[0]*N,r=this.parallels[1]*N,n=Math.cos(i),o=i===r?Math.sin(i):Math.log(n/Math.cos(r))/Math.log(c1(r)/c1(i)),s=n*Math.pow(c1(i),o)/o;this.constants={n:o,f:s,parallels:this.parallels}},project(i,r){this.initializeConstants(),r*=N,i=(i-this.center[0])*N;const{n:n,f:o}=this.constants;o>0?r<-c0+1e-6&&(r=-c0+1e-6):r>c0-1e-6&&(r=c0-1e-6);const s=o/Math.pow(c1(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=X(c/n*j+this.center[0],-180,180),u=X((2*Math.atan(Math.pow(o/l,1/n))-c0)*j,-85.051129,85.051129);return new oY(h,u)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(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:o0(i),y:o1(r),z:0}),unproject(i,r){const n=o2(i),o=o3(r);return new oY(n,o)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(i,r)},naturalEarth:{name:"naturalEarth",center:[0,0],range:[3.5,7],isReprojectedInTileSpace:!0,zAxisUnit:"meters",unsupportedLayers:["custom"],project(i,r){const n=(r*=N)*r,o=n*n;return{x:.5*((i*=N)*(.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 i=a*a;s=(n*(1.007226+a*(.015085+i*(.028874*a-.044475-.005916*i)))-r)/(1.007226+a*(.045255+i*(.259866*a-.311325-.005916*11*i))),n=X(n-s,-c2,c2)}while(Math.abs(s)>1e-6&&--o>0)a=n*n;const l=X(i/(.8707+a*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979))*j,-180,180),c=n*j;return new oY(l,c)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(i,r)},winkelTripel:{name:"winkelTripel",center:[0,0],range:[3.5,7],zAxisUnit:"meters",isReprojectedInTileSpace:!0,unsupportedLayers:["custom"],project(i,r){r*=N,i*=N;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 s=Math.cos(o),c=Math.sin(o),h=2*c*s,u=c*c,d=s*s,p=Math.cos(n/2),f=Math.sin(n/2),m=2*p*f,_=f*f,g=1-d*p*p,y=g?1/g:0,x=g?Math.acos(s*p)*Math.sqrt(1/g):0,v=.5*(2*x*s*f+2*n/Math.PI)-i,b=.5*(x*c+o)-r,w=.5*y*(d*_+x*s*p*u)+1/Math.PI,T=y*(m*h/4-x*c*f),E=.125*y*(h*f-x*c*d*m),S=.5*y*(u*p+x*_*s)+.5,I=T*E-S*w;a=(b*T-v*S)/I,l=(v*E-b*w)/I,n=X(n-a,-Math.PI,Math.PI),o=X(o-l,-c3,c3)}while((Math.abs(a)>1e-6||Math.abs(l)>1e-6)&&--s>0)return new oY(n*j,o*j)},projectTilePoint:(i,r)=>({x:i,y:r,z:0}),locationPoint:(i,r)=>i._coordinatePoint(i.locationCoordinate(r),!1),pixelsPerMeter:(i,r)=>1/oQ(i)*r,farthestPixelDistance(i){return cD(i,this.pixelsPerMeter(i.center.lat,i.worldSize))},createTileTransform:(i,r)=>new cJ(i,r)}};i.ARRAY_TYPE=f,i.AUTH_ERR_MSG=eA,i.Aabb=sm,i.Actor=class{constructor(i,r,n){this.target=i,this.parent=r,this.mapId=n,this.callbacks={},this.cancelCallbacks={},en(["receive"],this),this.target.addEventListener("message",this.receive,!1),this.globalScope=ed()?i:p,this.scheduler=new l1}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=ey(this.globalScope)?void 0:[];return this.target.postMessage({id:l,type:i,hasCallback:!!n,targetMapId:o,mustQueue:s,sourceMapId:this.mapId,data:r$(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 i=this.cancelCallbacks[n];delete this.cancelCallbacks[n],i&&i.cancel()}else if(r.mustQueue||ed()){const i=this.callbacks[n];this.cancelCallbacks[n]=this.scheduler.add(()=>this.processTask(n,r),i&&i.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(rq(r.error)):n(null,rq(r.data)))}else{const n=ey(this.globalScope)?void 0:[],o=r.hasCallback?(r,o)=>{delete this.cancelCallbacks[i],this.target.postMessage({id:i,type:"",sourceMapId:this.mapId,error:r?r$(r):null,data:r$(o,n)},n)}:i=>{},s=rq(r.data);if(this.parent[r.type])this.parent[r.type](r.sourceMapId,s,o);else if(this.parent.getWorkerSource){const i=r.type.split(".");this.parent.getWorkerSource(r.sourceMapId,i[0],s.source)[i[1]](s,o)}else o(Error(`Could not find function ${r.type}`))}}remove(){this.scheduler.remove(),this.target.removeEventListener("message",this.receive,!1)}},i.CanonicalTileID=l3,i.Color=tM,i.ColorMode=l7,i.CullFaceMode=ce,i.DEMData=cd,i.DataConstantProperty=nR,i.DedupedRequest=cH,i.DepthMode=l8,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 C(s,s,o*r.upVectorScale(i.canonical)),s}}getForTilePoints(i,r,n,o){const s=cg.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 i=Math.max(-x/2,0),o=m+d*i,s=_+p*i,a=g+f*i,l=Math.hypot(o,s,a);return n[0]=o*r/l,n[1]=s*r/l,n[2]=a*r/l,!1}{const i=(-x-Math.sqrt(v))/(2*y);if(i<0){const i=Math.hypot(m,_,g);return n[0]=m*r/i,n[1]=_*r/i,n[2]=g*r/i,!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(!eC(i))return i;const n=eP(i);return n.path=`/styles/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeGlyphsURL(i,r){if(!eC(i))return i;const n=eP(i);return n.path=`/fonts/v1${n.path}`,this._makeAPIURL(n,this._customAccessToken||r)}normalizeSourceURL(i,r){if(!eC(i))return i;const n=eP(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=eP(i);return eC(i)?(s.path=`/styles/v1${s.path}/sprite${r}${n}`,this._makeAPIURL(s,this._customAccessToken||o)):(s.path+=`${r}${n}`,eD(s))}normalizeTileURL(i,r,n){if(this._isSkuTokenExpired()&&this._createSkuToken(),i&&!eC(i))return i;const o=eP(i);o.path=o.path.replace(/(\.(png|jpg)\d*)(?=$)/,`${r||n&&"raster"!==o.authority&&512===n?"@2x":""}${ew.supported?".webp":"$1"}`),"raster"===o.authority?o.path=`/${eb.RASTER_URL_PREFIX}${o.path}`:(o.path=o.path.replace(/^.+\/v4\//,"/"),o.path=`/${eb.TILE_URL_VERSION}${o.path}`);const s=this._customAccessToken||function(i){for(const r of i){const i=r.match(/^access_token=(.*)$/);if(i)return i[1]}return null}(o.params)||eb.ACCESS_TOKEN;return eb.REQUIRE_ACCESS_TOKEN&&s&&this._skuToken&&o.params.push(`sku=${this._skuToken}`),this._makeAPIURL(o,s)}canonicalizeTileURL(i,r){const n=eP(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(`/${eb.RASTER_URL_PREFIX}/`,"")}`:o+=`tiles/${n.path.replace(`/${eb.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&&eC(r),o=[];for(const r of i.tiles||[])ez(r)?o.push(this.canonicalizeTileURL(r,n)):o.push(r);return o}_makeAPIURL(i,r){const n="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",o=eP(eb.API_URL);if(i.protocol=o.protocol,i.authority=o.authority,"http"===i.protocol){const r=i.params.indexOf("secure");r>=0&&i.params.splice(r,1)}if("/"!==o.path&&(i.path=`${o.path}${i.path}`),!eb.REQUIRE_ACCESS_TOKEN)return eD(i);if(r=r||eb.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||""}`),eD(i)}},i.ResourceType=eY,i.SegmentVector=oH,i.SourceCache=cf,i.StencilMode=l9,i.StructArrayLayout1ui2=on,i.StructArrayLayout2f1f2i16=n5,i.StructArrayLayout2i4=nW,i.StructArrayLayout2ui4=or,i.StructArrayLayout3f12=nY,i.StructArrayLayout3ui6=n6,i.StructArrayLayout4i8=nH,i.Texture=lK,i.Tile=cC,i.Transitionable=nz,i.Uniform1f=oM,i.Uniform1i=class extends oI{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 oI{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 oI{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=oA,i.UniformColor=oC,i.UniformMatrix2f=class extends oI{constructor(i,r){super(i,r),this.current=oP}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 oI{constructor(i,r){super(i,r),this.current=ok}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 oI{constructor(i,r){super(i,r),this.current=oz}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=l5,i.ValidationError=ti,i.VectorTileWorkerSource=class extends te{constructor(i,r,n,o,s){super(),this.actor=i,this.layerIndex=r,this.availableImages=n,this.loadVectorData=s||cK,this.loading={},this.loaded={},this.deduped=new cH(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 cX(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 at.VectorTile(new aD(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 i=l0(o);i.length>0&&(a.resourceTiming=JSON.parse(JSON.stringify(i)))}r(null,J({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=a1,i.ZoomHistory=rX,i.add=I,i.addDynamicAttributes=lk,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=K,i.bezier=$,i.bindAll=en,i.boundsAttributes=cM,i.bufferConvexPolygon=function(i,r){const n=[];for(let o=0;oeX&&(i.getActor().send("enforceCacheSizeLimit",eq),eK=0)},i.calculateGlobeMatrix=cG,i.calculateGlobeMercatorMatrix=function(i){const r=i.worldSize,n=X(i.center.lat,-85.051129,85.051129),o=new u(o0(i.center.lng)*r,o1(n)*r),s=1/oQ(i.center.lat)*r,a=i.pixelsPerMeter,l=r/(s/i.pixelsPerMeter),c=_(new Float64Array(16));return y(c,c,[o.x,o.y,0]),x(c,c,[l,l,a]),c},i.clamp=X,i.clearTileCache=function(i){const r=p.caches.delete(eG);i&&r.catch(i).then(()=>i())},i.clipLine=ll,i.clone=function(i){var r=new f(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=el,i.collisionCircleLayout=aS,i.config=eb,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 f(16);return f!=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=m,i.createExpression=i6,i.createLayout=nq,i.createStyleLayer=function(i){return"custom"===i.type?new lN(i):new lZ[i.type](i)},i.cross=D,i.degToRad=function(i){return i*N},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=P,i.ease=q,i.easeCubicInOut=Z,i.emitValidationErrors=rF,i.endsWith=eo,i.enforceCacheSizeLimit=function(i){eW(),eZ&&eZ.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*N)),n=1/(2*Math.max(Math.PI*r,1/r));return{wrap:!0,supportsWorldCopies:!0,unsupportedLayers:["custom"],project(i,o){const s=i*N*r,a=Math.sin(o*N)/r;return{x:s*n+.5,y:-a*n+.5,z:0}},unproject(i,o){const s=-(o-.5)/n,a=X((i-.5)/n*j/r,-180,180),l=Math.asin(X(s*r,-1,1)),c=X(l*j,-85.051129,85.051129);return new oY(a,c)}}}(r.parallels[0]);if("lambertConformalConic"===r.name){const{project:i,unproject:r}=c5.mercator;n={wrap:!0,supportsWorldCopies:!0,project:i,unproject:r}}return J({},i,r,n)}return J({},i,r)}(r,i):r},i.getRTLTextPluginStatus=nE,i.getReferrer=eQ,i.getTilePoint=function(i,{x:r,y:n},o=0){return new u(((r-o)*i.scale-i.x)*8192,(n*i.scale-i.y)*8192)},i.getTileVec3=function(i,r,n=0){return S(((r.x-n)*i.scale-i.x)*8192,(r.y*i.scale-i.y)*8192,r.z*oQ(o3(r.y)))},i.getVideo=function(i,r){const n=p.document.createElement("video");n.muted=!0,n.onloadstart=function(){r(null,n)};for(let r=0;r{}}},i.globeBuffersForTileMesh=function(i,r,n,o){const s=i.context,a=i.transform;let l=r.globeGridBuffer,c=r.globePoleBuffer;if(!l){const i=cZ.createGridVertices(n.canonical);l=r.globeGridBuffer=s.createVertexBuffer(i,cP,!1)}if(!c){const i=cZ.createPoleTriangleVertices(o,a.tileSize*o,0===n.canonical.y);c=r.globePoleBuffer=s.createVertexBuffer(i,cP,!1)}return[l,c]},i.globeDenormalizeECEF=cj,i.globeMatrixForTile=function(i,r){var n;const o=cj(cF(i)),s=((n=new Float64Array(16))[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=r[3],n[4]=r[4],n[5]=r[5],n[6]=r[6],n[7]=r[7],n[8]=r[8],n[9]=r[9],n[10]=r[10],n[11]=r[11],n[12]=r[12],n[13]=r[13],n[14]=r[14],n[15]=r[15],n);return g(s,s,o),s},i.globePoleMatrixForTile=function(i,r,n){const o=_(new Float64Array(16)),s=Math.pow(2,i.z),a=(i.x-s/2)/s*Math.PI*2,l=n.point,c=n.worldSize/(n.tileSize*s);return y(o,o,[l.x,l.y,-n.worldSize/Math.PI/2]),x(o,o,[c,c,c]),v(o,o,-n._center.lat*N),b(o,o,-n._center.lng*N),b(o,o,a),r&&x(o,o,[1,-1,1]),o},i.globeTileBounds=cF,i.globeToMercatorTransition=function(i){return W(5,6,i)},i.identity=_,i.identity$1=O,i.invert=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],p=r[9],f=r[10],m=r[11],_=r[12],g=r[13],y=r[14],x=r[15],v=n*c-o*l,b=n*h-s*l,w=n*u-a*l,T=o*h-s*c,E=o*u-a*c,S=s*u-a*h,I=d*g-p*_,M=d*y-f*_,A=d*x-m*_,C=p*y-f*g,z=p*x-m*g,k=f*x-m*y,P=v*k-b*z+w*C+T*A-E*M+S*I;return P?(i[0]=(c*k-h*z+u*C)*(P=1/P),i[1]=(s*z-o*k-a*C)*P,i[2]=(g*S-y*E+x*T)*P,i[3]=(f*E-p*S-m*T)*P,i[4]=(h*A-l*k-u*M)*P,i[5]=(n*k-s*A+a*M)*P,i[6]=(y*w-_*S-x*b)*P,i[7]=(d*S-f*w+m*b)*P,i[8]=(l*z-c*A+u*I)*P,i[9]=(o*A-n*z-a*I)*P,i[10]=(_*E-g*w+x*v)*P,i[11]=(p*w-d*E-m*v)*P,i[12]=(c*M-l*C-h*I)*P,i[13]=(n*C-o*M+s*I)*P,i[14]=(g*b-_*T-y*v)*P,i[15]=(d*T-p*b+f*v)*P,i):null},i.isMapAuthenticated=function(i){return ej.has(i)},i.isMapboxURL=eC,i.latFromMercatorY=o3,i.len=E,i.length=E,i.length$1=function(i){return Math.hypot(i[0],i[1],i[2],i[3])},i.loadVectorTile=cK,i.makeRequest=e0,i.mercatorXfromLng=o0,i.mercatorYfromLat=o1,i.mercatorZfromAltitude=function(i,r){return i/oQ(r)},i.mul=g,i.mul$1=A,i.multiply=function(i,r,n){var o=r[0],s=r[1],a=r[2],l=r[3],c=r[4],h=r[5],u=r[6],d=r[7],p=r[8],f=n[0],m=n[1],_=n[2],g=n[3],y=n[4],x=n[5],v=n[6],b=n[7],w=n[8];return i[0]=f*o+m*l+_*u,i[1]=f*s+m*c+_*d,i[2]=f*a+m*h+_*p,i[3]=g*o+y*l+x*u,i[4]=g*s+y*c+x*d,i[5]=g*a+y*h+x*p,i[6]=v*o+b*l+w*u,i[7]=v*s+b*c+w*d,i[8]=v*a+b*h+w*p,i},i.multiply$1=g,i.multiply$2=A,i.nextPowerOfTwo=ei,i.normalize=k,i.normalize$1=function(i,r){var n=r[0],o=r[1],s=r[2],a=r[3],l=n*n+o*o+s*s+a*a;return l>0&&(l=1/Math.sqrt(l)),i[0]=n*l,i[1]=o*l,i[2]=s*l,i[3]=a*l,i},i.number=ii,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=aD,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]),n=r[0];if("none"===n.visibility)continue;const o=n.source||"";let s=this.familiesBySource[o];s||(s=this.familiesBySource[o]={});const a=n.sourceLayer||"_geojsonTileLayer";let l=s[a];l||(l=s[a]=[]),l.push(r)}}}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 r=[];for(const n of this._feature.geometry){const o=[];for(const r of n)o.push(new i.pointGeometry(r[0],r[1]));r.push(o)}return r}}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),r.writeVarint(m<<1^m>>31),s+=f,a+=m}3===o&&r.writeVarint(15)}}function w(i,r){var n=typeof i;"string"===n?r.writeStringField(1,i):"boolean"===n?r.writeBooleanField(7,i):"number"===n&&(i%1!=0?r.writeDoubleField(3,i):i<0?r.writeSVarintField(6,i):r.writeVarintField(5,i))}function T(i,r,n,o){E(i,n,o),E(r,2*n,2*o),E(r,2*n+1,2*o+1)}function E(i,r,n){const o=i[r];i[r]=i[n],i[n]=o}function S(i,r,n,o){const s=i-n,a=r-o;return s*s+a*a}_.fromVectorTileJs=g,_.fromGeojsonVt=function(i,r){r=r||{};var n={};for(var o in i)n[o]=new f(i[o].features,r),n[o].name=o,n[o].version=r.version,n[o].extent=r.extent;return g({layers:n})},_.GeoJSONWrapper=f;const I=i=>i[0],M=i=>i[1];class A{constructor(i,r=I,n=M,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 o=0;o>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 c=n[2*o+l];let h=s,u=a;for(T(r,n,s,o),n[2*a+l]>c&&T(r,n,s,a);hc;)u--}n[2*s+l]===c?T(r,n,s,u):T(r,n,++u,a),u<=o&&(s=u+1),o<=u&&(a=u-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 l=m;l<=f;l++)c=r[2*l],h=r[2*l+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[l]);continue}const _=Math.floor((m+f)/2);c=r[2*_],h=r[2*_+1],c>=n&&c<=s&&h>=o&&h<=a&&d.push(i[_]);const g=(p+1)%2;(0===p?n<=c:o<=h)&&(u.push(m),u.push(_-1),u.push(g)),(0===p?s>=c:a>=h)&&(u.push(_+1),u.push(f),u.push(g))}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 s=p;s<=d;s++)S(r[2*s],r[2*s+1],n,o)<=h&&c.push(i[s]);continue}const f=Math.floor((p+d)/2),m=r[2*f],_=r[2*f+1];S(m,_,n,o)<=h&&c.push(i[f]);const g=(u+1)%2;(0===u?n-s<=m:o-s<=_)&&(l.push(p),l.push(f-1),l.push(g)),(0===u?n+s>=m:o+s>=_)&&(l.push(f+1),l.push(d),l.push(g))}return c}(this.ids,this.coords,i,r,n,this.nodeSize)}}const C={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:i=>i},z=Math.fround||(s=new Float32Array(1),i=>(s[0]=+i,s[0]));class k{constructor(i){this.options=R(Object.create(C),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 r=0;r=n;i--){const n=+Date.now();l=this._cluster(l,i),this.trees[i]=new A(l,F,O,s,Float32Array),r&&console.log("z%d: %d clusters in %dms",i,l.length,+Date.now()-n)}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 i=this.getClusters([n,o,180,a],r),l=this.getClusters([-180,o,s,a],r);return i.concat(l)}const l=this.trees[this._limitZoom(r)],c=l.range(L(n),B(a),L(s),B(o)),h=[];for(const i of c){const r=l.points[i];h.push(r.numPoints?P(r):this.points[r.index])}return h}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 r of c){const n=s.points[r];n.parentId===i&&h.push(n.numPoints?P(n):this.points[n.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 r of a){const a=r.properties;if(a&&a.cluster?s+a.point_count<=o?s+=a.point_count:s=this._appendLeaves(i,a.cluster_id,n,o,s):sr&&(g+=n.numPoints||1)}if(g>_&&g>=l){var h,u,d,p;let i=s.x*_,l=s.y*_,c=a&&_>1?this._map(s,!0):null;const y=(o<<5)+(r+1)+this.points.length;for(const n of m){const o=f.points[n];if(o.zoom<=r)continue;o.zoom=r;const h=o.numPoints||1;i+=o.x*h,l+=o.y*h,o.parentId=y,a&&(c||(c=this._map(s,!0)),a(c,this._map(o)))}s.parentId=y,n.push((h=i/g,u=l/g,d=g,p=c,{x:z(h),y:z(u),zoom:1/0,id:y,parentId:-1,numPoints:d,properties:p}))}else if(n.push(s),g>1)for(const i of m){const o=f.points[i];o.zoom<=r||(o.zoom=r,n.push(o))}}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?R({},i.properties):i.properties;const n=this.points[i.index].properties,o=this.options.map(n);return r&&o===n?R({},o):o}}function P(i){return{type:"Feature",id:i.id,properties:D(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 D(i){const r=i.numPoints,n=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r;return R(R({},i.properties),{cluster:!0,cluster_id:i.id,point_count:r,point_count_abbreviated:n})}function L(i){return i/360+.5}function B(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 R(i,r){for(const n in r)i[n]=r[n];return i}function F(i){return i.x}function O(i){return i.y}function U(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)V(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 Z(i,r,n,o){for(var s=0;s1?1:n}function q(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)X(p,g,n,o,s,!1,c.lineMetrics);else if("MultiLineString"===f)H(p,g,n,o,s,!1);else if("Polygon"===f)H(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=W(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&&K(u,m,_,g),T=u.length-3,a&&T>=3&&(u[T]!==u[0]||u[T+1]!==u[1])&&K(u,u[0],u[1],u[2]),u.length&&r.push(u)}function W(i){var r=[];return r.size=i.size,r.start=i.start,r.end=i.end,r}function H(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=q(i,d,n-T,n+S,0,f.minX,f.maxX,h),w=q(i,d,n+E,n+I,0,f.minX,f.maxX,h),i=null,b&&(g=q(b,d,o-T,o+S,1,f.minY,f.maxY,h),y=q(b,d,o+E,o+I,1,f.minY,f.maxY,h),b=null),w&&(x=q(w,d,o-T,o+S,1,f.minY,f.maxY,h),v=q(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)}}},en.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[eo(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]?et(this.tiles[c],s):null):null};class ea extends i.VectorTileWorkerSource{constructor(i,r,n,o,s){super(i,r,n,o,es),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 n=i.createExpression(r.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===n.result)throw Error(n.value.map(i=>`${i.key}: ${i.message}`).join(", "));const o=c.features.filter(i=>n.value.evaluate({zoom:0},i));c={type:"FeatureCollection",features:o}}this._geoJSONIndex=r.cluster?new k(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 r of c){const[a,l]=n[r],c=i.createExpression(l),h=i.createExpression("string"==typeof a?[a,["accumulated"],["get",r]]:a);o[r]=c.value,s[r]=h.value}return r.map=i=>{l.properties=i;const r={};for(const i of c)r[i]=o[i].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 en(h,u))}catch(i){return n(i)}this.loaded={};const l={};if(s){const n=i.getPerformanceMeasurement(o);n&&(l.resourceTiming={},l.resourceTiming[r.source]=JSON.parse(JSON.stringify(n)))}n(null,l)}})}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(i){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(i){r(i)}}getClusterChildren(i,r){try{r(null,this._geoJSONIndex.getChildren(i.clusterId))}catch(i){r(i)}}getClusterLeaves(i,r){try{r(null,this._geoJSONIndex.getLeaves(i.clusterId,i.limit,i.offset))}catch(i){r(i)}}}class el{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:ea},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 r in s)s[r]instanceof i.VectorTileWorkerSource&&(s[r].isSpriteLoaded=n,s[r].fire(new i.Event("isSpriteLoaded")))}}setImages(i,r,n){for(const n in this.availableImages[i]=r,this.workerSources[i]){const o=this.workerSources[i][n];for(const i in o)o[i].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(i){n(i.toString())}}syncRTLPluginState(r,n,o){try{i.plugin.setState(n);const r=i.plugin.getPluginURL();if(i.plugin.isLoaded()&&!i.plugin.isParsed()&&null!=r){this.self.importScripts(r);const n=i.plugin.isParsed();o(n?void 0:Error(`RTL Text Plugin failed to import scripts from ${r}`),n)}}catch(i){o(i.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 el(self)),el}),s(["./shared"],function(i){let r,n,o,s;function a(i){var r;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(r){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===l[r=i&&i.failIfMajorPerformanceCaveat]&&(l[r]=function(i){var r,n,o,s=(r=document.createElement("canvas"),(n=Object.create(a.webGLContextAttributes)).failIfMajorPerformanceCaveat=i,r.getContext("webgl",n)||r.getContext("experimental-webgl",n));if(!s)return!1;try{o=s.createShader(s.VERTEX_SHADER)}catch(i){return!1}return!(!o||s.isContextLost())&&(s.shaderSource(o,"void main() {}"),s.compileShader(o),!0===s.getShaderParameter(o,s.COMPILE_STATUS))}(r)),!!l[r]&&!document.documentMode)}var l={};function c(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 h(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",f,!0)},0)},u.mousePos=function(i,r){const n=i.getBoundingClientRect();return m(i,n,r)},u.touchPos=function(i,r){const n=i.getBoundingClientRect(),o=[];for(let s=0;s=0?0:r.button};class _ 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:i,callback:r}of this.requestors)this._notify(i,r);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 C(r,n,o){return n*(i.EXTENT/(r.tileSize*Math.pow(2,o-r.tileID.overscaledZ)))}A.Actor=i.Actor;class z{constructor(i,r,n){this.context=i;const o=i.gl;this.buffer=o.createBuffer(),this.dynamicDraw=!!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 k={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class P{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 a=i.pointGeometry.convert(r[0]),l=i.pointGeometry.convert(r[1]);o=[a,l],s=i.polygonizeBounds(a,l).every(i=>n.isPointAboveHorizon(i))}return new eg(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=C(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=100*i|0;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=100*i|0;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 ey(r,n,o){const s=function(s,a){if(s)return o(s);if(a){const s=i.pick(i.extend(a,r),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);a.vector_layers&&(s.vectorLayers=a.vector_layers,s.vectorLayerIds=s.vectorLayers.map(i=>i.id)),s.tiles=n.canonicalizeTileset(s,r.url),o(null,s)}};return r.url?i.getJSON(n.transformRequest(n.normalizeSourceURL(r.url),i.ResourceType.Source),s):i.exported.frame(()=>s(null,r))}class ex{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 ex(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 o=this.map.painter.context,c=o.gl;r.texture=this.map.painter.getTileTexture(s.width),r.texture?r.texture.update(s,{useMipmap:!0}):(r.texture=new i.Texture(o,s,c.RGBA,{useMipmap:!0}),r.texture.bind(c.LINEAR,c.CLAMP_TO_EDGE),o.extTextureFilterAnisotropic&&c.texParameterf(c.TEXTURE_2D,o.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,o.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 eb(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 ew 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 i of r)n=Math.min(n,i.x),o=Math.min(o,i.y),s=Math.max(s,i.x),a=Math.max(a,i.y);const l=Math.max(s-n,a-o),c=Math.max(0,Math.floor(-Math.log(l)/Math.LN2)),h=Math.pow(2,c);return new i.CanonicalTileID(c,Math.floor((n+s)/2*h),Math.floor((o+a)/2*h))}(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=eb(0,0,r,0,0,n,r,n),f=eb(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 i=this.tiles[o];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}loadTile(i,r){this.tileID&&this.tileID.equals(i.tileID.canonical)?(this.tiles[String(i.tileID.wrap)]=i,i.buckets={}):i.state="errored",r(null)}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}const eT={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=ey(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 ex(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 i of r)i.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,a.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,a.bind(this),void 0,!0);else{const n=i.loadVectorTile.call({deduped:this._deduped},s,(i,n)=>{i||!n?a.call(this,i):(s.data={cacheControl:n.cacheControl,expires:n.expires,rawData:n.rawData.slice(0)},r.actor&&r.actor.send("loadTile",s,a.bind(this),void 0,!0))},!0);r.request={cancel:n}}function a(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:ev,"raster-dem":class extends ev{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,o){const s=this.map._requestManager.normalizeTileURL(r.tileID.canonical.url(this.tiles,this.scheme),!1,this.tileSize);function a(i,n){i&&(r.state="errored",o(i)),n&&(r.dem=n,r.dem.onDeserialize(),r.needsHillshadePrepare=!0,r.needsDEMTextureUpload=!0,r.state="loaded",o(null))}r.request=i.getImage(this.map._requestManager.transformRequest(s,i.ResourceType.Tile),(function(s,l,c,h){if(delete r.request,r.aborted)r.state="unloaded",o(null);else if(s)r.state="errored",o(s);else if(l){this.map._refreshExpiredTiles&&r.setExpiryData({cacheControl:c,expires:h});const o=i.window.ImageBitmap&&l instanceof i.window.ImageBitmap&&(null==n&&(n=i.window.OffscreenCanvas&&new i.window.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof i.window.createImageBitmap),n),s=1-(l.width-i.prevPowerOfTwo(l.width))/2;s<1||r.neighboringTiles||(r.neighboringTiles=this._getNeighboringTiles(r.tileID));const u=o?l:i.exported.getImageData(l,s),d={uid:r.uid,coord:r.tileID,source:this.id,rawImageData:u,encoding:this.encoding,padding:s};r.actor&&"expired"!==r.state||(r.actor=this.dispatcher.getActor(),r.actor.send("loadDEMTile",d,a.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 r={dataType:"source",sourceDataType:this._metadataFired?"content":"metadata"};this._collectResourceTiming&&n&&n.resourceTiming&&n.resourceTiming[this.id]&&(r.resourceTiming=n.resourceTiming[this.id]),this.fire(new i.Event("data",r)),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 ew{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 i=this.tiles[o];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}},image:ew,canvas:class extends ew{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 i=this.tiles[s];"loaded"!==i.state&&(i.state="loaded",i.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}}},eE=function(r,n,o,s){const a=new eT[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 eS(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 eI(){return null!=rZ.workerClass?new rZ.workerClass:new i.window.Worker(rZ.workerUrl)}const eM="mapboxgl_preloaded_worker_pool";class eA{constructor(){this.active={}}acquire(i){if(!this.workers)for(this.workers=[];this.workers.length{i.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[eM]}numActive(){return Object.keys(this.active).length}}function eC(){return o||(o=new eA),o}function ez(r){r=r.slice();const n=Object.create(null);for(let i=0;i{i in n&&(o[i]=n[i])}),o}(r[o],n[r[o].ref]));return r}eA.workerCount=2;const ek={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 eP(i,r,n){n.push({command:ek.addSource,args:[i,r[i]]})}function eD(i,r,n){r.push({command:ek.removeSource,args:[i]}),n[i]=!0}function eL(i,r,n,o,s,a){let l;for(l in r=r||{},i=i||{})i.hasOwnProperty(l)&&(h(i[l],r[l])||n.push({command:a,args:[o,l,r[l],s]}));for(l in r)r.hasOwnProperty(l)&&!i.hasOwnProperty(l)&&(h(i[l],r[l])||n.push({command:a,args:[o,l,r[l],s]}))}function eB(i){return i.id}function eR(i,r){return i[r.id]=r,i}class eF{constructor(i,r){this.reset(i,r)}reset(i,r){this.points=i||[],this._distances=[0];for(let i=1;i0?(s-l)/c:0;return this.points[a].mult(1-h).add(this.points[n].mult(h))}}class eO{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 i=0;ithis.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 i=0;i0: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 s=this.bboxes;for(const d of u)if(!h.box[d]){h.box[d]=!0;const u=4*d;if(i<=s[u+2]&&r<=s[u+3]&&n>=s[u+0]&&o>=s[u+1]&&(!c||c(this.boxKeys[d]))){if(l.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[d],x1:s[u],y1:s[u+1],x2:s[u+2],y2:s[u+3]})}}}const d=this.circleCells[s];if(null!==d){const s=this.circles;for(const u of d)if(!h.circle[u]){h.circle[u]=!0;const d=3*u;if(this._circleAndRectCollide(s[d],s[d+1],s[d+2],i,r,n,o)&&(!c||c(this.circleKeys[u]))){if(l.hitTest)return a.push(!0),!0;{const i=s[d],r=s[d+1],n=s[d+2];a.push({key:this.circleKeys[u],x1:i-n,y1:r-n,x2:i+n,y2:r+n})}}}}}_queryCellCircle(i,r,n,o,s,a,l,c){const h=l.circle,u=l.seenUids,d=this.boxCells[s];if(null!==d){const i=this.bboxes;for(const r of d)if(!u.box[r]){u.box[r]=!0;const n=4*r;if(this._circleAndRectCollide(h.x,h.y,h.radius,i[n+0],i[n+1],i[n+2],i[n+3])&&(!c||c(this.boxKeys[r])))return a.push(!0),!0}}const p=this.circleCells[s];if(null!==p){const i=this.circles;for(const r of p)if(!u.circle[r]){u.circle[r]=!0;const n=3*r;if(this._circlesCollide(i[n],i[n+1],i[n+2],h.x,h.y,h.radius)&&(!c||c(this.circleKeys[r])))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 h=u;h<=p;h++)if(s.call(this,i,r,n,o,this.xCellCount*h+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 eU=Math.tan(85*Math.PI/180);function eV(r,n,o,s,a,l){let h=i.create();if(o){if("globe"===a.projection.name)h=i.calculateGlobeMatrix(a,a.worldSize/a._projectionScaler,[0,0]),i.multiply$1(h,h,i.globeDenormalizeECEF(i.globeTileBounds(n)));else{const i=c([],l);h[0]=i[0],h[1]=i[1],h[4]=i[2],h[5]=i[3]}s||i.rotateZ(h,h,a.angle)}else i.multiply$1(h,a.labelPlaneMatrix,r);return h}function eN(r,n,o,s,a,l){if(o){if("globe"===a.projection.name){const c=eV(r,n,o,s,a,l);return i.invert(c,c),i.multiply$1(c,r,c),c}{const n=i.clone(r),o=i.identity([]);return o[0]=l[0],o[1]=l[1],o[4]=l[2],o[5]=l[3],i.multiply$1(n,n,o),s||i.rotateZ(n,n,-a.angle),n}}return a.glCoordMatrix}function ej(r,n,o=0){const s=[r.x,r.y,o,1];o?i.transformMat4$1(s,s,n):eJ(s,s,n);const a=s[3];return{point:new i.pointGeometry(s[0]/a,s[1]/a),signedDistanceFromCamera:a}}function eG(i,r){return Math.min(.5+i/r*.5,1.5)}function eZ(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=eH(i*v,n,o,s,a,l,c.segment,y,x,h,u,d,p,f,!0,m,_);if(!w)return null;const T=eH(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 e$(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.yeU}(n,o,s)?1===r.flipState?{needsFlipping:!0}:null:n.x>o.x?{needsFlipping:!0}:null}function eq(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 i=r.glyphStartIndex+r.numGlyphs,n=r.lineStartIndex,a=r.lineStartIndex+r.lineLength,d=eZ(b,h,w,T,o,p,f,r,u,l,m,g,!1,y,x);if(!d)return{notEnoughRoom:!0};const E=ej(d.first.point,c).point,S=ej(d.last.point,c).point;if(s&&!o){const i=e$(r,E,S,_);if(r.flipState=i&&i.needsFlipping?1:2,i)return i}v=[d.first];for(let s=r.glyphStartIndex+1;s0?l.point:eW(f,s,n,1,a,void 0,y,x.canonical),_);if(r.flipState=c&&c.needsFlipping?1:2,c)return c}const n=eH(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(!n)return{notEnoughRoom:!0};v=[n]}for(const r of v)i.addDynamicAttributes(d,r.point,r.angle);return{}}function eX(r,n,o,s,a){const l=s.projectTilePoint(r.x,r.y,n);if(!a)return ej(l,o,l.z);const c=a(r);return ej(new i.pointGeometry(l.x+c[0],l.y+c[1]),o,l.z+c[2])}function eW(i,r,n,o,s,a,l,c){const h=eX(i.add(i.sub(r)._unit()),c,s,l,a).point,u=n.sub(h);return n.add(u._mult(o/u.mag()))}function eH(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=()=>eW(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 r=eX(k,x.canonical,p,y,m);E=r.signedDistanceFromCamera>0?f[T]=r.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 L=(A-I)/M,B=E.sub(S),R=B.mult(L)._add(S);o&&R._add(B._unit()._perp()._mult(o*b));const F=w+Math.atan2(E.y-S.y,E.x-S.x);return C.push(R),_&&(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,L))),{point:R,angle:F,path:C,tilePath:z}}const eK=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function eY(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=ej(new i.pointGeometry(E[0],E[1]),c,E[2]).point,C=S.signedDistanceFromCamera>0?eZ(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 n=.5*f*I+m,o=new i.pointGeometry(-100,-100),s=new i.pointGeometry(this.screenRightBoundary,this.screenBottomBoundary),a=new eF,l=C.first,c=C.last;let d=[];for(let i=l.path.length-1;i>=1;i--)d.push(l.path[i]);for(let i=1;i{const n=v(rej(i,h));d=i.some(i=>i.signedDistanceFromCamera<=0)?[]:i.map(i=>i.point)}let x=[];if(d.length>0){const r=d[0].clone(),n=d[0].clone();for(let i=1;i=o.x&&n.x<=s.x&&r.y>=o.y&&n.y<=s.y?[d]:n.xs.x||n.ys.y?[]:i.clipLine([d],o.x,o.y,s.x,s.y)}for(const i of x){a.reset(i,.25*n);let o=0;o=a.length<=.5*n?1:Math.ceil(a.paddedLength/_)+1;for(let i=0;i0){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),T(r,h,l.pitch,l._fov)}(this.fogState,n,o,s||0,a.toUnwrapped(),this.transform)>.9),c=l[2]>l[3]||h}else eJ(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 e6(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 e8(r,n,o,s,a){const l=new i.pointGeometry(r,n);return o&&l._rotate(s?a:-a),l}class e9{constructor(i,r,n,o,s){this.transform=i.clone(),this.collisionIndex=new eQ(this.transform,s),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=r,this.retainedQueryData={},this.collisionGroups=new e4(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=eV(f,o.tileID.canonical,m,_,this.transform,x);let b=null;if(m){const r=eN(f,o.tileID.canonical,m,_,this.transform,x);b=i.multiply$1([],this.transform.labelPlaneMatrix,r)}let w=null;g&&o.latestFeatureIndex&&(w={unwrappedTileID:p,dynamicFilter:g,dynamicFilterNeedsFeature:y,featureIndex:o.latestFeatureIndex}),this.retainedQueryData[a.bucketInstanceId]=new e5(a.bucketInstanceId,l,a.sourceLayerIndex,a.index,o.tileID);const T={bucket:a,layout:c,posMatrix:f,textLabelPlaneMatrix:v,labelToScreenMatrix:b,clippingData:w,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 i of a.sortKeyRanges){const{sortKey:n,symbolInstanceStart:o,symbolInstanceEnd:s}=i;r.push({sortKey:n,symbolInstanceStart:o,symbolInstanceEnd:s,parameters:T})}else r.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:T})}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=e6(i,n,o,v,s),w=this.collisionIndex.placeCollisionBox(s,r,e8(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,e8(b.x,b.y,a,l,this.transform.angle),d,c,h,u.predicate).box.length)&&w.box.length>0){let r;return this.prevPlacement&&this.prevPlacement.variableOffsets[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID]&&this.prevPlacement.placements[p.crossTileID].text&&(r=this.prevPlacement.variableOffsets[p.crossTileID].anchor),this.variableOffsets[p.crossTileID]={textOffset:v,width:n,height:o,anchor:i,textScale:s,prevAnchor:r},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 o={zoom:this.transform.zoom,pitch:this.transform.pitch};let s=null;if(d.dynamicFilterNeedsFeature){const i=this.retainedQueryData[a.bucketInstanceId];s=d.featureIndex.loadFeature({featureIndex:r.featureIndex,bucketIndex:i.bucketIndex,sourceLayerIndex:i.sourceLayerIndex,layoutVertexArrayOffset:0})}if(!(0,d.dynamicFilter)(o,s,this.retainedQueryData[a.bucketInstanceId].tileID.canonical,new i.pointGeometry(r.tileAnchorX,r.tileAnchorY),this.transform.calculateDistanceTileData(d.unwrappedTileID)))return this.placements[r.crossTileID]=new e2(!1,!1,!1,!0),void(n[r.crossTileID]=!0)}if(n[r.crossTileID])return;if(f)return void(this.placements[r.crossTileID]=new e2(!1,!1,!1));let I=!1,C=!1,z=!0,k=null,P={box:null,offscreen:null},D={box:null,offscreen:null},L=null,B=null,R=null,F=0,O=0,U=0;m.textFeatureIndex?F=m.textFeatureIndex:r.useRuntimeCollisionCircles&&(F=r.featureIndex),m.verticalTextFeatureIndex&&(O=m.verticalTextFeatureIndex);const V=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)},N=m.textBox;if(N){V(N);const n=n=>{let o=i.WritingMode.horizontal;if(a.allowVerticalPlacement&&!n&&this.prevPlacement){const i=this.prevPlacement.placedOrientations[r.crossTileID];i&&(this.placedOrientations[r.crossTileID]=i,o=i,this.markUsedOrientation(a,o,r))}return o},o=(n,o)=>{if(a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&m.verticalTextBox){for(const r of a.writingModes)if(r===i.WritingMode.vertical?D=P=o():P=n(),P&&P.box&&P.box.length)break}else P=n()};if(l.get("text-variable-anchor")){let h=l.get("text-variable-anchor");if(this.prevPlacement&&this.prevPlacement.variableOffsets[r.crossTileID]){const i=this.prevPlacement.variableOffsets[r.crossTileID];h.indexOf(i.anchor)>0&&(h=h.filter(r=>r!==i.anchor)).unshift(i.anchor)}const u=(i,n,o)=>{const l=a.getSymbolInstanceTextSize(_,r,this.transform.zoom,s),u=(i.x2-i.x1)*l+2*i.padding,d=(i.y2-i.y1)*l+2*i.padding,f=S&&!w?n:null;f&&V(f);let m={box:[],offscreen:!1};const x=b?2*h.length:h.length;for(let n=0;n=h.length,r,s,a,o,f,_,g);if(x&&(m=x.placedGlyphBoxes)&&m.box&&m.box.length){I=!0,k=x.shift;break}}return m};o(()=>u(N,m.iconBox,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return n&&V(n),a.allowVerticalPlacement&&!(P&&P.box&&P.box.length)&&r.numVerticalGlyphVertices>0&&n?u(n,m.verticalIconBox,i.WritingMode.vertical):{box:null,offscreen:null}}),P&&(I=P.box,z=P.offscreen);const d=n(P&&P.box);if(!I&&this.prevPlacement){const i=this.prevPlacement.variableOffsets[r.crossTileID];i&&(this.variableOffsets[r.crossTileID]=i,this.markUsedJustification(a,i.anchor,r,d))}}else{const l=(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};o(()=>l(N,i.WritingMode.horizontal),()=>{const n=m.verticalTextBox;return a.allowVerticalPlacement&&r.numVerticalGlyphVertices>0&&n?(V(n),l(n,i.WritingMode.vertical)):{box:null,offscreen:null}}),n(P&&P.box&&P.box.length)}}if(I=(L=P)&&L.box&&L.box.length>0,z=L&&L.offscreen,r.useRuntimeCollisionCircles){const n=a.text.placedSymbolArray.get(r.centerJustifiedTextSymbolIndex>=0?r.centerJustifiedTextSymbolIndex:r.verticalPlacedTextSymbolIndex),s=i.evaluateSizeForFeature(a.textSizeData,_,n),d=l.get("text-padding");B=this.collisionIndex.placeCollisionCircles(b,n,a.lineVertexArray,a.glyphOffsetArray,s,c,h,u,o,E,y.predicate,r.collisionCircleDiameter*s/i.ONE_EM,d,this.retainedQueryData[a.bucketInstanceId].tileID),I=b||B.circles.length>0&&!B.collisionDetected,z=z&&B.offscreen}if(m.iconFeatureIndex&&(U=m.iconFeatureIndex),m.iconBox){const r=r=>{V(r);const n=S&&k?e8(k.x,k.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)};C=D&&D.box&&D.box.length&&m.verticalIconBox?(R=r(m.verticalIconBox)).box.length>0:(R=r(m.iconBox)).box.length>0,z=z&&R.offscreen}const j=x||0===r.numHorizontalGlyphVertices&&0===r.numVerticalGlyphVertices,G=v||0===r.numIconVertices;if(j||G?G?j||(C=C&&I):I=C&&I:C=I=C&&I,I&&L&&L.box&&this.collisionIndex.insertCollisionBox(L.box,l.get("text-ignore-placement"),a.bucketInstanceId,D&&D.box&&O?O:F,y.ID),C&&R&&this.collisionIndex.insertCollisionBox(R.box,l.get("icon-ignore-placement"),a.bucketInstanceId,U,y.ID),B&&(I&&this.collisionIndex.insertCollisionCircles(B.circles,l.get("text-ignore-placement"),a.bucketInstanceId,F,y.ID),o)){const i=a.bucketInstanceId;let r=this.collisionCircleArrays[i];void 0===r&&(r=this.collisionCircleArrays[i]=new e3);for(let i=0;i=0;--r){const n=i[r];C(a.symbolInstances.get(n),n,a.collisionArrays[n])}}else for(let i=r.symbolInstanceStart;i=0&&(r.text.placedSymbolArray.get(i).crossTileID=a>=0&&i!==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 i of l)r.text.placedSymbolArray.get(i).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 i in this.placements){const r=this.placements[i],a=s[i];a?(this.opacities[i]=new e1(a,o,r.text,r.icon,null,r.clipped),n=n||r.text!==a.text.placed||r.icon!==a.icon.placed):(this.opacities[i]=new e1(null,o,r.text,r.icon,r.skipFade,r.clipped),n=n||r.text||r.icon)}for(const i in s){const r=s[i];if(!this.opacities[i]){const s=new e1(r,o,!1,!1);s.isHidden()||(this.opacities[i]=s,n=n||r.text.placed||r.icon.placed)}}for(const i in a)this.variableOffsets[i]||!this.opacities[i]||this.opacities[i].isHidden()||(this.variableOffsets[i]=a[i]);for(const i in l)this.placedOrientations[i]||!this.opacities[i]||this.opacities[i].isHidden()||(this.placedOrientations[i]=l[i]);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 r=o.getBucket(i);r&&o.latestFeatureIndex&&i.id===r.layerIds[0]&&this.updateBucketOpacities(r,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 e1(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 e1(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||h>0,b=s.numIconVertices>0,w=this.placedOrientations[s.crossTileID],T=w===i.WritingMode.vertical,E=w===i.WritingMode.horizontal||w===i.WritingMode.horizontalOnly;if(!v&&!b||x.isHidden()||g++,v){const i=te(x.text);_(r.text,c,T?tt:i),_(r.text,h,E?tt:i);const n=x.text.isHidden();[s.rightJustifiedTextSymbolIndex,s.centerJustifiedTextSymbolIndex,s.leftJustifiedTextSymbolIndex].forEach(i=>{i>=0&&(r.text.placedSymbolArray.get(i).hidden=n||T?1:0)}),s.verticalPlacedTextSymbolIndex>=0&&(r.text.placedSymbolArray.get(s.verticalPlacedTextSymbolIndex).hidden=n||E?1:0);const o=this.variableOffsets[s.crossTileID];o&&this.markUsedJustification(r,o.anchor,s,w);const a=this.placedOrientations[s.crossTileID];a&&(this.markUsedJustification(r,"left",s,a),this.markUsedOrientation(r,a,s))}if(b){const i=te(x.icon);s.placedIconSymbolIndex>=0&&(_(r.icon,s.numIconVertices,T?tt:i),r.icon.placedSymbolArray.get(s.placedIconSymbolIndex).hidden=x.icon.isHidden()),s.verticalPlacedIconSymbolIndex>=0&&(_(r.icon,s.numVerticalIconVertices,E?tt:i),r.icon.placedSymbolArray.get(s.verticalPlacedIconSymbolIndex).hidden=x.icon.isHidden())}if(r.hasIconCollisionBoxData()||r.hasTextCollisionBoxData()){const n=r.collisionArrays[o];if(n){let o=new i.pointGeometry(0,0),s=!0;if(n.textBox||n.verticalTextBox){if(u){const i=this.variableOffsets[y];i?(o=e6(i.anchor,i.width,i.height,i.textOffset,i.textScale),d&&o._rotate(p?this.transform.angle:-this.transform.angle)):s=!1}a&&(s=!x.clipped),n.textBox&&e7(r.textCollisionBox.collisionVertexArray,x.text.placed,!s||T,o.x,o.y),n.verticalTextBox&&e7(r.textCollisionBox.collisionVertexArray,x.text.placed,!s||E,o.x,o.y)}const l=s&&!!(!E&&n.verticalIconBox);n.iconBox&&e7(r.iconCollisionBox.collisionVertexArray,x.icon.placed,l,f?o.x:0,f?o.y:0),n.verticalIconBox&&e7(r.iconCollisionBox.collisionVertexArray,x.icon.placed,!l,f?o.x:0,f?o.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 i=this.collisionCircleArrays[r.bucketInstanceId];r.placementInvProjMatrix=i.invProjMatrix,r.placementViewportMatrix=i.viewportMatrix,r.collisionCircleArray=i.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 e7(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 te(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 tt=0;class ti{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 i=n[r[this._currentPlacementIndex]],s=this.placement.collisionIndex.transform.zoom;if("symbol"===i.type&&(!i.minzoom||i.minzoom<=s)&&(!i.maxzoom||i.maxzoom>s)){if(this._inProgressLayer||(this._inProgressLayer=new ti(i)),this._inProgressLayer.continuePlacement(o[i.source],this.placement,this._showCollisionBoxes,i,a))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(i){return this.placement.commit(i),this.placement}}const tn=512/i.EXTENT/2;class to{constructor(i,r,n){this.tileID=i,this.indexedSymbolInstances={},this.bucketInstanceId=n;for(let n=0;ni.overscaledZ)for(const n in s){const a=s[n];a.tileID.isChildOf(i)&&a.findMatches(r.symbolInstances,i,o)}else{const a=s[i.scaledTo(Number(n)).key];a&&a.findMatches(r.symbolInstances,i,o)}}for(let i=0;i{r[i]=!0}),this.layerIndexes)r[n]||delete this.layerIndexes[n]}}const tc=(r,n)=>i.emitValidationErrors(r,n&&n.filter(i=>"source.canvas"!==i.identifier)),th=i.pick(ek,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData","setTerrain","setFog","setProjection"]),tu=i.pick(ek,["setCenter","setZoom","setBearing","setPitch"]),td=function(){const r={},n=i.spec.$version;for(const o in i.spec.$root){const s=i.spec.$root[o];if(s.required){let i=null;null!=(i="version"===o?n:"array"===s.type?[]:{})&&(r[o]=i)}}return r}(),tp={fill:!0,line:!0,background:!0,hillshade:!0,raster:!0};class tf extends i.Evented{constructor(r,n={}){super(),this.map=r,this.dispatcher=new A(eC(),this),this.imageManager=new _,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 tl,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=tf.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 i in o._sourceCaches){const r=o._sourceCaches[i],n=r.getSource().type;"vector"!==n&&"geojson"!==n||r.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 i in this._layers){const n=this._layers[i];n.source===r.id&&this._validateLayer(n)}})}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(td,!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&&tc(this,i.validateStyle(r)))return;for(const i in this._loaded=!0,this.stylesheet=r,this.updateProjection(),r.sources)this.addSource(i,r.sources[i],{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 o=ez(this.stylesheet.layers);for(let r of(this._order=o.map(i=>i.id),this._layers={},this._serializedLayers={},o))(r=i.createStyleLayer(r)).setEventedParent(this,{layer:{id:r.id}}),this._layers[r.id]=r,this._serializedLayers[r.id]=r.serialize(),this._updateLayerCount(r,!0);this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new x(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 i in this.map.painter.clearBackgroundTiles(),this._sourceCaches)this._sourceCaches[i].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 o in s){const{width:a,height:l,x:c,y:h,sdf:u,pixelRatio:d,stretchX:p,stretchY:f,content:m}=s[o],_=new i.RGBAImage({width:a,height:l});i.RGBAImage.copy(r,_,{x:c,y:h},{x:0,y:0},{width:a,height:l}),n[o]={data:_,pixelRatio:d,sdf:u,stretchX:p,stretchY:f,content:m}}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 i in n)this.imageManager.addImage(i,n[i]);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 i=this._layers[n];"custom"!==i.type&&r.push(i.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 i in this._layers)if(this._layers[i].hasTransition())return!0;return!1}get order(){return this.map._optimizeForTerrain&&this.terrain?this._drapedFirstOrder:this._order}isLayerDraped(i){return!!this.terrain&&tp[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 i=Object.keys(this._updatedLayers),n=Object.keys(this._removedLayers);for(const r in(i.length||n.length)&&this._updateWorkerLayers(i,n),this._updatedSources){const i=this._updatedSources[r];"reload"===i?this._reloadSource(r):"clear"===i&&this._clearSource(r)}for(const i in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[i].updateTransitions(r);this.light.updateTransitions(r),this.fog&&this.fog.updateTransitions(r),this._resetUpdates()}const o={};for(const i in this._sourceCaches){const r=this._sourceCaches[i];o[i]=r.used,r.used=!1}for(const i of this._order){const n=this._layers[i];if(n.recalculate(r,this._availableImages),!n.isHidden(r.zoom)){const i=this._getLayerSourceCache(n);i&&(i.used=!0)}const o=this.map.painter;if(o){const i=n.getProgramIds();if(!i)continue;const s=n.getProgramConfiguration(r.zoom);for(const r of i)o.useProgram(r,s)}}for(const r in o){const n=this._sourceCaches[r];o[r]!==n.used&&n.getSource().fire(new i.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:n.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(),tc(this,i.validateStyle(r)))return!1;(r=i.clone$1(r)).layers=ez(r.layers);const n=(function(i,r){if(!i)return[{command:ek.setStyle,args:[r]}];let n=[];try{if(!h(i.version,r.version))return[{command:ek.setStyle,args:[r]}];h(i.center,r.center)||n.push({command:ek.setCenter,args:[r.center]}),h(i.zoom,r.zoom)||n.push({command:ek.setZoom,args:[r.zoom]}),h(i.bearing,r.bearing)||n.push({command:ek.setBearing,args:[r.bearing]}),h(i.pitch,r.pitch)||n.push({command:ek.setPitch,args:[r.pitch]}),h(i.sprite,r.sprite)||n.push({command:ek.setSprite,args:[r.sprite]}),h(i.glyphs,r.glyphs)||n.push({command:ek.setGlyphs,args:[r.glyphs]}),h(i.transition,r.transition)||n.push({command:ek.setTransition,args:[r.transition]}),h(i.light,r.light)||n.push({command:ek.setLight,args:[r.light]}),h(i.fog,r.fog)||n.push({command:ek.setFog,args:[r.fog]}),h(i.projection,r.projection)||n.push({command:ek.setProjection,args:[r.projection]});const o={},s=[];!function(i,r,n,o){let s;for(s in r=r||{},i=i||{})i.hasOwnProperty(s)&&(r.hasOwnProperty(s)||eD(s,n,o));for(s in r){var a,l;r.hasOwnProperty(s)&&(i.hasOwnProperty(s)?h(i[s],r[s])||("geojson"===i[s].type&&"geojson"===r[s].type&&function(i,r,n){let o;for(o in i[n])if(i[n].hasOwnProperty(o)&&"data"!==o&&!h(i[n][o],r[n][o]))return!1;for(o in r[n])if(r[n].hasOwnProperty(o)&&"data"!==o&&!h(i[n][o],r[n][o]))return!1;return!0}(i,r,s)?n.push({command:ek.setGeoJSONSourceData,args:[s,r[s].data]}):(a=s,l=r,eD(a,n,o),eP(a,l,n))):eP(s,r,n))}}(i.sources,r.sources,s,o);const a=[];i.layers&&i.layers.forEach(i=>{o[i.source]?n.push({command:ek.removeLayer,args:[i.id]}):a.push(i)});let l=i.terrain;l&&o[l.source]&&(n.push({command:ek.setTerrain,args:[void 0]}),l=void 0),n=n.concat(s),h(l,r.terrain)||n.push({command:ek.setTerrain,args:[r.terrain]}),function(i,r,n){let o,s,a,l,c,u,d;r=r||[];const p=(i=i||[]).map(eB),f=r.map(eB),m=i.reduce(eR,{}),_=r.reduce(eR,{}),g=p.slice(),y=Object.create(null);for(o=0,s=0;o!(i.command in tu));if(0===n.length)return!1;const o=n.filter(i=>!(i.command in th));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=eE(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 n in this._layers)if(this._layers[n].source===r)return this.fire(new i.ErrorEvent(Error(`Source "${r}" cannot be removed while layer "${n}" 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 o=this._getSourceCaches(r);for(const r of o)delete this._sourceCaches[r.id],delete this._updatedSources[r.id],r.fire(new i.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:r.getSource().id})),r.setEventedParent(null),r.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(tc(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 i=this._removedLayers[a];delete this._removedLayers[a],i.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 s=this.getLayer(r);if(s){if(!h(s.filter,n))return null==n?(s.filter=void 0,void this._updateLayer(s)):void(this._validate(i.validateStyle.filter,`layers.${s.id}.filter`,n,{layerType:s.type},o)||(s.filter=i.clone$1(n),this._updateLayer(s)))}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,s={}){this._checkLoaded();const a=this.getLayer(r);a?h(a.getLayoutProperty(n),o)||(a.setLayoutProperty(n,o,s),this._updateLayer(a)):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,s={}){this._checkLoaded();const a=this.getLayer(r);a?h(a.getPaintProperty(n),o)||(a.setPaintProperty(n,o,s)&&this._updateLayer(a),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 i of c)i.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 i of c)i.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 i in this._sourceCaches){const n=this._sourceCaches[i].getSource();r[n.id]||(r[n.id]=n.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){const r=i=>"fill-extrusion"===this._layers[i].type,n={},o=[];for(let s=this._order.length-1;s>=0;s--){const a=this._order[s];if(r(a))for(const r of(n[a]=s,i)){const i=r[a];if(i)for(const r of i)o.push(r)}}o.sort((i,r)=>r.intersectionZ-i.intersectionZ);const s=[];for(let a=this._order.length-1;a>=0;a--){const l=this._order[a];if(r(l))for(let i=o.length-1;i>=0;i--){const r=o[i].feature;if(n[r.layer.id]{const r=this.getLayer(i);return r&&r.is3D()}):this.has3DLayers(),c=eg.createFromScreenPoints(r,o);for(const r in this._sourceCaches){const h=this._sourceCaches[r].getSource().id;n.layers&&!s[h]||a.push(function(r,n,o,s,a,l,c,h=!1){const u=r.tilesIn(s,c,h);u.sort(eS);const d=[];for(const s of u)d.push({wrappedTileID:s.tile.tileID.wrapped().key,queryResults:s.tile.queryRenderedFeatures(n,o,r._state,s,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,s.tile.tileID),h)});const p=function(i){const r={},n={};for(const o of i){const i=o.queryResults,s=o.wrappedTileID,a=n[s]=n[s]||{};for(const n in i){const o=i[n],s=a[n]=a[n]||{},l=r[n]=r[n]||[];for(const i of o)s[i.featureIndex]||(s[i.featureIndex]=!0,l.push(i))}}return r}(d);for(const i in p)p[i].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 p}(this._sourceCaches[r],this._layers,this._serializedLayers,c,n,o,l,!!this.map._showQueryGeometry))}return this.placement&&a.push(function(i,r,n,o,s,a,l){const c={},h=a.queryRenderedSymbols(o),u=[];for(const i of Object.keys(h).map(Number))u.push(l[i]);for(const n of(u.sort(eS),u)){const o=n.featureIndex.lookupSymbolFeatures(h[n.bucketInstanceId],r,n.bucketIndex,n.sourceLayerIndex,s.filter,s.layers,s.availableImages,i);for(const i in o){const r=c[i]=c[i]||[],s=o[i];for(const i of(s.sort((i,r)=>{const o=n.featureSortOrder;if(o){const n=o.indexOf(i.featureIndex);return o.indexOf(r.featureIndex)-n}return r.featureIndex-i.featureIndex}),s))r.push(i)}}for(const r in c)c[r].forEach(o=>{const s=o.feature,a=n(i[r]).getFeatureState(s.layer["source-layer"],s.id);s.source=s.layer.source,s.layer["source-layer"]&&(s.sourceLayer=s.layer["source-layer"]),s.state=a});return c}(this._layers,this._serializedLayers,this._getLayerSourceCache.bind(this),c.screenGeometry,n,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(a)}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 i of o)s=s.concat(function(i,r){const n=i.getRenderableIds().map(r=>i.getTileByID(r)),o=[],s={};for(let i=0;i{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 s in r)if(!h(r[s],o[s])){n.set(r),this.stylesheet.fog=r;const o={now:i.exported.now(),transition:i.extend({duration:0},this.stylesheet.transition)};n.updateTransitions(o);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 w(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)&&tc(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 i in this._sourceCaches)this._sourceCaches[i].clearTiles(),this._sourceCaches[i].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()}_clearSource(i){const r=this._getSourceCaches(i);for(const i of r)i.clearTiles()}_reloadSource(i){const r=this._getSourceCaches(i);for(const i of r)i.resume(),i.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 i of this._order){const n=this._layers[i];if("symbol"!==n.type)continue;if(!h[n.source]){const i=this._getLayerSourceCache(n);if(!i)continue;h[n.source]=i.getRenderableIds(!0).map(r=>i.getTileByID(r)).sort((i,r)=>r.tileID.overscaledZ-i.tileID.overscaledZ||(i.tileID.isLessThan(r.tileID)?-1:1))}const o=this.crossTileSymbolIndex.addLayer(n,h[n.source],r.center.lng,r.projection);l=l||o}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 tr(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 i of this._order){const r=this._layers[i];"symbol"===r.type&&this.placement.updateLayerOpacities(r,h[r.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)}}tf.getSourceType=function(i){return eT[i]},tf.setSourceType=function(i,r){eT[i]=r},tf.registerForPluginStateChange=i.registerForPluginStateChange;var tm="\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",t_="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 tg={},ty={};tg=tb("","\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),ty=tb("#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 tx=tb("\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 tv={background:tb("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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("#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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("#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:tb("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:tb("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:tb("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:tb("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:tb("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:tb("#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:tb("#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:tb("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:tb("#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:tb("\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}",t_),skyboxGradient:tb("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}",t_),skyboxCapture:tb("\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:tb("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:tb("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 tb(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=tm.match(s);let u=c?c.concat(l):l;n||(tg.staticUniforms&&(u=tg.staticUniforms.concat(u)),ty.staticUniforms&&(u=ty.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 diff --git a/crates/swc_ecma_minifier/tests/full/issue-5912-bigdecimal/output.js b/crates/swc_ecma_minifier/tests/full/issue-5912-bigdecimal/output.js index 37d99471d8ae..16643b3829c2 100644 --- a/crates/swc_ecma_minifier/tests/full/issue-5912-bigdecimal/output.js +++ b/crates/swc_ecma_minifier/tests/full/issue-5912-bigdecimal/output.js @@ -1 +1 @@ -!function(n){if(void 0===t)var t={};if(void 0===e)var e={};if(e.document||(e.document=t),void 0===r)var r={};function i(){}function o(t){var r=e.bigdecimal[t],i=r;if(r.__init__){for(var o in(i=function(){var n=Array.prototype.slice.call(arguments);return r.__init__(n)}).prototype=r.prototype,r)if(r.hasOwnProperty(o)){if("function"==typeof r[o]&&o.match(/_va$/)){var u=o.replace(/_va$/,"");i[u]=function n(){var t=Array.prototype.slice.call(arguments);return n.inner_method(t)},i[u].inner_method=r[o]}else i[o]=r[o]}}var f=i.prototype;for(var o in f)if(f.hasOwnProperty(o)&&"function"==typeof f[o]&&o.match(/_va$/)){var u=o.replace(/_va$/,"");f[u]=function n(){var t=Array.prototype.slice.call(arguments);return n.inner_method.apply(this,[t])},f[u].inner_method=f[o],delete f[o]}n[t]=i}r.userAgent||(r.userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML, like Gecko) Version/5.1.1 Safari/534.51.22"),function(){var n,t,o=e,u=o.document,f=o.__gwtStatsEvent?function(n){return o.__gwtStatsEvent(n)}:null,c=o.__gwtStatsSessionId?o.__gwtStatsSessionId:null;function s(){}function h(){}function a(){}function b(){}function l(){}function g(){}function w(){}function d(){}function _(){}function v(){}function m(){}function y(){}function C(){}function S(){}function M(){}function x(){}function B(){}function A(){}function N(){}function I(){}function E(){}function R(){}function O(){}function D(){}function k(){}function L(){}function U(){}function P(){}function Q(){}function T(){nX()}function j(){nZ()}function F(){tD()}function H(){ej()}function $(){ej()}function V(){ej()}function q(){ej()}function G(){ej()}function z(){ej()}function J(){nW()}function K(){nc(this)}function W(){nc(this)}function Z(n){iP(this,n)}function X(n){this.c=n}function Y(n){this.b=n}function nn(n){this.b=n}function nt(n){this.b=n}function ne(n){ej(),this.f=n}function nr(n){ne.call(this,n)}function ni(n){ne.call(this,n)}function no(n){ne.call(this,n)}function nu(n){ne.call(this,n)}function nf(n){ne.call(this,n)}function nc(n){n.b=new C}function ns(){this.b=new C}function nh(){nh=l,ut=new w}function na(){na=l,t=new nY}function nb(n,t){na(),n[oy]=t}function nl(n,t){na(),function(n,t){var e,r,i,u,f,c,s,h,a,b;for(f=0,s=i_(n,om,0),c=o;ft?n:t}function n_(n,t){return!rA(n,t)}function nv(n){this.b=new iS(n)}function nm(){this.b=(rj(),uj)}function ny(){this.b=(iB(),u2)}function nC(n,e){var r;na(),r=t.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 tg(n){return nG(n,15)?n:new n1(n)}function tw(){try{null.a()}catch(n){return n}}function td(n){var t;return(t=new N).d=i$+n,t.c=1,t}function tp(n,t){return nF(n)?n.eQ(t):n===t}function t_(n,t){return n.l==t.l&&n.m==t.m&&n.h==t.h}function tv(n,t){return n.l!=t.l||n.m!=t.m||n.h!=t.h}function tm(n,t,e){return(iH=new M).l=n,iH.m=t,iH.h=e,iH}function ty(n,t){return nT(n)===nT(t)||null!=n&&tp(n,t)}function tC(n,t){throw new nu("Index: "+n+", Size: "+t)}function tS(n,t){if(!n)throw new G;this.f=t,tR(this,n)}function tM(n,t){if(!n)throw new G;this.f=t,tR(this,n)}function tx(n,t,e,r){ez.call(this,n,t,e),ic(this,r)}function tB(n,t){ez.call(this,n,0,n.length),ic(this,t)}function tA(n,t){ez.call(this,t6(n),0,n.length),ic(this,t)}function tN(n){ne.call(this,"String index out of range: "+n)}function tI(n,t){var e,r;return e=n.b,r=String.fromCharCode(t),e.b+=r,n}function tE(n,t){ry(n.b,n.b,n.e,t.b,t.e),tW(n),n.c=-2}function tR(n,t){n.d=t,n.b=t.ab(),n.b<54&&(n.g=rr(eA(t)))}function tO(){tO=l,ue=[],ur=[],function(n,t,e){var r,i=0;for(var o in n)(r=n[o])&&(t[i]=o,e[i]=r,++i)}(new S,ue,ur)}function tD(){uy||(uy=!0,new T,new j,function(){if(nl(ox,i$),o.bigdecimal.BigDecimal)var n=o.bigdecimal.BigDecimal;o.bigdecimal.BigDecimal=ff(function(){1==arguments.length&&null!=arguments[0]&&arguments[0].gC()==fD?this.__gwt_instance=arguments[0]:0==arguments.length&&(this.__gwt_instance=new ng,nb(this.__gwt_instance,this))});var t=o.bigdecimal.BigDecimal.prototype={};if(n)for(p in n)o.bigdecimal.BigDecimal[p]=n[p];o.bigdecimal.BigDecimal.ROUND_CEILING=2,o.bigdecimal.BigDecimal.ROUND_DOWN=1,o.bigdecimal.BigDecimal.ROUND_FLOOR=3,o.bigdecimal.BigDecimal.ROUND_HALF_DOWN=5,o.bigdecimal.BigDecimal.ROUND_HALF_EVEN=6,o.bigdecimal.BigDecimal.ROUND_HALF_UP=4,o.bigdecimal.BigDecimal.ROUND_UNNECESSARY=7,o.bigdecimal.BigDecimal.ROUND_UP=0,o.bigdecimal.BigDecimal.__init__=ff(function(n){var t=function(n){var t,e;if(iU(),(e=iI(n))==i8)t=new nk(new nq(n[0].toString()));else if("BigInteger number"==e)t=new tS(new nq(n[0].toString()),n[1]);else if("BigInteger number MathContext"==e)t=new te(new nq(n[0].toString()),n[1],new iS(n[2].toString()));else if("BigInteger MathContext"==e)t=new n4(new nq(n[0].toString()),new iS(n[1].toString()));else if(e==oS)t=new n2(t6(n[0].toString()));else if("array number number"==e)t=new ez(t6(n[0].toString()),n[1],n[2]);else if("array number number MathContext"==e)t=new tx(t6(n[0].toString()),n[1],n[2],new iS(n[3].toString()));else if("array MathContext"==e)t=new tB(t6(n[0].toString()),new iS(n[1].toString()));else if(e==ok)t=new eu(n[0]);else if(e==oL)t=new ep(n[0],new iS(n[1].toString()));else if(e==oF)t=new Z(n[0].toString());else if("string MathContext"==e)t=new tA(n[0].toString(),new iS(n[1].toString()));else throw new ne("Unknown call signature for obj = new java.math.BigDecimal: "+e);return new nL(t)}(n);return nE(t)}),t.abs_va=ff(function(n){return nE(this.__gwt_instance.s(n))}),t.add_va=ff(function(n){return nE(this.__gwt_instance.t(n))}),t.byteValueExact=ff(function(){return this.__gwt_instance.u()}),t.compareTo=ff(function(n){return this.__gwt_instance.v(n.__gwt_instance)}),t.divide_va=ff(function(n){return nE(this.__gwt_instance.y(n))}),t.divideToIntegralValue_va=ff(function(n){return nE(this.__gwt_instance.x(n))}),t.doubleValue=ff(function(){return this.__gwt_instance.z()}),t.equals=ff(function(n){return this.__gwt_instance.eQ(n)}),t.floatValue=ff(function(){return this.__gwt_instance.A()}),t.hashCode=ff(function(){return this.__gwt_instance.hC()}),t.intValue=ff(function(){return this.__gwt_instance.B()}),t.intValueExact=ff(function(){return this.__gwt_instance.C()}),t.max=ff(function(n){return nE(this.__gwt_instance.F(n.__gwt_instance))}),t.min=ff(function(n){return nE(this.__gwt_instance.G(n.__gwt_instance))}),t.movePointLeft=ff(function(n){return nE(this.__gwt_instance.H(n))}),t.movePointRight=ff(function(n){return nE(this.__gwt_instance.I(n))}),t.multiply_va=ff(function(n){return nE(this.__gwt_instance.J(n))}),t.negate_va=ff(function(n){return nE(this.__gwt_instance.K(n))}),t.plus_va=ff(function(n){return nE(this.__gwt_instance.L(n))}),t.pow_va=ff(function(n){return nE(this.__gwt_instance.M(n))}),t.precision=ff(function(){return this.__gwt_instance.q()}),t.remainder_va=ff(function(n){return nE(this.__gwt_instance.N(n))}),t.round=ff(function(n){return nE(this.__gwt_instance.O(n.__gwt_instance))}),t.scale=ff(function(){return this.__gwt_instance.P()}),t.scaleByPowerOfTen=ff(function(n){return nE(this.__gwt_instance.Q(n))}),t.setScale_va=ff(function(n){return nE(this.__gwt_instance.R(n))}),t.shortValueExact=ff(function(){return this.__gwt_instance.S()}),t.signum=ff(function(){return this.__gwt_instance.r()}),t.stripTrailingZeros=ff(function(){return nE(this.__gwt_instance.T())}),t.subtract_va=ff(function(n){return nE(this.__gwt_instance.U(n))}),t.toBigInteger=ff(function(){return nE(this.__gwt_instance.V())}),t.toBigIntegerExact=ff(function(){return nE(this.__gwt_instance.W())}),t.toEngineeringString=ff(function(){return this.__gwt_instance.X()}),t.toPlainString=ff(function(){return this.__gwt_instance.Y()}),t.toString=ff(function(){return this.__gwt_instance.tS()}),t.ulp=ff(function(){return nE(this.__gwt_instance.Z())}),t.unscaledValue=ff(function(){return nE(this.__gwt_instance.$())}),t.divideAndRemainder_va=ff(function(n){return nR(this.__gwt_instance.w(n))}),t.longValue=ff(function(){return this.__gwt_instance.E()}),t.longValueExact=ff(function(){return this.__gwt_instance.D()}),o.bigdecimal.BigDecimal.valueOf_va=ff(function(n){var t=function(n){var t,e;if(iU(),(e=iI(n))==ok)t=function(n){if(!isFinite(n)||isNaN(n))throw new nw(os);return new Z(i$+n)}(n[0]);else if(e==ok)t=tZ(e3(n[0]));else if(e==oU)t=ek(e3(n[0]),n[1]);else throw new ne("Unknown call signature for bd = java.math.BigDecimal.valueOf: "+e);return new nL(t)}(n);return nE(t)}),o.bigdecimal.BigDecimal.log=ff(function(n){iU(),typeof console!==oH&&console.log&&console.log(n)}),o.bigdecimal.BigDecimal.logObj=ff(function(n){iU(),typeof console!==oH&&console.log&&typeof JSON!==oH&&JSON.stringify&&console.log("object: "+JSON.stringify(n))}),o.bigdecimal.BigDecimal.ONE=ff(function(){var n=(iU(),new nL(ug));return nE(n)}),o.bigdecimal.BigDecimal.TEN=ff(function(){var n=(iU(),new nL(uw));return nE(n)}),o.bigdecimal.BigDecimal.ZERO=ff(function(){var n=(iU(),new nL(ud));return nE(n)}),nC(fD,o.bigdecimal.BigDecimal)}())}function tk(n,t,e){var r;return(r=new N).d=n+t,r.c=4,r.b=e,r}function tL(n,t,e,r,i){var o;return tJ(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 tN(e)}(n.length,t,r),t4(n,t,r)}function tP(n,t){return ib(),t=n.c.c)throw new z;return t=n.c,r=e=n.b++,i=t.c,(r<0||r>=i)&&tC(r,i),t.b[e]}function tj(n,t){return!!nG(t,1)&&String(n)==t}function tF(){ne.call(this,"Add not supported on this collection")}function tH(){this.b=[],this.f={},this.d=!1,this.c=null,this.e=0}function t$(n,t){rK(),this.f=n,this.e=1,this.b=tJ(fd,{6:1},-1,[t])}function tV(n,t){var e;return e=n.c,n.c=t,!n.d&&(n.d=!0,++n.e),e}function tq(n,t){var e,r;return e=n.b,r=String.fromCharCode.apply(null,t),e.b+=r,n}function tG(n,t,e,r){var i,o;return null==t&&(t=oD),i=n.b,o=t.substr(e,r-e),i.b+=o,n}function tz(n,t,e,r){var i;return ry(i=tL(fd,{6:1},-1,t,1),n,t,e,r),i}function tJ(n,t,e,r){return tO(),function(n,t,e){tO();for(var r=0,i=t.length;r0&&0==n.b[--n.e];);0==n.b[n.e++]&&(n.f=0)}function tZ(n){return rA(n,oz)&&n_(n,oX)?uc[nx(n)]:new eo(n,0)}function tX(n,t){return 0==t||0==n.f?n:t>0?e4(n,t):rX(n,-t)}function tY(n,t){return 0==t||0==n.f?n:t>0?rX(n,t):e4(n,-t)}function t1(n){var t;return 0==n.f?-1:((t=eg(n))<<5)+ec(n.b[t])}function t0(n){var t;return 0!=(t=nx(n))?ec(t):ec(nx(rJ(n,32)))+32}function t2(n,t){var e;return 0==(e=eR(n,t)).length?(new d).o(t):tl(e,1)}function t4(n,t,e){return n=n.slice(t,e),String.fromCharCode.apply(null,n)}function t3(n,t,e,r){var i;return ia(i=tL(fd,{6:1},-1,t+1,1),n,t,e,r),i}function t6(n){var t,e;return t=tL(fJ,{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,(_=(g=b.e)+(w=l.e),v=b.f!=l.f?-1:1,2==_)?(S=nx(y=iE(ts(e3(b.b[0]),o3),ts(e3(l.b[0]),o3))),0==(C=nx(rU(y,32)))?new t$(v,S):new ti(v,2,tJ(fd,{6:1},-1,[S,C]))):(eq(b.b,g,l.b,w,d=tL(fd,{6:1},-1,_,1)),tW(m=new ti(v,_,d)),m)):(f=(-2&t.e)<<4,h=t.fb(f),a=e.fb(f),i=is(t,h.eb(f)),o=is(e,a.eb(f)),s=n(h,a),r=n(i,o),u=(u=iC(iC(u=n(is(h,i),is(o,a)),s),r)).eb(f),iC(iC(s=s.eb(f<<1),u),r))}(n,t))}function et(n,t){var e;if(t.f<=0)throw new nr(oe);return(e=rF(n,t)).f<0?iC(e,t):e}function ee(n){var t;t=new nz,n.d&&n6(t,new nt(n)),function(n,t){var e=n.f;for(var r in e)if(58==r.charCodeAt(0)){var i=new nB(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=eU(n.g)),n.d).r()}function ed(n){return n.b<54?new tr(-n.g,n.f):new tM((n.d||(n.d=eU(n.g)),n.d).cb(),n.f)}function ep(n,t){if(!isFinite(n)||isNaN(n))throw new nw(os);iP(this,n.toPrecision(20)),ic(this,t)}function e_(n,t){return isNaN(n)?isNaN(t)?0:1:isNaN(t)?-1:nt?1:0}function ev(n,t){return t<2||t>36||n<0||n>=t?0:n<10?48+n&65535:97+n-10&65535}function em(n,t){var e,r;return t?((e=t[oy])||(e=new(r=t.gC(),t9(er(n.b,r)))(t),t[oy]=e),e):null}function ey(n){var t,e;return 32==(e=rH(n.h))?32==(t=rH(n.m))?rH(n.l)+32:t+20-10:e-12}function eC(n){return tm(4194303&n,~~n>>22&4194303,n<0?1048575:0)}function eS(){eS=l,ui=tm(4194303,4194303,524287),uo=tm(0,0,524288),uu=e3(1),e3(2),uf=e3(0)}function eM(n,t){ia(n.b,n.b,n.e,t.b,t.e),n.e=nd(np(n.e,t.e)+1,n.b.length),tW(n),n.c=-2}function ex(n,t){var e;e=~~t>>5,n.e+=e+(rH(n.b[n.e-1])-(31&t)>=0?0:1),rC(n.b,n.b,e,31&t),tW(n),n.c=-2}function eB(n,t){var e,r;e=~~t>>5,n.e>>r:0,tW(n))}function eA(n){var t;return t=n.e>1?th(rL(e3(n.b[1]),32),ts(e3(n.b[0]),o3)):ts(e3(n.b[0]),o3),iE(e3(n.f),t)}function eN(n,t,e){var r;for(r=e-1;r>=0&&n[r]==t[r];--r);return r<0?0:n_(ts(e3(n[r]),o3),ts(e3(t[r]),o3))?-1:1}function eI(n,t,e){var r,i,o;for(i=0,r=0;i>>31;0!=r&&(n[e]=r)}function eE(n,t,e,r){if(iF=t,n)try{ff(im)()}catch(e){n(t)}else ff(im)()}function eR(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 eo(oz,2147483647):new eo(oz,-2147483648)}function eU(n){return(rK(),n<0)?-1!=n?new ro(-1,-n):uC:n<=10?uM[ei(n)]:new ro(1,n)}function eP(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,tm(t,e,r)}function eQ(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 eT(n){var t,e,r;for(r=0,e=tL(fC,{6:1},13,n.length,0),t=n.length;r=0;--r)if(n[r]!=i[r]){e=0!=n[r]&&rB(ts(e3(n[r]),o3),ts(e3(i[r]),o3));break}}return u=new ti(1,o+1,n),e&&tE(u,t),tW(u),u}(o,e)}function e$(n,t){var e;return n===t||!!nG(t,17)&&(e=tQ(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 eV(n){var t,e;return 0==n.f?0:(t=n.e<<5,e=n.b[n.e-1],n.f<0&&eg(n)==n.e-1&&(e=~~(e-1)),t-=rH(e))}function eq(n,t,e,r,i){ib(),0!=t&&0!=r&&(1==t?i[r]=rf(i,e,r,n[0]):1==r?i[t]=rf(i,n,t,e[0]):function(n,t,e,r,i){var o,u,f,c;if(nT(n)===nT(t)&&r==i){io(n,r,e);return}for(f=0;f2147483647))return ei(n);throw new nr("Underflow")}function eK(n,t){if(rj(),n<0)throw new no("Digits < 0");if(!t)throw new nf("null RoundingMode");this.b=n,this.c=t}function eW(n){return(rK(),n_(n,oz))?tv(n,oG)?new ri(-1,eP(n)):uC:rB(n,oZ)?new ri(1,n):uM[nx(n)]}function eZ(n){var t;return n_(n,oz)&&(n=tm(4194303&~n.l,4194303&~n.m,1048575&~n.h)),64-(0!=(t=nx(rJ(n,32)))?rH(t):rH(nx(n))+32)}function eX(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),tm(4194303&e,4194303&r,1048575&i)}function eY(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),tm(4194303&e,4194303&r,1048575&i)}function e1(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-np(e,n.bb())}function e0(n,t){var e;return n===t||!!nG(t,16)&&(e=tQ(t,16)).f==n.f&&(n.b<54?e.g==n.g:n.d.eQ(e.d))}function e2(n,t,e){var r,i,o;for(o=oz,r=t-1;r>=0;--r)i=r0(eX(rL(o,32),ts(e3(n[r]),o3)),e),o=e3(nx(rJ(i,32)));return nx(o)}function e4(n,t){var e,r,i,o;return e=~~t>>5,t&=31,rC(r=tL(fd,{6:1},-1,i=n.e+e+(0==t?0:1),1),n.b,e,t),tW(o=new ti(n.f,i,r)),o}function e3(n){var t,e;return n>-129&&n<128?(t=n+128,null==o8&&(o8=tL(fE,{6:1},2,256,0)),(e=o8[t])||(e=o8[t]=eC(n)),e):eC(n)}function e6(n){var t,e;return(rK(),n>5)+1,1))[t]=1<<(31&n),new ti(1,t+1,e))}function e5(n){rK(),0==n.length?(this.f=0,this.e=1,this.b=tJ(fd,{6:1},-1,[0])):(this.f=1,this.e=n.length,this.b=n,tW(this))}function e9(n){return 0==n.length||n[0]>iV&&n[n.length-1]>iV?n:n.replace(/^(\s*)/,i$).replace(/\s*$/,i$)}function e7(n){return n-=~~n>>1&1431655765,n=(~~(n=(~~n>>2&858993459)+(858993459&n))>>4)+n&252645135,n+=~~n>>8,63&(n+=~~n>>16)}function e8(n,t,e){if(null!=e){var r;if(n.qI>0&&(r=n.qI,!e.cM||!e.cM[r])||n.qI<0&&(e.tM==l||nH(e,1)))throw new $}return n[t]=e}function rn(n,t){return n.f>t.f?1:n.ft.e?n.f:n.e=0;--o)u=eH(u,u,r,i),(e.b[~~o>>5]&1<<(31&o))!=0&&(u=eH(u,t,r,i));return u}(f,r,t,e,o):function(n,t,e,r,i){var o,u,f,c,s,h,a;for(s=tL(f5,{6:1},17,8,0),h=n,e8(s,0,t),a=eH(t,t,r,i),u=1;u<=7;++u)e8(s,u,eH(s[u-1],a,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],h,r,i),u=o}else h=eH(h,h,r,i);return h}(f,r,t,e,o),eH(u,(rK(),uS),e,o)}function rs(n,t){var e,r,i,o;for(e=0,r=n.length;e36)throw new nw("Radix out of range");if(0==n.length)throw new nw("Zero length BigInteger");(function(n,t,e){var r,i,o,u,f,c,s,h,a,b,l,g,w,d;for(s=l=t.length,45==t.charCodeAt(0)?(a=-1,b=1,--l):(a=1,b=0),o=~~(l/(u=(iM(),uU)[e])),0!=(d=l%u)&&++o,c=tL(fd,{6:1},-1,o,1),r=uL[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:n_(ts(e3(n[i]),o3),ts(e3(t[i]),o3))?-1:1}function rl(n,t){var e,r,i;for(r=tL(fd,{6:1},-1,i=n.e,1),nd(eg(n),eg(t)),e=0;e999999999)throw new nr(oh);return e=n.f*t,0==n.b&&-1!=n.g?eL(e):new tS((n.d||(n.d=eU(n.g)),n.d).db(t),eJ(e))}function rd(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)fo[n]=e,e*=.5;for(n=24,t=1;n>=0;--n)fi[n]=t,t*=.5}function r_(){r_=l,uR=tJ(fJ,{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 rv(n){var t;return 0!=n.c?n.c:n.b<54?(t=r2(n.g),n.c=nx(ts(t,oG)),n.c=33*n.c+nx(ts(rJ(t,32),oG)),n.c=17*n.c+ei(n.f),n.c):(n.c=17*n.d.hC()+ei(n.f),n.c)}function rm(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=e_(n*t,0),0!=u&&(i=e_((u<=0?0-u:u)*2,t<=0?0-t:t),o+=r8(1&ei(o),f*(5+i),r)),new tr(o,e)}function ry(n,t,e,r,i){var o,u;for(u=0,o=oz;ue;--i)n[i]|=~~t[i-e-1]>>>o,n[i-1]=t[i-e-1]<>5,n.e-=r,!rO(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=ei(nU(Math.log(n)/.6931471805599453)),(!t||n!=Math.pow(2,e))&&++e,e):eZ(r2(n))}function rE(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)?eW(rN(eA(e),eA(r))):function(n,t){var e,r,i,o;i=(e=n.bb())<(r=t.bb())?e:r,rx(n,e),rx(t,r),1==rn(n,t)&&(o=n,n=t,t=o);do{if(1==t.e||2==t.e&&t.b[1]>0){t=eW(rN(eA(n),eA(t)));break}if(t.e>1.2*n.e)0!=(t=rF(t,n)).r()&&rx(t,t.bb());else do tE(t,n),rx(t,t.bb());while(rn(t,n)>=0)o=t,t=n,n=o}while(0!=o.f)return t.eb(i)}(ea(e),ea(r))}function rR(n,t){var e;if(t.f<=0)throw new nr(oe);if(!(n.gb(0)||t.gb(0)))throw new nr(ot);if(1==t.e&&1==t.b[0])return uB;if(0==(e=function(n,t){var e,r,i,o,u,f,c,s,h,a,b;if(0==n.f)throw new nr(ot);if(!t.gb(0))return function(n,t){var e,r,i,o,u,f,c,s,h,a,b;for(h=tL(fd,{6:1},-1,(o=np(n.e,t.e))+1,1),b=tL(fd,{6:1},-1,o+1,1),ix(t.b,0,h,0,t.e),ix(n.b,0,b,0,n.e),s=new ti(t.f,t.e,h),a=new ti(n.f,n.e,b),f=new ti(0,1,tL(fd,{6:1},-1,o+1,1)),(c=new ti(1,1,tL(fd,{6:1},-1,o+1,1))).b[0]=1,e=0,r=0,u=t.ab();!eO(s,e)&&!eO(a,r);)if(0!=(i=e1(s,u))&&(ex(s,i),e>=r?ex(f,i):(rx(c,r-e0&&ex(f,i-r+e)),e+=i),0!=(i=e1(a,u))&&(ex(a,i),r>=e?ex(c,i):(rx(f,e-r0&&ex(c,i-e+r)),r+=i),s.r()==a.r()?e<=r?(rV(s,a),rV(f,c)):(rV(a,s),rV(c,f)):e<=r?(r$(s,a),r$(f,c)):(r$(a,s),r$(c,f)),0==a.r()||0==s.r())throw new nr(ot);return eO(a,r)&&(f=c,a.r()!=s.r()&&(s=s.cb())),s.gb(u)&&(f=0>f.r()?f.cb():is(t,f)),0>f.r()&&(f=iC(f,t)),f}(n,t);for(o=32*t.e,a=ea(t),u=np((b=ea(n)).e,a.e),c=new ti(1,1,tL(fd,{6:1},-1,u+1,1)),(s=new ti(1,1,tL(fd,{6:1},-1,u+1,1))).b[0]=1,e=0,(r=a.bb())>(i=b.bb())?(rx(a,r),rx(b,i),ex(c,i),e+=r-i):(rx(a,r),rx(b,i),ex(s,r),e+=i-r),c.f=1;b.r()>0;){for(;rn(a,b)>0;)tE(a,b),h=a.bb(),rx(a,h),eM(c,s),ex(s,h),e+=h;for(;0>=rn(a,b)&&(tE(b,a),0!=b.r());)h=b.bb(),rx(b,h),eM(s,c),ex(c,h),e+=h}if(!(1==a.e&&1==a.b[0]))throw new nr(ot);return rn(c,t)>=0&&tE(c,t),c=is(t,c),f=ru(t),e>o&&(c=eH(c,(rK(),uS),t,f),e-=o),c=eH(c,e6(o-e),t,f)}(et(n._(),t),t)).f)throw new nr(ot);return n.f<0?is(t,e):e}function rO(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 rD(n,t){var e;return(e=n.f+t.f,0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)?eL(e):n.b+t.b<54?new tr(n.g*t.g,eJ(e)):new tS(en((n.d||(n.d=eU(n.g)),n.d),(t.d||(t.d=eU(t.g)),t.d)),eJ(e))}function rk(n,t){var e;if(t<0)throw new nr("Negative exponent");if(0==t)return uS;if(1==t||n.eQ(uS)||n.eQ(uB))return n;if(!n.gb(0)){for(e=1;!n.gb(e);)++e;return en(e6(e*t),n.fb(e).db(t))}return function(n,t){var e,r;for(ib(),rK(),r=uS,e=n;t>1;t>>=1)(1&t)!=0&&(r=en(r,e)),e=1==e.e?en(e,e):new e5(io(e.b,e.e,tL(fd,{6:1},-1,e.e<<1,1)));return en(r,e)}(n,t)}function rL(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),tm(4194303&r,4194303&i,1048575&o)}function rP(n){switch(iB(),n){case 2:return uZ;case 1:return uX;case 3:return uY;case 5:return u1;case 6:return u0;case 4:return u2;case 7:return u4;case 0:return u3;default:throw new no("Invalid rounding mode")}}function rQ(n,t){var e,r,i;if(0==t)return(1&n.b[0])!=0;if(t<0)throw new nr(ob);if((i=~~t>>5)>=n.e)return n.f<0;if(e=n.b[i],t=1<<(31&t),n.f<0){if(i<(r=eg(n)))return!1;e=r==i?-e:~e}return(e&t)!=0}function rT(n){var t,e;return n.e>0||(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!=ih((n.d||(n.d=eU(n.g)),n.d),iv(t)).r()&&++t),n.e=ei(t)),n.e}function rj(){rj=l,uP=new eK(34,(iB(),u0)),uQ=new eK(7,u0),uT=new eK(16,u0),uj=new eK(0,u2),uF=tJ(fJ,{6:1},-1,[112,114,101,99,105,115,105,111,110,61]),uH=tJ(fJ,{6:1},-1,[114,111,117,110,100,105,110,103,77,111,100,101,61])}function rF(n,t){var e,r,i,o;if(0==t.f)throw new nr(on);return((o=n.e)!=(e=t.e)?o>e?1:-1:eN(n.b,t.b,o))==-1?n:(r=tL(fd,{6:1},-1,e,1),1==e?r[0]=e2(n.b,o,t.b[0]):r=ik(null,o-e+1,n.b,o,t.b,e),tW(i=new ti(n.f,e,r)),i)}function rH(n){var t,e,r;return n<0?0:0==n?32:(e=16-(t=~~(r=-(~~n>>16))>>16&16)+(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 r$(n,t){if(0==n.f)ix(t.b,0,n.b,0,t.e);else{if(0==t.f)return;n.f==t.f?ia(n.b,n.b,n.e,t.b,t.e):rb(n.b,t.b,n.e,t.e)>0?ry(n.b,n.b,n.e,t.b,t.e):(r5(n.b,n.b,n.e,t.b,t.e),n.f=-n.f)}n.e=np(n.e,t.e)+1,tW(n),n.c=-2}function rV(n,t){var e;e=rn(n,t),0==n.f?(ix(t.b,0,n.b,0,t.e),n.f=-t.f):n.f!=t.f?(ia(n.b,n.b,n.e,t.b,t.e),n.f=e):rb(n.b,t.b,n.e,t.e)>0?ry(n.b,n.b,n.e,t.b,t.e):(r5(n.b,n.b,n.e,t.b,t.e),n.f=-n.f),n.e=np(n.e,t.e)+1,tW(n),n.c=-2}function rq(n,t,e){var r,i,o,u,f,c,s,h,a,b;if(e.f<=0)throw new nr(oe);return(r=n,(1==e.e&&1==e.b[0])|t.f>0&0==r.f)?uB:0==r.f&&0==t.f?uS:(t.f<0&&(r=rR(n,e),t=t.cb()),i=e.gb(0)?rc(r._(),t,e):(o=r._(),u=t,f=e.bb(),h=rc(o,u,c=e.fb(f)),a=function(n,t,e){var r,i,o,u,f;for(rK(),u=uS,i=ea(t),r=ea(n),n.gb(0)&&eB(i,e-1),eB(r,e),o=i.ab()-1;o>=0;--o)eB(f=ea(u),e),u=en(u,f),(i.b[~~o>>5]&1<<(31&o))!=0&&eB(u=en(u,r),e);return eB(u,e),u}(o,u,f),s=function(n,t){var e,r,i,o;for(e=1,(r=new e5(tL(fd,{6:1},-1,1<>5]&1<<(31&o))!=0&&(r.b[~~e>>5]|=1<<(31&e));return r}(c,f),eB(b=en(is(a,h),s),f),b.f<0&&(b=iC(b,e6(f))),iC(h,en(c,b))),r.f<0&&t.gb(0)&&(i=et(en(is(e,uS),i),e)),i)}function rG(n,t){var e,r,i,o,u,f,c;if(i=eg(n),(r=eg(t))>=n.e)return rK(),uB;for(u=tL(fd,{6:1},-1,f=n.e,1),(e=i>r?i:r)==r&&(u[e]=-t.b[e]&n.b[e],++e),o=nd(t.e,n.e);e=t.e)for(;e0?t:0):t>=0?n.b<54?new tr(n.g,eJ(t)):new tS((n.d||(n.d=eU(n.g)),n.d),eJ(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),tm(4194303&i,4194303&o,1048575&u)}function rK(){var n;for(n=0,rK=l,uS=new t$(1,1),ux=new t$(1,10),uB=new t$(0,0),uC=new t$(-1,1),uM=tJ(f5,{6:1},17,[uB,uS,new t$(1,2),new t$(1,3),new t$(1,4),new t$(1,5),new t$(1,6),new t$(1,7),new t$(1,8),new t$(1,9),ux]),uA=tL(f5,{6:1},17,32,0);n=t.e)return t;if(r>=n.e)return n;if(o=tL(fd,{6:1},-1,u=nd(n.e,t.e),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?(rK(),uC):(rK(),uB);if(rO(i=tL(fd,{6:1},-1,(o=n.e-r)+1,1),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?rS(n,t,e):rS(t,n,-e):np(n.b,t.b)+1<54?new tr(n.g+t.g,n.f):new tM(iC((n.d||(n.d=eU(n.g)),n.d),(t.d||(t.d=eU(t.g)),t.d)),n.f)}function r0(n,t){var e,r,i,o,u;return(r=ts(e3(t),o3),rA(n,oz))?(o=iN(n,r,!1),u=n3(n,r)):(o=iN(e=rU(n,1),i=e3(~~t>>>1),!1),u=eX(rL(u=n3(e,i),1),ts(n,oJ)),(1&t)!=0&&(rB(o,u)?rB(eY(o,u),r)?(u=eX(u,eY(rL(r,1),o)),o=eY(o,oK)):(u=eX(u,eY(r,o)),o=eY(o,oJ)):u=eY(u,o))),th(rL(u,32),ts(o,o3))}function r2(n){var t,e,r,i;return isNaN(n)?(eS(),uf):n<-0x8000000000000000?(eS(),uo):n>=0x7fffffffffffffff?(eS(),ui):(r=!1,n<0&&(r=!0,n=-n),e=0,n>=17592186044416&&(e=ei(n/17592186044416),n-=17592186044416*e),t=0,n>=4194304&&(t=ei(n/4194304),n-=4194304*t),i=tm(ei(n),t,e),r&&eQ(i),i)}function r4(n){var t,e,r,i;if(0==n.l&&0==n.m&&0==n.h)return iK;if(524288==n.h&&0==n.m&&0==n.l)return"-9223372036854775808";if(~~n.h>>19!=0)return iz+r4(eP(n));for(e=n,r=i$;!(0==e.l&&0==e.m&&0==e.h);){if(e=iN(e,e3(1e9),!0),t=i$+nx(o7),!(0==e.l&&0==e.m&&0==e.h))for(i=9-t.length;i>0;--i)t=iK+t;r=t+r}return r}function r3(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m,y,C,S,M,x,B,A;if(0==(i=t.f))throw new nr(on);return(r=t.e,e=t.b,1==r)?(g=e[0],(x=n.b,B=n.e,A=n.f,1==B)?(_=iN(w=ts(e3(x[0]),o3),d=ts(e3(g),o3),!1),y=n3(w,d),A!=i&&(_=eP(_)),A<0&&(y=eP(y)),tJ(f5,{6:1},17,[eW(_),eW(y)])):(m=A==i?1:-1,v=tL(fd,{6:1},-1,B,1),C=tJ(fd,{6:1},-1,[ir(v,x,B,g)]),S=new ti(m,B,v),M=new ti(A,1,C),tW(S),tW(M),tJ(f5,{6:1},17,[S,M]))):(a=n.b,((b=n.e)!=r?b>r?1:-1:eN(a,e,b))<0)?tJ(f5,{6:1},17,[uB,n]):(l=n.f,u=b-r+1,f=l==i?1:-1,c=ik(o=tL(fd,{6:1},-1,u,1),u,a,b,e,r),s=new ti(f,u,o),h=new ti(l,r,c),tW(s),tW(h),tJ(f5,{6:1},17,[s,h]))}function r6(n){var t;if(0==n.f||0==n.b&&-1!=n.g)return n.d||(n.d=eU(n.g)),n.d;if(n.f<0)return en((n.d||(n.d=eU(n.g)),n.d),iv(-n.f));if(n.f>(n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)||n.f>(n.d||(n.d=eU(n.g)),n.d).bb()||0!=(t=r3((n.d||(n.d=eU(n.g)),n.d),iv(n.f)))[1].r())throw new nr(ol);return t[0]}function r5(n,t,e,r,i){var o,u;if(o=oz,e36)throw new nw("radix "+t+" out of range");for(e=(r=n.length)>0&&45==n.charCodeAt(0)?1:0;e2147483647)throw new nw(oc+n+iq);return i}function r7(n){var t,e;if(0==n.f)return rK(),uC;if(e$(n,(rK(),uC)))return uB;if(e=tL(fd,{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 it(n,t){var e,r,i,o,u,f,c,s;if(c=0==n.f?1:n.f,u=tL(fd,{6:1},-1,f=np((o=~~t>>5)+1,n.e)+1,1),e=1<<(31&t),ix(n.b,0,u,0,n.e),n.f<0){if(o>=n.e)u[o]=e;else if(o>(r=eg(n)))u[o]^=e;else if(o=0||0==s.f||1==s.e&&1==s.b[0])if(!(1==(h=rq(s,f,n)).e&&1==h.b[0]||h.eQ(u))){for(i=1;i=0;--f)rA(h=th(rL(s,32),ts(e3(t[f]),o3)),oz)?(c=iN(h,o,!1),s=n3(h,o)):(c=iN(i=rU(h,1),u=e3(~~r>>>1),!1),s=eX(rL(s=n3(i,u),1),ts(h,oJ)),(1&r)!=0&&(rB(c,s)?rB(eY(c,s),o)?(s=eX(s,eY(rL(o,1),c)),c=eY(c,oK)):(s=eX(s,eY(o,c)),c=eY(c,oJ)):s=eY(s,c))),n[f]=nx(ts(c,o3));return nx(s)}function ii(n,t){var e,r,i,o,u,f,c;if(u=tL(fd,{6:1},-1,f=np(n.e,t.e),1),i=eg(n),e=r=eg(t),i==r)u[r]=-n.b[r]^-t.b[r];else{for(u[r]=-t.b[r],o=nd(t.e,i),++e;et.g?1:0:(r=n.f-t.f,(e=(n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)-(t.e>0?t.e:nU((t.b-1)*.3010299956639812)+1))>r+1)?i:e0&&(u=en(u,iv(r))),rn(o,u))}function ic(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g;if(o=t.b,!((n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)-o<0||0==o||(r=n.q()-o)<=0)){if(n.b<54){l=r2(ub[c=r]),b=eY(r2(n.f),e3(c)),a=iN(g=r2(n.g),l,!1),tv(h=n3(g,l),oz)&&(s=t_(eY(rL(n_(h,oz)?eP(h):h,1),l),oz)?0:n_(eY(rL(n_(h,oz)?eP(h):h,1),l),oz)?-1:1,a=eX(a,e3(r8(1&nx(a),(t_(h,oz)?0:n_(h,oz)?-1:1)*(5+s),t.c))),n8(rr(n_(a,oz)?eP(a):a))>=t.b&&(a=nP(a,oZ),b=eY(b,oJ))),n.f=eJ(rr(b)),n.e=t.b,n.g=rr(a),n.b=eZ(a),n.d=null;return}f=iv(r),i=r3((n.d||(n.d=eU(n.g)),n.d),f),u=n.f-r,0!=i[1].r()&&(e=rn(eF(i[1]._()),f),0!=(e=r8(i[0].gb(0)?1:0,i[1].r()*(5+e),t.c))&&e8(i,0,iC(i[0],eW(e3(e)))),new nk(i[0]).q()>o&&(e8(i,0,ih(i[0],(rK(),ux))),--u)),n.f=eJ(u),n.e=o,tR(n,i[0])}}function is(n,t){var e,r,i,o,u,f,c,s,h,a;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=ts(e3(n.b[0]),o3),r=ts(e3(t.b[0]),o3),u<0&&(e=eP(e)),c<0&&(r=eP(r)),eW(eY(e,r));if(-1==(i=o!=f?o>f?1:-1:eN(n.b,t.b,o)))a=-c,h=u==c?tz(t.b,f,n.b,o):t3(t.b,f,n.b,o);else if(a=u,u==c){if(0==i)return rK(),uB;h=tz(n.b,o,t.b,f)}else h=t3(n.b,o,t.b,f);return tW(s=new ti(a,h.length,h)),s}function ih(n,t){var e,r,i,o,u,f,c,s,h;if(0==t.f)throw new nr(on);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)?(h=nP(ts(e3(n.b[0]),o3),ts(e3(t.b[0]),o3)),s!=i&&(h=eP(h)),eW(h)):0==(e=c!=r?c>r?1:-1:eN(n.b,t.b,c))?s==i?uS:uC:-1==e?uB:(o=tL(fd,{6:1},-1,u=c-r+1,1),1==r?ir(o,n.b,c,t.b[0]):ik(o,u,n.b,c,t.b,r),tW(f=new ti(s==i?1:-1,u,o)),f)}function ia(n,t,e,r,i){var o,u;if(o=eX(ts(e3(t[0]),o3),ts(e3(r[0]),o3)),n[0]=nx(o),o=rJ(o,32),e>=i){for(u=1;u0){if(i0?u=tP(u,ei(i)):i<0&&(o=tP(o,ei(-i))),iw(o,u,e,r)}function ig(n,t){var e,r,i,o,u,f,c;if(r=eg(t),(i=eg(n))>=t.e)return t;if(u=tL(fd,{6:1},-1,f=t.e,1),rt.ab()?(c=eA(s),o=eA(t),i=t_(eY(rL(n_(c,oz)?eP(c):c,1),n_(o,oz)?eP(o):o),oz)?0:n_(eY(rL(n_(c,oz)?eP(c):c,1),n_(o,oz)?eP(o):o),oz)?-1:1,i=r8(f.gb(0)?1:0,h*(5+i),r)):(i=rn(eF(s._()),t._()),i=r8(f.gb(0)?1:0,h*(5+i),r)),0!=i){if(54>f.ab())return ek(eX(eA(f),e3(i)),e);f=iC(f,eW(e3(i)))}return new tS(f,e)}function id(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,h,a,b,l,g,w,d,_,v,m;if(iM(),(u=n_(n,oz))&&(n=eP(n)),t_(n,oz))switch(t){case 0:return iK;case 1:return iZ;case 2:return iX;case 3:return iY;case 4:return i1;case 5:return i0;case 6:return i2;default:return s=new K,t<0?s.b.b+=i3:s.b.b+=i4,b=s.b,l=-2147483648==t?"2147483648":i$+-t,b.b+=l,s.b.b}c=tL(fJ,{6:1},-1,19,1),e=18,a=n;do f=a,a=nP(a,oZ),c[--e]=65535&nx(eX(o1,eY(f,iE(a,oZ))));while(tv(a,oz))if(r=eY(eY(eY(oY,e3(e)),e3(t)),oJ),0==t)return u&&(c[--e]=45),tU(c,e,18-e);if(t>0&&rA(r,oq)){if(rA(r,oz)){for(o=17,i=e+nx(r);o>=i;--o)c[o+1]=c[o];return c[++i]=46,u&&(c[--e]=45),tU(c,e,18-e+1)}for(o=2;n_(e3(o),eX(eP(r),oJ));++o)c[--e]=48;return c[--e]=46,c[--e]=48,u&&(c[--e]=45),tU(c,e,18-e)}return(h=e+1,s=new W,u&&(s.b.b+=iz),18-h>=1)?(tI(s,c[e]),s.b.b+=iJ,g=s.b,w=tU(c,e+1,18-e-1),g.b+=w):(d=s.b,_=tU(c,e,18-e),d.b+=_),s.b.b+=of,rB(r,oz)&&(s.b.b+=iG),v=s.b,m=i$+r4(r),v.b+=m,s.b.b}(r2(n.g),ei(n.f)),n.i):(i=ij((n.d||(n.d=eU(n.g)),n.d),0),0==n.f)?i:(t=0>(n.d||(n.d=eU(n.g)),n.d).r()?2:1,e=i.length,r=-n.f+e-t,u=(o=new K).b,u.b+=i,n.f>0&&r>=-6?r>=0?n9(o,e-ei(n.f),iJ):(tt(o.b,t-1,t-1,iW),n9(o,t+1,tU(us,0,-ei(r)-1))):(e-t>=1&&(tt(o.b,t,t,iJ),++e),tt(o.b,e,e,of),r>0&&n9(o,++e,iG),n9(o,++e,i$+r4(r2(r)))),n.i=o.b.b,n.i)}function ip(n,t){var e,r,i,o,u,f;if(i=eg(n),o=eg(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]==i$;)--s;s1e6)throw new nr("power of ten too big");if(n<=2147483647)return u$[1].db(t).eb(t);for(i=r=u$[1].db(2147483647),e=r2(n-2147483647),t=ei(n%2147483647);rB(e,o4);)i=en(i,r),e=eY(e,o4);for(i=(i=en(i,u$[1].db(t))).eb(2147483647),e=r2(n-2147483647);rB(e,o4);)i=i.eb(2147483647),e=eY(e,o4);return i.eb(t)}function im(){var n,t;f&&rM("com.iriscouch.gwtapp.client.BigDecimalApp"),nW(new J),nX(new T),nZ(new j),tD(new F),f&&rM("com.google.gwt.user.client.UserAgentAsserter"),n=-1!=(t=r.userAgent.toLowerCase()).indexOf(oQ)?oQ:-1!=t.indexOf("webkit")||function(){if(-1!=t.indexOf("chromeframe"))return!0;if(typeof e.ActiveXObject!=oH)try{var n=new ActiveXObject("ChromeTab.ChromeFrame");if(n)return n.registerBhoIfNeeded(),!0}catch(n){}return!1}()?oj:-1!=t.indexOf(oO)&&u.documentMode>=9?"ie9":-1!=t.indexOf(oO)&&u.documentMode>=8?"ie8":!function(){var n=/msie ([0-9]+)\.([0-9]+)/.exec(t);if(n&&3==n.length)return 1e3*parseInt(n[1])+parseInt(n[2])>=6e3}()?-1!=t.indexOf("gecko")?"gecko1_8":"unknown":"ie6",tj(oj,n)||o.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"),f&&rM("com.google.gwt.user.client.DocumentModeAsserter"),function(){var n,t,e;for(e=0,t=u.compatMode,n=tJ(fN,{6:1},1,[oi]);e>5,this.b=tL(fd,{6:1},-1,this.e,1);u=2147483648&&(r-=4294967296),r));this.b[this.e-1]>>>=31&-n,tW(this)}}function iC(n,t){var e,r,i,o,u,f,c,s,h,a,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=ts(e3(n.b[0]),o3),r=ts(e3(t.b[0]),o3),u==c)?(l=nx(s=eX(e,r)),0==(b=nx(rU(s,32)))?new t$(u,l):new ti(u,2,tJ(fd,{6:1},-1,[l,b]))):eW(u<0?eY(r,e):eY(e,r));if(u==c)a=u,h=o>=f?t3(n.b,o,t.b,f):t3(t.b,f,n.b,o);else{if(0==(i=o!=f?o>f?1:-1:eN(n.b,t.b,o)))return rK(),uB;1==i?(a=u,h=tz(n.b,o,t.b,f)):(a=c,h=tz(t.b,f,n.b,o))}return tW(s=new ti(a,h.length,h)),s}function iS(n){var t,e,r,i;if(rj(),null==n)throw new nf("null string");if((t=t6(n)).length<27||t.length>45)throw new no(oM);for(r=0;rft.length)throw new V;if(o=null,i=null,67==r[0]?(i=uZ,o=u6):68==r[0]?(i=uX,o=u5):70==r[0]?(i=uY,o=u9):72==r[0]?e>6&&(68==r[5]?(i=u1,o=u7):69==r[5]?(i=u0,o=u8):85==r[5]&&(i=u2,o=fn)):85==r[0]&&(80==r[1]?(i=u3,o=fe):78==r[1]&&(i=u4,o=ft)),i&&e==o.length){for(t=1;tl||r+i>s)throw new q;if(((1&a.c)==0||(4&a.c)!=0)&&b!=c){if(h=tQ(n,11),o=tQ(e,11),nT(n)===nT(e)&&tr;)e8(o,f,h[--t]);else for(f=r+i;rh.r()&&(s=s.cb()),c=eJ(e+(o>u?o:u)),s=(i=o-u)>0?(ib(),i>19!=0&&(t=eP(t),c=!0),u=((b=(h=t).l)&b-1)!=0||((l=h.m)&l-1)!=0||((a=h.h)&a-1)!=0||0==a&&0==l&&0==b?-1:0==a&&0==l&&0!=b?ec(b):0==a&&0!=l&&0==b?ec(l)+22:0!=a&&0==l&&0==b?ec(a)+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=rJ(n,u),c&&eQ(f),e&&(o7=tm(0,0,0)),f;n=nQ((eS(),ui)),r=!0,c=!c}else~~n.h>>19!=0&&(o=!0,n=eP(n),r=!0,c=!c);return -1!=u?(g=n,w=c,d=o,_=rJ(g,u),w&&eQ(_),e&&(v=g,u<=22?(m=v.l&(1<=0&&((g=n.h-u.h)<0||(b=n.l-u.l,(g+=~~(l=n.m-u.m+(~~b>>22))>>22)<0||(n.l=4194303&b,n.m=4194303&l,n.h=1048575&g,0))||(c<22?f.l|=1<>>1,u.m=~~h>>>1|(1&a)<<21,u.l=~~s>>>1|(1&h)<<21,--c;return e&&eQ(f),o&&(r?(o7=eP(n),i&&(o7=eY(o7,(eS(),uu)))):o7=tm(n.l,n.m,n.h)),f}(r?n:tm(n.l,n.m,n.h),t,c,o,i,e):(e&&(o7=o?eP(n):tm(n.l,n.m,n.h)),tm(0,0,0))}function iI(n){var t=[];for(var e in n){var r=typeof n[e];r!=oP?t[t.length]=r:n[e]instanceof Array?t[t.length]=oS:o&&o.bigdecimal&&o.bigdecimal.BigInteger&&n[e]instanceof o.bigdecimal.BigInteger?t[t.length]=i8:o&&o.bigdecimal&&o.bigdecimal.BigDecimal&&n[e]instanceof o.bigdecimal.BigDecimal?t[t.length]=i5:o&&o.bigdecimal&&o.bigdecimal.RoundingMode&&n[e]instanceof o.bigdecimal.RoundingMode?t[t.length]=og:o&&o.bigdecimal&&o.bigdecimal.MathContext&&n[e]instanceof o.bigdecimal.MathContext?t[t.length]=oa:t[t.length]=oP}return t.join(iV)}function iE(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m;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,h=~~t.m>>17|(255&t.h)<<5,a=~~(1048320&t.h)>>8,w=e*f,d=r*f,_=i*f,v=o*f,m=u*f,0!=c&&(d+=e*c,_+=r*c,v+=i*c,m+=o*c),0!=s&&(_+=e*s,v+=r*s,m+=i*s),0!=h&&(v+=e*h,m+=r*h),0!=a&&(m+=e*a),b=(4194303&w)+((511&d)<<13),l=(~~w>>22)+(~~d>>9)+((262143&_)<<4)+((31&v)<<17),g=(~~_>>18)+(~~v>>5)+((4095&m)<<8),l+=~~b>>22,b&=4194303,g+=~~l>>22,tm(b,l&=4194303,g&=1048575)}function iR(n,t,e){var r,i,o,u,f,c,s,h;if(h=rr(eX(e3(e.b),oK))+(t.e>0?t.e:nU((t.b-1)*.3010299956639812)+1)-(n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1),c=i=n.f-t.f,o=1,f=uv.length-1,s=tJ(f5,{6:1},17,[(n.d||(n.d=eU(n.g)),n.d)]),0==e.b||0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)return iA(n,t);if(h>0&&(e8(s,0,en((n.d||(n.d=eU(n.g)),n.d),iv(h))),c+=h),u=(s=r3(s[0],(t.d||(t.d=eU(t.g)),t.d)))[0],0!=s[1].r())r=rn(eF(s[1]),(t.d||(t.d=eU(t.g)),t.d)),u=iC(en(u,(rK(),ux)),eW(e3(s[0].r()*(5+r)))),++c;else for(;!u.gb(0);)if(0==(s=r3(u,uv[o]))[1].r()&&c-o>=i)c-=o,o=0)return n;return 0==e?np(n.b,t.b)+1<54?new tr(n.g-t.g,n.f):new tM(is((n.d||(n.d=eU(n.g)),n.d),(t.d||(t.d=eU(t.g)),t.d)),n.f):e>0?e0?t.e:nU((t.b-1)*.3010299956639812)+1)+o>(n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)+1||0==n.b&&-1!=n.g)rK(),r=uB;else if(0==o)r=ih((n.d||(n.d=eU(n.g)),n.d),(t.d||(t.d=eU(t.g)),t.d));else if(o>0)u=iv(o),r=ih((n.d||(n.d=eU(n.g)),n.d),en((t.d||(t.d=eU(t.g)),t.d),u)),r=en(r,u);else{for(u=iv(-o),r=ih(en((n.d||(n.d=eU(n.g)),n.d),u),(t.d||(t.d=eU(t.g)),t.d));!r.gb(0);)if(0==(f=r3(r,uv[e]))[1].r()&&c-e>=o)c-=e,e=0;){if(w[a]==c)s=-1;else if(s=nx(m=r0(eX(rL(ts(e3(w[a]),o3),32),ts(e3(w[a-1]),o3)),c)),v=nx(rJ(m,32)),0!=s){_=!1,++s;do{if(--s,_)break;l=iE(ts(e3(s),o3),ts(e3(d[o-2]),o3)),y=eX(rL(e3(v),32),ts(e3(w[a-2]),o3)),32>rH(nx(rU(g=eX(ts(e3(v),o3),ts(e3(c),o3)),32)))?_=!0:v=nx(g)}while(rB(ta(l,o$),ta(y,o$)))}if(0!=s&&0!=function(n,t,e,r,i){var o,u,f;for(f=0,o=oz,u=oz;f0)e8(b,0,ih((n.d||(n.d=eU(n.g)),n.d),en((t.d||(t.d=eU(t.g)),t.d),iv(o)))),a=o<(h-l+1>0?h-l+1:0)?o:h-l+1>0?h-l+1:0,e8(b,0,en(b[0],iv(a)));else if(u=-o<(h-i>0?h-i:0)?-o:h-i>0?h-i:0,b=r3(en((n.d||(n.d=eU(n.g)),n.d),iv(u)),(t.d||(t.d=eU(t.g)),t.d)),a+=u,u=-a,0!=b[1].r()&&u>0&&(0==(r=new nk(b[1]).q()+u-t.q())&&(e8(b,1,ih(en(b[1],iv(u)),(t.d||(t.d=eU(t.g)),t.d))),r=(d=b[1].r())<0?-d:d),r>0))throw new nr(ou);if(0==b[0].r())return eL(o);for(w=b[0],g=(c=new nk(b[0])).q(),f=1;!w.gb(0);)if(0==(b=r3(w,uv[f]))[1].r()&&(g-f>=h||a-f>=o))g-=f,a-=f,fh)throw new nr(ou);return c.f=eJ(a),tR(c,w),c}function iT(){var n;for(n=0,iT=l,uz=tJ(fd,{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]),uJ=tL(f5,{6:1},17,(uK=tJ(fd,{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])).length,0);n=0;--c)w=function(n){var t,e,r;return rA(n,oz)?(e=nP(n,o2),r=n3(n,o2)):(e=nP(t=rU(n,1),o0),r=eX(rL(r=n3(t,o0),1),ts(n,oJ))),th(rL(r,32),ts(e,o3))}(eX(rL(y,32),ts(e3(M[c]),o3))),M[c]=nx(w),y=e3(nx(rJ(w,32)));d=nx(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(h=x-1;0==M[h];--h)if(0==h)break n;x=h+1}for(;48==v[e];)++e}if(a=C<0,o=_-e-t-1,0==t)return a&&(v[--e]=45),tU(v,e,_-e);if(t>0&&o>=-6){if(o>=0){for(s=e+o,h=_-1;h>=s;--h)v[h+1]=v[h];return v[++s]=46,a&&(v[--e]=45),tU(v,e,_-e+1)}for(h=2;h<-o+1;++h)v[--e]=48;return v[--e]=46,v[--e]=48,a&&(v[--e]=45),tU(v,e,_-e)}return(S=e+1,m=new W,a&&(m.b.b+=iz),_-S>=1)?(tI(m,v[e]),m.b.b+=iJ,N=m.b,I=tU(v,e+1,_-e-1),N.b+=I):(E=m.b,R=tU(v,e,_-e),E.b+=R),m.b.b+=of,o>0&&(m.b.b+=iG),O=m.b,D=i$+o,O.b+=D,m.b.b}f&&f({moduleName:"gwtapp",sessionId:c,subSystem:"startup",evtGroup:"moduleStartup",millis:new Date().getTime(),type:"moduleEvalStart"});var iF,iH,i$="",iV=" ",iq='"',iG="+",iz="-",iJ=".",iK="0",iW="0.",iZ="0.0",iX="0.00",iY="0.000",i1="0.0000",i0="0.00000",i2="0.000000",i4="0E",i3="0E+",i6=":",i5="BigDecimal",i9="BigDecimal MathContext",i7="BigDecimal;",i8="BigInteger",on="BigInteger divide by zero",ot="BigInteger not invertible.",oe="BigInteger: modulus not positive",or="BigInteger;",oi="CSS1Compat",oo="Division by zero",ou="Division impossible",of="E",oc='For input string: "',os="Infinite or NaN",oh="Invalid Operation",oa="MathContext",ob="Negative bit address",ol="Rounding necessary",og="RoundingMode",ow="RoundingMode;",od="String",op="[Lcom.iriscouch.gwtapp.client.",o_="[Ljava.lang.",ov="[Ljava.math.",om="\\.",oy="__gwtex_wrap",oC="anonymous",oS="array",oM="bad string format",ox="bigdecimal",oB="com.google.gwt.core.client.",oA="com.google.gwt.core.client.impl.",oN="com.iriscouch.gwtapp.client.",oI="java.lang.",oE="java.math.",oR="java.util.",oO="msie",oD="null",ok="number",oL="number MathContext",oU="number number",oP="object",oQ="opera",oT="org.timepedia.exporter.client.",oj="safari",oF="string",oH="undefined",o$={l:0,m:0,h:524288},oV={l:0,m:4193280,h:1048575},oq={l:4194298,m:4194303,h:1048575},oG={l:4194303,m:4194303,h:1048575},oz={l:0,m:0,h:0},oJ={l:1,m:0,h:0},oK={l:2,m:0,h:0},oW={l:5,m:0,h:0},oZ={l:10,m:0,h:0},oX={l:11,m:0,h:0},oY={l:18,m:0,h:0},o1={l:48,m:0,h:0},o0={l:877824,m:119,h:0},o2={l:1755648,m:238,h:0},o4={l:4194303,m:511,h:0},o3={l:4194303,m:1023,h:0},o6={l:0,m:1024,h:0};(iH=s.prototype={}).eQ=function(n){return this===n},iH.gC=function(){return fc},iH.hC=function(){return nj(this)},iH.tS=function(){return this.gC().d+"@"+function(n){var t,e,r;if(t=tL(fJ,{6:1},-1,8,1),r_(),e=uR,r=7,n>=0)for(;n>15;)t[r--]=e[15&n],n>>=4;else for(;r>0;)t[r--]=e[15&n],n>>=4;return t[r]=e[15&n],t4(t,r,8)}(this.hC())},iH.toString=function(){return this.tS()},iH.tM=l,iH.cM={},(iH=h.prototype=new s).gC=function(){return fh},iH.j=function(){return this.f},iH.tS=function(){var n,t;return n=this.gC().d,null!=(t=this.j())?n+": "+t:n},iH.cM={6:1,15:1},iH.f=null,(iH=a.prototype=new h).gC=function(){return fa},iH.cM={6:1,15:1},(iH=ne.prototype=b.prototype=new a).gC=function(){return fb},iH.cM={6:1,12:1,15:1},(iH=n1.prototype=(function(){}).prototype=new b).gC=function(){return fl},iH.j=function(){var n,t,e,r,i;return null==this.d&&(this.e=null==(e=this.c)?oD:tn(e)?null==(r=t9(e))?null:r.name:nG(e,1)?od:(nF(e)?e.gC():fg).d,this.b=tn(n=this.c)?null==(i=t9(n))?null:i.message:n+i$,this.d="("+this.e+"): "+this.b+(tn(t=this.c)?function(n){var t=i$;try{for(var e in n)if("name"!=e&&"message"!=e&&"toString"!=e)try{t+="\n "+e+": "+n[e]}catch(n){}}catch(n){}return t}(t9(t)):i$)),this.d},iH.cM={6:1,12:1,15:1},iH.b=null,iH.c=null,iH.d=null,iH.e=null,(iH=g.prototype=new s).gC=function(){return fw};var o5=0,o9=0;(iH=w.prototype=(function(){}).prototype=new g).gC=function(){return fv},iH.b=null,iH.c=null,(iH=d.prototype=_.prototype=new s).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=i6+o,f=n[u];if(f){for(r=0,i=f.length;r0?i:oC},iH.gC=function(){return fm},iH.o=function(n){return[]},(iH=v.prototype=new _).k=function(){return tl(this.o(tw()),this.p())},iH.gC=function(){return fS},iH.o=function(n){return eR(this,n)},iH.p=function(){return 2},(iH=m.prototype=(function(){}).prototype=new v).k=function(){return es(this)},iH.n=function(n){var t,e;return 0==n.length||(0==(e=e9(n)).indexOf("at ")&&(e=n7(e,3)),-1==(t=e.indexOf("["))&&(t=e.indexOf("(")),-1==t)?oC:(-1!=(t=(e=e9(e.substr(0,t-0))).indexOf("."))&&(e=n7(e,t+1)),e.length>0?e:oC)},iH.gC=function(){return fM},iH.o=function(n){return t2(this,n)},iH.p=function(){return 3},(iH=y.prototype=new s).gC=function(){return fx},(iH=C.prototype=(function(){}).prototype=new y).gC=function(){return fB},iH.b=i$,(iH=S.prototype=(function(){}).prototype=new s).gC=function(){return this.aC},iH.aC=null,iH.qI=0;var o7=null,o8=null;(iH=M.prototype=(function(){}).prototype=new s).gC=function(){return fI},iH.cM={2:1},(iH=x.prototype=new s).gC=function(){return fR},iH.cM={6:1,10:1};var un=null;(iH=eo.prototype=tr.prototype=tM.prototype=tA.prototype=Z.prototype=ep.prototype=eu.prototype=tB.prototype=tx.prototype=ez.prototype=n2.prototype=n4.prototype=te.prototype=tS.prototype=nk.prototype=B.prototype=new x).eQ=function(n){return e0(this,n)},iH.gC=function(){return fO},iH.hC=function(){return rv(this)},iH.q=function(){return rT(this)},iH.r=function(){return ew(this)},iH.tS=function(){return id(this)},iH.cM={6:1,8:1,10:1,16:1},iH.b=0,iH.c=0,iH.d=null,iH.e=0,iH.f=0,iH.g=0,iH.i=null;var ut,ue,ur,ui,uo,uu,uf,uc,us,uh,ua,ub,ul,ug,uw,ud,up,u_=null,uv=null,um=null;(iH=nL.prototype=ng.prototype=(function(){}).prototype=new B).s=function(n){var t,e,r;if((e=iI(n))==i$)t=0>ew(this)?ed(this):this;else if(e==oa)t=0>(r=t7(this,new iS(n[0].toString()))).r()?ed(r):r;else throw new ne("Unknown call signature for interim = super.abs: "+e);return new nL(t)},iH.t=function(n){var t,e;if((e=iI(n))==i5)t=r1(this,new Z(n[0].toString()));else if(e==i9)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 t7(r1(n,t),e);if((n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)0?t.e:nU((t.b-1)*.3010299956639812)+1)<-r-1))return t7(r1(n,t),e);i=n,u=t}return e.b>=(i.e>0?i.e:nU((i.b-1)*.3010299956639812)+1)?t7(r1(n,t),e):(f=(o=i.r())==u.r()?iC(rW((i.d||(i.d=eU(i.g)),i.d),10),eW(e3(o))):iC(rW(f=is((i.d||(i.d=eU(i.g)),i.d),eW(e3(o))),10),eW(e3(9*o))),t7(i=new tM(f,i.f+1),e))}(this,new Z(n[0].toString()),new iS(n[1].toString()));else throw new ne("Unknown call signature for interim = super.add: "+e);return new nL(t)},iH.u=function(){return~~(nx(t8(this,8))<<24)>>24},iH.v=function(n){return iu(this,n)},iH.w=function(n){var t,e,r,i;if((i=iI(n))==i5)e=eb(this,new Z(n[0].toString()));else if(i==i9)e=el(this,new Z(n[0].toString()),new iS(n[1].toString()));else throw new ne("Unknown call signature for interim = super.divideAndRemainder: "+i);for(t=0,r=tL(fk,{6:1},3,e.length,0);t129?n*=1/0:n=t5(id(this)),n},iH.gC=function(){return fD},iH.hC=function(){return rv(this)},iH.B=function(){var n;return this.f<=-32||this.f>(this.e>0?this.e:nU((this.b-1)*.3010299956639812)+1)?0:(n=new n0(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eU(this.g)),this.d):this.f<0?en((this.d||(this.d=eU(this.g)),this.d),iv(-this.f)):ih((this.d||(this.d=eU(this.g)),this.d),iv(this.f)))).f*n.b[0]},iH.C=function(){return nx(t8(this,32))},iH.D=function(){return nx(t8(this,32))},iH.E=function(){return t5(id(this))},iH.F=function(n){return new nL(iu(this,n)>=0?this:n)},iH.G=function(n){return new nL(0>=iu(this,n)?this:n)},iH.H=function(n){return new nL(rz(this,this.f+n))},iH.I=function(n){return new nL(rz(this,this.f-n))},iH.J=function(n){var t,e;if((e=iI(n))==i5)t=rD(this,new Z(n[0].toString()));else if(e==i9)t=tb(this,new Z(n[0].toString()),new iS(n[1].toString()));else throw new ne("Unknown call signature for interim = super.multiply: "+e);return new nL(t)},iH.K=function(n){var t,e;if((e=iI(n))==i$)t=ed(this);else if(e==oa)t=ed(t7(this,new iS(n[0].toString())));else throw new ne("Unknown call signature for interim = super.negate: "+e);return new nL(t)},iH.L=function(n){var t,e;if((e=iI(n))==i$)t=this;else if(e==oa)t=t7(this,new iS(n[0].toString()));else throw new ne("Unknown call signature for interim = super.plus: "+e);return new nL(t)},iH.M=function(n){var t,e;if((e=iI(n))==ok)t=rw(this,n[0]);else if(e==oL)t=function(n,t,e){var r,i,o,u,f,c;if(o=t<0?-t:t,u=e.b,i=ei(n8(o))+1,f=e,0==t||0==n.b&&-1!=n.g&&t>0)return rw(n,t);if(o>999999999||0==u&&t<0||u>0&&i>u)throw new nr(oh);for(u>0&&(f=new eK(u+i+1,e.c)),r=t7(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=tb(r,r,f),(o&c)==c&&(r=tb(r,n,f)),c>>=1;return t<0&&(r=iR(ug,r,f)),ic(r,e),r}(this,n[0],new iS(n[1].toString()));else throw new ne("Unknown call signature for interim = super.pow: "+e);return new nL(t)},iH.q=function(){return rT(this)},iH.N=function(n){var t,e;if((e=iI(n))==i5)t=eb(this,new Z(n[0].toString()))[1];else if(e==i9)t=el(this,new Z(n[0].toString()),new iS(n[1].toString()))[1];else throw new ne("Unknown call signature for interim = super.remainder: "+e);return new nL(t)},iH.O=function(n){return new nL(t7(this,new iS(eh(n.b))))},iH.P=function(){return ei(this.f)},iH.Q=function(n){var t;return new nL((t=this.f-n,this.b<54)?0==this.g?eL(t):new tr(this.g,eJ(t)):new tS((this.d||(this.d=eU(this.g)),this.d),eJ(t)))},iH.R=function(n){var t,e;if((e=iI(n))==ok)t=rY(this,n[0],(iB(),u4));else if(e==oU)t=rY(this,n[0],rP(n[1]));else if("number RoundingMode"==e)t=rY(this,n[0],tc(n[1].toString()));else throw new ne("Unknown call signature for interim = super.setScale: "+e);return new nL(t)},iH.S=function(){return~~(nx(t8(this,16))<<16)>>16},iH.r=function(){return ew(this)},iH.T=function(){return new nL(function(n){var t,e,r,i,o;if(t=1,e=uv.length-1,r=n.f,0==n.b&&-1!=n.g)return new Z(iK);for(n.d||(n.d=eU(n.g)),o=n.d;!o.gb(0);)if(0==(i=r3(o,uv[t]))[1].r())r-=t,t0?r.e:nU((r.b-1)*.3010299956639812)+1)0?this.e:nU((this.b-1)*.3010299956639812)+1)?(u=(f=ew(this))!=r.r()?iC(rW((this.d||(this.d=eU(this.g)),this.d),10),eW(e3(f))):iC(rW(u=is((this.d||(this.d=eU(this.g)),this.d),eW(e3(f))),10),eW(e3(9*f))),t7(new tM(u,this.f+1),i)):t7(iO(this,r),i);else throw new ne("Unknown call signature for interim = super.subtract: "+e);return new nL(t)},iH.V=function(){return new n0(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eU(this.g)),this.d):this.f<0?en((this.d||(this.d=eU(this.g)),this.d),iv(-this.f)):ih((this.d||(this.d=eU(this.g)),this.d),iv(this.f)))},iH.W=function(){return new n0(r6(this))},iH.X=function(){return function(n){var t,e,r,i,o,u,f,c;if(u=ij((n.d||(n.d=eU(n.g)),n.d),0),0==n.f)return u;if(t=0>(n.d||(n.d=eU(n.g)),n.d).r()?2:1,r=u.length,i=-n.f+r-t,c=new nV(u),n.f>0&&i>=-6)i>=0?n9(c,r-ei(n.f),iJ):(tt(c.b,t-1,t-1,iW),n9(c,t+1,tU(us,0,-ei(i)-1)));else{if(e=r-t,0!=(f=ei(i%3))&&(0==(n.d||(n.d=eU(n.g)),n.d).r()?i+=f=f<0?-f:3-f:(i-=f=f<0?f+3:f,t+=f),e<3))for(o=f-e;o>0;--o)n9(c,r++,iK);r-t>=1&&(tt(c.b,t,t,iJ),++r),0!=i&&(tt(c.b,r,r,of),i>0&&n9(c,++r,iG),n9(c,++r,i$+r4(r2(i))))}return c.b.b}(this)},iH.Y=function(){return function(n){var t,e,r,i,o,u;if(r=ij((n.d||(n.d=eU(n.g)),n.d),0),0==n.f||0==n.b&&-1!=n.g&&n.f<0)return r;if(t=0>ew(n)?1:0,e=n.f,i=new W(r.length+1+((o=ei(n.f))<0?-o:o)),1==t&&(i.b.b+=iz),n.f>0){if((e-=r.length-t)>=0){for(i.b.b+=iW;e>us.length;e-=us.length)tq(i,us);n5(i,us,ei(e)),nI(i,n7(r,t))}else nI(i,(u=ei(e=t-e),r.substr(t,u-t))),i.b.b+=iJ,nI(i,n7(r,ei(e)))}else{for(nI(i,n7(r,t));e<-us.length;e+=us.length)tq(i,us);n5(i,us,ei(-e))}return i.b.b}(this)},iH.tS=function(){return id(this)},iH.Z=function(){return new nL(new tr(1,this.f))},iH.$=function(){return new n0((this.d||(this.d=eU(this.g)),this.d))},iH.cM={3:1,6:1,8:1,10:1,16:1,24:1},(iH=F.prototype=(function(){}).prototype=new s).gC=function(){return fL};var uy=!1;(iH=ro.prototype=ri.prototype=ti.prototype=e5.prototype=t$.prototype=rh.prototype=nq.prototype=iy.prototype=A.prototype=new x)._=function(){return this.f<0?new ti(1,this.e,this.b):this},iH.ab=function(){return eV(this)},iH.eQ=function(n){return e$(this,n)},iH.gC=function(){return fU},iH.bb=function(){return t1(this)},iH.hC=function(){return eD(this)},iH.cb=function(){return 0==this.f?this:new ti(-this.f,this.e,this.b)},iH.db=function(n){return rk(this,n)},iH.eb=function(n){return tX(this,n)},iH.fb=function(n){return tY(this,n)},iH.r=function(){return this.f},iH.gb=function(n){return rQ(this,n)},iH.tS=function(){return ij(this,0)},iH.cM={6:1,8:1,10:1,17:1},iH.b=null,iH.c=-2,iH.d=0,iH.e=0,iH.f=0;var uC,uS,uM,ux,uB,uA=null;(iH=n0.prototype=nO.prototype=nD.prototype=(function(){}).prototype=new A)._=function(){return new n0(this.f<0?new ti(1,this.e,this.b):this)},iH.hb=function(n){return new n0(iC(this,n))},iH.ib=function(n){return new n0(0==n.f||0==this.f?(rK(),uB):e$(n,(rK(),uC))?this:e$(this,uC)?n:this.f>0?n.f>0?function(n,t){var e,r,i,o;if(i=nd(n.e,t.e),(e=np(eg(n),eg(t)))>=i)return rK(),uB;for(r=tL(fd,{6:1},-1,i,1);e0?rG(n,this):this.e>n.e?ip(this,n):ip(n,this))},iH.jb=function(n){return new n0(0==n.f?this:0==this.f?(rK(),uB):e$(this,(rK(),uC))?new n0(r7(n)):e$(n,uC)?uB:this.f>0?n.f>0?function(n,t){var e,r,i,o;for(i=tL(fd,{6:1},-1,n.e,1),r=nd(n.e,t.e),e=eg(n);e=n.e)return n;for(o=tL(fd,{6:1},-1,u=nd(n.e,t.e),1),e=i;e0?function(n,t){var e,r,i,o,u,f,c;if(i=eg(n),o=eg(t),i>=t.e)return n;if(c=np(n.e,t.e),r=i,o>i){for(f=tL(fd,{6:1},-1,c,1),u=nd(n.e,o);r=t.e)return rK(),uB;if(u=tL(fd,{6:1},-1,f=t.e,1),e=i,i0)for(;e34028234663852886e22?1/0:n<-34028234663852886e22?-1/0:n},iH.qb=function(n){return new n0(rE(this,n))},iH.gC=function(){return fP},iH.bb=function(){return t1(this)},iH.hC=function(){return eD(this)},iH.B=function(){return this.f*this.b[0]},iH.rb=function(n){return function(n,t){var e,r;if(iT(),t<=0||1==n.e&&2==n.b[0])return!0;if(!rQ(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}(uK,n.b[0])>=0;for(r=1;r>1)?r:1+(~~(t-1)>>1))}(new n0(this.f<0?new ti(1,this.e,this.b):this),n)},iH.sb=function(){return t5(ij(this,0))},iH.tb=function(n){return new n0(1==rn(this,n)?this:n)},iH.ub=function(n){return new n0(-1==rn(this,n)?this:n)},iH.vb=function(n){return new n0(et(this,n))},iH.wb=function(n){return new n0(rR(this,n))},iH.xb=function(n,t){return new n0(rq(this,n,t))},iH.yb=function(n){return new n0(en(this,n))},iH.cb=function(){return new n0(0==this.f?this:new ti(-this.f,this.e,this.b))},iH.zb=function(){return new n0(function(n){if(n.f<0)throw new nr("start < 0: "+n);return function(n){var t,e,r,i,o,u,f,c;if(iT(),o=tL(fd,{6:1},-1,uK.length,1),r=tL(f_,{6:1},-1,1024,2),1==n.e&&n.b[0]>=0&&n.b[0]=uK[e];++e);return uJ[e]}for(f=new ti(1,n.e,tL(fd,{6:1},-1,n.e+1,1)),ix(n.b,0,f.b,0,n.e),rQ(n,0)?tK(f,2):f.b[0]|=1,i=f.ab(),t=2;i0?n.f>0?this.e>n.e?rl(this,n):rl(n,this):ig(this,n):n.f>0?ig(n,this):eg(n)>eg(this)?rZ(n,this):rZ(this,n))},iH.db=function(n){return new n0(rk(this,n))},iH.Cb=function(n){return new n0(rF(this,n))},iH.Db=function(n){return new n0(rQ(this,n)?this:it(this,n))},iH.eb=function(n){return new n0(tX(this,n))},iH.fb=function(n){return new n0(tY(this,n))},iH.r=function(){return this.f},iH.Eb=function(n){return new n0(is(this,n))},iH.gb=function(n){return rQ(this,n)},iH.Fb=function(n){var t,e;if((e=iI(n))==i$)t=ij(this,0);else if(e==ok)t=function(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v;if(iM(),w=n.f,h=n.e,f=n.b,0==w)return iK;if(1==h)return v=ts(e3(f[0]),o3),w<0&&(v=eP(v)),function(n,t){var e,r,i,o;if(10==t||t<2||t>36)return i$+r4(n);if(e=tL(fJ,{6:1},-1,65,1),r_(),r=uR,i=64,o=e3(t),rA(n,oz)){for(;rA(n,o);)e[i--]=r[nx(n3(n,o))],n=iN(n,o,!1);e[i]=r[nx(n)]}else{for(;!rB(n,eP(o));)e[i--]=r[nx(eP(n3(n,o)))],n=iN(n,o,!1);e[i--]=r[nx(eP(n))],e[i]=45}return t4(e,i,65)}(v,t);if(10==t||t<2||t>36)return ij(n,0);if(r=Math.log(t)/Math.log(2),g=tL(fJ,{6:1},-1,l=ei(eV(new n0(n.f<0?new ti(1,n.e,n.b):n))/r+(w<0?1:0))+1,1),o=l,16!=t)for(ix(f,0,d=tL(fd,{6:1},-1,h,1),0,h),_=h,i=uU[t],e=uL[t-2];;){b=ir(d,d,_,e),a=o;do g[--o]=ev(b%t,t);while(0!=(b=~~(b/t))&&0!=o)for(c=0,u=i-a+o;c0;++c)g[--o]=48;for(c=_-1;c>0&&0==d[c];--c);if(1==(_=c+1)&&0==d[0])break}else for(c=0;c0;++s)b=~~f[c]>>(s<<2)&15,g[--o]=ev(b,16);for(;48==g[o];)++o;return -1==w&&(g[--o]=45),tU(g,o,l-o)}(this,n[0]);else throw new ne("Unknown call signature for result = super.toString: "+e);return t},iH.Gb=function(n){return new n0(0==n.f?this:0==this.f?n:e$(n,(rK(),uC))?new n0(r7(this)):e$(this,uC)?new n0(r7(n)):this.f>0?n.f>0?this.e>n.e?rg(this,n):rg(n,this):iL(this,n):n.f>0?iL(n,this):eg(n)>eg(this)?ii(n,this):ii(this,n))},iH.cM={4:1,6:1,8:1,10:1,17:1,24:1},(iH=j.prototype=(function(){}).prototype=new s).gC=function(){return fT};var uN=!1;(iH=nv.prototype=nm.prototype=(function(){}).prototype=new s).gC=function(){return fj},iH.Hb=function(){return this.b.b},iH.Ib=function(){return new Y(this.b.c)},iH.hC=function(){return nM(this.b)},iH.tS=function(){return eh(this.b)},iH.cM={24:1},iH.b=null,(iH=T.prototype=(function(){}).prototype=new s).gC=function(){return fF};var uI=!1;(iH=Y.prototype=ny.prototype=(function(){}).prototype=new s).gC=function(){return fH},iH.Jb=function(){return this.b.b},iH.tS=function(){return this.b.b},iH.cM={5:1,24:1},iH.b=null,(iH=J.prototype=(function(){}).prototype=new s).gC=function(){return fV};var uE=!1;(iH=nr.prototype=(function(){}).prototype=new b).gC=function(){return fq},iH.cM={6:1,12:1,15:1},(iH=ni.prototype=$.prototype=(function(){}).prototype=new b).gC=function(){return fz},iH.cM={6:1,12:1,15:1},(iH=N.prototype=(function(){}).prototype=new s).gC=function(){return fK},iH.tS=function(){return((2&this.c)!=0?"interface ":(1&this.c)!=0?i$:"class ")+this.d},iH.b=null,iH.c=0,iH.d=null,(iH=H.prototype=(function(){}).prototype=new b).gC=function(){return fW},iH.cM={6:1,12:1,15:1},(iH=I.prototype=new s).eQ=function(n){return this===n},iH.gC=function(){return fs},iH.hC=function(){return nj(this)},iH.tS=function(){return this.b},iH.cM={6:1,8:1,9:1},iH.b=null,iH.c=0,(iH=no.prototype=V.prototype=E.prototype=new b).gC=function(){return fZ},iH.cM={6:1,12:1,15:1},(iH=nu.prototype=q.prototype=R.prototype=new b).gC=function(){return fG},iH.cM={6:1,12:1,15:1},(iH=nf.prototype=G.prototype=(function(){}).prototype=new b).gC=function(){return fX},iH.cM={6:1,12:1,15:1},(iH=nw.prototype=(function(){}).prototype=new E).gC=function(){return fY},iH.cM={6:1,12:1,15:1},(iH=to.prototype=(function(){}).prototype=new s).gC=function(){return fy},iH.tS=function(){return this.b+iJ+this.d+"(Unknown Source"+(this.c>=0?i6+this.c:i$)+")"},iH.cM={6:1,13:1},iH.b=null,iH.c=0,iH.d=null,(iH=String.prototype).eQ=function(n){return tj(this,n)},iH.gC=function(){return fA},iH.hC=function(){var n,t;return nJ(),null!=(t=uD[n=i6+this])?t:(null==(t=uO[n])&&(t=function(n){var t,e,r,i;for(t=0,i=(r=n.length)-4,e=0;et?n:t}function n_(n,t){return!rA(n,t)}function nv(n){this.b=new iS(n)}function nm(){this.b=(rj(),uj)}function ny(){this.b=(iB(),u2)}function nC(n,e){var r;na(),r=t.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 tg(n){return nG(n,15)?n:new n1(n)}function tw(){try{null.a()}catch(n){return n}}function td(n){var t;return(t=new N).d=i$+n,t.c=1,t}function tp(n,t){return nF(n)?n.eQ(t):n===t}function t_(n,t){return n.l==t.l&&n.m==t.m&&n.h==t.h}function tv(n,t){return n.l!=t.l||n.m!=t.m||n.h!=t.h}function tm(n,t,e){return(iH=new M).l=n,iH.m=t,iH.h=e,iH}function ty(n,t){return nT(n)===nT(t)||null!=n&&tp(n,t)}function tC(n,t){throw new nu("Index: "+n+", Size: "+t)}function tS(n,t){if(!n)throw new G;this.f=t,tR(this,n)}function tM(n,t){if(!n)throw new G;this.f=t,tR(this,n)}function tx(n,t,e,r){ez.call(this,n,t,e),ic(this,r)}function tB(n,t){ez.call(this,n,0,n.length),ic(this,t)}function tA(n,t){ez.call(this,t6(n),0,n.length),ic(this,t)}function tN(n){ne.call(this,"String index out of range: "+n)}function tI(n,t){var e,r;return e=n.b,r=String.fromCharCode(t),e.b+=r,n}function tE(n,t){ry(n.b,n.b,n.e,t.b,t.e),tW(n),n.c=-2}function tR(n,t){n.d=t,n.b=t.ab(),n.b<54&&(n.g=rr(eA(t)))}function tO(){tO=l,ue=[],ur=[],function(n,t,e){var r,i=0;for(var o in n)(r=n[o])&&(t[i]=o,e[i]=r,++i)}(new S,ue,ur)}function tD(){uy||(uy=!0,new T,new j,function(){if(nl(ox,i$),o.bigdecimal.BigDecimal)var n=o.bigdecimal.BigDecimal;o.bigdecimal.BigDecimal=ff(function(){1==arguments.length&&null!=arguments[0]&&arguments[0].gC()==fD?this.__gwt_instance=arguments[0]:0==arguments.length&&(this.__gwt_instance=new ng,nb(this.__gwt_instance,this))});var t=o.bigdecimal.BigDecimal.prototype={};if(n)for(p in n)o.bigdecimal.BigDecimal[p]=n[p];o.bigdecimal.BigDecimal.ROUND_CEILING=2,o.bigdecimal.BigDecimal.ROUND_DOWN=1,o.bigdecimal.BigDecimal.ROUND_FLOOR=3,o.bigdecimal.BigDecimal.ROUND_HALF_DOWN=5,o.bigdecimal.BigDecimal.ROUND_HALF_EVEN=6,o.bigdecimal.BigDecimal.ROUND_HALF_UP=4,o.bigdecimal.BigDecimal.ROUND_UNNECESSARY=7,o.bigdecimal.BigDecimal.ROUND_UP=0,o.bigdecimal.BigDecimal.__init__=ff(function(n){var t=function(n){var t,e;if(iU(),(e=iI(n))==i8)t=new nk(new nq(n[0].toString()));else if("BigInteger number"==e)t=new tS(new nq(n[0].toString()),n[1]);else if("BigInteger number MathContext"==e)t=new te(new nq(n[0].toString()),n[1],new iS(n[2].toString()));else if("BigInteger MathContext"==e)t=new n4(new nq(n[0].toString()),new iS(n[1].toString()));else if(e==oS)t=new n2(t6(n[0].toString()));else if("array number number"==e)t=new ez(t6(n[0].toString()),n[1],n[2]);else if("array number number MathContext"==e)t=new tx(t6(n[0].toString()),n[1],n[2],new iS(n[3].toString()));else if("array MathContext"==e)t=new tB(t6(n[0].toString()),new iS(n[1].toString()));else if(e==ok)t=new eu(n[0]);else if(e==oL)t=new ep(n[0],new iS(n[1].toString()));else if(e==oF)t=new Z(n[0].toString());else if("string MathContext"==e)t=new tA(n[0].toString(),new iS(n[1].toString()));else throw new ne("Unknown call signature for obj = new java.math.BigDecimal: "+e);return new nL(t)}(n);return nE(t)}),t.abs_va=ff(function(n){return nE(this.__gwt_instance.s(n))}),t.add_va=ff(function(n){return nE(this.__gwt_instance.t(n))}),t.byteValueExact=ff(function(){return this.__gwt_instance.u()}),t.compareTo=ff(function(n){return this.__gwt_instance.v(n.__gwt_instance)}),t.divide_va=ff(function(n){return nE(this.__gwt_instance.y(n))}),t.divideToIntegralValue_va=ff(function(n){return nE(this.__gwt_instance.x(n))}),t.doubleValue=ff(function(){return this.__gwt_instance.z()}),t.equals=ff(function(n){return this.__gwt_instance.eQ(n)}),t.floatValue=ff(function(){return this.__gwt_instance.A()}),t.hashCode=ff(function(){return this.__gwt_instance.hC()}),t.intValue=ff(function(){return this.__gwt_instance.B()}),t.intValueExact=ff(function(){return this.__gwt_instance.C()}),t.max=ff(function(n){return nE(this.__gwt_instance.F(n.__gwt_instance))}),t.min=ff(function(n){return nE(this.__gwt_instance.G(n.__gwt_instance))}),t.movePointLeft=ff(function(n){return nE(this.__gwt_instance.H(n))}),t.movePointRight=ff(function(n){return nE(this.__gwt_instance.I(n))}),t.multiply_va=ff(function(n){return nE(this.__gwt_instance.J(n))}),t.negate_va=ff(function(n){return nE(this.__gwt_instance.K(n))}),t.plus_va=ff(function(n){return nE(this.__gwt_instance.L(n))}),t.pow_va=ff(function(n){return nE(this.__gwt_instance.M(n))}),t.precision=ff(function(){return this.__gwt_instance.q()}),t.remainder_va=ff(function(n){return nE(this.__gwt_instance.N(n))}),t.round=ff(function(n){return nE(this.__gwt_instance.O(n.__gwt_instance))}),t.scale=ff(function(){return this.__gwt_instance.P()}),t.scaleByPowerOfTen=ff(function(n){return nE(this.__gwt_instance.Q(n))}),t.setScale_va=ff(function(n){return nE(this.__gwt_instance.R(n))}),t.shortValueExact=ff(function(){return this.__gwt_instance.S()}),t.signum=ff(function(){return this.__gwt_instance.r()}),t.stripTrailingZeros=ff(function(){return nE(this.__gwt_instance.T())}),t.subtract_va=ff(function(n){return nE(this.__gwt_instance.U(n))}),t.toBigInteger=ff(function(){return nE(this.__gwt_instance.V())}),t.toBigIntegerExact=ff(function(){return nE(this.__gwt_instance.W())}),t.toEngineeringString=ff(function(){return this.__gwt_instance.X()}),t.toPlainString=ff(function(){return this.__gwt_instance.Y()}),t.toString=ff(function(){return this.__gwt_instance.tS()}),t.ulp=ff(function(){return nE(this.__gwt_instance.Z())}),t.unscaledValue=ff(function(){return nE(this.__gwt_instance.$())}),t.divideAndRemainder_va=ff(function(n){return nR(this.__gwt_instance.w(n))}),t.longValue=ff(function(){return this.__gwt_instance.E()}),t.longValueExact=ff(function(){return this.__gwt_instance.D()}),o.bigdecimal.BigDecimal.valueOf_va=ff(function(n){var t=function(n){var t,e;if(iU(),(e=iI(n))==ok)t=function(n){if(!isFinite(n)||isNaN(n))throw new nw(os);return new Z(i$+n)}(n[0]);else if(e==ok)t=tZ(e3(n[0]));else if(e==oU)t=ek(e3(n[0]),n[1]);else throw new ne("Unknown call signature for bd = java.math.BigDecimal.valueOf: "+e);return new nL(t)}(n);return nE(t)}),o.bigdecimal.BigDecimal.log=ff(function(n){iU(),typeof console!==oH&&console.log&&console.log(n)}),o.bigdecimal.BigDecimal.logObj=ff(function(n){iU(),typeof console!==oH&&console.log&&typeof JSON!==oH&&JSON.stringify&&console.log("object: "+JSON.stringify(n))}),o.bigdecimal.BigDecimal.ONE=ff(function(){var n=(iU(),new nL(ug));return nE(n)}),o.bigdecimal.BigDecimal.TEN=ff(function(){var n=(iU(),new nL(uw));return nE(n)}),o.bigdecimal.BigDecimal.ZERO=ff(function(){var n=(iU(),new nL(ud));return nE(n)}),nC(fD,o.bigdecimal.BigDecimal)}())}function tk(n,t,e){var r;return(r=new N).d=n+t,r.c=4,r.b=e,r}function tL(n,t,e,r,i){var o;return tJ(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 tN(e)}(n.length,t,r),t4(n,t,r)}function tP(n,t){return ib(),t=n.c.c)throw new z;return t=n.c,r=e=n.b++,i=t.c,(r<0||r>=i)&&tC(r,i),t.b[e]}function tj(n,t){return!!nG(t,1)&&String(n)==t}function tF(){ne.call(this,"Add not supported on this collection")}function tH(){this.b=[],this.f={},this.d=!1,this.c=null,this.e=0}function t$(n,t){rK(),this.f=n,this.e=1,this.b=tJ(fd,{6:1},-1,[t])}function tV(n,t){var e;return e=n.c,n.c=t,!n.d&&(n.d=!0,++n.e),e}function tq(n,t){var e,r;return e=n.b,r=String.fromCharCode.apply(null,t),e.b+=r,n}function tG(n,t,e,r){var i,o;return null==t&&(t=oD),i=n.b,o=t.substr(e,r-e),i.b+=o,n}function tz(n,t,e,r){var i;return ry(i=tL(fd,{6:1},-1,t,1),n,t,e,r),i}function tJ(n,t,e,r){return tO(),function(n,t,e){tO();for(var r=0,i=t.length;r0&&0==n.b[--n.e];);0==n.b[n.e++]&&(n.f=0)}function tZ(n){return rA(n,oz)&&n_(n,oX)?uc[nx(n)]:new eo(n,0)}function tX(n,t){return 0==t||0==n.f?n:t>0?e4(n,t):rX(n,-t)}function tY(n,t){return 0==t||0==n.f?n:t>0?rX(n,t):e4(n,-t)}function t1(n){var t;return 0==n.f?-1:((t=eg(n))<<5)+ec(n.b[t])}function t0(n){var t;return 0!=(t=nx(n))?ec(t):ec(nx(rJ(n,32)))+32}function t2(n,t){var e;return 0==(e=eR(n,t)).length?(new d).o(t):tl(e,1)}function t4(n,t,e){return n=n.slice(t,e),String.fromCharCode.apply(null,n)}function t3(n,t,e,r){var i;return ia(i=tL(fd,{6:1},-1,t+1,1),n,t,e,r),i}function t6(n){var t,e;return t=tL(fJ,{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,(_=(g=b.e)+(w=l.e),v=b.f!=l.f?-1:1,2==_)?(S=nx(y=iE(ts(e3(b.b[0]),o3),ts(e3(l.b[0]),o3))),0==(C=nx(rU(y,32)))?new t$(v,S):new ti(v,2,tJ(fd,{6:1},-1,[S,C]))):(eq(b.b,g,l.b,w,d=tL(fd,{6:1},-1,_,1)),tW(m=new ti(v,_,d)),m)):(f=(-2&t.e)<<4,h=t.fb(f),a=e.fb(f),i=is(t,h.eb(f)),o=is(e,a.eb(f)),s=n(h,a),r=n(i,o),u=(u=iC(iC(u=n(is(h,i),is(o,a)),s),r)).eb(f),iC(iC(s=s.eb(f<<1),u),r))}(n,t))}function et(n,t){var e;if(t.f<=0)throw new nr(oe);return(e=rF(n,t)).f<0?iC(e,t):e}function ee(n){var t;t=new nz,n.d&&n6(t,new nt(n)),function(n,t){var e=n.f;for(var r in e)if(58==r.charCodeAt(0)){var i=new nB(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=eU(n.g)),n.d).r()}function ed(n){return n.b<54?new tr(-n.g,n.f):new tM((n.d||(n.d=eU(n.g)),n.d).cb(),n.f)}function ep(n,t){if(!isFinite(n)||isNaN(n))throw new nw(os);iP(this,n.toPrecision(20)),ic(this,t)}function e_(n,t){return isNaN(n)?isNaN(t)?0:1:isNaN(t)?-1:nt?1:0}function ev(n,t){return t<2||t>36||n<0||n>=t?0:n<10?48+n&65535:97+n-10&65535}function em(n,t){var e,r;return t?((e=t[oy])||(e=new(r=t.gC(),t9(er(n.b,r)))(t),t[oy]=e),e):null}function ey(n){var t,e;return 32==(e=rH(n.h))?32==(t=rH(n.m))?rH(n.l)+32:t+20-10:e-12}function eC(n){return tm(4194303&n,~~n>>22&4194303,n<0?1048575:0)}function eS(){eS=l,ui=tm(4194303,4194303,524287),uo=tm(0,0,524288),uu=e3(1),e3(2),uf=e3(0)}function eM(n,t){ia(n.b,n.b,n.e,t.b,t.e),n.e=nd(np(n.e,t.e)+1,n.b.length),tW(n),n.c=-2}function ex(n,t){var e;e=~~t>>5,n.e+=e+(rH(n.b[n.e-1])-(31&t)>=0?0:1),rC(n.b,n.b,e,31&t),tW(n),n.c=-2}function eB(n,t){var e,r;e=~~t>>5,n.e>>r:0,tW(n))}function eA(n){var t;return t=n.e>1?th(rL(e3(n.b[1]),32),ts(e3(n.b[0]),o3)):ts(e3(n.b[0]),o3),iE(e3(n.f),t)}function eN(n,t,e){var r;for(r=e-1;r>=0&&n[r]==t[r];--r);return r<0?0:n_(ts(e3(n[r]),o3),ts(e3(t[r]),o3))?-1:1}function eI(n,t,e){var r,i,o;for(i=0,r=0;i>>31;0!=r&&(n[e]=r)}function eE(n,t,e,r){if(iF=t,n)try{ff(im)()}catch(e){n(t)}else ff(im)()}function eR(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 eo(oz,2147483647):new eo(oz,-2147483648)}function eU(n){return(rK(),n<0)?-1!=n?new ro(-1,-n):uC:n<=10?uM[ei(n)]:new ro(1,n)}function eP(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,tm(t,e,r)}function eQ(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 eT(n){var t,e,r;for(r=0,e=tL(fC,{6:1},13,n.length,0),t=n.length;r=0;--r)if(n[r]!=i[r]){e=0!=n[r]&&rB(ts(e3(n[r]),o3),ts(e3(i[r]),o3));break}}return u=new ti(1,o+1,n),e&&tE(u,t),tW(u),u}(o,e)}function e$(n,t){var e;return n===t||!!nG(t,17)&&(e=tQ(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 eV(n){var t,e;return 0==n.f?0:(t=n.e<<5,e=n.b[n.e-1],n.f<0&&eg(n)==n.e-1&&(e=~~(e-1)),t-=rH(e))}function eq(n,t,e,r,i){ib(),0!=t&&0!=r&&(1==t?i[r]=rf(i,e,r,n[0]):1==r?i[t]=rf(i,n,t,e[0]):function(n,t,e,r,i){var o,u,f,c;if(nT(n)===nT(t)&&r==i){io(n,r,e);return}for(f=0;f2147483647))return ei(n);throw new nr("Underflow")}function eK(n,t){if(rj(),n<0)throw new no("Digits < 0");if(!t)throw new nf("null RoundingMode");this.b=n,this.c=t}function eW(n){return(rK(),n_(n,oz))?tv(n,oG)?new ri(-1,eP(n)):uC:rB(n,oZ)?new ri(1,n):uM[nx(n)]}function eZ(n){var t;return n_(n,oz)&&(n=tm(4194303&~n.l,4194303&~n.m,1048575&~n.h)),64-(0!=(t=nx(rJ(n,32)))?rH(t):rH(nx(n))+32)}function eX(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),tm(4194303&e,4194303&r,1048575&i)}function eY(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),tm(4194303&e,4194303&r,1048575&i)}function e1(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-np(e,n.bb())}function e0(n,t){var e;return n===t||!!nG(t,16)&&(e=tQ(t,16)).f==n.f&&(n.b<54?e.g==n.g:n.d.eQ(e.d))}function e2(n,t,e){var r,i,o;for(o=oz,r=t-1;r>=0;--r)i=r0(eX(rL(o,32),ts(e3(n[r]),o3)),e),o=e3(nx(rJ(i,32)));return nx(o)}function e4(n,t){var e,r,i,o;return e=~~t>>5,t&=31,rC(r=tL(fd,{6:1},-1,i=n.e+e+(0==t?0:1),1),n.b,e,t),tW(o=new ti(n.f,i,r)),o}function e3(n){var t,e;return n>-129&&n<128?(t=n+128,null==o8&&(o8=tL(fE,{6:1},2,256,0)),(e=o8[t])||(e=o8[t]=eC(n)),e):eC(n)}function e6(n){var t,e;return(rK(),n>5)+1,1))[t]=1<<(31&n),new ti(1,t+1,e))}function e5(n){rK(),0==n.length?(this.f=0,this.e=1,this.b=tJ(fd,{6:1},-1,[0])):(this.f=1,this.e=n.length,this.b=n,tW(this))}function e9(n){return 0==n.length||n[0]>iV&&n[n.length-1]>iV?n:n.replace(/^(\s*)/,i$).replace(/\s*$/,i$)}function e7(n){return n-=~~n>>1&1431655765,n=(~~(n=(~~n>>2&858993459)+(858993459&n))>>4)+n&252645135,n+=~~n>>8,63&(n+=~~n>>16)}function e8(n,t,e){if(null!=e){var r;if(n.qI>0&&(r=n.qI,!e.cM||!e.cM[r])||n.qI<0&&(e.tM==l||nH(e,1)))throw new $}return n[t]=e}function rn(n,t){return n.f>t.f?1:n.ft.e?n.f:n.e=0;--o)u=eH(u,u,r,i),(e.b[~~o>>5]&1<<(31&o))!=0&&(u=eH(u,t,r,i));return u}(f,r,t,e,o):function(n,t,e,r,i){var o,u,f,c,s,h,a;for(s=tL(f5,{6:1},17,8,0),h=n,e8(s,0,t),a=eH(t,t,r,i),u=1;u<=7;++u)e8(s,u,eH(s[u-1],a,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],h,r,i),u=o}else h=eH(h,h,r,i);return h}(f,r,t,e,o),eH(u,(rK(),uS),e,o)}function rs(n,t){var e,r,i,o;for(e=0,r=n.length;e36)throw new nw("Radix out of range");if(0==n.length)throw new nw("Zero length BigInteger");(function(n,t,e){var r,i,o,u,f,c,s,h,a,b,l,g,w,d;for(s=l=t.length,45==t.charCodeAt(0)?(a=-1,b=1,--l):(a=1,b=0),o=~~(l/(u=(iM(),uU)[e])),0!=(d=l%u)&&++o,c=tL(fd,{6:1},-1,o,1),r=uL[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:n_(ts(e3(n[i]),o3),ts(e3(t[i]),o3))?-1:1}function rl(n,t){var e,r,i;for(r=tL(fd,{6:1},-1,i=n.e,1),nd(eg(n),eg(t)),e=0;e999999999)throw new nr(oh);return e=n.f*t,0==n.b&&-1!=n.g?eL(e):new tS((n.d||(n.d=eU(n.g)),n.d).db(t),eJ(e))}function rd(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)fo[n]=e,e*=.5;for(n=24,t=1;n>=0;--n)fi[n]=t,t*=.5}function r_(){r_=l,uR=tJ(fJ,{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 rv(n){var t;return 0!=n.c||(n.b<54?(t=r2(n.g),n.c=nx(ts(t,oG)),n.c=33*n.c+nx(ts(rJ(t,32),oG)),n.c=17*n.c+ei(n.f)):n.c=17*n.d.hC()+ei(n.f)),n.c}function rm(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=e_(n*t,0),0!=u&&(i=e_((u<=0?0-u:u)*2,t<=0?0-t:t),o+=r8(1&ei(o),f*(5+i),r)),new tr(o,e)}function ry(n,t,e,r,i){var o,u;for(u=0,o=oz;ue;--i)n[i]|=~~t[i-e-1]>>>o,n[i-1]=t[i-e-1]<>5,n.e-=r,!rO(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=ei(nU(Math.log(n)/.6931471805599453)),(!t||n!=Math.pow(2,e))&&++e,e):eZ(r2(n))}function rE(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)?eW(rN(eA(e),eA(r))):function(n,t){var e,r,i,o;i=(e=n.bb())<(r=t.bb())?e:r,rx(n,e),rx(t,r),1==rn(n,t)&&(o=n,n=t,t=o);do{if(1==t.e||2==t.e&&t.b[1]>0){t=eW(rN(eA(n),eA(t)));break}if(t.e>1.2*n.e)0!=(t=rF(t,n)).r()&&rx(t,t.bb());else do tE(t,n),rx(t,t.bb());while(rn(t,n)>=0)o=t,t=n,n=o}while(0!=o.f)return t.eb(i)}(ea(e),ea(r))}function rR(n,t){var e;if(t.f<=0)throw new nr(oe);if(!(n.gb(0)||t.gb(0)))throw new nr(ot);if(1==t.e&&1==t.b[0])return uB;if(0==(e=function(n,t){var e,r,i,o,u,f,c,s,h,a,b;if(0==n.f)throw new nr(ot);if(!t.gb(0))return function(n,t){var e,r,i,o,u,f,c,s,h,a,b;for(h=tL(fd,{6:1},-1,(o=np(n.e,t.e))+1,1),b=tL(fd,{6:1},-1,o+1,1),ix(t.b,0,h,0,t.e),ix(n.b,0,b,0,n.e),s=new ti(t.f,t.e,h),a=new ti(n.f,n.e,b),f=new ti(0,1,tL(fd,{6:1},-1,o+1,1)),(c=new ti(1,1,tL(fd,{6:1},-1,o+1,1))).b[0]=1,e=0,r=0,u=t.ab();!eO(s,e)&&!eO(a,r);)if(0!=(i=e1(s,u))&&(ex(s,i),e>=r?ex(f,i):(rx(c,r-e0&&ex(f,i-r+e)),e+=i),0!=(i=e1(a,u))&&(ex(a,i),r>=e?ex(c,i):(rx(f,e-r0&&ex(c,i-e+r)),r+=i),s.r()==a.r()?e<=r?(rV(s,a),rV(f,c)):(rV(a,s),rV(c,f)):e<=r?(r$(s,a),r$(f,c)):(r$(a,s),r$(c,f)),0==a.r()||0==s.r())throw new nr(ot);return eO(a,r)&&(f=c,a.r()!=s.r()&&(s=s.cb())),s.gb(u)&&(f=0>f.r()?f.cb():is(t,f)),0>f.r()&&(f=iC(f,t)),f}(n,t);for(o=32*t.e,a=ea(t),u=np((b=ea(n)).e,a.e),c=new ti(1,1,tL(fd,{6:1},-1,u+1,1)),(s=new ti(1,1,tL(fd,{6:1},-1,u+1,1))).b[0]=1,e=0,(r=a.bb())>(i=b.bb())?(rx(a,r),rx(b,i),ex(c,i),e+=r-i):(rx(a,r),rx(b,i),ex(s,r),e+=i-r),c.f=1;b.r()>0;){for(;rn(a,b)>0;)tE(a,b),h=a.bb(),rx(a,h),eM(c,s),ex(s,h),e+=h;for(;0>=rn(a,b)&&(tE(b,a),0!=b.r());)h=b.bb(),rx(b,h),eM(s,c),ex(c,h),e+=h}if(!(1==a.e&&1==a.b[0]))throw new nr(ot);return rn(c,t)>=0&&tE(c,t),c=is(t,c),f=ru(t),e>o&&(c=eH(c,(rK(),uS),t,f),e-=o),c=eH(c,e6(o-e),t,f)}(et(n._(),t),t)).f)throw new nr(ot);return n.f<0?is(t,e):e}function rO(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 rD(n,t){var e;return(e=n.f+t.f,0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)?eL(e):n.b+t.b<54?new tr(n.g*t.g,eJ(e)):new tS(en((n.d||(n.d=eU(n.g)),n.d),(t.d||(t.d=eU(t.g)),t.d)),eJ(e))}function rk(n,t){var e;if(t<0)throw new nr("Negative exponent");if(0==t)return uS;if(1==t||n.eQ(uS)||n.eQ(uB))return n;if(!n.gb(0)){for(e=1;!n.gb(e);)++e;return en(e6(e*t),n.fb(e).db(t))}return function(n,t){var e,r;for(ib(),rK(),r=uS,e=n;t>1;t>>=1)(1&t)!=0&&(r=en(r,e)),e=1==e.e?en(e,e):new e5(io(e.b,e.e,tL(fd,{6:1},-1,e.e<<1,1)));return en(r,e)}(n,t)}function rL(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),tm(4194303&r,4194303&i,1048575&o)}function rP(n){switch(iB(),n){case 2:return uZ;case 1:return uX;case 3:return uY;case 5:return u1;case 6:return u0;case 4:return u2;case 7:return u4;case 0:return u3;default:throw new no("Invalid rounding mode")}}function rQ(n,t){var e,r,i;if(0==t)return(1&n.b[0])!=0;if(t<0)throw new nr(ob);if((i=~~t>>5)>=n.e)return n.f<0;if(e=n.b[i],t=1<<(31&t),n.f<0){if(i<(r=eg(n)))return!1;e=r==i?-e:~e}return(e&t)!=0}function rT(n){var t,e;return n.e>0||(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!=ih((n.d||(n.d=eU(n.g)),n.d),iv(t)).r()&&++t),n.e=ei(t)),n.e}function rj(){rj=l,uP=new eK(34,(iB(),u0)),uQ=new eK(7,u0),uT=new eK(16,u0),uj=new eK(0,u2),uF=tJ(fJ,{6:1},-1,[112,114,101,99,105,115,105,111,110,61]),uH=tJ(fJ,{6:1},-1,[114,111,117,110,100,105,110,103,77,111,100,101,61])}function rF(n,t){var e,r,i,o;if(0==t.f)throw new nr(on);return((o=n.e)!=(e=t.e)?o>e?1:-1:eN(n.b,t.b,o))==-1?n:(r=tL(fd,{6:1},-1,e,1),1==e?r[0]=e2(n.b,o,t.b[0]):r=ik(null,o-e+1,n.b,o,t.b,e),tW(i=new ti(n.f,e,r)),i)}function rH(n){var t,e,r;return n<0?0:0==n?32:(e=16-(t=~~(r=-(~~n>>16))>>16&16)+(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 r$(n,t){if(0==n.f)ix(t.b,0,n.b,0,t.e);else{if(0==t.f)return;n.f==t.f?ia(n.b,n.b,n.e,t.b,t.e):rb(n.b,t.b,n.e,t.e)>0?ry(n.b,n.b,n.e,t.b,t.e):(r5(n.b,n.b,n.e,t.b,t.e),n.f=-n.f)}n.e=np(n.e,t.e)+1,tW(n),n.c=-2}function rV(n,t){var e;e=rn(n,t),0==n.f?(ix(t.b,0,n.b,0,t.e),n.f=-t.f):n.f!=t.f?(ia(n.b,n.b,n.e,t.b,t.e),n.f=e):rb(n.b,t.b,n.e,t.e)>0?ry(n.b,n.b,n.e,t.b,t.e):(r5(n.b,n.b,n.e,t.b,t.e),n.f=-n.f),n.e=np(n.e,t.e)+1,tW(n),n.c=-2}function rq(n,t,e){var r,i,o,u,f,c,s,h,a,b;if(e.f<=0)throw new nr(oe);return(r=n,(1==e.e&&1==e.b[0])|t.f>0&0==r.f)?uB:0==r.f&&0==t.f?uS:(t.f<0&&(r=rR(n,e),t=t.cb()),i=e.gb(0)?rc(r._(),t,e):(o=r._(),u=t,f=e.bb(),h=rc(o,u,c=e.fb(f)),a=function(n,t,e){var r,i,o,u,f;for(rK(),u=uS,i=ea(t),r=ea(n),n.gb(0)&&eB(i,e-1),eB(r,e),o=i.ab()-1;o>=0;--o)eB(f=ea(u),e),u=en(u,f),(i.b[~~o>>5]&1<<(31&o))!=0&&eB(u=en(u,r),e);return eB(u,e),u}(o,u,f),s=function(n,t){var e,r,i,o;for(e=1,(r=new e5(tL(fd,{6:1},-1,1<>5]&1<<(31&o))!=0&&(r.b[~~e>>5]|=1<<(31&e));return r}(c,f),eB(b=en(is(a,h),s),f),b.f<0&&(b=iC(b,e6(f))),iC(h,en(c,b))),r.f<0&&t.gb(0)&&(i=et(en(is(e,uS),i),e)),i)}function rG(n,t){var e,r,i,o,u,f,c;if(i=eg(n),(r=eg(t))>=n.e)return rK(),uB;for(u=tL(fd,{6:1},-1,f=n.e,1),(e=i>r?i:r)==r&&(u[e]=-t.b[e]&n.b[e],++e),o=nd(t.e,n.e);e=t.e)for(;e0?t:0):t>=0?n.b<54?new tr(n.g,eJ(t)):new tS((n.d||(n.d=eU(n.g)),n.d),eJ(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),tm(4194303&i,4194303&o,1048575&u)}function rK(){var n;for(n=0,rK=l,uS=new t$(1,1),ux=new t$(1,10),uB=new t$(0,0),uC=new t$(-1,1),uM=tJ(f5,{6:1},17,[uB,uS,new t$(1,2),new t$(1,3),new t$(1,4),new t$(1,5),new t$(1,6),new t$(1,7),new t$(1,8),new t$(1,9),ux]),uA=tL(f5,{6:1},17,32,0);n=t.e)return t;if(r>=n.e)return n;if(o=tL(fd,{6:1},-1,u=nd(n.e,t.e),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?(rK(),uC):(rK(),uB);if(rO(i=tL(fd,{6:1},-1,(o=n.e-r)+1,1),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?rS(n,t,e):rS(t,n,-e):np(n.b,t.b)+1<54?new tr(n.g+t.g,n.f):new tM(iC((n.d||(n.d=eU(n.g)),n.d),(t.d||(t.d=eU(t.g)),t.d)),n.f)}function r0(n,t){var e,r,i,o,u;return(r=ts(e3(t),o3),rA(n,oz))?(o=iN(n,r,!1),u=n3(n,r)):(o=iN(e=rU(n,1),i=e3(~~t>>>1),!1),u=eX(rL(u=n3(e,i),1),ts(n,oJ)),(1&t)!=0&&(rB(o,u)?rB(eY(o,u),r)?(u=eX(u,eY(rL(r,1),o)),o=eY(o,oK)):(u=eX(u,eY(r,o)),o=eY(o,oJ)):u=eY(u,o))),th(rL(u,32),ts(o,o3))}function r2(n){var t,e,r,i;return isNaN(n)?(eS(),uf):n<-0x8000000000000000?(eS(),uo):n>=0x7fffffffffffffff?(eS(),ui):(r=!1,n<0&&(r=!0,n=-n),e=0,n>=17592186044416&&(e=ei(n/17592186044416),n-=17592186044416*e),t=0,n>=4194304&&(t=ei(n/4194304),n-=4194304*t),i=tm(ei(n),t,e),r&&eQ(i),i)}function r4(n){var t,e,r,i;if(0==n.l&&0==n.m&&0==n.h)return iK;if(524288==n.h&&0==n.m&&0==n.l)return"-9223372036854775808";if(~~n.h>>19!=0)return iz+r4(eP(n));for(e=n,r=i$;!(0==e.l&&0==e.m&&0==e.h);){if(e=iN(e,e3(1e9),!0),t=i$+nx(o7),!(0==e.l&&0==e.m&&0==e.h))for(i=9-t.length;i>0;--i)t=iK+t;r=t+r}return r}function r3(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m,y,C,S,M,x,B,A;if(0==(i=t.f))throw new nr(on);return(r=t.e,e=t.b,1==r)?(g=e[0],(x=n.b,B=n.e,A=n.f,1==B)?(_=iN(w=ts(e3(x[0]),o3),d=ts(e3(g),o3),!1),y=n3(w,d),A!=i&&(_=eP(_)),A<0&&(y=eP(y)),tJ(f5,{6:1},17,[eW(_),eW(y)])):(m=A==i?1:-1,v=tL(fd,{6:1},-1,B,1),C=tJ(fd,{6:1},-1,[ir(v,x,B,g)]),S=new ti(m,B,v),M=new ti(A,1,C),tW(S),tW(M),tJ(f5,{6:1},17,[S,M]))):(a=n.b,((b=n.e)!=r?b>r?1:-1:eN(a,e,b))<0)?tJ(f5,{6:1},17,[uB,n]):(l=n.f,u=b-r+1,f=l==i?1:-1,c=ik(o=tL(fd,{6:1},-1,u,1),u,a,b,e,r),s=new ti(f,u,o),h=new ti(l,r,c),tW(s),tW(h),tJ(f5,{6:1},17,[s,h]))}function r6(n){var t;if(0==n.f||0==n.b&&-1!=n.g)return n.d||(n.d=eU(n.g)),n.d;if(n.f<0)return en((n.d||(n.d=eU(n.g)),n.d),iv(-n.f));if(n.f>(n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)||n.f>(n.d||(n.d=eU(n.g)),n.d).bb()||0!=(t=r3((n.d||(n.d=eU(n.g)),n.d),iv(n.f)))[1].r())throw new nr(ol);return t[0]}function r5(n,t,e,r,i){var o,u;if(o=oz,e36)throw new nw("radix "+t+" out of range");for(e=(r=n.length)>0&&45==n.charCodeAt(0)?1:0;e2147483647)throw new nw(oc+n+iq);return i}function r7(n){var t,e;if(0==n.f)return rK(),uC;if(e$(n,(rK(),uC)))return uB;if(e=tL(fd,{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 it(n,t){var e,r,i,o,u,f,c,s;if(c=0==n.f?1:n.f,u=tL(fd,{6:1},-1,f=np((o=~~t>>5)+1,n.e)+1,1),e=1<<(31&t),ix(n.b,0,u,0,n.e),n.f<0){if(o>=n.e)u[o]=e;else if(o>(r=eg(n)))u[o]^=e;else if(o=0||0==s.f||1==s.e&&1==s.b[0])if(!(1==(h=rq(s,f,n)).e&&1==h.b[0]||h.eQ(u))){for(i=1;i=0;--f)rA(h=th(rL(s,32),ts(e3(t[f]),o3)),oz)?(c=iN(h,o,!1),s=n3(h,o)):(c=iN(i=rU(h,1),u=e3(~~r>>>1),!1),s=eX(rL(s=n3(i,u),1),ts(h,oJ)),(1&r)!=0&&(rB(c,s)?rB(eY(c,s),o)?(s=eX(s,eY(rL(o,1),c)),c=eY(c,oK)):(s=eX(s,eY(o,c)),c=eY(c,oJ)):s=eY(s,c))),n[f]=nx(ts(c,o3));return nx(s)}function ii(n,t){var e,r,i,o,u,f,c;if(u=tL(fd,{6:1},-1,f=np(n.e,t.e),1),i=eg(n),e=r=eg(t),i==r)u[r]=-n.b[r]^-t.b[r];else{for(u[r]=-t.b[r],o=nd(t.e,i),++e;et.g?1:0:(r=n.f-t.f,(e=(n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)-(t.e>0?t.e:nU((t.b-1)*.3010299956639812)+1))>r+1)?i:e0&&(u=en(u,iv(r))),rn(o,u))}function ic(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g;if(o=t.b,!((n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)-o<0||0==o||(r=n.q()-o)<=0)){if(n.b<54){l=r2(ub[c=r]),b=eY(r2(n.f),e3(c)),a=iN(g=r2(n.g),l,!1),tv(h=n3(g,l),oz)&&(s=t_(eY(rL(n_(h,oz)?eP(h):h,1),l),oz)?0:n_(eY(rL(n_(h,oz)?eP(h):h,1),l),oz)?-1:1,a=eX(a,e3(r8(1&nx(a),(t_(h,oz)?0:n_(h,oz)?-1:1)*(5+s),t.c))),n8(rr(n_(a,oz)?eP(a):a))>=t.b&&(a=nP(a,oZ),b=eY(b,oJ))),n.f=eJ(rr(b)),n.e=t.b,n.g=rr(a),n.b=eZ(a),n.d=null;return}f=iv(r),i=r3((n.d||(n.d=eU(n.g)),n.d),f),u=n.f-r,0!=i[1].r()&&(e=rn(eF(i[1]._()),f),0!=(e=r8(i[0].gb(0)?1:0,i[1].r()*(5+e),t.c))&&e8(i,0,iC(i[0],eW(e3(e)))),new nk(i[0]).q()>o&&(e8(i,0,ih(i[0],(rK(),ux))),--u)),n.f=eJ(u),n.e=o,tR(n,i[0])}}function is(n,t){var e,r,i,o,u,f,c,s,h,a;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=ts(e3(n.b[0]),o3),r=ts(e3(t.b[0]),o3),u<0&&(e=eP(e)),c<0&&(r=eP(r)),eW(eY(e,r));if(-1==(i=o!=f?o>f?1:-1:eN(n.b,t.b,o)))a=-c,h=u==c?tz(t.b,f,n.b,o):t3(t.b,f,n.b,o);else if(a=u,u==c){if(0==i)return rK(),uB;h=tz(n.b,o,t.b,f)}else h=t3(n.b,o,t.b,f);return tW(s=new ti(a,h.length,h)),s}function ih(n,t){var e,r,i,o,u,f,c,s,h;if(0==t.f)throw new nr(on);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)?(h=nP(ts(e3(n.b[0]),o3),ts(e3(t.b[0]),o3)),s!=i&&(h=eP(h)),eW(h)):0==(e=c!=r?c>r?1:-1:eN(n.b,t.b,c))?s==i?uS:uC:-1==e?uB:(o=tL(fd,{6:1},-1,u=c-r+1,1),1==r?ir(o,n.b,c,t.b[0]):ik(o,u,n.b,c,t.b,r),tW(f=new ti(s==i?1:-1,u,o)),f)}function ia(n,t,e,r,i){var o,u;if(o=eX(ts(e3(t[0]),o3),ts(e3(r[0]),o3)),n[0]=nx(o),o=rJ(o,32),e>=i){for(u=1;u0){if(i0?u=tP(u,ei(i)):i<0&&(o=tP(o,ei(-i))),iw(o,u,e,r)}function ig(n,t){var e,r,i,o,u,f,c;if(r=eg(t),(i=eg(n))>=t.e)return t;if(u=tL(fd,{6:1},-1,f=t.e,1),rt.ab()?(c=eA(s),o=eA(t),i=t_(eY(rL(n_(c,oz)?eP(c):c,1),n_(o,oz)?eP(o):o),oz)?0:n_(eY(rL(n_(c,oz)?eP(c):c,1),n_(o,oz)?eP(o):o),oz)?-1:1):i=rn(eF(s._()),t._()),0!=(i=r8(f.gb(0)?1:0,h*(5+i),r))){if(54>f.ab())return ek(eX(eA(f),e3(i)),e);f=iC(f,eW(e3(i)))}return new tS(f,e)}function id(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,h,a,b,l,g,w,d,_,v,m;if(iM(),(u=n_(n,oz))&&(n=eP(n)),t_(n,oz))switch(t){case 0:return iK;case 1:return iZ;case 2:return iX;case 3:return iY;case 4:return i1;case 5:return i0;case 6:return i2;default:return s=new K,t<0?s.b.b+=i3:s.b.b+=i4,b=s.b,l=-2147483648==t?"2147483648":i$+-t,b.b+=l,s.b.b}c=tL(fJ,{6:1},-1,19,1),e=18,a=n;do f=a,a=nP(a,oZ),c[--e]=65535&nx(eX(o1,eY(f,iE(a,oZ))));while(tv(a,oz))if(r=eY(eY(eY(oY,e3(e)),e3(t)),oJ),0==t)return u&&(c[--e]=45),tU(c,e,18-e);if(t>0&&rA(r,oq)){if(rA(r,oz)){for(o=17,i=e+nx(r);o>=i;--o)c[o+1]=c[o];return c[++i]=46,u&&(c[--e]=45),tU(c,e,18-e+1)}for(o=2;n_(e3(o),eX(eP(r),oJ));++o)c[--e]=48;return c[--e]=46,c[--e]=48,u&&(c[--e]=45),tU(c,e,18-e)}return(h=e+1,s=new W,u&&(s.b.b+=iz),18-h>=1)?(tI(s,c[e]),s.b.b+=iJ,g=s.b,w=tU(c,e+1,18-e-1),g.b+=w):(d=s.b,_=tU(c,e,18-e),d.b+=_),s.b.b+=of,rB(r,oz)&&(s.b.b+=iG),v=s.b,m=i$+r4(r),v.b+=m,s.b.b}(r2(n.g),ei(n.f)),n.i):(i=ij((n.d||(n.d=eU(n.g)),n.d),0),0==n.f)?i:(t=0>(n.d||(n.d=eU(n.g)),n.d).r()?2:1,e=i.length,r=-n.f+e-t,u=(o=new K).b,u.b+=i,n.f>0&&r>=-6?r>=0?n9(o,e-ei(n.f),iJ):(tt(o.b,t-1,t-1,iW),n9(o,t+1,tU(us,0,-ei(r)-1))):(e-t>=1&&(tt(o.b,t,t,iJ),++e),tt(o.b,e,e,of),r>0&&n9(o,++e,iG),n9(o,++e,i$+r4(r2(r)))),n.i=o.b.b,n.i)}function ip(n,t){var e,r,i,o,u,f;if(i=eg(n),o=eg(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]==i$;)--s;s1e6)throw new nr("power of ten too big");if(n<=2147483647)return u$[1].db(t).eb(t);for(i=r=u$[1].db(2147483647),e=r2(n-2147483647),t=ei(n%2147483647);rB(e,o4);)i=en(i,r),e=eY(e,o4);for(i=(i=en(i,u$[1].db(t))).eb(2147483647),e=r2(n-2147483647);rB(e,o4);)i=i.eb(2147483647),e=eY(e,o4);return i.eb(t)}function im(){var n,t;f&&rM("com.iriscouch.gwtapp.client.BigDecimalApp"),nW(new J),nX(new T),nZ(new j),tD(new F),f&&rM("com.google.gwt.user.client.UserAgentAsserter"),n=-1!=(t=r.userAgent.toLowerCase()).indexOf(oQ)?oQ:-1!=t.indexOf("webkit")||function(){if(-1!=t.indexOf("chromeframe"))return!0;if(typeof e.ActiveXObject!=oH)try{var n=new ActiveXObject("ChromeTab.ChromeFrame");if(n)return n.registerBhoIfNeeded(),!0}catch(n){}return!1}()?oj:-1!=t.indexOf(oO)&&u.documentMode>=9?"ie9":-1!=t.indexOf(oO)&&u.documentMode>=8?"ie8":!function(){var n=/msie ([0-9]+)\.([0-9]+)/.exec(t);if(n&&3==n.length)return 1e3*parseInt(n[1])+parseInt(n[2])>=6e3}()?-1!=t.indexOf("gecko")?"gecko1_8":"unknown":"ie6",tj(oj,n)||o.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"),f&&rM("com.google.gwt.user.client.DocumentModeAsserter"),function(){var n,t,e;for(e=0,t=u.compatMode,n=tJ(fN,{6:1},1,[oi]);e>5,this.b=tL(fd,{6:1},-1,this.e,1);u=2147483648&&(r-=4294967296),r));this.b[this.e-1]>>>=31&-n,tW(this)}}function iC(n,t){var e,r,i,o,u,f,c,s,h,a,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=ts(e3(n.b[0]),o3),r=ts(e3(t.b[0]),o3),u==c)?(l=nx(s=eX(e,r)),0==(b=nx(rU(s,32)))?new t$(u,l):new ti(u,2,tJ(fd,{6:1},-1,[l,b]))):eW(u<0?eY(r,e):eY(e,r));if(u==c)a=u,h=o>=f?t3(n.b,o,t.b,f):t3(t.b,f,n.b,o);else{if(0==(i=o!=f?o>f?1:-1:eN(n.b,t.b,o)))return rK(),uB;1==i?(a=u,h=tz(n.b,o,t.b,f)):(a=c,h=tz(t.b,f,n.b,o))}return tW(s=new ti(a,h.length,h)),s}function iS(n){var t,e,r,i;if(rj(),null==n)throw new nf("null string");if((t=t6(n)).length<27||t.length>45)throw new no(oM);for(r=0;rft.length)throw new V;if(o=null,i=null,67==r[0]?(i=uZ,o=u6):68==r[0]?(i=uX,o=u5):70==r[0]?(i=uY,o=u9):72==r[0]?e>6&&(68==r[5]?(i=u1,o=u7):69==r[5]?(i=u0,o=u8):85==r[5]&&(i=u2,o=fn)):85==r[0]&&(80==r[1]?(i=u3,o=fe):78==r[1]&&(i=u4,o=ft)),i&&e==o.length){for(t=1;tl||r+i>s)throw new q;if(((1&a.c)==0||(4&a.c)!=0)&&b!=c){if(h=tQ(n,11),o=tQ(e,11),nT(n)===nT(e)&&tr;)e8(o,f,h[--t]);else for(f=r+i;rh.r()&&(s=s.cb()),c=eJ(e+(o>u?o:u)),s=(i=o-u)>0?(ib(),i>19!=0&&(t=eP(t),c=!0),u=((b=(h=t).l)&b-1)!=0||((l=h.m)&l-1)!=0||((a=h.h)&a-1)!=0||0==a&&0==l&&0==b?-1:0==a&&0==l&&0!=b?ec(b):0==a&&0!=l&&0==b?ec(l)+22:0!=a&&0==l&&0==b?ec(a)+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=rJ(n,u),c&&eQ(f),e&&(o7=tm(0,0,0)),f;n=nQ((eS(),ui)),r=!0,c=!c}else~~n.h>>19!=0&&(o=!0,n=eP(n),r=!0,c=!c);return -1!=u?(g=n,w=c,d=o,_=rJ(g,u),w&&eQ(_),e&&(v=g,u<=22?(m=v.l&(1<=0&&((g=n.h-u.h)<0||(b=n.l-u.l,(g+=~~(l=n.m-u.m+(~~b>>22))>>22)<0||(n.l=4194303&b,n.m=4194303&l,n.h=1048575&g,0))||(c<22?f.l|=1<>>1,u.m=~~h>>>1|(1&a)<<21,u.l=~~s>>>1|(1&h)<<21,--c;return e&&eQ(f),o&&(r?(o7=eP(n),i&&(o7=eY(o7,(eS(),uu)))):o7=tm(n.l,n.m,n.h)),f}(r?n:tm(n.l,n.m,n.h),t,c,o,i,e):(e&&(o7=o?eP(n):tm(n.l,n.m,n.h)),tm(0,0,0))}function iI(n){var t=[];for(var e in n){var r=typeof n[e];r!=oP?t[t.length]=r:n[e]instanceof Array?t[t.length]=oS:o&&o.bigdecimal&&o.bigdecimal.BigInteger&&n[e]instanceof o.bigdecimal.BigInteger?t[t.length]=i8:o&&o.bigdecimal&&o.bigdecimal.BigDecimal&&n[e]instanceof o.bigdecimal.BigDecimal?t[t.length]=i5:o&&o.bigdecimal&&o.bigdecimal.RoundingMode&&n[e]instanceof o.bigdecimal.RoundingMode?t[t.length]=og:o&&o.bigdecimal&&o.bigdecimal.MathContext&&n[e]instanceof o.bigdecimal.MathContext?t[t.length]=oa:t[t.length]=oP}return t.join(iV)}function iE(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v,m;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,h=~~t.m>>17|(255&t.h)<<5,a=~~(1048320&t.h)>>8,w=e*f,d=r*f,_=i*f,v=o*f,m=u*f,0!=c&&(d+=e*c,_+=r*c,v+=i*c,m+=o*c),0!=s&&(_+=e*s,v+=r*s,m+=i*s),0!=h&&(v+=e*h,m+=r*h),0!=a&&(m+=e*a),b=(4194303&w)+((511&d)<<13),l=(~~w>>22)+(~~d>>9)+((262143&_)<<4)+((31&v)<<17),g=(~~_>>18)+(~~v>>5)+((4095&m)<<8),l+=~~b>>22,b&=4194303,g+=~~l>>22,tm(b,l&=4194303,g&=1048575)}function iR(n,t,e){var r,i,o,u,f,c,s,h;if(h=rr(eX(e3(e.b),oK))+(t.e>0?t.e:nU((t.b-1)*.3010299956639812)+1)-(n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1),c=i=n.f-t.f,o=1,f=uv.length-1,s=tJ(f5,{6:1},17,[(n.d||(n.d=eU(n.g)),n.d)]),0==e.b||0==n.b&&-1!=n.g||0==t.b&&-1!=t.g)return iA(n,t);if(h>0&&(e8(s,0,en((n.d||(n.d=eU(n.g)),n.d),iv(h))),c+=h),u=(s=r3(s[0],(t.d||(t.d=eU(t.g)),t.d)))[0],0!=s[1].r())r=rn(eF(s[1]),(t.d||(t.d=eU(t.g)),t.d)),u=iC(en(u,(rK(),ux)),eW(e3(s[0].r()*(5+r)))),++c;else for(;!u.gb(0);)if(0==(s=r3(u,uv[o]))[1].r()&&c-o>=i)c-=o,o=0)return n;return 0==e?np(n.b,t.b)+1<54?new tr(n.g-t.g,n.f):new tM(is((n.d||(n.d=eU(n.g)),n.d),(t.d||(t.d=eU(t.g)),t.d)),n.f):e>0?e0?t.e:nU((t.b-1)*.3010299956639812)+1)+o>(n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)+1||0==n.b&&-1!=n.g)rK(),r=uB;else if(0==o)r=ih((n.d||(n.d=eU(n.g)),n.d),(t.d||(t.d=eU(t.g)),t.d));else if(o>0)u=iv(o),r=ih((n.d||(n.d=eU(n.g)),n.d),en((t.d||(t.d=eU(t.g)),t.d),u)),r=en(r,u);else{for(u=iv(-o),r=ih(en((n.d||(n.d=eU(n.g)),n.d),u),(t.d||(t.d=eU(t.g)),t.d));!r.gb(0);)if(0==(f=r3(r,uv[e]))[1].r()&&c-e>=o)c-=e,e=0;){if(w[a]==c)s=-1;else if(s=nx(m=r0(eX(rL(ts(e3(w[a]),o3),32),ts(e3(w[a-1]),o3)),c)),v=nx(rJ(m,32)),0!=s){_=!1,++s;do{if(--s,_)break;l=iE(ts(e3(s),o3),ts(e3(d[o-2]),o3)),y=eX(rL(e3(v),32),ts(e3(w[a-2]),o3)),32>rH(nx(rU(g=eX(ts(e3(v),o3),ts(e3(c),o3)),32)))?_=!0:v=nx(g)}while(rB(ta(l,o$),ta(y,o$)))}if(0!=s&&0!=function(n,t,e,r,i){var o,u,f;for(f=0,o=oz,u=oz;f0)e8(b,0,ih((n.d||(n.d=eU(n.g)),n.d),en((t.d||(t.d=eU(t.g)),t.d),iv(o)))),a=o<(h-l+1>0?h-l+1:0)?o:h-l+1>0?h-l+1:0,e8(b,0,en(b[0],iv(a)));else if(u=-o<(h-i>0?h-i:0)?-o:h-i>0?h-i:0,b=r3(en((n.d||(n.d=eU(n.g)),n.d),iv(u)),(t.d||(t.d=eU(t.g)),t.d)),a+=u,u=-a,0!=b[1].r()&&u>0&&(0==(r=new nk(b[1]).q()+u-t.q())&&(e8(b,1,ih(en(b[1],iv(u)),(t.d||(t.d=eU(t.g)),t.d))),r=(d=b[1].r())<0?-d:d),r>0))throw new nr(ou);if(0==b[0].r())return eL(o);for(w=b[0],g=(c=new nk(b[0])).q(),f=1;!w.gb(0);)if(0==(b=r3(w,uv[f]))[1].r()&&(g-f>=h||a-f>=o))g-=f,a-=f,fh)throw new nr(ou);return c.f=eJ(a),tR(c,w),c}function iT(){var n;for(n=0,iT=l,uz=tJ(fd,{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]),uJ=tL(f5,{6:1},17,(uK=tJ(fd,{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])).length,0);n=0;--c)w=function(n){var t,e,r;return rA(n,oz)?(e=nP(n,o2),r=n3(n,o2)):(e=nP(t=rU(n,1),o0),r=eX(rL(r=n3(t,o0),1),ts(n,oJ))),th(rL(r,32),ts(e,o3))}(eX(rL(y,32),ts(e3(M[c]),o3))),M[c]=nx(w),y=e3(nx(rJ(w,32)));d=nx(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(h=x-1;0==M[h];--h)if(0==h)break n;x=h+1}for(;48==v[e];)++e}if(a=C<0,o=_-e-t-1,0==t)return a&&(v[--e]=45),tU(v,e,_-e);if(t>0&&o>=-6){if(o>=0){for(s=e+o,h=_-1;h>=s;--h)v[h+1]=v[h];return v[++s]=46,a&&(v[--e]=45),tU(v,e,_-e+1)}for(h=2;h<-o+1;++h)v[--e]=48;return v[--e]=46,v[--e]=48,a&&(v[--e]=45),tU(v,e,_-e)}return(S=e+1,m=new W,a&&(m.b.b+=iz),_-S>=1)?(tI(m,v[e]),m.b.b+=iJ,N=m.b,I=tU(v,e+1,_-e-1),N.b+=I):(E=m.b,R=tU(v,e,_-e),E.b+=R),m.b.b+=of,o>0&&(m.b.b+=iG),O=m.b,D=i$+o,O.b+=D,m.b.b}f&&f({moduleName:"gwtapp",sessionId:c,subSystem:"startup",evtGroup:"moduleStartup",millis:new Date().getTime(),type:"moduleEvalStart"});var iF,iH,i$="",iV=" ",iq='"',iG="+",iz="-",iJ=".",iK="0",iW="0.",iZ="0.0",iX="0.00",iY="0.000",i1="0.0000",i0="0.00000",i2="0.000000",i4="0E",i3="0E+",i6=":",i5="BigDecimal",i9="BigDecimal MathContext",i7="BigDecimal;",i8="BigInteger",on="BigInteger divide by zero",ot="BigInteger not invertible.",oe="BigInteger: modulus not positive",or="BigInteger;",oi="CSS1Compat",oo="Division by zero",ou="Division impossible",of="E",oc='For input string: "',os="Infinite or NaN",oh="Invalid Operation",oa="MathContext",ob="Negative bit address",ol="Rounding necessary",og="RoundingMode",ow="RoundingMode;",od="String",op="[Lcom.iriscouch.gwtapp.client.",o_="[Ljava.lang.",ov="[Ljava.math.",om="\\.",oy="__gwtex_wrap",oC="anonymous",oS="array",oM="bad string format",ox="bigdecimal",oB="com.google.gwt.core.client.",oA="com.google.gwt.core.client.impl.",oN="com.iriscouch.gwtapp.client.",oI="java.lang.",oE="java.math.",oR="java.util.",oO="msie",oD="null",ok="number",oL="number MathContext",oU="number number",oP="object",oQ="opera",oT="org.timepedia.exporter.client.",oj="safari",oF="string",oH="undefined",o$={l:0,m:0,h:524288},oV={l:0,m:4193280,h:1048575},oq={l:4194298,m:4194303,h:1048575},oG={l:4194303,m:4194303,h:1048575},oz={l:0,m:0,h:0},oJ={l:1,m:0,h:0},oK={l:2,m:0,h:0},oW={l:5,m:0,h:0},oZ={l:10,m:0,h:0},oX={l:11,m:0,h:0},oY={l:18,m:0,h:0},o1={l:48,m:0,h:0},o0={l:877824,m:119,h:0},o2={l:1755648,m:238,h:0},o4={l:4194303,m:511,h:0},o3={l:4194303,m:1023,h:0},o6={l:0,m:1024,h:0};(iH=s.prototype={}).eQ=function(n){return this===n},iH.gC=function(){return fc},iH.hC=function(){return nj(this)},iH.tS=function(){return this.gC().d+"@"+function(n){var t,e,r;if(t=tL(fJ,{6:1},-1,8,1),r_(),e=uR,r=7,n>=0)for(;n>15;)t[r--]=e[15&n],n>>=4;else for(;r>0;)t[r--]=e[15&n],n>>=4;return t[r]=e[15&n],t4(t,r,8)}(this.hC())},iH.toString=function(){return this.tS()},iH.tM=l,iH.cM={},(iH=h.prototype=new s).gC=function(){return fh},iH.j=function(){return this.f},iH.tS=function(){var n,t;return n=this.gC().d,null!=(t=this.j())?n+": "+t:n},iH.cM={6:1,15:1},iH.f=null,(iH=a.prototype=new h).gC=function(){return fa},iH.cM={6:1,15:1},(iH=ne.prototype=b.prototype=new a).gC=function(){return fb},iH.cM={6:1,12:1,15:1},(iH=n1.prototype=(function(){}).prototype=new b).gC=function(){return fl},iH.j=function(){var n,t,e,r,i;return null==this.d&&(this.e=null==(e=this.c)?oD:tn(e)?null==(r=t9(e))?null:r.name:nG(e,1)?od:(nF(e)?e.gC():fg).d,this.b=tn(n=this.c)?null==(i=t9(n))?null:i.message:n+i$,this.d="("+this.e+"): "+this.b+(tn(t=this.c)?function(n){var t=i$;try{for(var e in n)if("name"!=e&&"message"!=e&&"toString"!=e)try{t+="\n "+e+": "+n[e]}catch(n){}}catch(n){}return t}(t9(t)):i$)),this.d},iH.cM={6:1,12:1,15:1},iH.b=null,iH.c=null,iH.d=null,iH.e=null,(iH=g.prototype=new s).gC=function(){return fw};var o5=0,o9=0;(iH=w.prototype=(function(){}).prototype=new g).gC=function(){return fv},iH.b=null,iH.c=null,(iH=d.prototype=_.prototype=new s).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=i6+o,f=n[u];if(f){for(r=0,i=f.length;r0?i:oC},iH.gC=function(){return fm},iH.o=function(n){return[]},(iH=v.prototype=new _).k=function(){return tl(this.o(tw()),this.p())},iH.gC=function(){return fS},iH.o=function(n){return eR(this,n)},iH.p=function(){return 2},(iH=m.prototype=(function(){}).prototype=new v).k=function(){return es(this)},iH.n=function(n){var t,e;return 0==n.length||(0==(e=e9(n)).indexOf("at ")&&(e=n7(e,3)),-1==(t=e.indexOf("["))&&(t=e.indexOf("(")),-1==t)?oC:(-1!=(t=(e=e9(e.substr(0,t-0))).indexOf("."))&&(e=n7(e,t+1)),e.length>0?e:oC)},iH.gC=function(){return fM},iH.o=function(n){return t2(this,n)},iH.p=function(){return 3},(iH=y.prototype=new s).gC=function(){return fx},(iH=C.prototype=(function(){}).prototype=new y).gC=function(){return fB},iH.b=i$,(iH=S.prototype=(function(){}).prototype=new s).gC=function(){return this.aC},iH.aC=null,iH.qI=0;var o7=null,o8=null;(iH=M.prototype=(function(){}).prototype=new s).gC=function(){return fI},iH.cM={2:1},(iH=x.prototype=new s).gC=function(){return fR},iH.cM={6:1,10:1};var un=null;(iH=eo.prototype=tr.prototype=tM.prototype=tA.prototype=Z.prototype=ep.prototype=eu.prototype=tB.prototype=tx.prototype=ez.prototype=n2.prototype=n4.prototype=te.prototype=tS.prototype=nk.prototype=B.prototype=new x).eQ=function(n){return e0(this,n)},iH.gC=function(){return fO},iH.hC=function(){return rv(this)},iH.q=function(){return rT(this)},iH.r=function(){return ew(this)},iH.tS=function(){return id(this)},iH.cM={6:1,8:1,10:1,16:1},iH.b=0,iH.c=0,iH.d=null,iH.e=0,iH.f=0,iH.g=0,iH.i=null;var ut,ue,ur,ui,uo,uu,uf,uc,us,uh,ua,ub,ul,ug,uw,ud,up,u_=null,uv=null,um=null;(iH=nL.prototype=ng.prototype=(function(){}).prototype=new B).s=function(n){var t,e,r;if((e=iI(n))==i$)t=0>ew(this)?ed(this):this;else if(e==oa)t=0>(r=t7(this,new iS(n[0].toString()))).r()?ed(r):r;else throw new ne("Unknown call signature for interim = super.abs: "+e);return new nL(t)},iH.t=function(n){var t,e;if((e=iI(n))==i5)t=r1(this,new Z(n[0].toString()));else if(e==i9)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 t7(r1(n,t),e);if((n.e>0?n.e:nU((n.b-1)*.3010299956639812)+1)0?t.e:nU((t.b-1)*.3010299956639812)+1)<-r-1))return t7(r1(n,t),e);i=n,u=t}return e.b>=(i.e>0?i.e:nU((i.b-1)*.3010299956639812)+1)?t7(r1(n,t),e):(f=(o=i.r())==u.r()?iC(rW((i.d||(i.d=eU(i.g)),i.d),10),eW(e3(o))):iC(rW(f=is((i.d||(i.d=eU(i.g)),i.d),eW(e3(o))),10),eW(e3(9*o))),t7(i=new tM(f,i.f+1),e))}(this,new Z(n[0].toString()),new iS(n[1].toString()));else throw new ne("Unknown call signature for interim = super.add: "+e);return new nL(t)},iH.u=function(){return~~(nx(t8(this,8))<<24)>>24},iH.v=function(n){return iu(this,n)},iH.w=function(n){var t,e,r,i;if((i=iI(n))==i5)e=eb(this,new Z(n[0].toString()));else if(i==i9)e=el(this,new Z(n[0].toString()),new iS(n[1].toString()));else throw new ne("Unknown call signature for interim = super.divideAndRemainder: "+i);for(t=0,r=tL(fk,{6:1},3,e.length,0);t129?n*=1/0:n=t5(id(this)),n},iH.gC=function(){return fD},iH.hC=function(){return rv(this)},iH.B=function(){var n;return this.f<=-32||this.f>(this.e>0?this.e:nU((this.b-1)*.3010299956639812)+1)?0:(n=new n0(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eU(this.g)),this.d):this.f<0?en((this.d||(this.d=eU(this.g)),this.d),iv(-this.f)):ih((this.d||(this.d=eU(this.g)),this.d),iv(this.f)))).f*n.b[0]},iH.C=function(){return nx(t8(this,32))},iH.D=function(){return nx(t8(this,32))},iH.E=function(){return t5(id(this))},iH.F=function(n){return new nL(iu(this,n)>=0?this:n)},iH.G=function(n){return new nL(0>=iu(this,n)?this:n)},iH.H=function(n){return new nL(rz(this,this.f+n))},iH.I=function(n){return new nL(rz(this,this.f-n))},iH.J=function(n){var t,e;if((e=iI(n))==i5)t=rD(this,new Z(n[0].toString()));else if(e==i9)t=tb(this,new Z(n[0].toString()),new iS(n[1].toString()));else throw new ne("Unknown call signature for interim = super.multiply: "+e);return new nL(t)},iH.K=function(n){var t,e;if((e=iI(n))==i$)t=ed(this);else if(e==oa)t=ed(t7(this,new iS(n[0].toString())));else throw new ne("Unknown call signature for interim = super.negate: "+e);return new nL(t)},iH.L=function(n){var t,e;if((e=iI(n))==i$)t=this;else if(e==oa)t=t7(this,new iS(n[0].toString()));else throw new ne("Unknown call signature for interim = super.plus: "+e);return new nL(t)},iH.M=function(n){var t,e;if((e=iI(n))==ok)t=rw(this,n[0]);else if(e==oL)t=function(n,t,e){var r,i,o,u,f,c;if(o=t<0?-t:t,u=e.b,i=ei(n8(o))+1,f=e,0==t||0==n.b&&-1!=n.g&&t>0)return rw(n,t);if(o>999999999||0==u&&t<0||u>0&&i>u)throw new nr(oh);for(u>0&&(f=new eK(u+i+1,e.c)),r=t7(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=tb(r,r,f),(o&c)==c&&(r=tb(r,n,f)),c>>=1;return t<0&&(r=iR(ug,r,f)),ic(r,e),r}(this,n[0],new iS(n[1].toString()));else throw new ne("Unknown call signature for interim = super.pow: "+e);return new nL(t)},iH.q=function(){return rT(this)},iH.N=function(n){var t,e;if((e=iI(n))==i5)t=eb(this,new Z(n[0].toString()))[1];else if(e==i9)t=el(this,new Z(n[0].toString()),new iS(n[1].toString()))[1];else throw new ne("Unknown call signature for interim = super.remainder: "+e);return new nL(t)},iH.O=function(n){return new nL(t7(this,new iS(eh(n.b))))},iH.P=function(){return ei(this.f)},iH.Q=function(n){var t;return new nL((t=this.f-n,this.b<54)?0==this.g?eL(t):new tr(this.g,eJ(t)):new tS((this.d||(this.d=eU(this.g)),this.d),eJ(t)))},iH.R=function(n){var t,e;if((e=iI(n))==ok)t=rY(this,n[0],(iB(),u4));else if(e==oU)t=rY(this,n[0],rP(n[1]));else if("number RoundingMode"==e)t=rY(this,n[0],tc(n[1].toString()));else throw new ne("Unknown call signature for interim = super.setScale: "+e);return new nL(t)},iH.S=function(){return~~(nx(t8(this,16))<<16)>>16},iH.r=function(){return ew(this)},iH.T=function(){return new nL(function(n){var t,e,r,i,o;if(t=1,e=uv.length-1,r=n.f,0==n.b&&-1!=n.g)return new Z(iK);for(n.d||(n.d=eU(n.g)),o=n.d;!o.gb(0);)if(0==(i=r3(o,uv[t]))[1].r())r-=t,t0?r.e:nU((r.b-1)*.3010299956639812)+1)0?this.e:nU((this.b-1)*.3010299956639812)+1)?(u=(f=ew(this))!=r.r()?iC(rW((this.d||(this.d=eU(this.g)),this.d),10),eW(e3(f))):iC(rW(u=is((this.d||(this.d=eU(this.g)),this.d),eW(e3(f))),10),eW(e3(9*f))),t7(new tM(u,this.f+1),i)):t7(iO(this,r),i);else throw new ne("Unknown call signature for interim = super.subtract: "+e);return new nL(t)},iH.V=function(){return new n0(0==this.f||0==this.b&&-1!=this.g?(this.d||(this.d=eU(this.g)),this.d):this.f<0?en((this.d||(this.d=eU(this.g)),this.d),iv(-this.f)):ih((this.d||(this.d=eU(this.g)),this.d),iv(this.f)))},iH.W=function(){return new n0(r6(this))},iH.X=function(){return function(n){var t,e,r,i,o,u,f,c;if(u=ij((n.d||(n.d=eU(n.g)),n.d),0),0==n.f)return u;if(t=0>(n.d||(n.d=eU(n.g)),n.d).r()?2:1,r=u.length,i=-n.f+r-t,c=new nV(u),n.f>0&&i>=-6)i>=0?n9(c,r-ei(n.f),iJ):(tt(c.b,t-1,t-1,iW),n9(c,t+1,tU(us,0,-ei(i)-1)));else{if(e=r-t,0!=(f=ei(i%3))&&(0==(n.d||(n.d=eU(n.g)),n.d).r()?i+=f=f<0?-f:3-f:(i-=f=f<0?f+3:f,t+=f),e<3))for(o=f-e;o>0;--o)n9(c,r++,iK);r-t>=1&&(tt(c.b,t,t,iJ),++r),0!=i&&(tt(c.b,r,r,of),i>0&&n9(c,++r,iG),n9(c,++r,i$+r4(r2(i))))}return c.b.b}(this)},iH.Y=function(){return function(n){var t,e,r,i,o,u;if(r=ij((n.d||(n.d=eU(n.g)),n.d),0),0==n.f||0==n.b&&-1!=n.g&&n.f<0)return r;if(t=0>ew(n)?1:0,e=n.f,i=new W(r.length+1+((o=ei(n.f))<0?-o:o)),1==t&&(i.b.b+=iz),n.f>0){if((e-=r.length-t)>=0){for(i.b.b+=iW;e>us.length;e-=us.length)tq(i,us);n5(i,us,ei(e)),nI(i,n7(r,t))}else nI(i,(u=ei(e=t-e),r.substr(t,u-t))),i.b.b+=iJ,nI(i,n7(r,ei(e)))}else{for(nI(i,n7(r,t));e<-us.length;e+=us.length)tq(i,us);n5(i,us,ei(-e))}return i.b.b}(this)},iH.tS=function(){return id(this)},iH.Z=function(){return new nL(new tr(1,this.f))},iH.$=function(){return new n0((this.d||(this.d=eU(this.g)),this.d))},iH.cM={3:1,6:1,8:1,10:1,16:1,24:1},(iH=F.prototype=(function(){}).prototype=new s).gC=function(){return fL};var uy=!1;(iH=ro.prototype=ri.prototype=ti.prototype=e5.prototype=t$.prototype=rh.prototype=nq.prototype=iy.prototype=A.prototype=new x)._=function(){return this.f<0?new ti(1,this.e,this.b):this},iH.ab=function(){return eV(this)},iH.eQ=function(n){return e$(this,n)},iH.gC=function(){return fU},iH.bb=function(){return t1(this)},iH.hC=function(){return eD(this)},iH.cb=function(){return 0==this.f?this:new ti(-this.f,this.e,this.b)},iH.db=function(n){return rk(this,n)},iH.eb=function(n){return tX(this,n)},iH.fb=function(n){return tY(this,n)},iH.r=function(){return this.f},iH.gb=function(n){return rQ(this,n)},iH.tS=function(){return ij(this,0)},iH.cM={6:1,8:1,10:1,17:1},iH.b=null,iH.c=-2,iH.d=0,iH.e=0,iH.f=0;var uC,uS,uM,ux,uB,uA=null;(iH=n0.prototype=nO.prototype=nD.prototype=(function(){}).prototype=new A)._=function(){return new n0(this.f<0?new ti(1,this.e,this.b):this)},iH.hb=function(n){return new n0(iC(this,n))},iH.ib=function(n){return new n0(0==n.f||0==this.f?(rK(),uB):e$(n,(rK(),uC))?this:e$(this,uC)?n:this.f>0?n.f>0?function(n,t){var e,r,i,o;if(i=nd(n.e,t.e),(e=np(eg(n),eg(t)))>=i)return rK(),uB;for(r=tL(fd,{6:1},-1,i,1);e0?rG(n,this):this.e>n.e?ip(this,n):ip(n,this))},iH.jb=function(n){return new n0(0==n.f?this:0==this.f?(rK(),uB):e$(this,(rK(),uC))?new n0(r7(n)):e$(n,uC)?uB:this.f>0?n.f>0?function(n,t){var e,r,i,o;for(i=tL(fd,{6:1},-1,n.e,1),r=nd(n.e,t.e),e=eg(n);e=n.e)return n;for(o=tL(fd,{6:1},-1,u=nd(n.e,t.e),1),e=i;e0?function(n,t){var e,r,i,o,u,f,c;if(i=eg(n),o=eg(t),i>=t.e)return n;if(c=np(n.e,t.e),r=i,o>i){for(f=tL(fd,{6:1},-1,c,1),u=nd(n.e,o);r=t.e)return rK(),uB;if(u=tL(fd,{6:1},-1,f=t.e,1),e=i,i0)for(;e34028234663852886e22?1/0:n<-34028234663852886e22?-1/0:n},iH.qb=function(n){return new n0(rE(this,n))},iH.gC=function(){return fP},iH.bb=function(){return t1(this)},iH.hC=function(){return eD(this)},iH.B=function(){return this.f*this.b[0]},iH.rb=function(n){return function(n,t){var e,r;if(iT(),t<=0||1==n.e&&2==n.b[0])return!0;if(!rQ(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}(uK,n.b[0])>=0;for(r=1;r>1)?r:1+(~~(t-1)>>1))}(new n0(this.f<0?new ti(1,this.e,this.b):this),n)},iH.sb=function(){return t5(ij(this,0))},iH.tb=function(n){return new n0(1==rn(this,n)?this:n)},iH.ub=function(n){return new n0(-1==rn(this,n)?this:n)},iH.vb=function(n){return new n0(et(this,n))},iH.wb=function(n){return new n0(rR(this,n))},iH.xb=function(n,t){return new n0(rq(this,n,t))},iH.yb=function(n){return new n0(en(this,n))},iH.cb=function(){return new n0(0==this.f?this:new ti(-this.f,this.e,this.b))},iH.zb=function(){return new n0(function(n){if(n.f<0)throw new nr("start < 0: "+n);return function(n){var t,e,r,i,o,u,f,c;if(iT(),o=tL(fd,{6:1},-1,uK.length,1),r=tL(f_,{6:1},-1,1024,2),1==n.e&&n.b[0]>=0&&n.b[0]=uK[e];++e);return uJ[e]}for(f=new ti(1,n.e,tL(fd,{6:1},-1,n.e+1,1)),ix(n.b,0,f.b,0,n.e),rQ(n,0)?tK(f,2):f.b[0]|=1,i=f.ab(),t=2;i0?n.f>0?this.e>n.e?rl(this,n):rl(n,this):ig(this,n):n.f>0?ig(n,this):eg(n)>eg(this)?rZ(n,this):rZ(this,n))},iH.db=function(n){return new n0(rk(this,n))},iH.Cb=function(n){return new n0(rF(this,n))},iH.Db=function(n){return new n0(rQ(this,n)?this:it(this,n))},iH.eb=function(n){return new n0(tX(this,n))},iH.fb=function(n){return new n0(tY(this,n))},iH.r=function(){return this.f},iH.Eb=function(n){return new n0(is(this,n))},iH.gb=function(n){return rQ(this,n)},iH.Fb=function(n){var t,e;if((e=iI(n))==i$)t=ij(this,0);else if(e==ok)t=function(n,t){var e,r,i,o,u,f,c,s,h,a,b,l,g,w,d,_,v;if(iM(),w=n.f,h=n.e,f=n.b,0==w)return iK;if(1==h)return v=ts(e3(f[0]),o3),w<0&&(v=eP(v)),function(n,t){var e,r,i,o;if(10==t||t<2||t>36)return i$+r4(n);if(e=tL(fJ,{6:1},-1,65,1),r_(),r=uR,i=64,o=e3(t),rA(n,oz)){for(;rA(n,o);)e[i--]=r[nx(n3(n,o))],n=iN(n,o,!1);e[i]=r[nx(n)]}else{for(;!rB(n,eP(o));)e[i--]=r[nx(eP(n3(n,o)))],n=iN(n,o,!1);e[i--]=r[nx(eP(n))],e[i]=45}return t4(e,i,65)}(v,t);if(10==t||t<2||t>36)return ij(n,0);if(r=Math.log(t)/Math.log(2),g=tL(fJ,{6:1},-1,l=ei(eV(new n0(n.f<0?new ti(1,n.e,n.b):n))/r+(w<0?1:0))+1,1),o=l,16!=t)for(ix(f,0,d=tL(fd,{6:1},-1,h,1),0,h),_=h,i=uU[t],e=uL[t-2];;){b=ir(d,d,_,e),a=o;do g[--o]=ev(b%t,t);while(0!=(b=~~(b/t))&&0!=o)for(c=0,u=i-a+o;c0;++c)g[--o]=48;for(c=_-1;c>0&&0==d[c];--c);if(1==(_=c+1)&&0==d[0])break}else for(c=0;c0;++s)b=~~f[c]>>(s<<2)&15,g[--o]=ev(b,16);for(;48==g[o];)++o;return -1==w&&(g[--o]=45),tU(g,o,l-o)}(this,n[0]);else throw new ne("Unknown call signature for result = super.toString: "+e);return t},iH.Gb=function(n){return new n0(0==n.f?this:0==this.f?n:e$(n,(rK(),uC))?new n0(r7(this)):e$(this,uC)?new n0(r7(n)):this.f>0?n.f>0?this.e>n.e?rg(this,n):rg(n,this):iL(this,n):n.f>0?iL(n,this):eg(n)>eg(this)?ii(n,this):ii(this,n))},iH.cM={4:1,6:1,8:1,10:1,17:1,24:1},(iH=j.prototype=(function(){}).prototype=new s).gC=function(){return fT};var uN=!1;(iH=nv.prototype=nm.prototype=(function(){}).prototype=new s).gC=function(){return fj},iH.Hb=function(){return this.b.b},iH.Ib=function(){return new Y(this.b.c)},iH.hC=function(){return nM(this.b)},iH.tS=function(){return eh(this.b)},iH.cM={24:1},iH.b=null,(iH=T.prototype=(function(){}).prototype=new s).gC=function(){return fF};var uI=!1;(iH=Y.prototype=ny.prototype=(function(){}).prototype=new s).gC=function(){return fH},iH.Jb=function(){return this.b.b},iH.tS=function(){return this.b.b},iH.cM={5:1,24:1},iH.b=null,(iH=J.prototype=(function(){}).prototype=new s).gC=function(){return fV};var uE=!1;(iH=nr.prototype=(function(){}).prototype=new b).gC=function(){return fq},iH.cM={6:1,12:1,15:1},(iH=ni.prototype=$.prototype=(function(){}).prototype=new b).gC=function(){return fz},iH.cM={6:1,12:1,15:1},(iH=N.prototype=(function(){}).prototype=new s).gC=function(){return fK},iH.tS=function(){return((2&this.c)!=0?"interface ":(1&this.c)!=0?i$:"class ")+this.d},iH.b=null,iH.c=0,iH.d=null,(iH=H.prototype=(function(){}).prototype=new b).gC=function(){return fW},iH.cM={6:1,12:1,15:1},(iH=I.prototype=new s).eQ=function(n){return this===n},iH.gC=function(){return fs},iH.hC=function(){return nj(this)},iH.tS=function(){return this.b},iH.cM={6:1,8:1,9:1},iH.b=null,iH.c=0,(iH=no.prototype=V.prototype=E.prototype=new b).gC=function(){return fZ},iH.cM={6:1,12:1,15:1},(iH=nu.prototype=q.prototype=R.prototype=new b).gC=function(){return fG},iH.cM={6:1,12:1,15:1},(iH=nf.prototype=G.prototype=(function(){}).prototype=new b).gC=function(){return fX},iH.cM={6:1,12:1,15:1},(iH=nw.prototype=(function(){}).prototype=new E).gC=function(){return fY},iH.cM={6:1,12:1,15:1},(iH=to.prototype=(function(){}).prototype=new s).gC=function(){return fy},iH.tS=function(){return this.b+iJ+this.d+"(Unknown Source"+(this.c>=0?i6+this.c:i$)+")"},iH.cM={6:1,13:1},iH.b=null,iH.c=0,iH.d=null,(iH=String.prototype).eQ=function(n){return tj(this,n)},iH.gC=function(){return fA},iH.hC=function(){var n,t;return nJ(),null!=(t=uD[n=i6+this])?t:(null==(t=uO[n])&&(t=function(n){var t,e,r,i;for(t=0,i=(r=n.length)-4,e=0;e -1 && !currentIsDialog && urlHistory.activeIndex > 0) ? (self._open(options), self._bindContainerClose(), this) : (-1 !== url.indexOf(hashkey) || currentIsDialog ? url = $.mobile.path.parseLocation().hash + hashkey : url += url.indexOf("#") > -1 ? hashkey : "#" + hashkey, 0 === urlHistory.activeIndex && url === urlHistory.initialDst && (url += hashkey), this.window.one("beforenavigate", function(theEvent) { + return $.mobile.popup.active || currentOptions.disabled || (($.mobile.popup.active = this, this._scrollTop = this.window.scrollTop(), currentOptions.history) ? (urlHistory = $.mobile.navigate.history, hashkey = $.mobile.dialogHashKey, currentIsDialog = !!(activePage = $.mobile.activePage) && activePage.hasClass("ui-dialog"), this._myUrl = url = urlHistory.getActive().url, url.indexOf(hashkey) > -1 && !currentIsDialog && urlHistory.activeIndex > 0) ? (self._open(options), self._bindContainerClose()) : (-1 !== url.indexOf(hashkey) || currentIsDialog ? url = $.mobile.path.parseLocation().hash + hashkey : url += url.indexOf("#") > -1 ? hashkey : "#" + hashkey, 0 === urlHistory.activeIndex && url === urlHistory.initialDst && (url += hashkey), this.window.one("beforenavigate", function(theEvent) { theEvent.preventDefault(), self._open(options), self._bindContainerClose(); }), this.urlAltered = !0, $.mobile.navigate(url, { role: "dialog" - }), this) : (self._open(options), self._bindContainerClose(), self.element.delegate(currentOptions.closeLinkSelector, currentOptions.closeLinkEvents, function(theEvent) { + })) : (self._open(options), self._bindContainerClose(), self.element.delegate(currentOptions.closeLinkSelector, currentOptions.closeLinkEvents, function(theEvent) { self.close(), theEvent.preventDefault(); - }), this); + }))), this; }, close: function() { return $.mobile.popup.active !== this || (this._scrollTop = this.window.scrollTop(), this.options.history && this.urlAltered ? ($.mobile.back(), this.urlAltered = !1) : this._closePopup()), this; 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 e809c895bc69..ce659eee00cf 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 @@ -6324,7 +6324,7 @@ mode: "hidden", children: primaryChildren }; - return (2 & mode) == 0 && null !== progressedPrimaryFragment ? ((primaryChildFragment = progressedPrimaryFragment).childLanes = 0, primaryChildFragment.pendingProps = primaryChildProps, 8 & workInProgress.mode && (primaryChildFragment.actualDuration = 0, primaryChildFragment.actualStartTime = -1, primaryChildFragment.selfBaseDuration = 0, primaryChildFragment.treeBaseDuration = 0), fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null)) : (primaryChildFragment = createFiberFromOffscreen(primaryChildProps, mode, 0, null), fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null)), primaryChildFragment.return = workInProgress, fallbackChildFragment.return = workInProgress, primaryChildFragment.sibling = fallbackChildFragment, workInProgress.child = primaryChildFragment, fallbackChildFragment; + return (2 & mode) == 0 && null !== progressedPrimaryFragment ? ((primaryChildFragment = progressedPrimaryFragment).childLanes = 0, primaryChildFragment.pendingProps = primaryChildProps, 8 & workInProgress.mode && (primaryChildFragment.actualDuration = 0, primaryChildFragment.actualStartTime = -1, primaryChildFragment.selfBaseDuration = 0, primaryChildFragment.treeBaseDuration = 0)) : primaryChildFragment = createFiberFromOffscreen(primaryChildProps, mode, 0, null), fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null), primaryChildFragment.return = workInProgress, fallbackChildFragment.return = workInProgress, primaryChildFragment.sibling = fallbackChildFragment, workInProgress.child = primaryChildFragment, fallbackChildFragment; } function updateSuspensePrimaryChildren(current, workInProgress, primaryChildren, renderLanes) { var currentPrimaryChildFragment = current.child, currentFallbackChildFragment = currentPrimaryChildFragment.sibling, primaryChildFragment = createWorkInProgress(currentPrimaryChildFragment, { @@ -8864,7 +8864,7 @@ return !1; }, overrideHookState = null, overrideHookStateDeletePath = null, overrideHookStateRenamePath = null, overrideProps = null, overridePropsDeletePath = null, overridePropsRenamePath = null, scheduleUpdate = null, setSuspenseHandler = null, copyWithDeleteImpl = function(obj, path, index) { var key = path[index], updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj); - return index + 1 === path.length ? (Array.isArray(updated) ? updated.splice(key, 1) : delete updated[key], updated) : (updated[key] = copyWithDeleteImpl(obj[key], path, index + 1), updated); + return index + 1 === path.length ? Array.isArray(updated) ? updated.splice(key, 1) : delete updated[key] : updated[key] = copyWithDeleteImpl(obj[key], path, index + 1), updated; }, copyWithDelete = function(obj, path) { return copyWithDeleteImpl(obj, path, 0); }, copyWithRenameImpl = function(obj, oldPath, newPath, index) {